diff options
Diffstat (limited to 'nikola/conf.py.in')
| -rw-r--r-- | nikola/conf.py.in | 344 |
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 © {date} <a href="mailto:{email}">{author}</a> - Powered by <a href="http://nikola.ralsina.com.ar">Nikola</a>' +CONTENT_FOOTER = 'Contents © {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. |
