Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit af939e7

Browse files
authoredMay 22, 2017
Merge branch 'master' into taxonomy-lang-refs
2 parents edbd156 + e5cf7fd commit af939e7

38 files changed

+265
-307
lines changed
 

‎.editorconfig

+7-10
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
root = true
22

33
[*]
4-
end_of_line = lf
5-
insert_final_newline = true
64
charset = utf-8
7-
indent_style = space
5+
end_of_line = lf
86
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.{json,yml,yaml}]
12+
indent_size = 2
913

1014
[CHANGES.txt]
1115
max_line_length = 70
1216

13-
[*.py]
14-
trim_trailing_whitespace = true
15-
1617
[nikola/data/themes/base/assets/css/theme.css]
1718
indent_style = tab
18-
19-
[{appveyor.yml,.travis.yml}]
20-
indent_style = space
21-
indent_size = 2

‎.gitignore

+182-12
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,199 @@
1-
*.py[co]
21
*.db
32
*~
4-
/dist
5-
*.log
63
*.diff
74
*.patch
85
tmp/
6+
cache/
97
output/
10-
build/
8+
9+
# GitHub token
10+
.pypt/gh-token
11+
12+
#
13+
.DS_Store
14+
15+
# All of .idea should be ignored
1116
.idea/
17+
18+
# Created by https://www.gitignore.io/api/pydev,python,pycharm,vim
19+
20+
### PyCharm ###
21+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
22+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
23+
24+
# User-specific stuff:
25+
.idea/**/workspace.xml
26+
.idea/**/tasks.xml
27+
.idea/dictionaries
28+
29+
# Sensitive or high-churn files:
30+
.idea/**/dataSources/
31+
.idea/**/dataSources.ids
32+
.idea/**/dataSources.xml
33+
.idea/**/dataSources.local.xml
34+
.idea/**/sqlDataSources.xml
35+
.idea/**/dynamic.xml
36+
.idea/**/uiDesigner.xml
37+
38+
# Gradle:
39+
.idea/**/gradle.xml
40+
.idea/**/libraries
41+
42+
# CMake
43+
cmake-build-debug/
44+
45+
# Mongo Explorer plugin:
46+
.idea/**/mongoSettings.xml
47+
48+
## File-based project format:
49+
*.iws
50+
51+
## Plugin-specific files:
52+
53+
# IntelliJ
54+
/out/
55+
56+
# mpeltonen/sbt-idea plugin
57+
.idea_modules/
58+
59+
# JIRA plugin
60+
atlassian-ide-plugin.xml
61+
62+
# Cursive Clojure plugin
63+
.idea/replstate.xml
64+
65+
# Crashlytics plugin (for Android Studio and IntelliJ)
66+
com_crashlytics_export_strings.xml
67+
crashlytics.properties
68+
crashlytics-build.properties
69+
fabric.properties
70+
71+
### PyCharm Patch ###
72+
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
73+
74+
# *.iml
75+
# modules.xml
76+
# .idea/misc.xml
77+
# *.ipr
78+
79+
# Sonarlint plugin
80+
.idea/sonarlint
81+
82+
### pydev ###
83+
.pydevproject
84+
85+
### Python ###
86+
# Byte-compiled / optimized / DLL files
1287
__pycache__/
88+
*.py[cod]
89+
*$py.class
90+
91+
# C extensions
92+
*.so
93+
94+
# Distribution / packaging
95+
.Python
96+
env/
97+
build/
98+
develop-eggs/
99+
dist/
100+
downloads/
101+
eggs/
102+
.eggs/
103+
lib/
104+
lib64/
105+
parts/
106+
sdist/
107+
var/
108+
wheels/
13109
*.egg-info/
14-
.cache/
110+
.installed.cfg
111+
*.egg
15112

16-
# virtualenvwrapper oh-my-zsh plugin
17-
.venv
113+
# PyInstaller
114+
# Usually these files are written by a python script from a template
115+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
116+
*.manifest
117+
*.spec
118+
119+
# Installer logs
120+
pip-log.txt
121+
pip-delete-this-directory.txt
18122

