Nikola 7.8.0 released!

22 views
Skip to first unread message

Roberto Alsina

unread,
Aug 29, 2016, 9:41:57 AM8/29/16
to Nikola—Discuss, python-ann...@python.org

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.0. It fixes some bugs and adds new features.

What is Nikola?

Nikola is a static site and blog generator, written in Python. It can use Mako and Jinja2 templates, and input in many popular markup formats, such as reStructuredText and Markdown — and can even turn Jupyter (IPython) Notebooks into blog posts! It also supports image galleries, and is multilingual. Nikola is flexible, and page builds are extremely fast, courtesy of doit (which is rebuilding only what has been changed).

Find out more at the website: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

Features

  • Exposed gist as a shortcode (Issue #2459)
  • Always copy source files for listings (Issue #2473)
  • Detect dependencies in template strings (Issue #2455)
  • RSS feeds for sections (Issue #2068)
  • New data metadata that loads data from external files (Issue #2450)
  • Shortcode to escape to the template language (Issue #1227)
  • Added link to raw file in listings (Issue #1995)
  • New NO_DOCUTILS_TITLE_TRANSFORM (Issue #2382)
  • Update options of chart directive to Pygal 2.2.3
  • Pass global context to template shortcodes (Issue #2424)
  • Added new options --html2text and --transform-to-markdown to WordPress importer (Issue #2261)
  • Listing: guess the lexer if cannot be determined from the file name.
  • Read files from data/ and insert data in global context (Issue #2477)

Bugfixes

  • Added link to sources in the output of listing directive (Issue #2472)
  • Fix Windows crash with calendar locales (Issue #2332)
  • Remove the (useless) <base> tag by default; change conf.py to opt in (Issue #2471)
  • Show tag descriptions when TAG_PAGES_ARE_INDEXES is True (Issue #2444)
  • Record template dependencies for post-list shortcut (Issue #2451)
  • Default to English for docutils messages if no translations exist (Issues #2422, #2437)

Marcelo Huerta

unread,
Aug 30, 2016, 8:01:29 PM8/30/16
to nikola-discuss, python-ann...@python.org, ral...@kde.org
Can it be that the code for NO_DOCUTILS_TITLE_TRANSFORM introduced a bug?

I'm getting an error for a page using the post-list directive:

TaskError - taskid:render_posts:cache\stories\cienciaorigenes\indiceac\lista.html
PythonAction Error
Traceback (most recent call last):
  File "c:\prog\python35\lib\site-packages\doit\action.py", line 383, in execute
    returned_value = self.py_callable(*self.args, **kwargs)
  File "c:\prog\python35\lib\site-packages\nikola\post.py", line 520, in compile
    self.is_two_file)
  File "c:\prog\python35\lib\site-packages\nikola\plugins\compile\rest\__init__.py", line 104, in compile_html
    output, error_level, deps = self.compile_html_string(data, source, is_two_file)
  File "c:\prog\python35\lib\site-packages\nikola\plugins\compile\rest\__init__.py", line 86, in compile_html_string
    no_title_transform=self.site.config.get('NO_DOCUTILS_TITLE_TRANSFORM', False))
  File "c:\prog\python35\lib\site-packages\nikola\plugins\compile\rest\__init__.py", line 295, in rst2html
    pub.publish(enable_exit_status=enable_exit_status)
  File "c:\prog\python35\lib\site-packages\docutils\core.py", line 217, in publish
    self.settings)
  File "c:\prog\python35\lib\site-packages\docutils\readers\__init__.py", line 72, in read
    self.parse()
  File "c:\prog\python35\lib\site-packages\docutils\readers\__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\__init__.py", line 189, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 170, in run
    input_source=document['source'])
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 239, in run
    context, state, transitions)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 2743, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 326, in section
    self.new_subsection(title, lineno, messages)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 394, in new_subsection
    node=section_node, match_titles=True)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 281, in nested_parse
    node=node, match_titles=match_titles)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 239, in run
    context, state, transitions)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 1255, in bullet
    blank_finish=blank_finish)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 318, in nested_list_parse
    node=node, match_titles=match_titles)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 239, in run
    context, state, transitions)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 2496, in bullet
    listitem, blank_finish = self.list_item(match.end())
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 1271, in list_item
    node=listitem)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 281, in nested_parse
    node=node, match_titles=match_titles)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 239, in run
    context, state, transitions)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 1248, in bullet
    i, blank_finish = self.list_item(match.end())
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 1271, in list_item
    node=listitem)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 281, in nested_parse
    node=node, match_titles=match_titles)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 239, in run
    context, state, transitions)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 1248, in bullet
    i, blank_finish = self.list_item(match.end())
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 1271, in list_item
    node=listitem)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 281, in nested_parse
    node=node, match_titles=match_titles)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 239, in run
    context, state, transitions)
  File "c:\prog\python35\lib\site-packages\docutils\statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 2316, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 2328, in explicit_construct
    return method(self, expmatch)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 2071, in directive
    directive_class, match, type_name, option_presets)
  File "c:\prog\python35\lib\site-packages\docutils\parsers\rst\states.py", line 2120, in run_directive
    result = directive_instance.run()
  File "c:\prog\python35\lib\site-packages\nikola\plugins\compile\rest\post_list.py", line 176, in run
    all, lang, template, sort, state=self.state, site=self.site, date=date)
ValueError: not enough values to unpack (expected 2, got 0)

Roberto Alsina

unread,
Aug 30, 2016, 8:41:29 PM8/30/16
to nikola-discuss, python-ann...@python.org
Everything is possible! Please file a bug report.

--
You received this message because you are subscribed to the Google Groups "nikola-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nikola-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages