<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Pelican Development Blog</title><link href="https://blog.getpelican.com/" rel="alternate"></link><link href="https://blog.getpelican.com/feeds/all.atom.xml" rel="self"></link><id>https://blog.getpelican.com/</id><updated>2019-07-14T00:00:00+02:00</updated><entry><title>Pelican 4.1 released</title><link href="https://blog.getpelican.com/pelican-4.1-released.html" rel="alternate"></link><published>2019-07-14T00:00:00+02:00</published><updated>2019-07-14T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2019-07-14:/pelican-4.1-released.html</id><summary type="html">&lt;p&gt;Pelican 4.1 has been released and includes the following enhancements, fixes,
and tweaks:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Live browser reload upon changed files (provided via Invoke task)&lt;/li&gt;
&lt;li&gt;Add &lt;tt class="docutils literal"&gt;pyproject.toml&lt;/tt&gt;, managed by Poetry&lt;/li&gt;
&lt;li&gt;Support for invoking &lt;tt class="docutils literal"&gt;python &lt;span class="pre"&gt;-m&lt;/span&gt; pelican&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Add relative source path attribute to content&lt;/li&gt;
&lt;li&gt;Allow directories in &lt;tt class="docutils literal"&gt;EXTRA_PATH_METADATA&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Add &lt;tt class="docutils literal"&gt;all_articles&lt;/tt&gt; variable …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Pelican 4.1 has been released and includes the following enhancements, fixes,
and tweaks:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Live browser reload upon changed files (provided via Invoke task)&lt;/li&gt;
&lt;li&gt;Add &lt;tt class="docutils literal"&gt;pyproject.toml&lt;/tt&gt;, managed by Poetry&lt;/li&gt;
&lt;li&gt;Support for invoking &lt;tt class="docutils literal"&gt;python &lt;span class="pre"&gt;-m&lt;/span&gt; pelican&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Add relative source path attribute to content&lt;/li&gt;
&lt;li&gt;Allow directories in &lt;tt class="docutils literal"&gt;EXTRA_PATH_METADATA&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Add &lt;tt class="docutils literal"&gt;all_articles&lt;/tt&gt; variable to period pages (for recent posts functionality)&lt;/li&gt;
&lt;li&gt;Improve debug mode output&lt;/li&gt;
&lt;li&gt;Remove blank or duplicate summaries from Atom feed&lt;/li&gt;
&lt;li&gt;Fix bugs in pagination, pelican-import, pelican-quickstart, and feed importer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more info, please refer to the &lt;a class="reference external" href="https://github.com/getpelican/pelican/releases/tag/4.1.0"&gt;release page&lt;/a&gt; or the &lt;a class="reference external" href="https://docs.getpelican.com/en/4.1.0/changelog.html"&gt;Release History&lt;/a&gt;
section of the documentation. For a more comprehensive list of changes, please
review the respective &lt;a class="reference external" href="https://github.com/getpelican/pelican/milestone/14?closed=1"&gt;milestone&lt;/a&gt; for this release. For the full list of changes,
see: &lt;a class="reference external" href="https://github.com/getpelican/pelican/compare/4.0.1...4.1.0"&gt;https://github.com/getpelican/pelican/compare/4.0.1...4.1.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As always, we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades. If you run into problems, please see the &lt;a class="reference external" href="https://docs.getpelican.com/en/latest/contribute.html#how-to-get-help"&gt;How to Get Help&lt;/a&gt; section
of the documentation, and we will update this post with any upgrade tips
contributed by the Pelican community.&lt;/p&gt;
</content></entry><entry><title>Pelican 4.0 released</title><link href="https://blog.getpelican.com/pelican-4.0-released.html" rel="alternate"></link><published>2018-11-13T00:00:00+01:00</published><updated>2018-11-13T00:00:00+01:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2018-11-13:/pelican-4.0-released.html</id><summary type="html">&lt;p&gt;Pelican 4.0 has been released, including many enhancements, fixes, and tweaks.
Highlights include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Replace &lt;tt class="docutils literal"&gt;develop_server.sh&lt;/tt&gt; script with &lt;tt class="docutils literal"&gt;pelican &lt;span class="pre"&gt;--listen&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Improved copy/link behavior for large static files (e.g., videos)&lt;/li&gt;
&lt;li&gt;New &lt;tt class="docutils literal"&gt;{static}&lt;/tt&gt; syntax to link to static content&lt;/li&gt;
&lt;li&gt;Pages can now have &lt;tt class="docutils literal"&gt;draft&lt;/tt&gt; status&lt;/li&gt;
&lt;li&gt;Show current settings via …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Pelican 4.0 has been released, including many enhancements, fixes, and tweaks.
Highlights include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Replace &lt;tt class="docutils literal"&gt;develop_server.sh&lt;/tt&gt; script with &lt;tt class="docutils literal"&gt;pelican &lt;span class="pre"&gt;--listen&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Improved copy/link behavior for large static files (e.g., videos)&lt;/li&gt;
&lt;li&gt;New &lt;tt class="docutils literal"&gt;{static}&lt;/tt&gt; syntax to link to static content&lt;/li&gt;
&lt;li&gt;Pages can now have &lt;tt class="docutils literal"&gt;draft&lt;/tt&gt; status&lt;/li&gt;
&lt;li&gt;Show current settings via new &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;--print-settings&lt;/span&gt;&lt;/tt&gt; flag&lt;/li&gt;
&lt;li&gt;Replace Fabric’s &lt;tt class="docutils literal"&gt;fabfile.py&lt;/tt&gt; with Invoke’s &lt;tt class="docutils literal"&gt;task.py&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Importer improvements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more info, please refer to the &lt;a class="reference external" href="https://github.com/getpelican/pelican/releases/tag/4.0.0"&gt;release page&lt;/a&gt; or the &lt;a class="reference external" href="https://docs.getpelican.com/en/4.0.0/changelog.html"&gt;Release History&lt;/a&gt;
section of the documentation. For a more comprehensive list of changes, please
review the respective &lt;a class="reference external" href="https://github.com/getpelican/pelican/milestone/12?closed=1"&gt;milestone&lt;/a&gt; for this release. For the full list of changes,
see: &lt;a class="reference external" href="https://github.com/getpelican/pelican/compare/3.7.1...4.0.0"&gt;https://github.com/getpelican/pelican/compare/3.7.1...4.0.0&lt;/a&gt;&lt;/p&gt;
&lt;div class="section" id="upgrading-from-previous-releases"&gt;
&lt;h2&gt;Upgrading from previous releases&lt;/h2&gt;
&lt;p&gt;You may see deprecation warnings for certain settings. If that occurs, please
change the specified setting to the new setting mentioned in the deprecation
message.&lt;/p&gt;
&lt;p&gt;Due to &lt;a class="reference external" href="https://github.com/getpelican/pelican/issues/2493"&gt;Python-Markdown changes&lt;/a&gt;, Markdown users must ensure they are using
version &amp;lt; 3.0 or &amp;gt;= 3.1 to ensure proper rendering of code blocks.&lt;/p&gt;
&lt;p&gt;Some user-submitted themes use positional argument formatting on object-related
feed URLs, which will cause sites to fail to build with: &amp;quot;TypeError: not all
arguments converted during string formatting&amp;quot;. In that case, the theme needs to
be updated. For example, substitute &lt;tt class="docutils literal"&gt;TAG_FEED_ATOM|format(tag.slug)&lt;/tt&gt; with
&lt;tt class="docutils literal"&gt;TAG_FEED_ATOM.format(slug=tag.slug)&lt;/tt&gt;. Affected variables include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;CATEGORY_FEED_ATOM&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;CATEGORY_FEED_ATOM_URL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;CATEGORY_FEED_RSS&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;CATEGORY_FEED_RSS_URL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;AUTHOR_FEED_ATOM&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;AUTHOR_FEED_ATOM_URL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;AUTHOR_FEED_RSS&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;AUTHOR_FEED_RSS_URL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;TAG_FEED_ATOM&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;TAG_FEED_ATOM_URL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;TAG_FEED_RSS&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As always, we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades. If you run into problems, please see the &lt;a class="reference external" href="https://docs.getpelican.com/en/latest/contribute.html#how-to-get-help"&gt;How to Get Help&lt;/a&gt; section
of the documentation, and we will update this post with any upgrade tips
contributed by the Pelican community.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican 3.7 released</title><link href="https://blog.getpelican.com/pelican-3.7-released.html" rel="alternate"></link><published>2016-12-12T00:00:00+01:00</published><updated>2016-12-12T00:00:00+01:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2016-12-12:/pelican-3.7-released.html</id><summary type="html">&lt;p&gt;Pelican 3.7 has been released, incorporating a year and a half worth of
enhancements and bug fixes.&lt;/p&gt;
&lt;p&gt;To see highlights, please refer to the &lt;a class="reference external" href="https://github.com/getpelican/pelican/releases/tag/3.7.0"&gt;release page&lt;/a&gt; or the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.7.0/changelog.html"&gt;Release History&lt;/a&gt;
section of the documentation. For a more comprehensive list of changes, please
review the respective &lt;a class="reference external" href="https://github.com/getpelican/pelican/milestone/9?closed=1"&gt;milestone&lt;/a&gt; for this release …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Pelican 3.7 has been released, incorporating a year and a half worth of
enhancements and bug fixes.&lt;/p&gt;
&lt;p&gt;To see highlights, please refer to the &lt;a class="reference external" href="https://github.com/getpelican/pelican/releases/tag/3.7.0"&gt;release page&lt;/a&gt; or the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.7.0/changelog.html"&gt;Release History&lt;/a&gt;
section of the documentation. For a more comprehensive list of changes, please
review the respective &lt;a class="reference external" href="https://github.com/getpelican/pelican/milestone/9?closed=1"&gt;milestone&lt;/a&gt; for this release. For the full list of changes,
see: &lt;a class="reference external" href="https://github.com/getpelican/pelican/compare/3.6.3...3.7.0"&gt;https://github.com/getpelican/pelican/compare/3.6.3...3.7.0&lt;/a&gt;&lt;/p&gt;
&lt;div class="section" id="upgrading-from-previous-releases"&gt;
&lt;h2&gt;Upgrading from previous releases&lt;/h2&gt;
&lt;p&gt;Unlike Atom, the RSS feed specification does not contain a &lt;tt class="docutils literal"&gt;&amp;lt;content&amp;gt;&lt;/tt&gt; field
and only contains a &lt;tt class="docutils literal"&gt;&amp;lt;summary&amp;gt;&lt;/tt&gt; field. Pelican previously put the full content
in this field, which could cause odd behavior in feed readers that only expected
a summary. For this reason, RSS feeds in Pelican 3.7 will by default only contain
article summaries. To revert to the previous full-content behavior, either
use Atom (which supports both &lt;tt class="docutils literal"&gt;&amp;lt;summary&amp;gt;&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;&amp;lt;content&amp;gt;&lt;/tt&gt; fields) or set:
&lt;tt class="docutils literal"&gt;RSS_FEED_SUMMARY_ONLY = False&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;If you have defined &lt;tt class="docutils literal"&gt;MD_EXTENSIONS&lt;/tt&gt; in your settings file, you will see
deprecation warnings since that setting has been replaced by the &lt;tt class="docutils literal"&gt;MARKDOWN&lt;/tt&gt;
setting in Pelican 3.7. Refer to the corresponding entry in the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.7.0/settings.html"&gt;Settings&lt;/a&gt;
documentation to see the new default value and replace any existing
&lt;tt class="docutils literal"&gt;MD_EXTENSIONS&lt;/tt&gt; settings with your preferred customized variation of the
&lt;tt class="docutils literal"&gt;MARKDOWN&lt;/tt&gt; setting.&lt;/p&gt;
&lt;p&gt;Themes originally had access to two identical context variables: &lt;tt class="docutils literal"&gt;PAGES&lt;/tt&gt; and
&lt;tt class="docutils literal"&gt;pages&lt;/tt&gt;. This redundancy was removed in Pelican 3.7, so any themes that use
&lt;tt class="docutils literal"&gt;PAGES&lt;/tt&gt; will need to be updated to use &lt;tt class="docutils literal"&gt;pages&lt;/tt&gt; instead.&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;JINJA_EXTENSIONS&lt;/tt&gt; has been replaced by the &lt;tt class="docutils literal"&gt;JINJA_ENVIRONMENT&lt;/tt&gt; setting.
Any plugins that refer to the former setting will need to be updated. Refer to
the corresponding entry in the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.7.0/settings.html"&gt;Settings&lt;/a&gt; documentation for more information.&lt;/p&gt;
&lt;p&gt;As always, we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades. If you run into problems, please see the &lt;a class="reference external" href="http://docs.getpelican.com/en/latest/contribute.html#how-to-get-help"&gt;How to Get Help&lt;/a&gt; section
of the documentation, and we will update this post with any upgrade tips
contributed by the Pelican community.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican 3.6 released</title><link href="https://blog.getpelican.com/pelican-3.6-released.html" rel="alternate"></link><published>2015-06-15T00:00:00+02:00</published><updated>2015-06-15T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2015-06-15:/pelican-3.6-released.html</id><summary type="html">&lt;p&gt;Pelican 3.6 has been released. Highlights of the improvements contained in this
release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/latest/quickstart.html"&gt;Quickstart Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which also includes a link to a Pelican installation screencast.&lt;/p&gt;
&lt;div class="section" id="highlights"&gt;
&lt;h2&gt;Highlights&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Disable caching by …&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Pelican 3.6 has been released. Highlights of the improvements contained in this
release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/latest/quickstart.html"&gt;Quickstart Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which also includes a link to a Pelican installation screencast.&lt;/p&gt;
&lt;div class="section" id="highlights"&gt;
&lt;h2&gt;Highlights&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Disable caching by default in order to prevent potential confusion&lt;/li&gt;
&lt;li&gt;Improve caching behavior, replacing &lt;tt class="docutils literal"&gt;pickle&lt;/tt&gt; with &lt;tt class="docutils literal"&gt;cpickle&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Allow Markdown or reST content in metadata fields other than &lt;tt class="docutils literal"&gt;summary&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Support semicolon-separated author/tag lists&lt;/li&gt;
&lt;li&gt;Improve flexibility of article sorting&lt;/li&gt;
&lt;li&gt;Add &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;--relative-urls&lt;/span&gt;&lt;/tt&gt; argument&lt;/li&gt;
&lt;li&gt;Support devserver listening on addresses other than localhost&lt;/li&gt;
&lt;li&gt;Unify HTTP server handlers to &lt;tt class="docutils literal"&gt;pelican.server&lt;/tt&gt; throughout&lt;/li&gt;
&lt;li&gt;Handle intra-site links to draft posts&lt;/li&gt;
&lt;li&gt;Move &lt;tt class="docutils literal"&gt;tag_cloud&lt;/tt&gt; from core to plugin&lt;/li&gt;
&lt;li&gt;Load default theme's external resources via HTTPS&lt;/li&gt;
&lt;li&gt;Import drafts from WordPress XML&lt;/li&gt;
&lt;li&gt;Improve support for Windows users&lt;/li&gt;
&lt;li&gt;Enhance logging and test suite&lt;/li&gt;
&lt;li&gt;Clean up and refactor codebase&lt;/li&gt;
&lt;li&gt;New signals: &lt;tt class="docutils literal"&gt;all_generators_finalized&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;page_writer_finalized&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of changes, see: &lt;a class="reference external" href="https://github.com/getpelican/pelican/compare/3.5.0...3.6.0"&gt;https://github.com/getpelican/pelican/compare/3.5.0...3.6.0&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="upgrading-from-previous-releases"&gt;
&lt;h2&gt;Upgrading from previous releases&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="http://docs.getpelican.com/en/latest/settings.html#reading-only-modified-content"&gt;Content generation caching&lt;/a&gt;
is now disabled by default. If you have a large site with many articles/pages
and notice that site generation takes longer than you would prefer, follow
these two steps:&lt;/p&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;&lt;p class="first"&gt;Delete the &lt;tt class="docutils literal"&gt;cache&lt;/tt&gt; folder, if it exists&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Add the following to your settings file:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
CACHE_CONTENT = True
LOAD_CONTENT_CACHE = True
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades, it's possible that you may encounter un-anticipated
wrinkles. If you run into problems, please see the &lt;a class="reference external" href="http://docs.getpelican.com/en/latest/contribute.html#how-to-get-help"&gt;How to Get Help&lt;/a&gt; section
of the documentation, and we will update this post with any upgrade tips
contributed by the Pelican community.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican 3.5 released</title><link href="https://blog.getpelican.com/pelican-3.5-released.html" rel="alternate"></link><published>2014-11-20T00:00:00+01:00</published><updated>2014-11-20T00:00:00+01:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2014-11-20:/pelican-3.5-released.html</id><summary type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.5. Highlights of the
improvements contained in this release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.5.0/quickstart.html"&gt;Quickstart Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which currently includes a link to a Pelican …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.5. Highlights of the
improvements contained in this release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.5.0/quickstart.html"&gt;Quickstart Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which currently includes a link to a Pelican installation
screencast.&lt;/p&gt;
&lt;div class="section" id="highlights"&gt;
&lt;h2&gt;Highlights&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Introduce &lt;tt class="docutils literal"&gt;ARTICLE_ORDER_BY&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;PAGE_ORDER_BY&lt;/tt&gt; settings to control the
order of articles and pages.&lt;/li&gt;
&lt;li&gt;Include time zone information in dates rendered in templates.&lt;/li&gt;
&lt;li&gt;Expose the reader name in the metadata for articles and pages.&lt;/li&gt;
&lt;li&gt;Allow storing static files in the same directory as content source files,
without causing the raw content sources to be published.&lt;/li&gt;
&lt;li&gt;Introduce the &lt;tt class="docutils literal"&gt;{attach}&lt;/tt&gt; internal link syntax for placing a static file in
the same output directory as the document that links to it.&lt;/li&gt;
&lt;li&gt;Prevent Pelican from raising an exception when there are duplicate pieces of
metadata in a Markdown file.&lt;/li&gt;
&lt;li&gt;Introduce the &lt;tt class="docutils literal"&gt;TYPOGRIFY_IGNORE_TAGS&lt;/tt&gt; setting to add HTML tags to be ignored
by Typogrify.&lt;/li&gt;
&lt;li&gt;Add the ability to use &lt;tt class="docutils literal"&gt;-&lt;/tt&gt; in date formats to strip leading zeros. For
example, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;%-d/%-m/%y&lt;/span&gt;&lt;/tt&gt; will now result in the date &lt;tt class="docutils literal"&gt;9/8/12&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Ensure feed generation is correctly disabled during quickstart configuration.&lt;/li&gt;
&lt;li&gt;Fix &lt;tt class="docutils literal"&gt;PAGE_EXCLUDES&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;ARTICLE_EXCLUDES&lt;/tt&gt; from incorrectly matching
sub-directories.&lt;/li&gt;
&lt;li&gt;Introduce &lt;tt class="docutils literal"&gt;STATIC_EXCLUDE&lt;/tt&gt; setting to add static file excludes.&lt;/li&gt;
&lt;li&gt;Fix an issue when using &lt;tt class="docutils literal"&gt;PAGINATION_PATTERNS&lt;/tt&gt; while &lt;tt class="docutils literal"&gt;RELATIVE_URLS&lt;/tt&gt;
is enabled.&lt;/li&gt;
&lt;li&gt;Fix feed generation causing links to use the wrong language for month
names when using other locales.&lt;/li&gt;
&lt;li&gt;Fix an issue where the authors list in the simple template wasn't correctly
formatted.&lt;/li&gt;
&lt;li&gt;Fix an issue when parsing non-string URLs from settings.&lt;/li&gt;
&lt;li&gt;Improve consistency of debug and warning messages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a full list of changes, see: &lt;a class="reference external" href="https://github.com/getpelican/pelican/compare/3.4.0...3.5.0"&gt;https://github.com/getpelican/pelican/compare/3.4.0...3.5.0&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="upgrading-from-previous-releases"&gt;
&lt;h2&gt;Upgrading from previous releases&lt;/h2&gt;
&lt;p&gt;While we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades, it's possible that you may encounter un-anticipated
wrinkles. If you run into problems, please reach out via the #pelican channel
on IRC, and we will update this post with any upgrade tips contributed by the
Pelican community.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican 3.4 released</title><link href="https://blog.getpelican.com/pelican-3.4-released.html" rel="alternate"></link><published>2014-07-01T00:00:00+02:00</published><updated>2014-07-01T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2014-07-01:/pelican-3.4-released.html</id><summary type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.4, which is one of
the more significant updates Pelican has ever seen. Take a look at the &lt;a class="reference external" href="https://github.com/getpelican/pelican/blob/master/docs/changelog.rst"&gt;changelog&lt;/a&gt; and
the &lt;a class="reference external" href="https://github.com/getpelican/pelican/issues?milestone=6&amp;amp;state=closed"&gt;Pelican 3.4 milestone issues&lt;/a&gt; list
to see all the features, fixes, and miscellaneous improvements that are
included …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.4, which is one of
the more significant updates Pelican has ever seen. Take a look at the &lt;a class="reference external" href="https://github.com/getpelican/pelican/blob/master/docs/changelog.rst"&gt;changelog&lt;/a&gt; and
the &lt;a class="reference external" href="https://github.com/getpelican/pelican/issues?milestone=6&amp;amp;state=closed"&gt;Pelican 3.4 milestone issues&lt;/a&gt; list
to see all the features, fixes, and miscellaneous improvements that are
included in this release.&lt;/p&gt;
&lt;div class="section" id="major-highlights"&gt;
&lt;h2&gt;Major highlights&lt;/h2&gt;
&lt;div class="section" id="faster-rebuild-times"&gt;
&lt;h3&gt;Faster rebuild times&lt;/h3&gt;
&lt;p&gt;Thanks to a new caching mechanism and selective output writing, rebuilding
a site can take just a few seconds. Tinkering with posts and themes is now
even easier.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="fixed-locale-and-encoding-issues"&gt;
&lt;h3&gt;Fixed locale and encoding issues&lt;/h3&gt;
&lt;p&gt;Finally URLs can include, for example, localized month names.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="improved-documentation-both-in-style-and-content"&gt;
&lt;h3&gt;Improved documentation, both in style and content&lt;/h3&gt;
&lt;p&gt;The documentation has been ported to the new ReadTheDocs theme, including a
functional search bar and a navigation side panel. A quickstart section is now
provided to jump-start your Pelican experience.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="support-for-multiple-post-authors"&gt;
&lt;h3&gt;Support for multiple post authors&lt;/h3&gt;
&lt;p&gt;The new &lt;tt class="docutils literal"&gt;:authors:&lt;/tt&gt; metadata field makes it possible to easily manage
multi-user sites.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="upgrading-from-previous-releases"&gt;
&lt;h2&gt;Upgrading from previous releases&lt;/h2&gt;
&lt;p&gt;While we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades, it's possible that you may encounter un-anticipated
wrinkles. If you run into problems, please reach out via the #pelican channel
on IRC, and we will update this post with any upgrade tips contributed by the
Pelican community.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>I18N Subsites plugin released</title><link href="https://blog.getpelican.com/i18n-subsites-plugin-released.html" rel="alternate"></link><published>2014-02-05T00:00:00+01:00</published><updated>2014-02-05T00:00:00+01:00</updated><author><name>Ondřej Grover</name></author><id>tag:blog.getpelican.com,2014-02-05:/i18n-subsites-plugin-released.html</id><summary type="html">&lt;p&gt;Pelican has supported article and page translations &lt;a class="reference external" href="https://github.com/getpelican/pelican/blob/master/docs/changelog.rst#26-2011-03-08"&gt;since version 2.6&lt;/a&gt;.
However, this functionality does not include translations of themes or the site name, something many have asked for.&lt;/p&gt;
&lt;p&gt;The new I18N Subsites plugin makes it simple to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;override settings for each language, e.g. &lt;tt class="docutils literal"&gt;SITENAME&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;MENUITEMS&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;translate and …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Pelican has supported article and page translations &lt;a class="reference external" href="https://github.com/getpelican/pelican/blob/master/docs/changelog.rst#26-2011-03-08"&gt;since version 2.6&lt;/a&gt;.
However, this functionality does not include translations of themes or the site name, something many have asked for.&lt;/p&gt;
&lt;p&gt;The new I18N Subsites plugin makes it simple to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;override settings for each language, e.g. &lt;tt class="docutils literal"&gt;SITENAME&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;MENUITEMS&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;translate and localize themes using &lt;tt class="docutils literal"&gt;jinja2.ext.i18n&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;automatically create translated subsites such as &lt;a class="reference external" href="http://example.com/fr/"&gt;http://example.com/fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The new plugin is available in the &lt;a class="reference external" href="https://github.com/getpelican/pelican-plugins/tree/master/i18n_subsites"&gt;Pelican plugin repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A &lt;a class="reference external" href="http://smartass101.github.io/pelican-plugins/"&gt;demo site&lt;/a&gt; has been put up to showcase the plugin.
You can use the &lt;a class="reference external" href="https://github.com/smartass101/pelican-plugins/tree/gh-pages_source"&gt;demo site source&lt;/a&gt; as a reference for using the plugin in your own site.&lt;/p&gt;
&lt;p&gt;Although this plugin has been tested, it is quite possible that you will find some bugs or inconvenient behavior as it is very new. Do not hesitate to file an issue!&lt;/p&gt;
&lt;p&gt;Finally, I would like to thank the Pelican developers for implementing and designing Pelican so well that making this plugin was straightforward, fast, and fun.&lt;/p&gt;
</content></entry><entry><title>Pelican 3.3 released</title><link href="https://blog.getpelican.com/pelican-3.3-released.html" rel="alternate"></link><published>2013-09-24T00:00:00+02:00</published><updated>2013-09-24T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2013-09-24:/pelican-3.3-released.html</id><summary type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.3. Highlights of the
improvements contained in this release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.3.0/getting_started.html"&gt;Getting Started Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which currently includes a link to a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.3. Highlights of the
improvements contained in this release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.3.0/getting_started.html"&gt;Getting Started Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which currently includes a link to a Pelican installation
screencast.&lt;/p&gt;
&lt;div class="section" id="highlights"&gt;
&lt;h2&gt;Highlights&lt;/h2&gt;
&lt;div class="section" id="python-3-3-support"&gt;
&lt;h3&gt;Python 3.3 support&lt;/h3&gt;
&lt;p&gt;Following up on the last release's &lt;a class="reference external" href="http://blog.getpelican.com/pelicans-unified-codebase.html"&gt;support for Python 3.2&lt;/a&gt;, this new version
of Pelican now supports Python 3.3. In order to do so, support for Python 3.2
unfortunately had to be dropped.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cross-platform-automation-via-fabric"&gt;
&lt;h3&gt;Cross-platform automation via Fabric&lt;/h3&gt;
&lt;p&gt;Pelican has traditionally included a &lt;tt class="docutils literal"&gt;make&lt;/tt&gt;-based workflow that works well
enough for POSIX-based systems but at the expense of Windows users. In order to
improve cross-platform publishing automation, Pelican 3.3 includes support for
Fabric, a Python-based automation framework.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="retain-certain-files-in-output"&gt;
&lt;h3&gt;Retain certain files in output&lt;/h3&gt;
&lt;p&gt;Some folks apply version control to their output directories, the metadata for
which is obliterated when using the &lt;tt class="docutils literal"&gt;DELETE_OUTPUT_DIRECTORY&lt;/tt&gt; directive.
Pelican 3.3 includes a new &lt;tt class="docutils literal"&gt;OUTPUT_RETENTION&lt;/tt&gt; setting which allows you to
define arbitrary files/folders that should be retained during the
aforementioned output cleaning process (e.g., &lt;tt class="docutils literal"&gt;.hg&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;.git&lt;/tt&gt;, et cetera).&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="tumblr-import"&gt;
&lt;h3&gt;Tumblr import&lt;/h3&gt;
&lt;p&gt;Tumblr posts can now be imported into Pelican sites.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="refactoring-fixes-and-improvements"&gt;
&lt;h3&gt;Refactoring, fixes, and improvements&lt;/h3&gt;
&lt;p&gt;Pelican 3.3 includes a significant number of other improvements, as indicated
by the long list of items in the &lt;a class="reference external" href="https://github.com/getpelican/pelican/blob/master/docs/changelog.rst"&gt;changelog&lt;/a&gt; and
the &lt;a class="reference external" href="https://github.com/getpelican/pelican/issues?milestone=5&amp;amp;state=closed"&gt;Pelican 3.3 milestone issues&lt;/a&gt; list.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="upgrade-notes"&gt;
&lt;h2&gt;Upgrade notes&lt;/h2&gt;
&lt;p&gt;While we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades, it's possible that you may encounter un-anticipated
wrinkles. Following are a few notes that may help:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;The &lt;tt class="docutils literal"&gt;FILES_TO_COPY&lt;/tt&gt; setting has been deprecated, so replace it with the
&lt;tt class="docutils literal"&gt;STATIC_PATHS&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;EXTRA_PATH_METADATA&lt;/tt&gt; settings. Refer to the
corresponding entries in the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.3.0/settings.html#basic-settings"&gt;Settings section of the docs&lt;/a&gt; for more
information.&lt;/li&gt;
&lt;li&gt;Due to minor changes to the plugin API, some plugins may not function
properly if they are not updated accordingly. Most (if not all) of the
plugins in the official &lt;a class="reference external" href="https://github.com/getpelican/pelican-plugins"&gt;Pelican Plugins Repository&lt;/a&gt; have already been updated,
but externally-hosted plugins may not be. If you are heavily dependent on
such a plugin, consider holding off on upgrading to Pelican 3.3 until you are
certain that your desired plugins will function correctly.&lt;/li&gt;
&lt;li&gt;PDF generation has been moved out of core and into a separate plugin. If you
previously relied on this feature, please be sure to retrieve, install, and
configure the new plugin from the &lt;a class="reference external" href="https://github.com/getpelican/pelican-plugins"&gt;Pelican Plugins Repository&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;There is a new warning for &lt;tt class="docutils literal"&gt;&amp;lt;img&amp;gt;&lt;/tt&gt; tags without &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;alt=&amp;quot;&amp;quot;&lt;/span&gt;&lt;/tt&gt; attributes,
which are important for accessibility reasons. Please consider adding these
attributes to your &lt;tt class="docutils literal"&gt;&amp;lt;img&amp;gt;&lt;/tt&gt; tags in order to improve accessibility (and
eliminate the warnings).&lt;/li&gt;
&lt;li&gt;The syntax for linking to source content has been changed in order to ensure
compatibility with Markdown and reST extensions. For example, the new syntax
for Markdown: &lt;tt class="docutils literal"&gt;[a link relative to content &lt;span class="pre"&gt;root]({filename}/article1.md)&lt;/span&gt;&lt;/tt&gt;
The previous &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;|filename|/article1.md&lt;/span&gt;&lt;/tt&gt; syntax will continue to be supported
for backwards compatibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will keep the above list updated with any additional items as we find them,
so please let us know if we missed anything.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Using Pelican with Heroku</title><link href="https://blog.getpelican.com/using-pelican-with-heroku.html" rel="alternate"></link><published>2013-07-25T00:00:00+02:00</published><updated>2013-07-25T00:00:00+02:00</updated><author><name>Kyle Fuller</name></author><id>tag:blog.getpelican.com,2013-07-25:/using-pelican-with-heroku.html</id><summary type="html">&lt;p&gt;Using Pelican with Heroku couldn't be easier. We have recently been working on
a buildpack allowing you to publish your Pelican site directly to Heroku.&lt;/p&gt;
&lt;p&gt;This allows you to host your Pelican site on the Heroku platform with very little
effort. Simply create a Heroku application and push your repository …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Using Pelican with Heroku couldn't be easier. We have recently been working on
a buildpack allowing you to publish your Pelican site directly to Heroku.&lt;/p&gt;
&lt;p&gt;This allows you to host your Pelican site on the Heroku platform with very little
effort. Simply create a Heroku application and push your repository to it.&lt;/p&gt;
&lt;p&gt;You don't need to deal with generating the HTML with the Pelican command — the
buildpack takes care of this. Just push a git repository with the
&lt;cite&gt;pelicanconf.py&lt;/cite&gt; file in the root directory.&lt;/p&gt;
&lt;p&gt;To enable the Heroku buildpack for existing sites, run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;heroku buildpacks:set https://github.com/getpelican/heroku-buildpack-pelican
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Alternatively, for those of you switching to Heroku, you can use the following
command to create your Pelican site on Heroku.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;heroku create myapp --buildpack https://github.com/getpelican/heroku-buildpack-pelican
&lt;/pre&gt;&lt;/div&gt;
</content><category term="deployment"></category></entry><entry><title>Pelican 3.2 released</title><link href="https://blog.getpelican.com/pelican-3.2-released.html" rel="alternate"></link><published>2013-04-24T00:00:00+02:00</published><updated>2013-04-24T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2013-04-24:/pelican-3.2-released.html</id><summary type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.2. Highlights of the
improvements contained in this release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/latest/getting_started.html"&gt;Getting Started Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which currently includes a link to a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today we are pleased to announce the release of Pelican 3.2. Highlights of the
improvements contained in this release follow below.&lt;/p&gt;
&lt;p&gt;For those who are new to Pelican, please refer to the &lt;a class="reference external" href="http://docs.getpelican.com/en/latest/getting_started.html"&gt;Getting Started Guide&lt;/a&gt;. There is also a
&lt;a class="reference external" href="https://github.com/getpelican/pelican/wiki/Tutorials"&gt;Tutorials&lt;/a&gt; page
available, which currently includes a link to a Pelican installation
screencast.&lt;/p&gt;
&lt;div class="section" id="highlights"&gt;
&lt;h2&gt;Highlights&lt;/h2&gt;
&lt;div class="section" id="python-3-support"&gt;
&lt;h3&gt;Python 3 support&lt;/h3&gt;
&lt;p&gt;As noted in &lt;a class="reference external" href="http://blog.getpelican.com/pelicans-unified-codebase.html"&gt;Pelican's Unified Codebase&lt;/a&gt;, this new version
of Pelican includes support for Python 3. All tests currently pass on Python
3.2, and we expect the same for Python 3.3 in the near future. (Pelican
interacts with a number of third-party components that have not yet been
fully updated for Python 3.3 compatibility.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="override-page-save-to-location-from-meta-data"&gt;
&lt;h3&gt;Override page save-to location from meta-data&lt;/h3&gt;
&lt;p&gt;Instead of blog or a site with dated articles, some people want to use Pelican
to publish sites with non-chronological content. Pelican 3.2 enables this by
providing a way to override the save-to location from within a page's
meta-data, so for example, you can have a &lt;tt class="docutils literal"&gt;pages/index.md&lt;/tt&gt; file that will
replace your site root's &lt;tt class="docutils literal"&gt;index.html&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="time-period-archives"&gt;
&lt;h3&gt;Time period archives&lt;/h3&gt;
&lt;p&gt;For folks who use date-based URL schemes such as &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;/2013/04/23/my-post/&lt;/span&gt;&lt;/tt&gt;,
you can now create per-year and per-month archives that will appear at
&lt;tt class="docutils literal"&gt;/2013/&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;/2013/04/&lt;/tt&gt;, respectively.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="posterous-blog-import"&gt;
&lt;h3&gt;Posterous blog import&lt;/h3&gt;
&lt;p&gt;With Posterous shutting down on April 30th, this release offers the timely
ability to import an existing Posterous blog. There are only a few days
remaining, so if you have a Posterous blog and want to import it into a
Pelican-powered site, please act quickly!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="separate-pelican-plugins-repository"&gt;
&lt;h3&gt;Separate Pelican plugins repository&lt;/h3&gt;
&lt;p&gt;Pelican plugins have been moved out of the core Pelican repository and into
their &lt;a class="reference external" href="https://github.com/getpelican/pelican-plugins"&gt;own repository&lt;/a&gt;.
This allows us to focus on the Pelican core while simultaneously encouraging
the community to extend Pelican's functionality in the form of modular plugins.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="refactoring-fixes-and-improvements"&gt;
&lt;h3&gt;Refactoring, fixes, and improvements&lt;/h3&gt;
&lt;p&gt;There have been a large number of improvements under the hood. While not an
exhaustive list, the &lt;a class="reference external" href="https://github.com/getpelican/pelican/issues?milestone=4&amp;amp;state=closed"&gt;Pelican 3.2 milestone issues&lt;/a&gt;
should provide a good overview of the many enhancements that are part of this
release.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="upgrade-notes"&gt;
&lt;h2&gt;Upgrade notes&lt;/h2&gt;
&lt;p&gt;While we do everything we can to maximize backwards compatibility and ensure
smooth Pelican upgrades, it's possible that you may encounter un-anticipated
wrinkles. Following are a few notes that may help:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Add &lt;tt class="docutils literal"&gt;from __future__ import unicode_literals&lt;/tt&gt; near the top of your settings
file.&lt;/li&gt;
&lt;li&gt;As noted above, Pelican plugins are now located in their own repository. If
you currently use any plugins bundled with Pelican 3.1.1 or earlier, you
should follow the instructions located in the &lt;a class="reference external" href="https://github.com/getpelican/pelican-plugins"&gt;Pelican plugins repository&lt;/a&gt; to re-enable those
plugins.&lt;/li&gt;
&lt;li&gt;Document-relative URL generation is now off by default. If you previously
relied on this feature and fully understand its potential disadvantages,
you can re-enable it by adding &lt;tt class="docutils literal"&gt;RELATIVE_URLS = True&lt;/tt&gt; to your settings
file.&lt;/li&gt;
&lt;li&gt;The CSS class generated by the reST and Markdown processors was unified into
a single &lt;tt class="docutils literal"&gt;highlight&lt;/tt&gt; class. If you find that your code syntax highlighting
has disappeared after upgrading, ensure that any instances of &lt;tt class="docutils literal"&gt;codehilite&lt;/tt&gt;
in your CSS are replaced with &lt;tt class="docutils literal"&gt;highlight&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Support for Python 2.6 has been dropped as of Pelican 3.2. For those running
on distros that do not have a more recent version of Python available, one
possible solution is to compile Python 2.7.x and use it from within a
virtualenv (e.g., via &lt;tt class="docutils literal"&gt;virtualenv &lt;span class="pre"&gt;-p&lt;/span&gt; $HOME/bin/python2.7 pelican&lt;/tt&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will keep the above list updated with any additional items as we find them.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="special-thanks"&gt;
&lt;h2&gt;Special thanks&lt;/h2&gt;
&lt;p&gt;As evidenced by our growing THANKS file, there were many people who
contributed to this release. A few folks deserve special mention for the
many hours they put into this new version of Pelican:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://parenchym.com/pymblog/"&gt;Dirk Makowski&lt;/a&gt; added support for Python 3,
including provisional ports for third-party components such as Typogrify and
SmartyPants.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.tremily.us/"&gt;W. Trevor King&lt;/a&gt; has undertaken a significant
refactoring of the Pelican core, improving a wide swath of the codebase that
will continue to surface in future versions of Pelican.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://avar.is/"&gt;Deniz Turgut (Avaris)&lt;/a&gt; contributed so many features and
fixes to this release that it would be silly to even try to list them. He's put
so much work into Pelican that one of the maintainers insisted that he set up a
&lt;a class="reference external" href="https://www.gittip.com/avaris/"&gt;Gittip profile&lt;/a&gt; (which Deniz did under much
duress), to which an anonymous donor has already made a sizeable contribution.
If you want to thank Deniz for his hard work, please consider doing the same.
It would be great to see him on the &amp;quot;Top Receivers&amp;quot; list next week!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="staying-in-touch"&gt;
&lt;h2&gt;Staying in touch&lt;/h2&gt;
&lt;p&gt;2013 has been a busy year so far, as evidenced by both the number of commits
to Pelican as well as the lack of updates here on the Pelican blog.  (^_^)
We'll do our best to post more frequently in the months to come, both here on
the blog and also via the
&lt;a class="reference external" href="http://twitter.com/getpelican"&gt;&amp;#64;getpelican Twitter account&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican's Unified Codebase</title><link href="https://blog.getpelican.com/pelicans-unified-codebase.html" rel="alternate"></link><published>2013-04-16T00:00:00+02:00</published><updated>2013-04-16T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2013-04-16:/pelicans-unified-codebase.html</id><summary type="html">&lt;p&gt;&lt;em&gt;In this post by&lt;/em&gt; &lt;a class="reference external" href="https://github.com/dmdm"&gt;Dirk Makowski&lt;/a&gt;, &lt;em&gt;he
explains how he added preliminary Python 3.x support to the forthcoming
Pelican 3.2 release.&lt;/em&gt;&lt;/p&gt;
&lt;hr class="docutils" /&gt;
&lt;p&gt;When referring to Pelican's &amp;quot;unified&amp;quot; codebase, this means the code runs
without changes (or requiring &lt;tt class="docutils literal"&gt;2to3&lt;/tt&gt;) on both Python 2.x and 3.x.
Specifically, this unified …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;In this post by&lt;/em&gt; &lt;a class="reference external" href="https://github.com/dmdm"&gt;Dirk Makowski&lt;/a&gt;, &lt;em&gt;he
explains how he added preliminary Python 3.x support to the forthcoming
Pelican 3.2 release.&lt;/em&gt;&lt;/p&gt;
&lt;hr class="docutils" /&gt;
&lt;p&gt;When referring to Pelican's &amp;quot;unified&amp;quot; codebase, this means the code runs
without changes (or requiring &lt;tt class="docutils literal"&gt;2to3&lt;/tt&gt;) on both Python 2.x and 3.x.
Specifically, this unified codebase is tested on Python 2.7 and 3.2.&lt;/p&gt;
&lt;p&gt;At the time of this writing all tests pass, whether manually invoked
via &lt;tt class="docutils literal"&gt;python &lt;span class="pre"&gt;-m&lt;/span&gt; unittest discover&lt;/tt&gt; within manually-created virtual
environments or via &lt;tt class="docutils literal"&gt;tox&lt;/tt&gt;, which automatically creates virtual environments
for Python 2.7 and 3.2 and runs tests on both Python versions:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
74 tests, 9 skips, no errors
&lt;/pre&gt;
&lt;p&gt;During my first attempt to port Pelican to Python 3, I had used 2to3 and
manually applied corrections to achieve syntactical correctness. But as the
tests showed, more subtle bugs in the encoding of strings remained (e.g.
outputting b'...' instead of '...'). Also, the code was suitable for Python 3
only and would not run properly on Python 2.&lt;/p&gt;
&lt;p&gt;Building on the lessons learned with 2to3, the current in-development version
of Pelican now provides a single codebase for Python 2 and 3. The following
section lists some hints about what had to be changed in order to achieve this.
These hints may also be valuable for anyone who wants to contribute new Pelican
features or bug fixes, since all Pelican code submissions must now run on both
Python versions.&lt;/p&gt;
&lt;div class="section" id="unification"&gt;
&lt;h2&gt;Unification&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Assume every string and literal is Unicode (import unicode_literals):&lt;ul&gt;
&lt;li&gt;Do not use prefix &lt;tt class="docutils literal"&gt;u'&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Do not encode/decode strings in the middle. Follow the code to the source
(or target) of a string and encode/decode at the first/last possible point.&lt;/li&gt;
&lt;li&gt;In other words, write your functions to expect and to return Unicode.&lt;/li&gt;
&lt;li&gt;Encode/decode strings if the source is a Python function that is known
to handle this badly, e.g., &lt;tt class="docutils literal"&gt;strftime()&lt;/tt&gt; in Python 2.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use new syntax: print function, &amp;quot;except ... &lt;em&gt;as&lt;/em&gt; e&amp;quot; (not comma) etc.&lt;/li&gt;
&lt;li&gt;Refactor method calls like &lt;tt class="docutils literal"&gt;dict.iteritems()&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;xrange()&lt;/tt&gt; etc. in a way
that runs without code change in both Python versions.&lt;/li&gt;
&lt;li&gt;Do not use magic method &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;__unicode()__&lt;/span&gt;&lt;/tt&gt; in new classes. Use only &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;__str()__&lt;/span&gt;&lt;/tt&gt;
and decorate the class with &lt;tt class="docutils literal"&gt;&amp;#64;python_2_unicode_compatible&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Do not start int literals with a zero. This is a syntax error in Py3k.&lt;/li&gt;
&lt;li&gt;Unfortunately I did not find an octal notation that is valid in both
Pythons. Use decimal instead.&lt;/li&gt;
&lt;li&gt;use &lt;tt class="docutils literal"&gt;six&lt;/tt&gt;, e.g.:&lt;ul&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;isinstance(..,&lt;/span&gt; basestring) &lt;span class="pre"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="pre"&gt;isinstance(..,&lt;/span&gt; six.string_types)&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;isinstance(..,&lt;/span&gt; unicode) &lt;span class="pre"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="pre"&gt;isinstance(..,&lt;/span&gt; six.text_type)&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;setlocale()&lt;/tt&gt; in Python 2 bails when we give the locale name as Unicode,
and since we are using &lt;tt class="docutils literal"&gt;from __future__ import unicode_literals&lt;/tt&gt;, we do
that everywhere! As a workaround, I enclosed the localename with &lt;tt class="docutils literal"&gt;str()&lt;/tt&gt;;
in Python 2 this casts the name to a byte string, and in Python 3 this should
do nothing, because the locale name is already in Unicode.&lt;/li&gt;
&lt;li&gt;Kept range() almost everywhere as-is (2to3 suggests list(range())) — just
changed it where I felt necessary.&lt;/li&gt;
&lt;li&gt;Changed xrange() back to range(), so it is valid in both Python versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="about-external-libraries"&gt;
&lt;h2&gt;About External Libraries&lt;/h2&gt;
&lt;div class="section" id="core"&gt;
&lt;h3&gt;Core&lt;/h3&gt;
&lt;p&gt;Pelican core depends on &lt;tt class="docutils literal"&gt;feedgenerator&lt;/tt&gt;. To run on Py3k, you will need
&lt;tt class="docutils literal"&gt;feedgenerator&lt;/tt&gt; 1.5, which also now has a unified codebase and is available
on PyPI.&lt;/p&gt;
&lt;p&gt;BeautifulSoup had to be upgraded to bs4 (only bs4 supports Py3k), which has some
consequences:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;To parse XML (e.g., which the WordPress importer does), the &lt;tt class="docutils literal"&gt;lxml&lt;/tt&gt; package
is now required.&lt;/li&gt;
&lt;li&gt;bs4 does not have &lt;tt class="docutils literal"&gt;convertEntities&lt;/tt&gt; anymore.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="plugins"&gt;
&lt;h3&gt;Plugins&lt;/h3&gt;
&lt;p&gt;On Python 2 you still can use all plugins and their dependencies as they are.
But if you want to use Pelican plugins on Python 3, you must seek out and
install compatible packages yourself.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;Typogrify&lt;/strong&gt; and &lt;strong&gt;SmartyPants&lt;/strong&gt;, on which Typogrify depends, I provide
ready-made 2to3'd code:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/dmdm/smartypants.git"&gt;https://github.com/dmdm/smartypants.git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/dmdm/typogrify/tree/py3k"&gt;https://github.com/dmdm/typogrify/tree/py3k&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For &lt;strong&gt;webassets&lt;/strong&gt;, I also have 2to3'd code available:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/dmdm/webassets/tree/py3k"&gt;https://github.com/dmdm/webassets/tree/py3k&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But &lt;tt class="docutils literal"&gt;webassets&lt;/tt&gt; still has issues. One is that the less-css compiler is not
correctly invoked when I build the blog (e.g., with &lt;tt class="docutils literal"&gt;make html&lt;/tt&gt;); I have to
manually invoke the compiler afterwards:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
lessc themes/pymblog/static/less/pymblog.less &amp;gt; output/theme/css/pymblog.css
&lt;/pre&gt;
&lt;p&gt;Be aware that the 2to3'd code of aforementioned libraries runs on Python 3 only.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="testing"&gt;
&lt;h2&gt;Testing&lt;/h2&gt;
&lt;p&gt;Testing on Python 2 is straightforward.&lt;/p&gt;
&lt;p&gt;On Python 3, if you have installed the Python 3.x-compatible versions of the
plugins, like shown in the previous chapter, manual testing with
&lt;tt class="docutils literal"&gt;python &lt;span class="pre"&gt;-m&lt;/span&gt; unittest discover&lt;/tt&gt; is also straightforward.&lt;/p&gt;
&lt;p&gt;However, you must tell tox to use those Py3k libraries. If you forget this,
tox will pull the regular packages from PyPI and the tests will fail.&lt;/p&gt;
&lt;p&gt;Tell tox about the local packages thusly: enter the source directory of
SmartyPants and run tox there. Do this again for Typogrify and webassets.
SmartyPants and Typogrify do not have real tests, and webassets will fail
noisily, but as a result we get these libraries neatly packaged in tox's
distshare directory. And this is what we need to order to run tox for Pelican.&lt;/p&gt;
&lt;p&gt;See also the comments in &lt;tt class="docutils literal"&gt;tox.ini&lt;/tt&gt; for more detail.&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican 3.1 released</title><link href="https://blog.getpelican.com/pelican-31-released.html" rel="alternate"></link><published>2012-12-03T00:00:00+01:00</published><updated>2012-12-03T00:00:00+01:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2012-12-03:/pelican-31-released.html</id><summary type="html">&lt;p&gt;Pelican development has progressed steadily over the last few months, and we're
pleased to announce the release of version 3.1, which can be obtained via
&lt;a class="reference external" href="https://crate.io/packages/pelican/"&gt;Crate.io&lt;/a&gt; or
&lt;a class="reference external" href="https://github.com/getpelican/pelican/tags"&gt;GitHub&lt;/a&gt;. This release contains
some exciting new features; following is a summary of changes since the last
3.0.1 release …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Pelican development has progressed steadily over the last few months, and we're
pleased to announce the release of version 3.1, which can be obtained via
&lt;a class="reference external" href="https://crate.io/packages/pelican/"&gt;Crate.io&lt;/a&gt; or
&lt;a class="reference external" href="https://github.com/getpelican/pelican/tags"&gt;GitHub&lt;/a&gt;. This release contains
some exciting new features; following is a summary of changes since the last
3.0.1 release.&lt;/p&gt;
&lt;div class="section" id="easier-intra-site-linking"&gt;
&lt;h2&gt;Easier intra-site linking&lt;/h2&gt;
&lt;p&gt;Whether linking from one post to another or including locally-hosted images on
a page, linking to intra-site resources has been significantly enhanced. In
addition to improving reliability, it's now possible to link to a resource in
your &lt;em&gt;source content&lt;/em&gt; hierarchy instead of the &lt;em&gt;generated&lt;/em&gt; hierarchy.&lt;/p&gt;
&lt;p&gt;Find more information here:
&lt;a class="reference external" href="http://docs.getpelican.com/en/3.1.1/getting_started.html#linking-to-internal-content"&gt;http://docs.getpelican.com/en/3.1.1/getting_started.html#linking-to-internal-content&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="metadata-extraction-from-filename"&gt;
&lt;h2&gt;Metadata extraction from filename&lt;/h2&gt;
&lt;p&gt;There is a new &lt;tt class="docutils literal"&gt;FILENAME_METADATA&lt;/tt&gt; setting that adds support for metadata
extraction from the filename via regular expressions. For example, if you
would like to extract both the date and the post slug from the filename, you
could set your &lt;tt class="docutils literal"&gt;FILENAME_METADATA&lt;/tt&gt; setting to something like:
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;'(?P&amp;lt;date&amp;gt;\d{4}-\d{2}-\d{2})_(?P&amp;lt;slug&amp;gt;.*)'&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="web-asset-processing-moved-to-separate-plugin"&gt;
&lt;h2&gt;Web asset processing moved to separate plugin&lt;/h2&gt;
&lt;p&gt;We are trying to move non-essential features out of the Pelican core and
instead make them available as plugins. Web asset management is an example of
this effort — we don't think this is a core component of Pelican, but it's
still a useful feature and remains available to those who want to use it.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="new-gzip-cache-plugin"&gt;
&lt;h2&gt;New gzip cache plugin&lt;/h2&gt;
&lt;p&gt;The gzip cache plugin allows generated text files to be compressed once during
site generation and thus served without needing any server-side compression.
This obviates the need for the web server to compress these text files
on-the-fly, which can result in lower web server CPU utilization.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="basic-functional-tests-restored"&gt;
&lt;h2&gt;Basic functional tests restored&lt;/h2&gt;
&lt;p&gt;We now have a way to fully test Pelican's output, which helps us understand
whether code changes break Pelican's intended behavior (for developers and for
end users) while we are developing new features.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="template-pages"&gt;
&lt;h2&gt;Template pages&lt;/h2&gt;
&lt;p&gt;If you want to generate custom pages besides your blog entries, you can use
any Jinja template file with a path pointing to the file and the destination
path for the generated file. For instance, if you have a blog with three
static pages — a list of books, your resume, and a contact page — you could
set them up via:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;TEMPLATE_PAGES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;src/books.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dest/books.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                  &lt;span class="s1"&gt;&amp;#39;src/resume.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dest/resume.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                  &lt;span class="s1"&gt;&amp;#39;src/contact.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dest/contact.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="feed-improvements"&gt;
&lt;h2&gt;Feed improvements&lt;/h2&gt;
&lt;p&gt;The &lt;tt class="docutils literal"&gt;FEED_ALL_ATOM&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;FEED_ALL_RSS&lt;/tt&gt; directives have been introduced as
distinct from their &lt;tt class="docutils literal"&gt;FEED_ATOM&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;FEED_RSS&lt;/tt&gt; brethren.  The former show
entries in all available language translations, while the latter only include
entries written in the site's primary language.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="use-folders-as-category"&gt;
&lt;h2&gt;Use folders as category&lt;/h2&gt;
&lt;p&gt;Until now, Pelican made the assumption that the folders used to organize your
content should be used as the respective categories of the articles contained
within. You now can configure this behavior via the &lt;tt class="docutils literal"&gt;USE_FOLDER_AS_CATEGORY&lt;/tt&gt;
setting.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="new-signals"&gt;
&lt;h2&gt;New signals&lt;/h2&gt;
&lt;p&gt;Plugins now have additional signals at their disposal:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;We now provide a &lt;tt class="docutils literal"&gt;generator_init&lt;/tt&gt; signal that is sent when the generator
is initialized. You'll receive the generator as an argument.&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;get_generators&lt;/tt&gt; is invoked in &lt;tt class="docutils literal"&gt;Pelican.get_generator_classes&lt;/tt&gt; and can
return a Generator or several generators in a tuple or list. This is useful
when you want to add your own generators.&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;article_generate_preread&lt;/tt&gt; is invoked before an article is read in
&lt;tt class="docutils literal"&gt;ArticlesGenerator.generate_context&lt;/tt&gt;. Use this if the code needs to do
something before every article is parsed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="minor-enhancements-and-fixes"&gt;
&lt;h2&gt;Minor enhancements and fixes&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Empty value for the &lt;tt class="docutils literal"&gt;AUTHOR&lt;/tt&gt; setting is now allowed&lt;/li&gt;
&lt;li&gt;Improved WordPress importing&lt;/li&gt;
&lt;li&gt;Generated content doesn't contain as much blank lines as it did previously&lt;/li&gt;
&lt;li&gt;New icon for Google+ and improvements to many others&lt;/li&gt;
&lt;li&gt;Many small documentation and bug fixes not described here&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="on-the-horizon"&gt;
&lt;h2&gt;On the horizon&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;We are working on moving plugins out of the main Pelican repository and into a
&lt;a class="reference external" href="http://github.com/getpelican/pelican-plugins"&gt;separate repository&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We would like to implement measures designed to speed up site generation in
order to reduce processing time.&lt;/li&gt;
&lt;li&gt;In order to provide more regular updates on development progress, we intend
to publish blog posts on a more frequent basis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That's all for now. More to come soon!  :-)&lt;/p&gt;
&lt;/div&gt;
</content></entry><entry><title>Pelican 3.0 released</title><link href="https://blog.getpelican.com/pelican-30-released.html" rel="alternate"></link><published>2012-08-08T00:00:00+02:00</published><updated>2012-08-08T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2012-08-08:/pelican-30-released.html</id><summary type="html">&lt;p&gt;Today marks the release of Pelican 3.0! Some of the new features include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Improved URL structure flexibility&lt;/li&gt;
&lt;li&gt;Support for &lt;a class="reference external" href="https://github.com/mintchaos/typogrify"&gt;Typogrify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support for &lt;a class="reference external" href="http://lesscss.org/"&gt;LESS CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;New development server script for previewing auto-regenerated changes&lt;/li&gt;
&lt;li&gt;Improved recognition of alternate content filename extensions&lt;/li&gt;
&lt;li&gt;... and much more!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Feel free to check out the &lt;a class="reference external" href="https://pypi.python.org/pypi/pelican/"&gt;package …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today marks the release of Pelican 3.0! Some of the new features include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Improved URL structure flexibility&lt;/li&gt;
&lt;li&gt;Support for &lt;a class="reference external" href="https://github.com/mintchaos/typogrify"&gt;Typogrify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support for &lt;a class="reference external" href="http://lesscss.org/"&gt;LESS CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;New development server script for previewing auto-regenerated changes&lt;/li&gt;
&lt;li&gt;Improved recognition of alternate content filename extensions&lt;/li&gt;
&lt;li&gt;... and much more!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Feel free to check out the &lt;a class="reference external" href="https://pypi.python.org/pypi/pelican/"&gt;package listing on PyPI&lt;/a&gt; or the &lt;a class="reference external" href="https://github.com/getpelican/pelican"&gt;project source at GitHub&lt;/a&gt;. If you want to give Pelican a spin,
check out the &lt;a class="reference external" href="http://docs.getpelican.com/en/3.0/getting_started.html"&gt;Getting Started&lt;/a&gt; section of the
&lt;a class="reference external" href="http://docs.getpelican.com/"&gt;Pelican Documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to all the folks who helped out with testing, reporting bugs, fixing
bugs, contributing features, and improving the documentation. Pelican's third
major release would not be the same without you!&lt;/p&gt;
</content></entry><entry><title>Pelican now has a blog of its own!</title><link href="https://blog.getpelican.com/pelican-now-has-a-blog-of-its-own.html" rel="alternate"></link><published>2012-07-23T00:00:00+02:00</published><updated>2012-07-23T00:00:00+02:00</updated><author><name>Pelican Contributors</name></author><id>tag:blog.getpelican.com,2012-07-23:/pelican-now-has-a-blog-of-its-own.html</id><summary type="html">&lt;p&gt;Since Alexis started working on the project almost two years ago, a bunch of
happy hackers have joined the effort to make Pelican an even better tool. Among
these contributors are &lt;a class="reference external" href="http://kylefuller.co.uk/"&gt;Kyle&lt;/a&gt;, &lt;a class="reference external" href="http://hackercodex.com/"&gt;Justin&lt;/a&gt;, and &lt;a class="reference external" href="http://bunnyman.info/"&gt;tBunnyMan&lt;/a&gt;, all of
whom have done an amazing job recently.&lt;/p&gt;
&lt;p&gt;We thought having a project blog …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Since Alexis started working on the project almost two years ago, a bunch of
happy hackers have joined the effort to make Pelican an even better tool. Among
these contributors are &lt;a class="reference external" href="http://kylefuller.co.uk/"&gt;Kyle&lt;/a&gt;, &lt;a class="reference external" href="http://hackercodex.com/"&gt;Justin&lt;/a&gt;, and &lt;a class="reference external" href="http://bunnyman.info/"&gt;tBunnyMan&lt;/a&gt;, all of
whom have done an amazing job recently.&lt;/p&gt;
&lt;p&gt;We thought having a project blog would be a good way to keep users and
developers updated on the status of Pelican's development.&lt;/p&gt;
&lt;p&gt;We have version 3.0 coming soon with &lt;em&gt;a lot&lt;/em&gt; of niceties that will
hopefully be ready by the end of the week. Kyle is working on Py3k support for
integration after 3.0, and we are getting rid of old things that don't make
sense anymore for 3.0, so expect some changes.  :)&lt;/p&gt;
</content></entry></feed>