summaryrefslogtreecommitdiff
path: root/conf.py
diff options
context:
space:
mode:
Diffstat (limited to 'conf.py')
-rw-r--r--conf.py955
1 files changed, 955 insertions, 0 deletions
diff --git a/conf.py b/conf.py
new file mode 100644
index 0000000..ba2906b
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,955 @@
1# -*- coding: utf-8 -*-
2
3from __future__ import unicode_literals
4import time
5
6# ! Some settings can be different in different languages.
7# ! A comment stating (translatable) is used to denote those.
8# ! There are two ways to specify a translatable setting:
9# ! (a) BLOG_TITLE = "My Blog"
10# ! (b) BLOG_TITLE = {"en": "My Blog", "es": "Mi Blog"}
11# ! Option (a) is used when you don't want that setting translated.
12# ! Option (b) is used for settings that are different in different languages.
13
14
15# Data about this site
16BLOG_AUTHOR = "erdgeist" # (translatable)
17BLOG_TITLE = "erdgeist.org" # (translatable)
18# This is the main URL for your site. It will be used
19# in a prominent link
20SITE_URL = "http://erdgeist.org/"
21# This is the URL where Nikola's output will be deployed.
22# If not set, defaults to SITE_URL
23# BASE_URL = "http://erdgeist.org/"
24BLOG_EMAIL = "erdgeist@erdgeist.org"
25BLOG_DESCRIPTION = "is the personal page of Dirk Engling aka erdgeist" # (translatable)
26
27# Nikola is multilingual!
28#
29# Currently supported languages are:
30#
31# en English
32# ar Arabic
33# bg Bulgarian
34# ca Catalan
35# cs Czech [ALTERNATIVELY cz]
36# da Danish
37# de German
38# el Greek [NOT gr]
39# eo Esperanto
40# es Spanish
41# et Estonian
42# eu Basque
43# fa Persian
44# fi Finnish
45# fr French
46# hi Hindi
47# hr Croatian
48# id Indonesian
49# it Italian
50# ja Japanese [NOT jp]
51# ko Korean
52# nb Norwegian Bokmål
53# nl Dutch
54# pl Polish
55# pt_br Portuguese (Brasil)
56# ru Russian
57# sk Slovak
58# sl Slovene
59# sr Serbian (Cyrillic)
60# sv Swedish
61# tr Turkish [NOT tr_TR]
62# ur Urdu
63# zh_cn Chinese (Simplified)
64#
65# If you want to use Nikola with a non-supported language you have to provide
66# a module containing the necessary translations
67# (cf. the modules at nikola/data/themes/base/messages/).
68# If a specific post is not translated to a language, then the version
69# in the default language will be shown instead.
70
71# What is the default language?
72DEFAULT_LANG = "en"
73
74# What other languages do you have?
75# The format is {"translationcode" : "path/to/translation" }
76# the path will be used as a prefix for the generated pages location
77TRANSLATIONS = {
78 DEFAULT_LANG: "",
79}
80
81# What will translated input files be named like?
82
83# If you have a page something.rst, then something.pl.rst will be considered
84# its Polish translation.
85# (in the above example: path == "something", ext == "rst", lang == "pl")
86# this pattern is also used for metadata:
87# something.meta -> something.pl.meta
88
89TRANSLATIONS_PATTERN = "{path}.{lang}.{ext}"
90
91# Links for the sidebar / navigation bar. (translatable)
92# This is a dict. The keys are languages, and values are tuples.
93#
94# For regular links:
95# ('http://getnikola.com/', 'Nikola Homepage')
96#
97# For submenus:
98# (
99# (
100# ('http://apple.com/', 'Apple'),
101# ('http://orange.com/', 'Orange'),
102# ),
103# 'Fruits'
104# )
105#
106# WARNING: Support for submenus is theme-dependent.
107# Only one level of submenus is supported.
108# WARNING: Some themes, including the default Bootstrap 3 theme,
109# may present issues if the menu is too large.
110# (in bootstrap3, the navbar can grow too large and cover contents.)
111# WARNING: If you link to directories, make sure to follow
112# ``STRIP_INDEXES``. If it’s set to ``True``, end your links
113# with a ``/``, otherwise end them with ``/index.html`` — or
114# else they won’t be highlighted when active.
115
116NAVIGATION_LINKS = {
117 DEFAULT_LANG: (
118 ('/', 'Home', 'icon-home' ),
119 ('/about/', 'About', 'icon-user' ),
120 ('/blog/', 'Blog', 'icon-comment' ),
121 ('/music/', 'Music', 'icon-music' ),
122 ('/poetry/', 'Poetry', 'icon-pencil' ),
123# ('https://github.com/erdgeist', 'erdgeist on github', 'icon-github-circled' ),
124# ('https://twitter.com/erdgeist', 'erdgeist on Twitter', 'icon-twitter'),
125 )
126 }
127
128# Name of the theme to use.
129THEME="erdgeist"
130
131# Below this point, everything is optional
132
133# Post's dates are considered in UTC by default, if you want to use
134# another time zone, please set TIMEZONE to match. Check the available
135# list from Wikipedia:
136# http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
137# (e.g. 'Europe/Zurich')
138# Also, if you want to use a different time zone in some of your posts,
139# you can use the ISO 8601/RFC 3339 format (ex. 2012-03-30T23:00:00+02:00)
140TIMEZONE = "Europe/Berlin"
141
142# If you want to use ISO 8601 (also valid RFC 3339) throughout Nikola
143# (especially in new_post), set this to True.
144# Note that this does not affect DATE_FORMAT.
145# FORCE_ISO8601 = False
146
147# Date format used to display post dates.
148# (str used by datetime.datetime.strftime)
149# DATE_FORMAT = '%Y-%m-%d %H:%M'
150
151# Date format used to display post dates, if local dates are used.
152# (str used by moment.js)
153# JS_DATE_FORMAT = 'YYYY-MM-DD HH:mm'
154
155# Date fanciness.
156#
157# 0 = using DATE_FORMAT and TIMEZONE
158# 1 = using JS_DATE_FORMAT and local user time (via moment.js)
159# 2 = using a string like “2 days ago”
160#
161# Your theme must support it, bootstrap and bootstrap3 already do.
162# DATE_FANCINESS = 0
163
164# While Nikola can select a sensible locale for each language,
165# sometimes explicit control can come handy.
166# In this file we express locales in the string form that
167# python's locales will accept in your OS, by example
168# "en_US.utf8" in Unix-like OS, "English_United States" in Windows.
169# LOCALES = dict mapping language --> explicit locale for the languages
170# in TRANSLATIONS. You can omit one or more keys.
171# LOCALE_FALLBACK = locale to use when an explicit locale is unavailable
172# LOCALE_DEFAULT = locale to use for languages not mentioned in LOCALES; if
173# not set the default Nikola mapping is used.
174
175# POSTS and PAGES contains (wildcard, destination, template) tuples.
176#
177# The wildcard is used to generate a list of reSt source files
178# (whatever/thing.txt).
179#
180# That fragment could have an associated metadata file (whatever/thing.meta),
181# and optionally translated files (example for Spanish, with code "es"):
182# whatever/thing.es.txt and whatever/thing.es.meta
183#
184# This assumes you use the default TRANSLATIONS_PATTERN.
185#
186# From those files, a set of HTML fragment files will be generated:
187# cache/whatever/thing.html (and maybe cache/whatever/thing.html.es)
188#
189# These files are combined with the template to produce rendered
190# pages, which will be placed at
191# output / TRANSLATIONS[lang] / destination / pagename.html
192#
193# where "pagename" is the "slug" specified in the metadata file.
194#
195# The difference between POSTS and PAGES is that POSTS are added
196# to feeds and are considered part of a blog, while PAGES are
197# just independent HTML pages.
198#
199
200POSTS = (
201 ("blog/*.rst", "posts", "post.tmpl"),
202 ("blog/*.md", "posts", "post.tmpl"),
203 ("blog/*.txt", "posts", "post.tmpl"),
204)
205PAGES = (
206 ("stories/*.rst", "", "story.tmpl"),
207 ("stories/*.md", "", "story.tmpl"),
208 ("stories/*.txt", "", "story.tmpl"),
209)
210
211# One or more folders containing files to be copied as-is into the output.
212# The format is a dictionary of {source: relative destination}.
213# Default is:
214# FILES_FOLDERS = {'files': ''}
215# Which means copy 'files' into 'output'
216
217# One or more folders containing listings to be processed and stored into
218# the output. The format is a dictionary of {source: relative destination}.
219# Default is:
220# LISTINGS_FOLDERS = {'listings': 'listings'}
221# Which means process listings from 'listings' into 'output/listings'
222
223# A mapping of languages to file-extensions that represent that language.
224# Feel free to add or delete extensions to any list, but don't add any new
225# compilers unless you write the interface for it yourself.
226#
227# 'rest' is reStructuredText
228# 'markdown' is MarkDown
229# 'html' assumes the file is HTML and just copies it
230COMPILERS = {
231 "rest": ('.rst', '.txt'),
232 "markdown": ('.md', '.mdown', '.markdown'),
233 "textile": ('.textile',),
234 "txt2tags": ('.t2t',),
235 "bbcode": ('.bb',),
236 "wiki": ('.wiki',),
237 "ipynb": ('.ipynb',),
238 "html": ('.html', '.htm'),
239 # PHP files are rendered the usual way (i.e. with the full templates).
240 # The resulting files have .php extensions, making it possible to run
241 # them without reconfiguring your server to recognize them.
242 "php": ('.php',),
243 # Pandoc detects the input from the source filename
244 # but is disabled by default as it would conflict
245 # with many of the others.
246 # "pandoc": ('.rst', '.md', '.txt'),
247}
248
249# Create by default posts in one file format?
250# Set to False for two-file posts, with separate metadata.
251# ONE_FILE_POSTS = True
252
253# If this is set to True, the DEFAULT_LANG version will be displayed for
254# untranslated posts.
255# If this is set to False, then posts that are not translated to a language
256# LANG will not be visible at all in the pages in that language.
257# Formerly known as HIDE_UNTRANSLATED_POSTS (inverse)
258# SHOW_UNTRANSLATED_POSTS = True
259
260# Nikola supports logo display. If you have one, you can put the URL here.
261# Final output is <img src="LOGO_URL" id="logo" alt="BLOG_TITLE">.
262# The URL may be relative to the site root.
263# LOGO_URL = ''
264
265# If you want to hide the title of your website (for example, if your logo
266# already contains the text), set this to False.
267SHOW_BLOG_TITLE = False
268
269# Writes tag cloud data in form of tag_cloud_data.json.
270# Warning: this option will change its default value to False in v8!
271WRITE_TAG_CLOUD = False
272
273# Paths for different autogenerated bits. These are combined with the
274# translation paths.
275
276# Final locations are:
277# output / TRANSLATION[lang] / TAG_PATH / index.html (list of tags)
278# output / TRANSLATION[lang] / TAG_PATH / tag.html (list of posts for a tag)
279# output / TRANSLATION[lang] / TAG_PATH / tag.xml (RSS feed for a tag)
280# TAG_PATH = "categories"
281
282# If TAG_PAGES_ARE_INDEXES is set to True, each tag's page will contain
283# the posts themselves. If set to False, it will be just a list of links.
284# TAG_PAGES_ARE_INDEXES = False
285
286# Set descriptions for tag pages to make them more interesting. The
287# default is no description. The value is used in the meta description
288# and displayed underneath the tag list or index page’s title.
289# TAG_PAGES_DESCRIPTIONS = {
290# DEFAULT_LANG: {
291# "blogging": "Meta-blog posts about blogging about blogging.",
292# "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects."
293# },
294#}
295
296# Only include tags on the tag list/overview page if there are at least
297# TAGLIST_MINIMUM_POSTS number of posts or more with every tag. Every tag
298# page is still generated, linked from posts, and included in the sitemap.
299# However, more obscure tags can be hidden from the tag index page.
300# TAGLIST_MINIMUM_POSTS = 1
301
302# Final locations are:
303# output / TRANSLATION[lang] / CATEGORY_PATH / index.html (list of categories)
304# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.html (list of posts for a category)
305# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.xml (RSS feed for a category)
306# CATEGORY_PATH = "categories"
307# CATEGORY_PREFIX = "cat_"
308
309# If CATEGORY_PAGES_ARE_INDEXES is set to True, each category's page will contain
310# the posts themselves. If set to False, it will be just a list of links.
311# CATEGORY_PAGES_ARE_INDEXES = False
312
313# Set descriptions for category pages to make them more interesting. The
314# default is no description. The value is used in the meta description
315# and displayed underneath the category list or index page’s title.
316# CATEGORY_PAGES_DESCRIPTIONS = {
317# DEFAULT_LANG: {
318# "blogging": "Meta-blog posts about blogging about blogging.",
319# "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects."
320# },
321#}
322
323# Final location for the main blog page and sibling paginated pages is
324# output / TRANSLATION[lang] / INDEX_PATH / index-*.html
325INDEX_PATH = "blog"
326
327# Create per-month archives instead of per-year
328# CREATE_MONTHLY_ARCHIVE = False
329# Create one large archive instead of per-year
330# CREATE_SINGLE_ARCHIVE = False
331# Create year, month, and day archives each with a (long) list of posts
332# (overrides both CREATE_MONTHLY_ARCHIVE and CREATE_SINGLE_ARCHIVE)
333# CREATE_FULL_ARCHIVES = False
334# If monthly archives or full archives are created, adds also one archive per day
335# CREATE_DAILY_ARCHIVE = False
336# Final locations for the archives are:
337# output / TRANSLATION[lang] / ARCHIVE_PATH / ARCHIVE_FILENAME
338# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / index.html
339# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / index.html
340# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / DAY / index.html
341# ARCHIVE_PATH = ""
342# ARCHIVE_FILENAME = "archive.html"
343
344# If ARCHIVES_ARE_INDEXES is set to True, each archive page which contains a list
345# of posts will contain the posts themselves. If set to False, it will be just a
346# list of links.
347# ARCHIVES_ARE_INDEXES = False
348
349# URLs to other posts/pages can take 3 forms:
350# rel_path: a relative URL to the current page/post (default)
351# full_path: a URL with the full path from the root
352# absolute: a complete URL (that includes the SITE_URL)
353# URL_TYPE = 'rel_path'
354
355# Final location for the blog main RSS feed is:
356# output / TRANSLATION[lang] / RSS_PATH / rss.xml
357RSS_PATH = "blog/"
358
359# Number of posts in RSS feeds
360# FEED_LENGTH = 10
361
362# Slug the Tag URL easier for users to type, special characters are
363# often removed or replaced as well.
364# SLUG_TAG_PATH = True
365
366# A list of redirection tuples, [("foo/from.html", "/bar/to.html")].
367#
368# A HTML file will be created in output/foo/from.html that redirects
369# to the "/bar/to.html" URL. notice that the "from" side MUST be a
370# relative URL.
371#
372# If you don't need any of these, just set to []
373REDIRECTIONS = []
374
375# Presets of commands to execute to deploy. Can be anything, for
376# example, you may use rsync:
377# "rsync -rav --delete output/ joe@my.site:/srv/www/site"
378# And then do a backup, or run `nikola ping` from the `ping`
379# plugin (`nikola plugin -i ping`). Or run `nikola check -l`.
380# You may also want to use github_deploy (see below).
381# You can define multiple presets and specify them as arguments
382# to `nikola deploy`. If no arguments are specified, a preset
383# named `default` will be executed. You can use as many presets
384# in a `nikola deploy` command as you like.
385DEPLOY_COMMANDS = {
386 'default': [
387 "rsync -av --delete output/ erdgeist.org:erdgeist.org/new/",
388 ]
389}
390
391# For user.github.io OR organization.github.io pages, the DEPLOY branch
392# MUST be 'master', and 'gh-pages' for other repositories.
393# GITHUB_SOURCE_BRANCH = 'master'
394# GITHUB_DEPLOY_BRANCH = 'gh-pages'
395
396# The name of the remote where you wish to push to, using github_deploy.
397# GITHUB_REMOTE_NAME = 'origin'
398
399# Where the output site should be located
400# If you don't use an absolute path, it will be considered as relative
401# to the location of conf.py
402# OUTPUT_FOLDER = 'output'
403
404# where the "cache" of partial generated content should be located
405# default: 'cache'
406# CACHE_FOLDER = 'cache'
407
408# Filters to apply to the output.
409# A directory where the keys are either: a file extensions, or
410# a tuple of file extensions.
411#
412# And the value is a list of commands to be applied in order.
413#
414# Each command must be either:
415#
416# A string containing a '%s' which will
417# be replaced with a filename. The command *must* produce output
418# in place.
419#
420# Or:
421#
422# A python callable, which will be called with the filename as
423# argument.
424#
425# By default, only .php files uses filters to inject PHP into
426# Nikola’s templates. All other filters must be enabled through FILTERS.
427#
428# Many filters are shipped with Nikola. A list is available in the manual:
429# <http://getnikola.com/handbook.html#post-processing-filters>
430#
431# from nikola import filters
432# FILTERS = {
433# ".html": [filters.typogrify],
434# ".js": [filters.closure_compiler],
435# ".jpg": ["jpegoptim --strip-all -m75 -v %s"],
436# }
437
438# Expert setting! Create a gzipped copy of each generated file. Cheap server-
439# side optimization for very high traffic sites or low memory servers.
440# GZIP_FILES = False
441# File extensions that will be compressed
442# GZIP_EXTENSIONS = ('.txt', '.htm', '.html', '.css', '.js', '.json', '.xml')
443# Use an external gzip command? None means no.
444# Example: GZIP_COMMAND = "pigz -k {filename}"
445# GZIP_COMMAND = None
446# Make sure the server does not return a "Accept-Ranges: bytes" header for
447# files compressed by this option! OR make sure that a ranged request does not
448# return partial content of another representation for these resources. Do not
449# use this feature if you do not understand what this means.
450
451# Compiler to process LESS files.
452# LESS_COMPILER = 'lessc'
453
454# A list of options to pass to the LESS compiler.
455# Final command is: LESS_COMPILER LESS_OPTIONS file.less
456# LESS_OPTIONS = []
457
458# Compiler to process Sass files.
459# SASS_COMPILER = 'sass'
460
461# A list of options to pass to the Sass compiler.
462# Final command is: SASS_COMPILER SASS_OPTIONS file.s(a|c)ss
463# SASS_OPTIONS = []
464
465# #############################################################################
466# Image Gallery Options
467# #############################################################################
468
469# One or more folders containing galleries. The format is a dictionary of
470# {"source": "relative_destination"}, where galleries are looked for in
471# "source/" and the results will be located in
472# "OUTPUT_PATH/relative_destination/gallery_name"
473# Default is:
474# GALLERY_FOLDERS = {"gallery": "gallery", "images" : "pics" }
475# More gallery options:
476THUMBNAIL_SIZE = 180
477MAX_IMAGE_SIZE = 480
478# USE_FILENAME_AS_TITLE = True
479# EXTRA_IMAGE_EXTENSIONS = []
480#
481# If set to False, it will sort by filename instead. Defaults to True
482# GALLERY_SORT_BY_DATE = True
483#
484# Folders containing images to be used in normal posts or
485# pages. Images will be scaled down according to THUMBNAIL_SIZE and
486# MAX_IMAGE_SIZE options, but will have to be referenced manually to
487# be visible on the site. The format is a dictionary of {source:
488# relative destination}.
489#
490IMAGE_FOLDERS = {'images': 'about'}
491
492# #############################################################################
493# HTML fragments and diverse things that are used by the templates
494# #############################################################################
495
496# Data about post-per-page indexes.
497# INDEXES_PAGES defaults to ' old posts, page %d' or ' page %d' (translated),
498# depending on the value of INDEXES_PAGES_MAIN.
499#
500# (translatable) If the following is empty, defaults to BLOG_TITLE:
501# INDEXES_TITLE = ""
502#
503# (translatable) If the following is empty, defaults to ' [old posts,] page %d' (see above):
504# INDEXES_PAGES = ""
505#
506# If the following is True, INDEXES_PAGES is also displayed on the main (the
507# newest) index page (index.html):
508# INDEXES_PAGES_MAIN = False
509#
510# If the following is True, index-1.html has the oldest posts, index-2.html the
511# second-oldest posts, etc., and index.html has the newest posts. This ensures
512# that all posts on index-x.html will forever stay on that page, now matter how
513# many new posts are added.
514# If False, index-1.html has the second-newest posts, index-2.html the third-newest,
515# and index-n.html the oldest posts. When this is active, old posts can be moved
516# to other index pages when new posts are added.
517# INDEXES_STATIC = True
518#
519# (translatable) If PRETTY_URLS is set to True, this setting will be used to create
520# more pretty URLs for index pages, such as page/2/index.html instead of index-2.html.
521# Valid values for this settings are:
522# * False,
523# * a list or tuple, specifying the path to be generated,
524# * a dictionary mapping languages to lists or tuples.
525# Every list or tuple must consist of strings which are used to combine the path;
526# for example:
527# ['page', '{number}', '{index_file}']
528# The replacements
529# {number} --> (logical) page number;
530# {old_number} --> the page number inserted into index-n.html before (zero for
531# the main page);
532# {index_file} --> value of option INDEX_FILE
533# are made.
534# Note that in case INDEXES_PAGES_MAIN is set to True, a redirection will be created
535# for the full URL with the page number of the main page to the normal (shorter) main
536# page URL.
537# INDEXES_PRETTY_PAGE_URL = False
538
539# Color scheme to be used for code blocks. If your theme provides
540# "assets/css/code.css" this is ignored.
541# Can be any of autumn borland bw colorful default emacs friendly fruity manni
542# monokai murphy native pastie perldoc rrt tango trac vim vs
543# CODE_COLOR_SCHEME = 'default'
544
545# If you use 'site-reveal' theme you can select several subthemes
546# THEME_REVEAL_CONFIG_SUBTHEME = 'sky'
547# You can also use: beige/serif/simple/night/default
548
549# Again, if you use 'site-reveal' theme you can select several transitions
550# between the slides
551# THEME_REVEAL_CONFIG_TRANSITION = 'cube'
552# You can also use: page/concave/linear/none/default
553
554# FAVICONS contains (name, file, size) tuples.
555# Used for create favicon link like this:
556# <link rel="name" href="file" sizes="size"/>
557# FAVICONS = {
558# ("icon", "/favicon.ico", "16x16"),
559# ("icon", "/icon_128x128.png", "128x128"),
560# }
561
562# Show only teasers in the index pages? Defaults to False.
563# INDEX_TEASERS = False
564
565# HTML fragments with the Read more... links.
566# The following tags exist and are replaced for you:
567# {link} A link to the full post page.
568# {read_more} The string “Read more” in the current language.
569# {reading_time} An estimate of how long it will take to read the post.
570# {remaining_reading_time} An estimate of how long it will take to read the post, sans the teaser.
571# {min_remaining_read} The string “{remaining_reading_time} min remaining to read” in the current language.
572# {paragraph_count} The amount of paragraphs in the post.
573# {remaining_paragraph_count} The amount of paragraphs in the post, sans the teaser.
574# {{ A literal { (U+007B LEFT CURLY BRACKET)
575# }} A literal } (U+007D RIGHT CURLY BRACKET)
576
577# 'Read more...' for the index page, if INDEX_TEASERS is True (translatable)
578INDEX_READ_MORE_LINK = '<p class="more"><a href="{link}">{read_more}…</a></p>'
579# 'Read more...' for the RSS_FEED, if RSS_TEASERS is True (translatable)
580RSS_READ_MORE_LINK = '<p><a href="{link}">{read_more}…</a> ({min_remaining_read})</p>'
581
582# Append a URL query to the RSS_READ_MORE_LINK and the //rss/item/link in
583# RSS feeds. Minimum example for Piwik "pk_campaign=rss" and Google Analytics
584# "utm_source=rss&utm_medium=rss&utm_campaign=rss". Advanced option used for
585# traffic source tracking.
586RSS_LINKS_APPEND_QUERY = False
587
588# A HTML fragment describing the license, for the sidebar.
589# (translatable)
590LICENSE = ""
591# I recommend using the Creative Commons' wizard:
592# http://creativecommons.org/choose/
593# LICENSE = """
594# <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/ar/">
595# <img alt="Creative Commons License BY-NC-SA"
596# style="border-width:0; margin-bottom:12px;"
597# src="http://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a>"""
598
599# A small copyright notice for the page footer (in HTML).
600# (translatable)
601CONTENT_FOOTER = ""
602# 'Contents &copy; {date} <a href="mailto:{email}">{author}</a> - Powered by <a href="http://getnikola.com" rel="nofollow">Nikola</a> {license}'
603
604# Things that will be passed to CONTENT_FOOTER.format(). This is done
605# for translatability, as dicts are not formattable. Nikola will
606# intelligently format the setting properly.
607# The setting takes a dict. The keys are languages. The values are
608# tuples of tuples of positional arguments and dicts of keyword arguments
609# to format(). For example, {'en': (('Hello'), {'target': 'World'})}
610# results in CONTENT_FOOTER['en'].format('Hello', target='World').
611# WARNING: If you do not use multiple languages with CONTENT_FOOTER, this
612# still needs to be a dict of this format. (it can be empty if you
613# do not need formatting)
614# (translatable)
615CONTENT_FOOTER_FORMATS = {
616 DEFAULT_LANG: (
617 (),
618 {
619 "email": BLOG_EMAIL,
620# "author": BLOG_AUTHOR,
621 "date": time.gmtime().tm_year,
622 "license": LICENSE
623 }
624 )
625}
626
627# To use comments, you can choose between different third party comment
628# systems. The following comment systems are supported by Nikola:
629# disqus, facebook, googleplus, intensedebate, isso, livefyre, muut
630# You can leave this option blank to disable comments.
631COMMENT_SYSTEM = ""
632# And you also need to add your COMMENT_SYSTEM_ID which
633# depends on what comment system you use. The default is
634# "nikolademo" which is a test account for Disqus. More information
635# is in the manual.
636COMMENT_SYSTEM_ID = ""
637
638# Enable annotations using annotateit.org?
639# If set to False, you can still enable them for individual posts and pages
640# setting the "annotations" metadata.
641# If set to True, you can disable them for individual posts and pages using
642# the "noannotations" metadata.
643# ANNOTATIONS = False
644
645# Create index.html for page (story) folders?
646# WARNING: if a page would conflict with the index file (usually
647# caused by setting slug to `index`), the STORY_INDEX
648# will not be generated for that directory.
649# STORY_INDEX = False
650# Enable comments on story pages?
651# COMMENTS_IN_STORIES = False
652# Enable comments on picture gallery pages?
653# COMMENTS_IN_GALLERIES = False
654
655# What file should be used for directory indexes?
656# Defaults to index.html
657# Common other alternatives: default.html for IIS, index.php
658# INDEX_FILE = "index.html"
659
660# If a link ends in /index.html, drop the index.html part.
661# http://mysite/foo/bar/index.html => http://mysite/foo/bar/
662# (Uses the INDEX_FILE setting, so if that is, say, default.html,
663# it will instead /foo/default.html => /foo)
664# (Note: This was briefly STRIP_INDEX_HTML in v 5.4.3 and 5.4.4)
665# Default = False
666STRIP_INDEXES = True
667
668# Should the sitemap list directories which only include other directories
669# and no files.
670# Default to True
671# If this is False
672# e.g. /2012 includes only /01, /02, /03, /04, ...: don't add it to the sitemap
673# if /2012 includes any files (including index.html)... add it to the sitemap
674# SITEMAP_INCLUDE_FILELESS_DIRS = True
675
676# List of files relative to the server root (!) that will be asked to be excluded
677# from indexing and other robotic spidering. * is supported. Will only be effective
678# if SITE_URL points to server root. The list is used to exclude resources from
679# /robots.txt and /sitemap.xml, and to inform search engines about /sitemapindex.xml.
680# ROBOTS_EXCLUSIONS = ["/archive.html", "/category/*.html"]
681
682# Instead of putting files in <slug>.html, put them in
683# <slug>/index.html. Also enables STRIP_INDEXES
684# This can be disabled on a per-page/post basis by adding
685# .. pretty_url: False
686# to the metadata
687# PRETTY_URLS = False
688
689# If True, publish future dated posts right away instead of scheduling them.
690# Defaults to False.
691# FUTURE_IS_NOW = False
692
693# If True, future dated posts are allowed in deployed output
694# Only the individual posts are published/deployed; not in indexes/sitemap
695# Generally, you want FUTURE_IS_NOW and DEPLOY_FUTURE to be the same value.
696# DEPLOY_FUTURE = False
697# If False, draft posts will not be deployed
698# DEPLOY_DRAFTS = True
699
700# Allows scheduling of posts using the rule specified here (new_post -s)
701# Specify an iCal Recurrence Rule: http://www.kanzaki.com/docs/ical/rrule.html
702# SCHEDULE_RULE = ''
703# If True, use the scheduling rule to all posts by default
704# SCHEDULE_ALL = False
705
706# Do you want a add a Mathjax config file?
707# MATHJAX_CONFIG = ""
708
709# If you are using the compile-ipynb plugin, just add this one:
710# MATHJAX_CONFIG = """
711# <script type="text/x-mathjax-config">
712# MathJax.Hub.Config({
713# tex2jax: {
714# inlineMath: [ ['$','$'], ["\\\(","\\\)"] ],
715# displayMath: [ ['$$','$$'], ["\\\[","\\\]"] ],
716# processEscapes: true
717# },
718# displayAlign: 'left', // Change this to 'center' to center equations.
719# "HTML-CSS": {
720# styles: {'.MathJax_Display': {"margin": 0}}
721# }
722# });
723# </script>
724# """
725
726# Do you want to customize the nbconversion of your IPython notebook?
727# IPYNB_CONFIG = {}
728# With the following example configuration you can use a custom jinja template
729# called `toggle.tpl` which has to be located in your site/blog main folder:
730# IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}}
731
732# What Markdown extensions to enable?
733# You will also get gist, nikola and podcast because those are
734# done in the code, hope you don't mind ;-)
735# Note: most Nikola-specific extensions are done via the Nikola plugin system,
736# with the MarkdownExtension class and should not be added here.
737# MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite']
738
739# Extra options to pass to the pandoc comand.
740# by default, it's empty, is a list of strings, for example
741# ['-F', 'pandoc-citeproc', '--bibliography=/Users/foo/references.bib']
742# PANDOC_OPTIONS = []
743
744# Social buttons. This is sample code for AddThis (which was the default for a
745# long time). Insert anything you want here, or even make it empty.
746# (translatable)
747SOCIAL_BUTTONS_CODE = ""
748# <!-- Social buttons -->
749# <div id="addthisbox" class="addthis_toolbox addthis_peekaboo_style addthis_default_style addthis_label_style addthis_32x32_style">
750# <a class="addthis_button_more">Share</a>
751# <ul><li><a class="addthis_button_facebook"></a>
752# <li><a class="addthis_button_google_plusone_share"></a>
753# <li><a class="addthis_button_linkedin"></a>
754# <li><a class="addthis_button_twitter"></a>
755# </ul>
756# </div>
757# <script src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f7088a56bb93798"></script>
758# <!-- End of social buttons -->
759# """
760
761# Show link to source for the posts?
762# Formerly known as HIDE_SOURCELINK (inverse)
763SHOW_SOURCELINK = False
764# Copy the source files for your pages?
765# Setting it to False implies SHOW_SOURCELINK = False
766COPY_SOURCES = False
767
768# Modify the number of Post per Index Page
769# Defaults to 10
770INDEX_DISPLAY_POST_COUNT = 23
771
772# By default, Nikola generates RSS files for the website and for tags, and
773# links to it. Set this to False to disable everything RSS-related.
774GENERATE_RSS = True
775
776# RSS_LINK is a HTML fragment to link the RSS or Atom feeds. If set to None,
777# the base.tmpl will use the feed Nikola generates. However, you may want to
778# change it for a FeedBurner feed or something else.
779# RSS_LINK = None
780
781# Show only teasers in the RSS feed? Default to True
782# RSS_TEASERS = True
783
784# Strip HTML in the RSS feed? Default to False
785# RSS_PLAIN = False
786
787# A search form to search this site, for the sidebar. You can use a Google
788# custom search (http://www.google.com/cse/)
789# Or a DuckDuckGo search: https://duckduckgo.com/search_box.html
790# Default is no search form.
791# (translatable)
792# SEARCH_FORM = ""
793#
794# This search form works for any site and looks good in the "site" theme where
795# it appears on the navigation bar:
796#
797# SEARCH_FORM = """
798# <!-- Custom search -->
799# <form method="get" id="search" action="//duckduckgo.com/"
800# class="navbar-form pull-left">
801# <input type="hidden" name="sites" value="%s"/>
802# <input type="hidden" name="k8" value="#444444"/>
803# <input type="hidden" name="k9" value="#D51920"/>
804# <input type="hidden" name="kt" value="h"/>
805# <input type="text" name="q" maxlength="255"
806# placeholder="Search&hellip;" class="span2" style="margin-top: 4px;"/>
807# <input type="submit" value="DuckDuckGo Search" style="visibility: hidden;" />
808# </form>
809# <!-- End of custom search -->
810# """ % SITE_URL
811#
812# If you prefer a Google search form, here's an example that should just work:
813# SEARCH_FORM = """
814# <!-- Custom search with Google-->
815# <form id="search" action="//www.google.com/search" method="get" class="navbar-form pull-left">
816# <input type="hidden" name="q" value="site:%s" />
817# <input type="text" name="q" maxlength="255" results="0" placeholder="Search"/>
818# </form>
819# <!-- End of custom search -->
820#""" % SITE_URL
821
822# Use content distribution networks for jQuery, twitter-bootstrap css and js,
823# and html5shiv (for older versions of Internet Explorer)
824# If this is True, jQuery and html5shiv are served from the Google CDN and
825# Bootstrap is served from BootstrapCDN (provided by MaxCDN)
826# Set this to False if you want to host your site without requiring access to
827# external resources.
828USE_CDN = False
829
830# Check for USE_CDN compatibility.
831# If you are using custom themes, have configured the CSS properly and are
832# receiving warnings about incompatibility but believe they are incorrect, you
833# can set this to False.
834# USE_CDN_WARNING = True
835
836# Extra things you want in the pages HEAD tag. This will be added right
837# before </head>
838# (translatable)
839# EXTRA_HEAD_DATA = ""
840# Google Analytics or whatever else you use. Added to the bottom of <body>
841# in the default template (base.tmpl).
842# (translatable)
843# BODY_END = ""
844
845# The possibility to extract metadata from the filename by using a
846# regular expression.
847# To make it work you need to name parts of your regular expression.
848# The following names will be used to extract metadata:
849# - title
850# - slug
851# - date
852# - tags
853# - link
854# - description
855#
856# An example re is the following:
857# '(?P<date>\d{4}-\d{2}-\d{2})-(?P<slug>.*)-(?P<title>.*)\.md'
858# FILE_METADATA_REGEXP = None
859
860# If you hate "Filenames with Capital Letters and Spaces.md", you should
861# set this to true.
862UNSLUGIFY_TITLES = False
863
864# Additional metadata that is added to a post when creating a new_post
865# ADDITIONAL_METADATA = {}
866
867# Nikola supports Open Graph Protocol data for enhancing link sharing and
868# discoverability of your site on Facebook, Google+, and other services.
869# Open Graph is enabled by default.
870# USE_OPEN_GRAPH = True
871
872# Nikola supports Twitter Card summaries, but they are disabled by default.
873# They make it possible for you to attach media to Tweets that link
874# to your content.
875#
876# IMPORTANT:
877# Please note, that you need to opt-in for using Twitter Cards!
878# To do this please visit https://cards-dev.twitter.com/validator
879#
880# Uncomment and modify to following lines to match your accounts.
881# Images displayed come from the `previewimage` meta tag.
882# You can specify the card type by using the `card` parameter in TWITTER_CARD.
883# TWITTER_CARD = {
884# # 'use_twitter_cards': True, # enable Twitter Cards
885# # 'card': 'summary', # Card type, you can also use 'summary_large_image',
886# # see https://dev.twitter.com/cards/types
887# # 'site': '@website', # twitter nick for the website
888# # 'creator': '@username', # Username for the content creator / author.
889# }
890
891# If webassets is installed, bundle JS and CSS to make site loading faster
892# USE_BUNDLES = True
893
894# Plugins you don't want to use. Be careful :-)
895# DISABLED_PLUGINS = ["render_galleries"]
896
897# Add the absolute paths to directories containing plugins to use them.
898# For example, the `plugins` directory of your clone of the Nikola plugins
899# repository.
900# EXTRA_PLUGINS_DIRS = []
901
902# List of regular expressions, links matching them will always be considered
903# valid by "nikola check -l"
904# LINK_CHECK_WHITELIST = []
905
906# If set to True, enable optional hyphenation in your posts (requires pyphen)
907# HYPHENATE = False
908
909# The <hN> tags in HTML generated by certain compilers (reST/Markdown)
910# will be demoted by that much (1 → h1 will become h2 and so on)
911# This was a hidden feature of the Markdown and reST compilers in the
912# past. Useful especially if your post titles are in <h1> tags too, for
913# example.
914# (defaults to 1.)
915# DEMOTE_HEADERS = 1
916
917# If you don’t like slugified file names ([a-z0-9] and a literal dash),
918# and would prefer to use all the characters your file system allows.
919# USE WITH CARE! This is also not guaranteed to be perfect, and may
920# sometimes crash Nikola, your web server, or eat your cat.
921# USE_SLUGIFY = True
922
923# You can configure the logging handlers installed as plugins or change the
924# log level of the default stderr handler.
925# WARNING: The stderr handler allows only the loglevels of 'INFO' and 'DEBUG'.
926# This is done for safety reasons, as blocking out anything other
927# than 'DEBUG' may hide important information and break the user
928# experience!
929
930LOGGING_HANDLERS = {
931 'stderr': {'loglevel': 'INFO', 'bubble': True},
932 # 'smtp': {
933 # 'from_addr': 'test-errors@example.com',
934 # 'recipients': ('test@example.com'),
935 # 'credentials':('testusername', 'password'),
936 # 'server_addr': ('127.0.0.1', 25),
937 # 'secure': (),
938 # 'level': 'DEBUG',
939 # 'bubble': True
940 # }
941}
942
943# Templates will use those filters, along with the defaults.
944# Consult your engine's documentation on filters if you need help defining
945# those.
946# TEMPLATE_FILTERS = {}
947
948# Put in global_context things you want available on all your templates.
949# It can be anything, data, functions, modules, etc.
950GLOBAL_CONTEXT = {}
951
952# Add functions here and they will be called with template
953# GLOBAL_CONTEXT as parameter when the template is about to be
954# rendered
955GLOBAL_CONTEXT_FILLER = []