23
23
from mkdocs_git_revision_date_localized_plugin .util import Util
24
24
from mkdocs_git_revision_date_localized_plugin .exclude import exclude
25
25
26
- from typing import Any , Dict
26
+ from typing import Any , Dict , Optional
27
27
from collections import OrderedDict
28
28
29
29
from packaging .version import Version
@@ -145,12 +145,15 @@ def on_config(self, config: config_options.Config, **kwargs) -> Dict[str, Any]:
145
145
return config
146
146
147
147
148
- def parallel_compute_commit_timestamps (self , files , docs_dir , is_first_commit = False ):
148
+ def parallel_compute_commit_timestamps (self , files , original_source : Optional [ Dict ] = None , is_first_commit = False ):
149
149
pool = multiprocessing .Pool (processes = min (10 , multiprocessing .cpu_count ()))
150
150
results = []
151
151
for file in files :
152
152
if file .is_documentation_page ():
153
- abs_src_path = os .path .join (docs_dir , file .src_uri )
153
+ abs_src_path = file .abs_src_path
154
+ # Support plugins like monorep that might have moved the files from the original source that is under git
155
+ if original_source and abs_src_path in original_source :
156
+ abs_src_path = original_source [abs_src_path ]
154
157
result = pool .apply_async (
155
158
self .util .get_git_commit_timestamp , args = (abs_src_path , is_first_commit )
156
159
)
@@ -170,14 +173,17 @@ def on_files(self, files: Files, config: MkDocsConfig):
170
173
"""
171
174
if not self .config .get ("enabled" ) or not self .config .get ("enable_parallel_processing" ):
172
175
return
173
- # Some plugins like TechDocs/monorepo copies docs_dir to a tmp dir and we need the real git path.
174
- real_docs_dir = os .path .join (
175
- os .path .dirname (config ["config_file_path" ]), "docs"
176
- )
176
+
177
+ # Support monorepo/techdocs, which copies the docs_dir to a temporary directory
178
+ if "monorepo" in config .get ('plugins' , {}):
179
+ original_source = config .get ('plugins' ).get ('monorepo' ).merger .files_source_dir
180
+ else :
181
+ original_source = None
182
+
177
183
if not self .last_revision_commits :
178
- self .parallel_compute_commit_timestamps (files = files , docs_dir = real_docs_dir , is_first_commit = False )
184
+ self .parallel_compute_commit_timestamps (files = files , original_source = original_source , is_first_commit = False )
179
185
if not self .created_commits :
180
- self .parallel_compute_commit_timestamps (files = files , docs_dir = real_docs_dir , is_first_commit = True )
186
+ self .parallel_compute_commit_timestamps (files = files , original_source = original_source , is_first_commit = True )
181
187
182
188
183
189
def on_page_markdown (self , markdown : str , page : Page , config : config_options .Config , files , ** kwargs ) -> str :
0 commit comments