Skip to content

Commit 022dbec

Browse files
committedOct 29, 2016
Compilers must explicitly state that they use the .dep file for it to be always created and added as a target.
1 parent 6953d3d commit 022dbec

File tree

8 files changed

+18
-6
lines changed

8 files changed

+18
-6
lines changed
 

‎nikola/plugin_categories.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ class PageCompiler(BasePlugin):
250250
friendly_name = ''
251251
demote_headers = False
252252
supports_onefile = True
253+
use_dep_file = False # If set to true, the .dep file is always written and added as a target
253254
default_metadata = {
254255
'title': '',
255256
'slug': '',
@@ -277,7 +278,10 @@ def register_extra_dependencies(self, post):
277278

278279
def get_extra_targets(self, post, lang, dest):
279280
"""Return a list of extra targets for the render_posts task when compiling the post for the specified language."""
280-
return []
281+
if self.use_dep_file:
282+
return [post.base_path + '.dep']
283+
else:
284+
return []
281285

282286
def compile(self, source, dest, is_two_file=True, post=None, lang=None):
283287
"""Compile the source file into HTML and save as dest."""

‎nikola/plugins/compile/html.py

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class CompileHtml(PageCompiler):
4040

4141
name = "html"
4242
friendly_name = "HTML"
43+
use_dep_file = True
4344

4445
def compile(self, source, dest, is_two_file=True, post=None, lang=None):
4546
"""Compile the source file into HTML and save as dest."""

‎nikola/plugins/compile/ipynb.py

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class CompileIPynb(PageCompiler):
7070
name = "ipynb"
7171
friendly_name = "Jupyter/IPython Notebook"
7272
demote_headers = True
73+
use_dep_file = True
7374
default_kernel = 'python2' if sys.version_info[0] == 2 else 'python3'
7475

7576
def set_site(self, site):

‎nikola/plugins/compile/markdown/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class CompileMarkdown(PageCompiler):
4949
name = "markdown"
5050
friendly_name = "Markdown"
5151
demote_headers = True
52+
use_dep_file = True
5253
extensions = []
5354
site = None
5455

‎nikola/plugins/compile/pandoc.py

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class CompilePandoc(PageCompiler):
4444

4545
name = "pandoc"
4646
friendly_name = "pandoc"
47+
use_dep_file = True
4748

4849
def set_site(self, site):
4950
"""Set Nikola site."""

‎nikola/plugins/compile/rest/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class CompileRest(PageCompiler):
5757
name = "rest"
5858
friendly_name = "reStructuredText"
5959
demote_headers = True
60+
use_dep_file = True
6061
logger = None
6162

6263
def compile_string(self, data, source_path=None, is_two_file=True):

‎nikola/plugins/task/posts.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,13 @@ def tl_ch():
8484
k = p.split('####MAGIC####CONFIG:', 1)[-1]
8585
deps_dict[k] = self.site.config.get(k)
8686
dest = post.translated_base_path(lang)
87-
dep_file = dest + '.dep'
8887
file_dep = [p for p in post.fragment_deps(lang) if not p.startswith("####MAGIC####")]
8988
extra_targets = post.compiler.get_extra_targets(post, lang, dest)
9089
task = {
9190
'basename': self.name,
9291
'name': dest,
9392
'file_dep': file_dep,
94-
'targets': [dest, dep_file] + extra_targets,
93+
'targets': [dest] + extra_targets,
9594
'actions': [(post.compile, (lang, )),
9695
(update_deps, (post, lang, )),
9796
],

‎nikola/post.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -464,9 +464,13 @@ def register_depfile(self, dep, dest=None, lang=None):
464464
def write_depfile(dest, deps_list):
465465
"""Write a depfile for a given language."""
466466
deps_path = dest + '.dep'
467-
deps_list = [p for p in deps_list if p != dest] # Don't depend on yourself (#1671)
468-
with io.open(deps_path, "w+", encoding="utf8") as deps_file:
469-
deps_file.write('\n'.join(deps_list))
467+
if deps_list or self.compiler.use_dep_file:
468+
deps_list = [p for p in deps_list if p != dest] # Don't depend on yourself (#1671)
469+
with io.open(deps_path, "w+", encoding="utf8") as deps_file:
470+
deps_file.write('\n'.join(deps_list))
471+
else:
472+
if os.path.isfile(deps_path):
473+
os.unlink(deps_path)
470474

471475
def _get_dependencies(self, deps_list):
472476
deps = []

0 commit comments

Comments
 (0)
Please sign in to comment.