aboutsummaryrefslogtreecommitdiffstats
path: root/nikola/conf.py.in
diff options
context:
space:
mode:
Diffstat (limited to 'nikola/conf.py.in')
-rw-r--r--nikola/conf.py.in344
1 files changed, 280 insertions, 64 deletions
diff --git a/nikola/conf.py.in b/nikola/conf.py.in
index c2bf8ff..20605d8 100644
--- a/nikola/conf.py.in
+++ b/nikola/conf.py.in
@@ -1,13 +1,12 @@
+## -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
-<%text>
-# -*- coding: utf-8 -*-
+
from __future__ import unicode_literals
import time
##############################################
# Configuration, please edit
##############################################
-</%text>
# Data about this site
BLOG_AUTHOR = "${BLOG_AUTHOR}"
@@ -24,15 +23,26 @@ BLOG_DESCRIPTION = "${BLOG_DESCRIPTION}"
# Nikola is multilingual!
#
# Currently supported languages are:
-# English -> en
-# Greek -> gr
-# German -> de
-# French -> fr
-# Polish -> pl
-# Russian -> ru
-# Spanish -> es
-# Italian -> it
-# Simplified Chinese -> zh-cn
+# bg Bulgarian
+# ca Catalan
+# de German
+# el Greek [NOT gr!]
+# en English
+# eo Esperanto
+# es Spanish
+# fa Persian
+# fi Finnish
+# fr French
+# hr Croatian
+# it Italian
+# jp Japanese
+# nl Dutch
+# pt_br Portuguese (Brasil)
+# pl Polish
+# ru Russian
+# sl Slovenian [NOT sl_si!]
+# tr_tr Turkish (Turkey)
+# zh_cn Chinese (Simplified)
#
# If you want to use Nikola with a non-supported language you have to provide
# a module containing the necessary translations
@@ -54,7 +64,7 @@ TRANSLATIONS = {
# Links for the sidebar / navigation bar.
# You should provide a key-value pair for each used language.
-SIDEBAR_LINKS = {
+NAVIGATION_LINKS = {
DEFAULT_LANG: (
('/archive.html', 'Archives'),
('/categories/index.html', 'Tags'),
@@ -62,18 +72,28 @@ SIDEBAR_LINKS = {
),
}
-<%text>
##############################################
# Below this point, everything is optional
##############################################
-</%text>
-# post_pages contains (wildcard, destination, template, use_in_feed) tuples.
+# While nikola can select a sensible locale for each language,
+# sometimes explicit control can come handy.
+# In this file we express locales in the string form that
+# python's locales will accept in your OS, by example
+# "en_US.utf8" in unix-like OS, "English_United States" in Windows.
+# LOCALES = dict mapping language --> explicit locale for the languages
+# in TRANSLATIONS. You can ommit one or more keys.
+# LOCALE_FALLBACK = locale to use when an explicit locale is unavailable
+# LOCALE_DEFAULT = locale to use for languages not mentioned in LOCALES; if
+# not set the default Nikola mapping is used.
+
+# POSTS and PAGES contains (wildcard, destination, template) tuples.
#
# The wildcard is used to generate a list of reSt source files
# (whatever/thing.txt).
-# That fragment must have an associated metadata file (whatever/thing.meta),
-# and opcionally translated files (example for spanish, with code "es"):
+#
+# That fragment could have an associated metadata file (whatever/thing.meta),
+# and optionally translated files (example for spanish, with code "es"):
# whatever/thing.txt.es and whatever/thing.meta.es
#
# From those files, a set of HTML fragment files will be generated:
@@ -83,13 +103,15 @@ SIDEBAR_LINKS = {
# pages, which will be placed at
# output / TRANSLATIONS[lang] / destination / pagename.html
#
-# where "pagename" is specified in the metadata file.
+# where "pagename" is the "slug" specified in the metadata file.
#
-# if use_in_feed is True, then those posts will be added to the site's
-# rss feeds.
+# The difference between POSTS and PAGES is that POSTS are added
+# to feeds and are considered part of a blog, while PAGES are
+# just independent HTML pages.
#
-post_pages = ${POST_PAGES}
+POSTS = ${POSTS}
+PAGES = ${PAGES}
# One or more folders containing files to be copied as-is into the output.
# The format is a dictionary of "source" "relative destination".
@@ -104,7 +126,7 @@ post_pages = ${POST_PAGES}
# 'rest' is reStructuredText
# 'markdown' is MarkDown
# 'html' assumes the file is html and just copies it
-post_compilers = ${POST_COMPILERS}
+COMPILERS = ${COMPILERS}
# Create by default posts in one file format?
# Set to False for two-file posts, with separate metadata.
@@ -134,6 +156,8 @@ post_compilers = ${POST_COMPILERS}
# Create per-month archives instead of per-year
# CREATE_MONTHLY_ARCHIVE = False
+# Create one large archive instead of per-year
+# CREATE_SINGLE_ARCHIVE = False
# Final locations for the archives are:
# output / TRANSLATION[lang] / ARCHIVE_PATH / ARCHIVE_FILENAME
# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / index.html
@@ -145,6 +169,9 @@ post_compilers = ${POST_COMPILERS}
# output / TRANSLATION[lang] / RSS_PATH / rss.xml
# RSS_PATH = ""
+# Number of posts in RSS feeds
+# FEED_LENGTH = 10
+
# Slug the Tag URL easier for users to type, special characters are
# often removed or replaced as well.
# SLUG_TAG_PATH = True
@@ -161,7 +188,8 @@ post_compilers = ${POST_COMPILERS}
# Commands to execute to deploy. Can be anything, for example,
# you may use rsync:
# "rsync -rav output/* joe@my.site:/srv/www/site"
-# And then do a backup, or ping pingomatic.
+# And then do a backup, or run `nikola ping` from the `ping`
+# plugin (`nikola install_plugin ping`).
# To do manual deployment, set it to []
# DEPLOY_COMMANDS = []
@@ -192,14 +220,25 @@ post_compilers = ${POST_COMPILERS}
# argument.
#
# By default, there are no filters.
+#
+# Many filters are shipped with Nikola. A list is available in the manual:
+# <http://getnikola.com/handbook.html#post-processing-filters>
# FILTERS = {
# ".jpg": ["jpegoptim --strip-all -m75 -v %s"],
# }
-# Create a gzipped copy of each generated file. Cheap server-side optimization.
+# Expert setting! Create a gzipped copy of each generated file. Cheap server-
+# side optimization for very high traffic sites or low memory servers.
# GZIP_FILES = False
# File extensions that will be compressed
-# GZIP_EXTENSIONS = ('.txt', '.htm', '.html', '.css', '.js', '.json')
+# GZIP_EXTENSIONS = ('.txt', '.htm', '.html', '.css', '.js', '.json', '.xml')
+# Use an external gzip command? None means no.
+# Example: GZIP_COMMAND = "pigz -k {filename}"
+# GZIP_COMMAND = None
+# Make sure the server does not return a "Accept-Ranges: bytes" header for
+# files compressed by this option! OR make sure that a ranged request does not
+# return partial content of another representation for these resources. Do not
+# use this feature if you do not understand what this means.
# #############################################################################
# Image Gallery Options
@@ -211,6 +250,10 @@ post_compilers = ${POST_COMPILERS}
# THUMBNAIL_SIZE = 180
# MAX_IMAGE_SIZE = 1280
# USE_FILENAME_AS_TITLE = True
+# EXTRA_IMAGE_EXTENSIONS = []
+#
+# If set to False, it will sort by filename instead. Defaults to True
+# GALLERY_SORT_BY_DATE = True
# #############################################################################
# HTML fragments and diverse things that are used by the templates
@@ -218,30 +261,36 @@ post_compilers = ${POST_COMPILERS}
# Data about post-per-page indexes
# INDEXES_TITLE = "" # If this is empty, the default is BLOG_TITLE
-# INDEXES_PAGES = "" # If this is empty, the default is 'old posts page %d' translated
+# INDEXES_PAGES = "" # If this is empty, the default is 'old posts page %d'
+# translated
# Name of the theme to use.
-# THEME = 'site'
+THEME = "${THEME}"
-# Color scheme to be used for code blocks. If your theme provide "assets/css/code.css" this
-# is ignored.
-# Can be any of autumn borland bw colorful default emacs friendly fruity manni monokai
-# murphy native pastie perldoc rrt tango trac vim vs
-# CODE_COLOR_SCHEME = default
+# Color scheme to be used for code blocks. If your theme provides
+# "assets/css/code.css" this is ignored.
+# Can be any of autumn borland bw colorful default emacs friendly fruity manni
+# monokai murphy native pastie perldoc rrt tango trac vim vs
+# CODE_COLOR_SCHEME = 'default'
# If you use 'site-reveal' theme you can select several subthemes
-# THEME_REVEAL_CONGIF_SUBTHEME = 'sky' # You can also use: beige/serif/simple/night/default
+# THEME_REVEAL_CONFIG_SUBTHEME = 'sky'
+# You can also use: beige/serif/simple/night/default
-# Again, if you use 'site-reveal' theme you can select several transitions between the slides
-# THEME_REVEAL_CONGIF_TRANSITION = 'cube' # You can also use: page/concave/linear/none/default
+# Again, if you use 'site-reveal' theme you can select several transitions
+# between the slides
+# THEME_REVEAL_CONFIG_TRANSITION = 'cube'
+# You can also use: page/concave/linear/none/default
-# date format used to display post dates. (str used by datetime.datetime.strftime)
+# date format used to display post dates.
+# (str used by datetime.datetime.strftime)
# DATE_FORMAT = '%Y-%m-%d %H:%M'
# FAVICONS contains (name, file, size) tuples.
# Used for create favicon link like this:
# <link rel="name" href="file" sizes="size"/>
-# about favicons, see: http://www.netmagazine.com/features/create-perfect-favicon
+# For creating favicons, take a look at:
+# http://www.netmagazine.com/features/create-perfect-favicon
# FAVICONS = {
# ("icon", "/favicon.ico", "16x16"),
# ("icon", "/icon_128x128.png", "128x128"),
@@ -250,7 +299,16 @@ post_compilers = ${POST_COMPILERS}
# Show only teasers in the index pages? Defaults to False.
# INDEX_TEASERS = False
-# A HTML fragment describing the license, for the sidebar. Default is "".
+# A HTML fragment with the Read more... link.
+# The following tags exist and are replaced for you:
+# {link} A link to the full post page.
+# {read_more} The string “Read more” in the current language.
+# {{ A literal { (U+007B LEFT CURLY BRACKET)
+# }} A literal } (U+007D RIGHT CURLY BRACKET)
+# READ_MORE_LINK = '<p class="more"><a href="{link}">{read_more}…</a></p>'
+
+# A HTML fragment describing the license, for the sidebar.
+LICENSE = ""
# I recommend using the Creative Commons' wizard:
# http://creativecommons.org/choose/
# LICENSE = """
@@ -261,16 +319,31 @@ post_compilers = ${POST_COMPILERS}
# A small copyright notice for the page footer (in HTML).
# Default is ''
-CONTENT_FOOTER = 'Contents &copy; {date} <a href="mailto:{email}">{author}</a> - Powered by <a href="http://nikola.ralsina.com.ar">Nikola</a>'
+CONTENT_FOOTER = 'Contents &copy; {date} \
+ <a href="mailto:{email}">{author}</a> - Powered by \
+ <a href="http://getnikola.com" rel="nofollow">Nikola</a> \
+ {license}'
CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
author=BLOG_AUTHOR,
- date=time.gmtime().tm_year)
-
-# To enable comments via Disqus, you need to create a forum at
-# http://disqus.com, and set DISQUS_FORUM to the short name you selected.
-# If you want to disable comments, set it to False.
-# Default is "nikolademo", used by the demo sites
-# DISQUS_FORUM = "nikolademo"
+ date=time.gmtime().tm_year,
+ license=LICENSE)
+
+# To use comments, you can choose between different third party comment
+# systems, one of "disqus", "livefyre", "intensedebate", "moot",
+# "googleplus" or "facebook"
+# COMMENT_SYSTEM = "disqus"
+# And you also need to add your COMMENT_SYSTEM_ID which
+# depends on what comment system you use. The default is
+# "nikolademo" which is a test account for Disqus. More information
+# is in the manual.
+# COMMENT_SYSTEM_ID = "nikolademo"
+
+# Enable annotations using annotateit.org?
+# If set to False, you can still enable them for individual posts and pages
+# setting the "annotations" metadata.
+# If set to True, you can disable them for individual posts and pages using
+# the "noannotations" metadata.
+# ANNOTATIONS = False
# Create index.html for story folders?
# STORY_INDEX = False
@@ -279,10 +352,52 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
# Enable comments on picture gallery pages?
# COMMENTS_IN_GALLERIES = False
-# If a link ends in /index.html, drop the index.html part.
+# What file should be used for directory indexes?
+# Defaults to index.html
+# Common other alternatives: default.html for IIS, index.php
+# INDEX_FILE = "index.html"
+
+# If a link ends in /index.html, drop the index.html part.
# http://mysite/foo/bar/index.html => http://mysite/foo/bar/
+# (Uses the INDEX_FILE setting, so if that is, say, default.html,
+# it will instead /foo/default.html => /foo)
+# (Note: This was briefly STRIP_INDEX_HTML in v 5.4.3 and 5.4.4)
# Default = False
-# STRIP_INDEX_HTML = False
+# STRIP_INDEXES = False
+
+# Should the sitemap list directories which only include other directories
+# and no files.
+# Default to True
+# If this is False
+# e.g. /2012 includes only /01, /02, /03, /04, ...: don't add it to the sitemap
+# if /2012 includes any files (including index.html)... add it to the sitemap
+# SITEMAP_INCLUDE_FILELESS_DIRS = True
+
+# Instead of putting files in <slug>.html, put them in
+# <slug>/index.html. Also enables STRIP_INDEXES
+# This can be disabled on a per-page/post basis by adding
+# .. pretty_url: False
+# to the metadata
+# PRETTY_URLS = False
+
+# If True, publish future dated posts right away instead of scheduling them.
+# Defaults to False.
+# FUTURE_IS_NOW = False
+
+# If True, future dated posts are allowed in deployed output
+# Only the individual posts are published/deployed; not in indexes/sitemap
+# Generally, you want FUTURE_IS_NOW and DEPLOY_FUTURE to be the same value.
+# DEPLOY_FUTURE = False
+# If False, draft posts will not be deployed
+# DEPLOY_DRAFTS = True
+
+# Allows scheduling of posts using the rule specified here (new_post -s)
+# Specify an iCal Recurrence Rule: http://www.kanzaki.com/docs/ical/rrule.html
+# SCHEDULE_RULE = ''
+# If True, use the scheduling rule to all posts by default
+# SCHEDULE_ALL = False
+# If True, schedules post to today if possible, even if scheduled hour is over
+# SCHEDULE_FORCE_TODAY = False
# Do you want a add a Mathjax config file?
# MATHJAX_CONFIG = ""
@@ -303,9 +418,38 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
#</script>
#"""
-# Enable Addthis social buttons?
-# Defaults to true
-# ADD_THIS_BUTTONS = True
+# Do you want to customize the nbconversion of your IPython notebook?
+# IPYNB_CONFIG = {}
+# With the following example configuracion you can use a custom jinja template
+# called `toggle.tpl` which has to be located in your site/blog main folder:
+# IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}}
+
+# What MarkDown extensions to enable?
+# You will also get gist, nikola and podcast because those are
+# done in the code, hope you don't mind ;-)
+# MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite']
+
+# Social buttons. This is sample code for AddThis (which was the default for a
+# long time). Insert anything you want here, or even make it empty.
+# SOCIAL_BUTTONS_CODE = """
+# <!-- Social buttons -->
+# <div id="addthisbox" class="addthis_toolbox addthis_peekaboo_style addthis_default_style addthis_label_style addthis_32x32_style">
+# <a class="addthis_button_more">Share</a>
+# <ul><li><a class="addthis_button_facebook"></a>
+# <li><a class="addthis_button_google_plusone_share"></a>
+# <li><a class="addthis_button_linkedin"></a>
+# <li><a class="addthis_button_twitter"></a>
+# </ul>
+# </div>
+# <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f7088a56bb93798"></script>
+# <!-- End of social buttons -->
+# """
+
+# Hide link to source for the posts?
+# HIDE_SOURCELINK = False
+# Copy the source files for your pages?
+# Setting it to False implies HIDE_SOURCELINK = True
+# COPY_SOURCES = True
# Modify the number of Post per Index Page
# Defaults to 10
@@ -325,8 +469,9 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
# Default is no search form.
# SEARCH_FORM = ""
#
-# This search form works for any site and looks good in the "site" theme where it
-# appears on the navigation bar
+# This search form works for any site and looks good in the "site" theme where
+# it appears on the navigation bar:
+#
#SEARCH_FORM = """
#<!-- Custom search -->
#<form method="get" id="search" action="http://duckduckgo.com/"
@@ -340,9 +485,48 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
#<input type="submit" value="DuckDuckGo Search" style="visibility: hidden;" />
#</form>
#<!-- End of custom search -->
-#""" % BLOG_URL
+#""" % SITE_URL
#
-# Also, there is a local search plugin you can use.
+# If you prefer a google search form, here's an example that should just work:
+#SEARCH_FORM = """
+#<!-- Custom search with google-->
+#<form id="search" action="http://google.com/search" method="get" class="navbar-form pull-left">
+#<input type="hidden" name="q" value="site:%s" />
+#<input type="text" name="q" maxlength="255" results="0" placeholder="Search"/>
+#</form>
+#<!-- End of custom search -->
+#""" % SITE_URL
+
+# Also, there is a local search plugin you can use, based on Tipue, but it requires setting several
+# options:
+
+# SEARCH_FORM = """
+# <span class="navbar-form pull-left">
+# <input type="text" id="tipue_search_input">
+# </span>"""
+#
+# BODY_END = """
+# <script type="text/javascript" src="/assets/js/tipuesearch_set.js"></script>
+# <script type="text/javascript" src="/assets/js/tipuesearch.js"></script>
+# <script type="text/javascript">
+# $(document).ready(function() {
+ # $('#tipue_search_input').tipuesearch({
+ # 'mode': 'json',
+ # 'contentLocation': '/assets/js/tipuesearch_content.json',
+ # 'showUrl': false
+ # });
+# });
+# </script>
+# """
+
+# EXTRA_HEAD_DATA = """
+# <link rel="stylesheet" type="text/css" href="/assets/css/tipuesearch.css">
+# <div id="tipue_search_content" style="margin-left: auto; margin-right: auto; padding: 20px;"></div>
+# """
+# ENABLED_EXTRAS = ['local_search']
+#
+###### End of local search example
+
# Use content distribution networks for jquery and twitter-bootstrap css and js
# If this is True, jquery is served from the Google CDN and twitter-bootstrap
@@ -356,7 +540,7 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
# EXTRA_HEAD_DATA = ""
# Google analytics or whatever else you use. Added to the bottom of <body>
# in the default template (base.tmpl).
-# ANALYTICS = ""
+# BODY_END = ""
# The possibility to extract metadata from the filename by using a
# regular expression.
@@ -373,13 +557,17 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
# '(?P<date>\d{4}-\d{2}-\d{2})-(?P<slug>.*)-(?P<title>.*)\.md'
# FILE_METADATA_REGEXP = None
+# Additional metadata that is added to a post when creating a new_post
+# ADDITIONAL_METADATA = {}
+
# Nikola supports Twitter Card summaries / Open Graph.
# Twitter cards make it possible for you to attach media to Tweets
# that link to your content.
#
# IMPORTANT:
# Please note, that you need to opt-in for using Twitter Cards!
-# To do this please visit https://dev.twitter.com/form/participate-twitter-cards
+# To do this please visit
+# https://dev.twitter.com/form/participate-twitter-cards
#
# Uncomment and modify to following lines to match your accounts.
# Specifying the id for either 'site' or 'creator' will be preferred
@@ -388,14 +576,19 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
# TWITTER_CARD = {
# # 'use_twitter_cards': True, # enable Twitter Cards / Open Graph
# # 'site': '@website', # twitter nick for the website
-# # 'site:id': 123456, # Same as site, but the website's Twitter user ID instead.
+# # 'site:id': 123456, # Same as site, but the website's Twitter user ID
+# # instead.
# # 'creator': '@username', # Username for the content creator / author.
# # 'creator:id': 654321, # Same as creator, but the Twitter user's ID.
# }
-# If you want to use formatted post time in W3C-DTF Format(ex. 2012-03-30T23:00:00+02:00),
-# set timzone if you want a localized posted date.
+# Post's dates are considered in GMT by default, if you want to use
+# another timezone, please set TIMEZONE to match. Check the available
+# list from Wikipedia:
+# http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+# Also, if you want to use a different timezone in some of your posts,
+# you can use W3C-DTF Format (ex. 2012-03-30T23:00:00+02:00)
#
# TIMEZONE = 'Europe/Zurich'
@@ -406,14 +599,37 @@ CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
# DISABLED_PLUGINS = ["render_galleries"]
# Experimental plugins - use at your own risk.
-# They probably need some manual adjustments - please see their respective readme.
+# They probably need some manual adjustments - please see their respective
+# readme.
# ENABLED_EXTRAS = [
# 'planetoid',
# 'ipynb',
-# 'localsearch',
-# 'mustache',
+# 'local_search',
+# 'render_mustache',
# ]
+# List of regular expressions, links matching them will always be considered
+# valid by "nikola check -l"
+# LINK_CHECK_WHITELIST = []
+
+# If set to True, enable optional hyphenation in your posts (requires pyphen)
+# HYPHENATE = False
+
+# You can configure the logging handlers installed as plugins or change the
+# log level of the default stdout handler.
+LOGGING_HANDLERS = {
+ 'stderr': {'loglevel': 'WARNING', 'bubble': True},
+ #'smtp': {
+ # 'from_addr': 'test-errors@example.com',
+ # 'recipients': ('test@example.com'),
+ # 'credentials':('testusername', 'password'),
+ # 'server_addr': ('127.0.0.1', 25),
+ # 'secure': (),
+ # 'level': 'DEBUG',
+ # 'bubble': True
+ #}
+}
+
# Put in global_context things you want available on all your templates.
# It can be anything, data, functions, modules, etc.