Release history¶
4.8.0 - 2022-07-11¶
Use JSON values for extra settings in Invoke tasks template (#2994)
Add content tag for links, which can help with things like Twitter social cards (#3001)
Improve word count behavior when generating summary (#3002)
4.7.2 - 2022-02-09¶
4.7.1 - 2021-10-12¶
Extend rich logging to server component (#2927)
Fix an issue where metadata flagged to be discarded was being cached (#2926)
Adjust suffix in server to allow redirection when needed (#2931)
Add MIME types for web fonts (#2929)
Distribute sample data used to run tests (#2935)
Add Python 3.10 to test matrix
4.7.0 - 2021-10-01¶
Improve default theme rendering on mobile and other small screen devices (#2914)
Add support for hidden articles (#2866)
Improve word count behavior when generating summary CJK & other locales (#2864)
Add progress spinner during generation (#2869) and richer logging (#2897), both via Rich
Invoke tasks
serveandlivereloadnow auto-open a web browser pointing to the locally-served web site (#2764)Support some date format codes used by ISO dates (#2902)
Document how to add a new writer (#2901)
4.6.0 - 2021-03-23¶
4.5.4 - 2021-01-04¶
Replace plugin definitions in settings with string representations after registering, so they can be cached correctly (#2828).
4.5.3 - 2020-12-01¶
Fix a mistake made in PR #2821
4.5.2 - 2020-11-22¶
Improve logging of generators and writer loaders
4.5.1 - 2020-11-02¶
4.5.0 - 2020-08-20¶
Add namespace plugin support; list plugins via
pelican-pluginscommandOverride settings via
-e/--extra-settingsCLI option flagsAdd settings for custom Jinja globals and tests
Customize article summary ellipsis via
SUMMARY_END_SUFFIXsettingCustomize Typogrify dash handling via new
TYPOGRIFY_DASHESsettingSupport Unicode when generating slugs
Support Asciidoc
.adocfile generation in Pelican importerImprove user experience when
pelican --listenweb server is quitImprove Invoke tasks template
Include tests in source distributions
Switch CI from Travis to GitHub Actions
Remove support for Python 2.7
4.2.0 - 2019-10-17¶
Support inline SVGs; don’t treat titles in SVGs as HTML titles
Add category to feeds (in addition to tags)
Improve content metadata field docs
Add docs for including other Markdown/reST files in content
4.1.3 - 2019-10-09¶
Fix quick-start docs regarding
pelican --listenSet default listen address to 127.0.0.1
Add extra/optional Markdown dependency to setup.py
Use correct SSH port syntax for rsync in tasks.py
Place all deprecated settings handling together
Add related project URLs for display on PyPI
Skip some tests on Windows that can’t pass due to filesystem differences
4.1.2 - 2019-09-23¶
Fix pelican.settings.load_source to avoid caching issues - PR #2621
4.1.1 - 2019-08-23¶
Add AutoPub to auto-publish releases on PR merge
Add CSS classes for reStructuredText figures
Pass
argvto PelicanmainentrypointSet default content status to a blank string rather than
None
4.1.0 - 2019-07-14¶
Live browser reload upon changed files (provided via Invoke task)
Add
pyproject.toml, managed by PoetrySupport for invoking
python -m pelicanAdd relative source path attribute to content
Allow directories in
EXTRA_PATH_METADATAAdd
all_articlesvariable to period pages (for recent posts functionality)Improve debug mode output
Remove blank or duplicate summaries from Atom feed
Fix bugs in pagination, pelican-import, pelican-quickstart, and feed importer
4.0.1 (2018-11-30)¶
Refactor
pelican.serverloggingFix bug in which all static files were processed as “draft”
Bug fixes for Invoke/Makefile automation, Importer, and other miscellanea
If upgrading from 3.7.x or earlier, please note that slug-related settings in
4.0+ use {slug} and/or {lang} rather than %s. If %s-style
settings are encountered, Pelican will emit a warning and fall back to the
default setting. Some user-submitted themes might try to format setting values
but fail upon site build with a TypeError. In such cases, the theme needs
to be updated. For example, instead of TAG_FEED_ATOM|format(tag.slug), use
TAG_FEED_ATOM.format(slug=tag.slug)
4.0.0 (2018-11-13)¶
Replace
develop_server.shscript withpelican --listenImproved copy/link behavior for large static files (e.g., videos)
New
{static}syntax to link to static content; content linked to by{static}and{attach}is automatically copied over even if not inSTATIC_PATHSPages can now have
draftstatusShow current settings via new
--print-settingsflagAll settings for slugs now use
{slug}and/or{lang}rather than%s. If%s-style settings are encountered, Pelican will emit a warning and fallback to the default setting.New signals:
feed_generatedandpage_generated_write_pageReplace Fabric with Invoke and
fabfile.pytemplate withtasks.pyReplace
PAGINATED_DIRECT_TEMPLATESbyPAGINATED_TEMPLATES, extending control over pagination to all templates and making page size variableReplace
SLUG_SUBSTITUTIONS(and friends) bySLUG_REGEX_SUBSTITUTIONSfor more finegrained control'{base_name}'value inPAGINATION_PATTERNSsetting no longer strips'bar'from'foo/bar.html'(unless'bar' == 'index').ARTICLE_ORDER_BYandPAGE_ORDER_BYnow also affect 1) category, tag and author pages 2) feeds 3) draft and hidden articles and pagesNew
ARTICLE_TRANSLATION_IDandPAGE_TRANSLATION_IDsettings to specify metadata attributes used to identify/disable translationsMake the HTML reader parse multiple occurrences of metadata tags as a list
New Blogger XML backup importer
Wordpress importer now updates file links to point to local copies if the files were downloaded with
--wp-attach.Importer no longer inserts extra newlines, to prevent breaking of HTML attributes.
Pelican server now prioritises
foo.htmlandfoo/index.htmloverfoo/when resolvingfoo.
3.7.1 (2017-01-10)¶
Fix locale issues in Quickstart script
Specify encoding for README and CHANGELOG in setup.py
3.7.0 (2016-12-12)¶
Atom feeds output
<content>in addition to<summary>Atom feeds use
<published>for the original publication date and<updated>for modificationsSimplify Atom feed ID generation and support URL fragments
Produce category feeds with category-specific titles
RSS feeds now default to summary instead of full content; set
RSS_FEED_SUMMARY_ONLY = Falseto revert to previous behaviorReplace
MD_EXTENSIONSwithMARKDOWNsettingReplace
JINJA_EXTENSIONSwith more-robustJINJA_ENVIRONMENTsettingImprove summary truncation logic to handle special characters and tags that span multiple lines, using HTML parser instead of regular expressions
Include summary when looking for intra-site link substitutions
Link to authors and index via
{author}nameand{index}syntaxOverride widget names via
LINKS_WIDGET_NAMEandSOCIAL_WIDGET_NAMEAdd
INDEX_SAVE_ASoption to override defaultindex.htmlvalueRemove
PAGEScontext variable for themes in favor ofpagesSLUG_SUBSTITUTIONSnow accepts 3-tuple elements, allowing URL slugs to contain non-alphanumeric charactersTag and category slugs can be controlled with greater precision using the
TAG_SUBSTITUTIONSandCATEGORY_SUBSTITUTIONSsettingsAuthor slugs can be controlled with greater precision using the
AUTHOR_SUBSTITUTIONSsettingDEFAULT_DATEcan be defined as a stringUse
mtimeinstead ofctimewhenDEFAULT_DATE = 'fs'Add
--fatal=errors|warningsoption for use with continuous integrationWhen using generator-level caching, ensure previously-cached files are processed instead of just new files.
Add Python and Pelican version information to debug output
Improve compatibility with Python 3.5
Comply with and enforce PEP8 guidelines
Replace tables in settings documentation with
data::directives
3.6.3 (2015-08-14)¶
Fix permissions issue in release tarball
3.6.2 (2015-08-01)¶
Fix installation errors related to Unicode in tests
Don’t show pagination in
notmyideatheme if there’s only one pageMake hidden pages available in context
Improve URLWrapper comparison
3.6.0 (2015-06-15)¶
Disable caching by default in order to prevent potential confusion
Improve caching behavior, replacing
picklewithcpickleAllow Markdown or reST content in metadata fields other than
summarySupport semicolon-separated author/tag lists
Improve flexibility of article sorting
Add
--relative-urlsargumentSupport devserver listening on addresses other than localhost
Unify HTTP server handlers to
pelican.serverthroughoutHandle intra-site links to draft posts
Move
tag_cloudfrom core to pluginLoad default theme’s external resources via HTTPS
Import drafts from WordPress XML
Improve support for Windows users
Enhance logging and test suite
Clean up and refactor codebase
New signals:
all_generators_finalizedandpage_writer_finalized
3.5.0 (2014-11-04)¶
Introduce
ARTICLE_ORDER_BYandPAGE_ORDER_BYsettings to control the order of articles and pages.Include time zone information in dates rendered in templates.
Expose the reader name in the metadata for articles and pages.
Add the ability to store static files along with content in the same directory as articles and pages using
{attach}in the path.Prevent Pelican from raising an exception when there are duplicate pieces of metadata in a Markdown file.
Introduce the
TYPOGRIFY_IGNORE_TAGSsetting to add HTML tags to be ignored by Typogrify.Add the ability to use
-in date formats to strip leading zeros. For example,%-d/%-m/%ywill now result in the date9/8/12.Ensure feed generation is correctly disabled during quickstart configuration.
Fix
PAGE_EXCLUDESandARTICLE_EXCLUDESfrom incorrectly matching sub-directories.Introduce
STATIC_EXCLUDEsetting to add static file excludes.Fix an issue when using
PAGINATION_PATTERNSwhileRELATIVE_URLSis enabled.Fix feed generation causing links to use the wrong language for month names when using other locales.
Fix an issue where the authors list in the simple template wasn’t correctly formatted.
Fix an issue when parsing non-string URLs from settings.
Improve consistency of debug and warning messages.
3.4.0 (2014-07-01)¶
Speed up content generation via new caching mechanism
Add selective post generation (instead of always building entire site)
Many documentation improvements, including switching to prettier RtD theme
Add support for multiple content and plugin paths
Add
:modified:metadata field to complement:date:. Used to specify the last date and time an article was updated independently from the date and time it was published.Add support for multiple authors via new
:authors:metadata fieldWatch for changes in static directories when in auto-regeneration mode
Add filters to limit log output when desired
Add language support to drafts
Add
SLUGIFY_SOURCEsetting to control how post slugs are generatedFix many issues relating to locale and encoding
Apply Typogrify filter to post summary
Preserve file metadata (e.g. time stamps) when copying static files to output
Move AsciiDoc support from Pelican core into separate plugin
Produce inline links instead of reference-style links when importing content
Improve handling of
IGNORE_FILESsetting behaviorProperly escape symbol characters in tag names (e.g.,
C++)Minor tweaks for Python 3.4 compatibility
Add several new signals
3.3.0 (2013-09-24)¶
Drop Python 3.2 support in favor of Python 3.3
Add
Fabfileso Fabric can be used for workflow automation instead of MakeOUTPUT_RETENTIONsetting can be used to preserve metadata (e.g., VCS data such as.hgand.git) from being removed from output directoryTumblr import
Improve logic and consistency when cleaning output folder
Improve documentation versioning and release automation
Improve pagination flexibility
Rename signals for better consistency (some plugins may need to be updated)
Move metadata extraction from generators to readers; metadata extraction no longer article-specific
Deprecate
FILES_TO_COPYin favor ofSTATIC_PATHSandEXTRA_PATH_METADATASummaries in Markdown posts no longer include footnotes
Remove unnecessary whitespace in output via
lstrip_blocksJinja parameterMove PDF generation from core to plugin
Replace
MARKUPsetting withREADERSAdd warning if img tag is missing
altattributeAdd support for
{}in relative links syntax, besides||Add support for
{tag}and{category}relative linksAdd a
content_writtensignal
3.2.1 and 3.2.2¶
Facilitate inclusion in FreeBSD Ports Collection
3.2 (2013-04-24)¶
Support for Python 3!
Override page save-to location from meta-data (enables using a static page as the site’s home page, for example)
Time period archives (per-year, per-month, and per-day archives of posts)
Posterous blog import
Improve WordPress blog import
Migrate plugins to separate repository
Improve HTML parser
Provide ability to show or hide categories from menu using
DISPLAY_CATEGORIES_ON_MENUoptionAuto-regeneration can be told to ignore files via
IGNORE_FILESsettingImprove post-generation feedback to user
For multilingual posts, use meta-data to designate which is the original and which is the translation
Add
.mdownto list of supported Markdown file extensionsDocument-relative URL generation (
RELATIVE_URLS) is now off by default
3.1 (2012-12-04)¶
Importer now stores slugs within files by default. This can be disabled with the
--disable-slugsoption.Improve handling of links to intra-site resources
Ensure WordPress import adds paragraphs for all types of line endings in post content
Decode HTML entities within WordPress post titles on import
Improve appearance of LinkedIn icon in default theme
Add GitHub and Google+ social icons support in default theme
Optimize social icons
Add
FEED_ALL_ATOMandFEED_ALL_RSSto generate feeds containing all posts regardless of their languageSplit
TRANSLATION_FEEDintoTRANSLATION_FEED_ATOMandTRANSLATION_FEED_RSSDifferent feeds can now be enabled/disabled individually
Allow for blank author: if
AUTHORsetting is not set, author won’t default to${USER}anymore, and a post won’t contain any author information if the post author is emptyMove LESS and Webassets support from Pelican core to plugin
The
DEFAULT_DATEsetting now defaults toNone, which means that articles won’t be generated unless date metadata is specifiedAdd
FILENAME_METADATAsetting to support metadata extraction from filenameAdd
gzip_cacheplugin to compress common text files into a.gzfile within the same directory as the original file, preventing the server (e.g. Nginx) from having to compress files during an HTTP callAdd support for AsciiDoc-formatted content
Add
USE_FOLDER_AS_CATEGORYsetting so that feature can be toggled on/offSupport arbitrary Jinja template files
Restore basic functional tests
New signals:
generator_init,get_generators, andarticle_generate_preread
3.0 (2012-08-08)¶
Refactored the way URLs are handled
Improved the English documentation
Fixed packaging using
setuptoolsentrypointsAdded
typogrifysupportAdded a way to disable feed generation
Added support for
DIRECT_TEMPLATESAllow multiple extensions for content files
Added LESS support
Improved the import script
Added functional tests
Rsync support in the generated Makefile
Improved feed support (easily pluggable with Feedburner for instance)
Added support for
abbrin reSTFixed a bunch of bugs :-)
2.8 (2012-02-28)¶
Dotclear importer
Allow the usage of Markdown extensions
Themes are now easily extensible
Don’t output pagination information if there is only one page
Add a page per author, with all their articles
Improved the test suite
Made the themes easier to extend
Removed Skribit support
Added a
pelican-quickstartscriptFixed timezone-related issues
Added some scripts for Windows support
Date can be specified in seconds
Never fail when generating posts (skip and continue)
Allow the use of future dates
Support having different timezones per language
Enhanced the documentation
2.7 (2011-06-11)¶
Use
loggingrather than echoing to stdoutSupport custom Jinja filters
Compatibility with Python 2.5
Added a theme manager
Packaged for Debian
Added draft support
2.6 (2011-03-08)¶
Changes in the output directory structure
Makes templates easier to work with / create
Added RSS support (was Atom-only)
Added tag support for the feeds
Enhance the documentation
Added another theme (brownstone)
Added translations
Added a way to use cleaner URLs with a rewrite url module (or equivalent)
Added a tag cloud
Added an autoreloading feature: the blog is automatically regenerated each time a modification is detected
Translate the documentation into French
Import a blog from an RSS feed
Pagination support
Added Skribit support
2.5 (2010-11-20)¶
Import from WordPress
Added some new themes (martyalchin / wide-notmyidea)
First bug report!
Linkedin support
Added a FAQ
Google Analytics support
Twitter support
Use relative URLs, not static ones
2.4 (2010-11-06)¶
Minor themes changes
Add Disqus support (so we have comments)
Another code refactoring
Added config settings about pages
Blog entries can also be generated in PDF
2.3 (2010-10-31)¶
Markdown support
2.2 (2010-10-30)¶
Prettify output
Manages static pages as well
2.1 (2010-10-30)¶
Make notmyidea the default theme
2.0 (2010-10-30)¶
Refactoring to be more extensible
Change into the setting variables
1.2 (2010-09-28)¶
Added a debug option
Added per-category feeds
Use filesystem to get dates if no metadata is provided
Add Pygments support
1.1 (2010-08-19)¶
First working version