19-
# coverage.py
123+
# Unit test / coverage reports
124+
htmlcov/
125+
.tox/
20126
.coverage
127+
.coverage.*
128+
.cache
129+
nosetests.xml
130+
coverage.xml
131+
*,cover
132+
.hypothesis/
133+
134+
# Translations
135+
*.mo
136+
*.pot
137+
138+
# Django stuff:
139+
*.log
140+
local_settings.py
141+
142+
# Flask stuff:
143+
instance/
144+
.webassets-cache
145+
146+
# Scrapy stuff:
147+
.scrapy
148+
149+
# Sphinx documentation
150+
docs/_build/
151+
152+
# PyBuilder
153+
target/
154+
155+
# Jupyter Notebook
156+
.ipynb_checkpoints
21157

22158
# pyenv
23159
.python-version
24160

25-
# GitHub token
26-
.pypt/gh-token
161+
# celery beat schedule file
162+
celerybeat-schedule
27163

28-
#
29-
.DS_Store
164+
# SageMath parsed files
165+
*.sage.py
166+
167+
# dotenv
168+
.env
169+
170+
# virtualenv
171+
.venv
172+
venv/
173+
ENV/
174+
175+
# Spyder project settings
176+
.spyderproject
177+
.spyproject
178+
179+
# Rope project settings
180+
.ropeproject
181+
182+
# mkdocs documentation
183+
/site
184+
185+
### Vim ###
186+
# swap
187+
[._]*.s[a-v][a-z]
188+
[._]*.sw[a-p]
189+
[._]s[a-v][a-z]
190+
[._]sw[a-p]
191+
# session
192+
Session.vim
193+
# temporary
194+
.netrwhist
195+
*~
196+
197+
# Demo for Bagguette
198+
bower_components/baguettebox.js/demo
199+
# End of https://www.gitignore.io/api/pydev,python,pycharm,vim

‎CHANGES.txt

+5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ Features
2222
Bugfixes
2323
--------
2424

25+
* Save dependencies for template hooks properly (using .__doc__ or
26+
.template_registry_identifier for callables)
27+
* Enable larger panorama thumbnails (Issue #2780)
28+
* Disable ``archive_rss`` link handler, which was useless because no
29+
such RSS was ever generated (Issue #2783)
2530
* Ignore files ending wih "bak" (Issue #2740)
2631
* Use page.tmpl by default, which is inherited from story.tmpl (Issue
2732
#1891)

‎README.rst

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ In goes content, out comes a website, ready to deploy.
1818
.. image:: http://img.shields.io/badge/license-MIT-green.svg
1919
:target: https://github.com/getnikola/nikola/blob/master/LICENSE.txt
2020

21+
.. image:: https://build.snapcraft.io/badge/getnikola/nikola.svg
22+
:target: https://build.snapcraft.io/user/getnikola/nikola
23+
2124
Why Static Websites?
2225
--------------------
2326

‎docs/extending.txt

+12-4
Original file line numberDiff line numberDiff line change
@@ -537,21 +537,22 @@ HTML:
537537

538538
# In set_site
539539
def generate_html_bit(name, ftype='js'):
540+
"""Generate HTML for an asset."""
540541
return '<script src="/assets/{t}/{n}.{t}">'.format(n=name, t=ftype)
541542

542-
site.template_hooks['extra_head'].append(generate_html_bit, False, 'fancyplugin', type='js')
543+
site.template_hooks['extra_head'].append(generate_html_bit, False, 'fancyplugin', ftype='js')
543544

544545

545546
The second argument to ``append()`` is used to determine whether the function
546547
needs access to the current template context and the site. If it is set to
547548
``True``, the function will also receive ``site`` and ``context`` keyword
548549
arguments. Example use:
549550

550-
551551
.. code-block:: python
552552

553553
# In set_site
554554
def greeting(addr, endswith='', site=None, context=None):
555+
"""Greet someone."""
555556
if context['lang'] == 'en':
556557
greet = u'Hello'
557558
elif context['lang'] == 'es':
@@ -564,6 +565,13 @@ arguments. Example use:
564565

565566
site.template_hooks['page_header'].append(greeting, True, u'Nikola Tesla', endswith=u'!')
566567

568+
Dependencies for template hooks:
569+
570+
* if the input is a string, the string value, alongside arguments to ``append``, is used for calculating dependencies
571+
* if the input is a callable, it attempts ``input.template_registry_identifier``, then ``input.__doc__``, and if neither is available, it uses a static string.
572+
573+
Make sure to provide at least a docstring, or a identifier, to ensure rebuilds work properly.
574+
567575
Shortcodes
568576
==========
569577

@@ -579,7 +587,7 @@ So, if you are creating a plugin that generates markup, it may be a good idea
579587
to register it as a shortcode in addition of to restructured text directive or
580588
markdown extension, thus making it available to all markup formats.
581589

582-
To implement your own shortcodes from a plugin, you can create a plugin inheriting ``ShortcodePlugin`` and
590+
To implement your own shortcodes from a plugin, you can create a plugin inheriting ``ShortcodePlugin`` and
583591
from its ``set_site`` method, call
584592

585593
``Nikola.register_shortcode(name, func)`` with the following arguments:
@@ -610,7 +618,7 @@ variable keyword arguments):
610618
between them, otherwise ``None``.
611619

612620
``lang``:
613-
The current language.
621+
The current language.
614622

615623
If the shortcode tag has arguments of the form ``foo=bar`` they will be
616624
passed as named arguments. Everything else will be passed as positional

‎docs/template-variables.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,8 @@ The archive navigation variables are available only if ``create_archive_navigati
303303

304304
============================== ============== ========================================================================
305305
Name Type Description
306-
============================== ============== ========================================================================
307306
``kind`` str Always ``"archive"``
308-
``archive_name`` str? Name of the archive (only if using indexes)
307+
``archive_name`` str? Name of the archive
309308
``create_archive_navigation`` bool ``CREATE_ARCHIVE_NAVIGATION`` setting
310309
``has_archive_navigation`` bool Whether or not archive navigation is available
311310
``up_archive`` str? Link to the archive one level up
@@ -385,15 +384,16 @@ Name Type Description
385384
``source_link`` str Link to the source file
386385
================== ========== ========================================
387386

388-
Variables available in section pages
389-
------------------------------------
387+
Variables available in sections
388+
-------------------------------
390389

391390
.. class:: table table-bordered table-striped
392391

393392
=================== =========== ===========================================================================
394393
Name Type Description
395394
=================== =========== ===========================================================================
396395
``kind`` str Always ``"section"``
396+
``section`` str Section name (internal)
397397
``other_languages`` list<tuple> List of tuples ``(lang, section, name)`` of same section in other languages
398398
=================== =========== ===========================================================================
399399

‎nikola/__main__.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,10 @@ def load_tasks(self, cmd, opt_values, pos_args):
284284
self.nikola.gen_tasks('post_render', "LateTask", 'Group of tasks to be executed after site is rendered.'))
285285
signal('initialized').send(self.nikola)
286286
except Exception:
287-
LOGGER.error('Error loading tasks')
287+
LOGGER.error('Error loading tasks. An unhandled exception occurred.')
288288
if self.nikola.debug:
289289
raise
290+
_print_exception()
290291
sys.exit(3)
291292
return tasks + latetasks, DOIT_CONFIG
292293

@@ -372,8 +373,10 @@ def run(self, cmd_args):
372373
try:
373374
return super(DoitNikola, self).run(cmd_args)
374375
except Exception:
376+
LOGGER.error('An unhandled exception occurred.')
375377
if self.nikola.debug:
376378
raise
379+
_print_exception()
377380
return 1
378381

379382
@staticmethod
@@ -410,5 +413,12 @@ def levenshtein(s1, s2):
410413
return previous_row[-1]
411414

412415

416+
def _print_exception():
417+
"""Print an exception in a friendlier, shorter style."""
418+
etype, evalue, _ = sys.exc_info()
419+
LOGGER.error(''.join(traceback.format_exception(etype, evalue, None, limit=0, chain=False)).strip())
420+
LOGGER.notice("To see more details, run Nikola in debug mode (set environment variable NIKOLA_DEBUG=1)")
421+
422+
413423
if __name__ == "__main__":
414424
sys.exit(main(sys.argv[1:]))

‎nikola/data/themes/base-jinja/templates/post.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
{{ comments.comment_form(post.permalink(absolute=True), post.title(), post._base_path) }}
4545
</section>
4646
{% endif %}
47-
{{ math.math_styles_ifpost(post) }}
47+
{{ math.math_scripts_ifpost(post) }}
4848
</article>
4949
{{ comments.comment_link_script() }}
5050
{% endblock %}

‎nikola/data/themes/base/templates/post.tmpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
${comments.comment_form(post.permalink(absolute=True), post.title(), post._base_path)}
4545
</section>
4646
% endif
47-
${math.math_styles_ifpost(post)}
47+
${math.math_scripts_ifpost(post)}
4848
</article>
4949
${comments.comment_link_script()}
5050
</%block>

‎nikola/nikola.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1776,7 +1776,7 @@ def generic_rss_feed(self, lang, title, link, description, timeline,
17761776
if str(e) == "Document is empty":
17771777
data = ""
17781778
else: # let other errors raise
1779-
raise(e)
1779+
raise
17801780
args = {
17811781
'title': post.title(lang),
17821782
'link': post.permalink(lang, absolute=True, query=feed_append_query),
@@ -2243,7 +2243,7 @@ def generic_renderer(self, lang, output_name, template_name, filters, file_deps=
22432243
deps_dict.update(post_deps_dict)
22442244

22452245
for k, v in self.GLOBAL_CONTEXT['template_hooks'].items():
2246-
deps_dict['||template_hooks|{0}||'.format(k)] = v._items
2246+
deps_dict['||template_hooks|{0}||'.format(k)] = v.calculate_deps()
22472247

22482248
for k in self._GLOBAL_CONTEXT_TRANSLATABLE:
22492249
deps_dict[k] = deps_dict['global'][k](lang)
@@ -2448,7 +2448,7 @@ def atom_post_text(post, text):
24482448
if str(e) == "Document is empty":
24492449
text = ""
24502450
else: # let other errors raise
2451-
raise(e)
2451+
raise
24522452
return text.strip()
24532453

24542454
for post in posts:

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def _doc_link(rawtext, text, options={}, content=[]):
6464

6565
try:
6666
if post is None:
67-
raise ValueError
67+
raise ValueError("No post with matching slug found.")
6868
except ValueError:
6969
return False, False, None, None, slug
7070

‎nikola/plugins/task/archive.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,12 @@ class Archive(Taxonomy):
6161
Example:
6262
6363
link://archive/2013 => /archives/2013/index.html""",
64-
'archive_atom': """Link to archive Atom path, name is the year.
64+
'archive_atom': """Link to archive Atom path, name is the year (archive pages must be indexes).
6565
6666
Example:
6767
6868
link://archive_atom/2013 => /archives/2013/index.atom""",
69-
'archive_rss': """Link to archive RSS path, name is the year.
70-
71-
Example:
72-
73-
link://archive_rss/2013 => /archives/2013/rss.xml""",
69+
'archive_rss': False,
7470
}
7571

7672
def set_site(self, site):
@@ -185,6 +181,7 @@ def provide_context_and_uptodate(self, classification, lang, node=None):
185181
"title": title,
186182
"pagekind": [page_kind, "archive_page"],
187183
"create_archive_navigation": self.site.config["CREATE_ARCHIVE_NAVIGATION"],
184+
"archive_name": classification if classification else None
188185
}
189186

190187
# Generate links for hierarchies
@@ -215,7 +212,6 @@ def provide_context_and_uptodate(self, classification, lang, node=None):
215212
else:
216213
context["has_archive_navigation"] = False
217214
if page_kind == 'index':
218-
context["archive_name"] = classification if classification else None
219215
context["is_feed_stale"] = kw["is_feed_stale"]
220216
kw.update(context)
221217
return context, kw

‎nikola/plugins/task/galleries.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def gen_tasks(self):
173173
self.image_ext_list.extend(self.site.config.get('EXTRA_IMAGE_EXTENSIONS', []))
174174

175175
for k, v in self.site.GLOBAL_CONTEXT['template_hooks'].items():
176-
self.kw['||template_hooks|{0}||'.format(k)] = v._items
176+
self.kw['||template_hooks|{0}||'.format(k)] = v.calculate_deps()
177177

178178
self.site.scan_posts()
179179
yield self.group_task()
@@ -479,7 +479,7 @@ def create_target_images(self, img, input_path):
479479
'targets': [thumb_path],
480480
'actions': [
481481
(self.resize_image,
482-
(img, thumb_path, self.kw['thumbnail_size'], False, self.kw['preserve_exif_data'],
482+
(img, thumb_path, self.kw['thumbnail_size'], True, self.kw['preserve_exif_data'],
483483
self.kw['exif_whitelist']))
484484
],
485485
'clean': True,
@@ -495,7 +495,7 @@ def create_target_images(self, img, input_path):
495495
'targets': [orig_dest_path],
496496
'actions': [
497497
(self.resize_image,
498-
(img, orig_dest_path, self.kw['max_image_size'], False, self.kw['preserve_exif_data'],
498+
(img, orig_dest_path, self.kw['max_image_size'], True, self.kw['preserve_exif_data'],
499499
self.kw['exif_whitelist']))
500500
],
501501
'clean': True,

‎nikola/plugins/task/listings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def render_listing(in_name, out_name, input_folder, output_folder, folders=[], f
187187
uptodate = {'c': self.site.GLOBAL_CONTEXT}
188188

189189
for k, v in self.site.GLOBAL_CONTEXT['template_hooks'].items():
190-
uptodate['||template_hooks|{0}||'.format(k)] = v._items
190+
uptodate['||template_hooks|{0}||'.format(k)] = v.calculate_deps()
191191

192192
for k in self.site._GLOBAL_CONTEXT_TRANSLATABLE:
193193
uptodate[k] = self.site.GLOBAL_CONTEXT[k](self.kw['default_lang'])

‎nikola/plugins/task/scale_images.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ def process_tree(self, src, dst):
7171

7272
def process_image(self, src, dst, thumb):
7373
"""Resize an image."""
74-
self.resize_image(src, dst, self.kw['max_image_size'], False, preserve_exif_data=self.kw['preserve_exif_data'], exif_whitelist=self.kw['exif_whitelist'])
75-
self.resize_image(src, thumb, self.kw['image_thumbnail_size'], False, preserve_exif_data=self.kw['preserve_exif_data'], exif_whitelist=self.kw['exif_whitelist'])
74+
self.resize_image(src, dst, self.kw['max_image_size'], True, preserve_exif_data=self.kw['preserve_exif_data'], exif_whitelist=self.kw['exif_whitelist'])
75+
self.resize_image(src, thumb, self.kw['image_thumbnail_size'], True, preserve_exif_data=self.kw['preserve_exif_data'], exif_whitelist=self.kw['exif_whitelist'])
7676

7777
def gen_tasks(self):
7878
"""Copy static files into the output folder."""

‎nikola/plugins/task/sections.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ def provide_context_and_uptodate(self, section, lang, node=None):
124124
context = {
125125
"title": section_title,
126126
"description": self.site.config['POSTS_SECTION_DESCRIPTIONS'](lang)[section] if section in self.site.config['POSTS_SECTION_DESCRIPTIONS'](lang) else "",
127-
"pagekind": ["section_page", "index" if self.show_list_as_index else "list"]
127+
"pagekind": ["section_page", "index" if self.show_list_as_index else "list"],
128+
"section": section,
128129
}
129130
kw.update(context)
130131
return context, kw

‎nikola/post.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ def text(self, lang=None, teaser_only=False, strip_html=False, show_read_more_li
670670
if str(e) == "Document is empty":
671671
return ""
672672
# let other errors raise
673-
raise(e)
673+
raise
674674
base_url = self.permalink(lang=lang)
675675
document.make_links_absolute(base_url)
676676

@@ -768,7 +768,7 @@ def paragraph_count(self):
768768
if str(e) == "Document is empty":
769769
return ""
770770
# let other errors raise
771-
raise(e)
771+
raise
772772

773773
# output is a float, for no real reason at all
774774
self._paragraph_count = int(document.xpath('count(//p)'))
@@ -786,7 +786,7 @@ def remaining_paragraph_count(self):
786786
if str(e) == "Document is empty":
787787
return ""
788788
# let other errors raise
789-
raise(e)
789+
raise
790790

791791
self._remaining_paragraph_count = self.paragraph_count - int(document.xpath('count(//p)'))
792792
return self._remaining_paragraph_count

‎nikola/utils.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -513,9 +513,23 @@ def append(self, inp, wants_site_and_context=False, *args, **kwargs):
513513
c = callable(inp)
514514
self._items.append((c, inp, wants_site_and_context, args, kwargs))
515515

516+
def calculate_deps(self):
517+
"""Calculate dependencies for a registry."""
518+
deps = []
519+
for is_callable, inp, wants_site_and_context, args, kwargs in self._items:
520+
if not is_callable:
521+
name = inp
522+
elif hasattr(inp, 'template_registry_identifier'):
523+
name = inp.template_registry_identifier
524+
elif hasattr(inp, '__doc__'):
525+
name = inp.__doc__
526+
else:
527+
name = '_undefined_callable_'
528+
deps.append((is_callable, name, wants_site_and_context, args, kwargs))
529+
516530
def __hash__(self):
517531
"""Return hash of a registry."""
518-
return hash(config_changed({self.name: self._items})._calc_digest())
532+
return hash(config_changed({self.name: self.calculate_deps()})._calc_digest())
519533

520534
def __str__(self):
521535
"""Stringify a registry."""

‎scripts/release

+1-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ sed "s/release = .*/release = '$version'/g" docs/sphinx/conf.py -i
8989
sed "s/:Version: .*/:Version: $version/g" docs/*.txt docs/*.rst -i
9090
sed "s/:Version: .*/:Version: Nikola $version/g" docs/man/nikola.rst -i
9191
sed "s/__version__ = .*/__version__ = '$version'/g" nikola/__init__.py -i
92-
sed "s/version: .*/version: $version/g" snapcraft/stable/snapcraft.yaml -i
93-
sed "s/source-tag: .*/source-tag: v$version/g" snapcraft/stable/snapcraft.yaml -i
92+
sed "s/version: .*/version: $version/g" snapcraft.yaml -i
9493
sed "s/Nikola==.*'/Nikola==$version'/g" snapcraft/nikola.py -i
9594

9695
setopt errexit # Exit on errors
File renamed without changes.

‎snapcraft/stable/snapcraft.yaml ‎snapcraft.yaml

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ apps:
1313
parts:
1414
nikola-script:
1515
plugin: dump
16-
source: script
16+
source: scripts/snapcraft
1717
nikola:
1818
source: git://github.com/getnikola/nikola.git
19-
source-tag: v7.8.5
2019
stage-packages:
2120
- locales
2221
- libc-bin
@@ -52,3 +51,7 @@ parts:
5251
- notebook>=4.0.0
5352
- ipykernel>=4.0.0
5453
build-packages: [libjpeg-dev]
54+
install: |
55+
find $SNAPCRAFT_PART_INSTALL -name '*.a' -exec rm {} \;
56+
find $SNAPCRAFT_PART_INSTALL -name 'terminado' -type d -exec rm {} \;
57+
find $SNAPCRAFT_PART_INSTALL -name 'tornado' -type d -exec rm {} \;

‎snapcraft/README

-25
This file was deleted.

‎snapcraft/build.sh

-6
This file was deleted.

‎snapcraft/edge/build.sh

-6
This file was deleted.

‎snapcraft/edge/nikola.png

-4.66 KB
Binary file not shown.

‎snapcraft/edge/release.sh

-1
This file was deleted.

‎snapcraft/edge/requirements.txt

-30
This file was deleted.

‎snapcraft/edge/script/nikola.sh

-21
This file was deleted.

‎snapcraft/edge/snapcraft.yaml

-31
This file was deleted.

‎snapcraft/nikola.png

-4.66 KB
Binary file not shown.

‎snapcraft/nikola.py

-10
This file was deleted.

‎snapcraft/nikola.sh

-21
This file was deleted.

‎snapcraft/requirements.txt

-30
This file was deleted.

‎snapcraft/snapcraft.yaml

-33
This file was deleted.

‎snapcraft/stable/build.sh

-3
This file was deleted.

‎snapcraft/stable/nikola.png

-4.66 KB
Binary file not shown.

‎snapcraft/stable/release.sh

-1
This file was deleted.

‎snapcraft/stable/requirements.txt

-30
This file was deleted.

0 commit comments

Comments
 (0)
Please sign in to comment.