summaryrefslogtreecommitdiff
path: root/conf.py
diff options
context:
space:
mode:
Diffstat (limited to 'conf.py')
-rw-r--r--conf.py1384
1 files changed, 1384 insertions, 0 deletions
diff --git a/conf.py b/conf.py
new file mode 100644
index 00000000..27bc6d48
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,1384 @@
1# -*- coding: utf-8 -*-
2
3import time
4
5# !! This is the configuration of Nikola. !! #
6# !! You should edit it to your liking. !! #
7
8
9# ! Some settings can be different in different languages.
10# ! A comment stating (translatable) is used to denote those.
11# ! There are two ways to specify a translatable setting:
12# ! (a) BLOG_TITLE = "My Blog"
13# ! (b) BLOG_TITLE = {"en": "My Blog", "es": "Mi Blog"}
14# ! Option (a) is used when you don't want that setting translated.
15# ! Option (b) is used for settings that are different in different languages.
16
17
18# Data about this site
19BLOG_AUTHOR = "CCC" # (translatable)
20BLOG_TITLE = "Chaos Computer Club" # (translatable)
21# This is the main URL for your site. It will be used
22# in a prominent link. Don't forget the protocol (http/https)!
23SITE_URL = "https://www.chaoscomputerclub.de/"
24# This is the URL where Nikola's output will be deployed.
25# If not set, defaults to SITE_URL
26# BASE_URL = "https://www.ccc.de/"
27BLOG_EMAIL = "mail@ccc.de"
28BLOG_DESCRIPTION = "Die größter Hacker-Organisation Europas" # (translatable)
29
30# Nikola is multilingual!
31#
32# Currently supported languages are:
33#
34# en English
35# af Afrikaans
36# ar Arabic
37# az Azerbaijani
38# bg Bulgarian
39# bs Bosnian
40# ca Catalan
41# cs Czech [ALTERNATIVELY cz]
42# da Danish
43# de German
44# el Greek [NOT gr]
45# eo Esperanto
46# es Spanish
47# et Estonian
48# eu Basque
49# fa Persian
50# fi Finnish
51# fr French
52# fur Friulian
53# gl Galician
54# he Hebrew
55# hi Hindi
56# hr Croatian
57# hu Hungarian
58# ia Interlingua
59# id Indonesian
60# it Italian
61# ja Japanese [NOT jp]
62# ko Korean
63# lt Lithuanian
64# ml Malayalam
65# nb Norwegian (Bokmål)
66# nl Dutch
67# pa Punjabi
68# pl Polish
69# pt Portuguese
70# pt_br Portuguese (Brazil)
71# ru Russian
72# sk Slovak
73# sl Slovene
74# sq Albanian
75# sr Serbian (Cyrillic)
76# sr_latin Serbian (Latin)
77# sv Swedish
78# te Telugu
79# th Thai
80# tr Turkish [NOT tr_TR]
81# uk Ukrainian
82# ur Urdu
83# vi Vietnamese
84# zh_cn Chinese (Simplified)
85# zh_tw Chinese (Traditional)
86#
87# If you want to use Nikola with a non-supported language you have to provide
88# a module containing the necessary translations
89# (cf. the modules at nikola/data/themes/base/messages/).
90# If a specific post is not translated to a language, then the version
91# in the default language will be shown instead.
92
93# What is the default language?
94DEFAULT_LANG = "de"
95
96# What other languages do you have?
97# The format is {"translationcode" : "path/to/translation" }
98# the path will be used as a prefix for the generated pages location
99TRANSLATIONS = {
100 DEFAULT_LANG: "",
101 # Example for another language:
102 "en": "./en",
103}
104
105# What will translated input files be named like?
106
107# If you have a page something.rst, then something.pl.rst will be considered
108# its Polish translation.
109# (in the above example: path == "something", ext == "rst", lang == "pl")
110# this pattern is also used for metadata:
111# something.meta -> something.pl.meta
112
113TRANSLATIONS_PATTERN = '{path}.{lang}.{ext}'
114
115# Links for the sidebar / navigation bar. (translatable)
116# This is a dict. The keys are languages, and values are tuples.
117#
118# For regular links:
119# ('https://getnikola.com/', 'Nikola Homepage')
120#
121# For submenus:
122# (
123# (
124# ('https://apple.com/', 'Apple'),
125# ('https://orange.com/', 'Orange'),
126# ),
127# 'Fruits'
128# )
129#
130# WARNING: Support for submenus is theme-dependent.
131# Only one level of submenus is supported.
132# WARNING: Some themes, including the default Bootstrap 4 theme,
133# may present issues if the menu is too large.
134# (in Bootstrap, the navbar can grow too large and cover contents.)
135# WARNING: If you link to directories, make sure to follow
136# ``STRIP_INDEXES``. If it’s set to ``True``, end your links
137# with a ``/``, otherwise end them with ``/index.html`` — or
138# else they won’t be highlighted when active.
139
140NAVIGATION_LINKS = {
141 DEFAULT_LANG: (
142 # ("/archive.html", "Archiv"),
143 # ("/categories/", "Tags"),
144 # ("/rss.xml", "RSS-Feed"),
145 ),
146}
147
148# Alternative navigation links. Works the same way NAVIGATION_LINKS does,
149# although themes may not always support them. (translatable)
150# (Bootstrap 4: right-side of navbar, Bootblog 4: right side of title)
151NAVIGATION_ALT_LINKS = {
152 DEFAULT_LANG: ()
153}
154
155# Name of the theme to use.
156THEME = "ccc"
157
158# Primary color of your theme. This will be used to customize your theme.
159# Must be a HEX value.
160THEME_COLOR = '#5670d4'
161
162# Theme configuration. Fully theme-dependent. (translatable)
163# Examples below are for bootblog4.
164# bootblog4 supports: featured_large featured_small featured_on_mobile
165# featured_large_image_on_mobile featured_strip_html sidebar
166# bootstrap4 supports: navbar_light (defaults to False)
167THEME_CONFIG = {
168 DEFAULT_LANG: {
169 # Show the latest featured post in a large box, with the previewimage as its background.
170 'featured_large': False,
171 # Show the first (remaining) two featured posts in small boxes.
172 'featured_small': False,
173 # Show featured posts on mobile.
174 'featured_on_mobile': True,
175 # Show image in `featured_large` on mobile.
176 # `featured_small` displays them only on desktop.
177 'featured_large_image_on_mobile': True,
178 # Strip HTML from featured post text.
179 'featured_strip_html': False,
180 # Contents of the sidebar, If empty, the sidebar is not displayed.
181 'sidebar': '',
182 # light navbar
183 'navbar_light': True,
184 }
185}
186
187# POSTS and PAGES contains (wildcard, destination, template) tuples.
188# (translatable)
189#
190# The wildcard is used to generate a list of source files
191# (whatever/thing.rst, for example).
192#
193# That fragment could have an associated metadata file (whatever/thing.meta),
194# and optionally translated files (example for Spanish, with code "es"):
195# whatever/thing.es.rst and whatever/thing.es.meta
196#
197# This assumes you use the default TRANSLATIONS_PATTERN.
198#
199# From those files, a set of HTML fragment files will be generated:
200# cache/whatever/thing.html (and maybe cache/whatever/thing.html.es)
201#
202# These files are combined with the template to produce rendered
203# pages, which will be placed at
204# output/TRANSLATIONS[lang]/destination/pagename.html
205#
206# where "pagename" is the "slug" specified in the metadata file.
207# The page might also be placed in /destination/pagename/index.html
208# if PRETTY_URLS are enabled.
209#
210# The difference between POSTS and PAGES is that POSTS are added
211# to feeds, indexes, tag lists and archives and are considered part
212# of a blog, while PAGES are just independent HTML pages.
213#
214# Finally, note that destination can be translated, i.e. you can
215# specify a different translation folder per language. Example:
216# PAGES = (
217# ("pages/*.rst", {"en": "pages", "de": "seiten"}, "page.tmpl"),
218# ("pages/*.md", {"en": "pages", "de": "seiten"}, "page.tmpl"),
219# )
220
221POSTS = (
222 ("updates/*.rst", "updates", "post.tmpl"),
223 ("updates/*.md", "updates", "post.tmpl"),
224 ("updates/*.txt", "updates", "post.tmpl"),
225 ("updates/*.html", "updates", "post.tmpl"),
226 ("cpu/*.rst", "cpu", "post.tmpl"),
227 ("cpu/*.md", "cpu", "post.tmpl"),
228 ("cpu/*.txt", "cpu", "post.tmpl"),
229 ("cpu/*.html", "cpu", "post.tmpl"),
230)
231
232PAGES = (
233 ("pages/*.rst", "", "page.tmpl"),
234 ("pages/*.md", "", "page.tmpl"),
235 ("pages/*.txt", "", "page.tmpl"),
236 ("pages/*.html", "", "page.tmpl"),
237)
238
239
240# Below this point, everything is optional
241
242# Post's dates are considered in UTC by default, if you want to use
243# another time zone, please set TIMEZONE to match. Check the available
244# list from Wikipedia:
245# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
246# (e.g. 'Europe/Zurich')
247# Also, if you want to use a different time zone in some of your posts,
248# you can use the ISO 8601/RFC 3339 format (ex. 2012-03-30T23:00:00+02:00)
249TIMEZONE = "CET"
250
251# If you want to use ISO 8601 (also valid RFC 3339) throughout Nikola
252# (especially in new_post), set this to True.
253# Note that this does not affect DATE_FORMAT.
254# FORCE_ISO8601 = False
255
256# Date format used to display post dates. (translatable)
257# Used by babel.dates, CLDR style: http://cldr.unicode.org/translation/date-time
258# You can also use 'full', 'long', 'medium', or 'short'
259# DATE_FORMAT = 'yyyy-MM-dd HH:mm'
260
261# Date format used to display post dates, if local dates are used. (translatable)
262# Used by moment.js: https://momentjs.com/docs/#/displaying/format/
263# JS_DATE_FORMAT = 'YYYY-MM-DD HH:mm'
264
265# Date fanciness.
266#
267# 0 = using DATE_FORMAT and TIMEZONE
268# 1 = using JS_DATE_FORMAT and local user time (via moment.js)
269# 2 = using a string like “2 days ago”
270#
271# Your theme must support it, Bootstrap already does.
272# DATE_FANCINESS = 0
273
274# Customize the locale/region used for a language.
275# For example, to use British instead of US English: LOCALES = {'en': 'en_GB'}
276# LOCALES = {}
277
278# One or more folders containing files to be copied as-is into the output.
279# The format is a dictionary of {source: relative destination}.
280# Default is:
281FILES_FOLDERS = {'files': 'files'}
282# Which means copy 'files' into 'output'
283
284# One or more folders containing code listings to be processed and published on
285# the site. The format is a dictionary of {source: relative destination}.
286# Default is:
287# LISTINGS_FOLDERS = {'listings': 'listings'}
288# Which means process listings from 'listings' into 'output/listings'
289
290# A mapping of languages to file-extensions that represent that language.
291# Feel free to add or delete extensions to any list, but don't add any new
292# compilers unless you write the interface for it yourself.
293#
294# The default compiler for `new_post` is the first entry in the POSTS tuple.
295#
296# 'rest' is reStructuredText
297# 'markdown' is Markdown
298# 'html' assumes the file is HTML and just copies it
299COMPILERS = {
300 "rest": ('.rst', '.txt'),
301 "markdown": ('.md', '.mdown', '.markdown'),
302 "textile": ('.textile',),
303 "txt2tags": ('.t2t',),
304 "bbcode": ('.bb',),
305 "wiki": ('.wiki',),
306 "ipynb": ('.ipynb',),
307 "html": ('.html', '.htm'),
308 # PHP files are rendered the usual way (i.e. with the full templates).
309 # The resulting files have .php extensions, making it possible to run
310 # them without reconfiguring your server to recognize them.
311 "php": ('.php',),
312 # Pandoc detects the input from the source filename
313 # but is disabled by default as it would conflict
314 # with many of the others.
315 # "pandoc": ('.rst', '.md', '.txt'),
316}
317
318# Enable reST directives that insert the contents of external files such
319# as "include" and "raw." This maps directly to the docutils file_insertion_enabled
320# config. See: http://docutils.sourceforge.net/docs/user/config.html#file-insertion-enabled
321# REST_FILE_INSERTION_ENABLED = True
322
323# Create by default posts in one file format?
324# Set to False for two-file posts, with separate metadata.
325# ONE_FILE_POSTS = True
326
327# Preferred metadata format for new posts
328# "Nikola": reST comments, wrapped in a HTML comment if needed (default)
329# "YAML": YAML wrapped in "---"
330# "TOML": TOML wrapped in "+++"
331# "Pelican": Native markdown metadata or reST docinfo fields. Nikola style for other formats.
332METADATA_FORMAT = "Pelican"
333
334# Use date-based path when creating posts?
335# Can be enabled on a per-post basis with `nikola new_post -d`.
336# The setting is ignored when creating pages.
337# NEW_POST_DATE_PATH = False
338
339# What format to use when creating posts with date paths?
340# Default is '%Y/%m/%d', other possibilities include '%Y' or '%Y/%m'.
341# NEW_POST_DATE_PATH_FORMAT = '%Y/%m/%d'
342
343# If this is set to True, the DEFAULT_LANG version will be displayed for
344# untranslated posts.
345# If this is set to False, then posts that are not translated to a language
346# LANG will not be visible at all in the pages in that language.
347# SHOW_UNTRANSLATED_POSTS = True
348
349# Nikola supports logo display. If you have one, you can put the URL here.
350# Final output is <img src="LOGO_URL" id="logo" alt="BLOG_TITLE">.
351# The URL may be relative to the site root.
352# LOGO_URL = ''
353
354# If you want to hide the title of your website (for example, if your logo
355# already contains the text), set this to False.
356SHOW_BLOG_TITLE = True
357
358# Paths for different autogenerated bits. These are combined with the
359# translation paths.
360
361# Final locations are:
362# output / TRANSLATION[lang] / TAG_PATH / index.html (list of tags)
363# output / TRANSLATION[lang] / TAG_PATH / tag.html (list of posts for a tag)
364# output / TRANSLATION[lang] / TAG_PATH / tag RSS_EXTENSION (RSS feed for a tag)
365# (translatable)
366TAG_PATH = "tags"
367
368# By default, the list of tags is stored in
369# output / TRANSLATION[lang] / TAG_PATH / index.html
370# (see explanation for TAG_PATH). This location can be changed to
371# output / TRANSLATION[lang] / TAGS_INDEX_PATH
372# with an arbitrary relative path TAGS_INDEX_PATH.
373# (translatable)
374# TAGS_INDEX_PATH = "tags.html"
375
376# If TAG_PAGES_ARE_INDEXES is set to True, each tag's page will contain
377# the posts themselves. If set to False, it will be just a list of links.
378TAG_PAGES_ARE_INDEXES = True
379
380# Set descriptions for tag pages to make them more interesting. The
381# default is no description. The value is used in the meta description
382# and displayed underneath the tag list or index page’s title.
383# TAG_DESCRIPTIONS = {
384# DEFAULT_LANG: {
385# "blogging": "Meta-blog posts about blogging.",
386# "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects."
387# },
388# }
389
390# Set special titles for tag pages. The default is "Posts about TAG".
391# TAG_TITLES = {
392# DEFAULT_LANG: {
393# "blogging": "Meta-posts about blogging",
394# "open source": "Posts about open source software"
395# },
396# }
397
398# If you do not want to display a tag publicly, you can mark it as hidden.
399# The tag will not be displayed on the tag list page and posts.
400# Tag pages will still be generated.
401HIDDEN_TAGS = ['mathjax', 'featured-small', 'featured-large', "update"]
402
403# Only include tags on the tag list/overview page if there are at least
404# TAGLIST_MINIMUM_POSTS number of posts or more with every tag. Every tag
405# page is still generated, linked from posts, and included in the sitemap.
406# However, more obscure tags can be hidden from the tag index page.
407TAGLIST_MINIMUM_POSTS = 2
408
409# A list of dictionaries specifying tags which translate to each other.
410# Format: a list of dicts {language: translation, language2: translation2, …}
411# For example:
412# [
413# {'en': 'private', 'de': 'Privat'},
414# {'en': 'work', 'fr': 'travail', 'de': 'Arbeit'},
415# ]
416# TAG_TRANSLATIONS = []
417
418# If set to True, a tag in a language will be treated as a translation
419# of the literally same tag in all other languages. Enable this if you
420# do not translate tags, for example.
421# TAG_TRANSLATIONS_ADD_DEFAULTS = True
422
423# Final locations are:
424# output / TRANSLATION[lang] / CATEGORY_PATH / index.html (list of categories)
425# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.html (list of posts for a category)
426# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category RSS_EXTENSION (RSS feed for a category)
427# (translatable)
428CATEGORY_PATH = "category"
429CATEGORY_PREFIX = ""
430
431# By default, the list of categories is stored in
432# output / TRANSLATION[lang] / CATEGORY_PATH / index.html
433# (see explanation for CATEGORY_PATH). This location can be changed to
434# output / TRANSLATION[lang] / CATEGORIES_INDEX_PATH
435# with an arbitrary relative path CATEGORIES_INDEX_PATH.
436# (translatable)
437# CATEGORIES_INDEX_PATH = "categories.html"
438
439# If CATEGORY_ALLOW_HIERARCHIES is set to True, categories can be organized in
440# hierarchies. For a post, the whole path in the hierarchy must be specified,
441# using a forward slash ('/') to separate paths. Use a backslash ('\') to escape
442# a forward slash or a backslash (i.e. '\//\\' is a path specifying the
443# subcategory called '\' of the top-level category called '/').
444CATEGORY_ALLOW_HIERARCHIES = False
445# If CATEGORY_OUTPUT_FLAT_HIERARCHY is set to True, the output written to output
446# contains only the name of the leaf category and not the whole path.
447CATEGORY_OUTPUT_FLAT_HIERARCHY = False
448
449# If CATEGORY_PAGES_ARE_INDEXES is set to True, each category's page will contain
450# the posts themselves. If set to False, it will be just a list of links.
451CATEGORY_PAGES_ARE_INDEXES = True
452
453# Set descriptions for category pages to make them more interesting. The
454# default is no description. The value is used in the meta description
455# and displayed underneath the category list or index page’s title.
456# CATEGORY_DESCRIPTIONS = {
457# DEFAULT_LANG: {
458# "blogging": "Meta-blog posts about blogging.",
459# "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects."
460# },
461# }
462
463# Set special titles for category pages. The default is "Posts about CATEGORY".
464# CATEGORY_TITLES = {
465# DEFAULT_LANG: {
466# "blogging": "Meta-posts about blogging",
467# "open source": "Posts about open source software"
468# },
469# }
470
471# If you do not want to display a category publicly, you can mark it as hidden.
472# The category will not be displayed on the category list page.
473# Category pages will still be generated.
474HIDDEN_CATEGORIES = []
475
476# A list of dictionaries specifying categories which translate to each other.
477# Format: a list of dicts {language: translation, language2: translation2, …}
478# See TAG_TRANSLATIONS example above.
479# CATEGORY_TRANSLATIONS = []
480
481# If set to True, a category in a language will be treated as a translation
482# of the literally same category in all other languages. Enable this if you
483# do not translate categories, for example.
484# CATEGORY_TRANSLATIONS_ADD_DEFAULTS = True
485
486# If no category is specified in a post, the destination path of the post
487# can be used in its place. This replaces the sections feature. Using
488# category hierarchies is recommended.
489CATEGORY_DESTPATH_AS_DEFAULT = True
490
491# If True, the prefix will be trimmed from the category name, eg. if the
492# POSTS destination is "foo/bar", and the path is "foo/bar/baz/quux",
493# the category will be "baz/quux" (or "baz" if only the first directory is considered).
494# Note that prefixes coming from translations are always ignored.
495CATEGORY_DESTPATH_TRIM_PREFIX = False
496
497# If True, only the first directory of a path will be used.
498CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY = True
499
500# Map paths to prettier category names. (translatable)
501# CATEGORY_DESTPATH_NAMES = {
502# DEFAULT_LANG: {
503# 'webdev': 'Web Development',
504# 'webdev/django': 'Web Development/Django',
505# 'random': 'Odds and Ends',
506# },
507# }
508
509# By default, category indexes will appear in CATEGORY_PATH and use
510# CATEGORY_PREFIX. If this is enabled, those settings will be ignored (except
511# for the index) and instead, they will follow destination paths (eg. category
512# 'foo' might appear in 'posts/foo'). If the category does not come from a
513# destpath, first entry in POSTS followed by the category name will be used.
514# For this setting, category hierarchies are required and cannot be flattened.
515# CATEGORY_PAGES_FOLLOW_DESTPATH = False
516
517# If ENABLE_AUTHOR_PAGES is set to True and there is more than one
518# author, author pages are generated.
519# ENABLE_AUTHOR_PAGES = True
520
521# Path to author pages. Final locations are:
522# output / TRANSLATION[lang] / AUTHOR_PATH / index.html (list of authors)
523# output / TRANSLATION[lang] / AUTHOR_PATH / author.html (list of posts by an author)
524# output / TRANSLATION[lang] / AUTHOR_PATH / author RSS_EXTENSION (RSS feed for an author)
525# (translatable)
526# AUTHOR_PATH = "authors"
527
528# If AUTHOR_PAGES_ARE_INDEXES is set to True, each author's page will contain
529# the posts themselves. If set to False, it will be just a list of links.
530AUTHOR_PAGES_ARE_INDEXES = True
531
532# Set descriptions for author pages to make them more interesting. The
533# default is no description. The value is used in the meta description
534# and displayed underneath the author list or index page’s title.
535# AUTHOR_PAGES_DESCRIPTIONS = {
536# DEFAULT_LANG: {
537# "Juanjo Conti": "Python coder and writer.",
538# "Roberto Alsina": "Nikola father."
539# },
540# }
541
542
543# If you do not want to display an author publicly, you can mark it as hidden.
544# The author will not be displayed on the author list page and posts.
545# Tag pages will still be generated.
546HIDDEN_AUTHORS = ['Guest']
547
548# Final location for the main blog page and sibling paginated pages is
549# output / TRANSLATION[lang] / INDEX_PATH / index-*.html
550# (translatable)
551INDEX_PATH = "updates"
552
553# Optional HTML that displayed on “main” blog index.html files.
554# May be used for a greeting. (translatable)
555FRONT_INDEX_HEADER = {
556 DEFAULT_LANG: ''
557}
558
559# Create per-month archives instead of per-year
560# CREATE_MONTHLY_ARCHIVE = False
561# Create one large archive instead of per-year
562# CREATE_SINGLE_ARCHIVE = False
563# Create year, month, and day archives each with a (long) list of posts
564# (overrides both CREATE_MONTHLY_ARCHIVE and CREATE_SINGLE_ARCHIVE)
565# CREATE_FULL_ARCHIVES = False
566# If monthly archives or full archives are created, adds also one archive per day
567# CREATE_DAILY_ARCHIVE = False
568# Create previous, up, next navigation links for archives
569# CREATE_ARCHIVE_NAVIGATION = False
570# Final locations for the archives are:
571# output / TRANSLATION[lang] / ARCHIVE_PATH / ARCHIVE_FILENAME
572# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / index.html
573# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / index.html
574# output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / DAY / index.html
575# (translatable)
576# ARCHIVE_PATH = ""
577# ARCHIVE_FILENAME = "archive.html"
578
579# If ARCHIVES_ARE_INDEXES is set to True, each archive page which contains a list
580# of posts will contain the posts themselves. If set to False, it will be just a
581# list of links.
582# ARCHIVES_ARE_INDEXES = False
583
584# URLs to other posts/pages can take 3 forms:
585# rel_path: a relative URL to the current page/post (default)
586# full_path: a URL with the full path from the root
587# absolute: a complete URL (that includes the SITE_URL)
588# URL_TYPE = 'rel_path'
589
590# Extension for RSS feed files
591# RSS_EXTENSION = ".xml"
592
593# RSS filename base (without extension); used for indexes and galleries.
594# (translatable)
595# RSS_FILENAME_BASE = "rss"
596
597# Final location for the blog main RSS feed is:
598# output / TRANSLATION[lang] / RSS_PATH / RSS_FILENAME_BASE RSS_EXTENSION
599# (translatable)
600# RSS_PATH = ""
601
602# Final location for the blog main Atom feed is:
603# output / TRANSLATION[lang] / ATOM_PATH / ATOM_FILENAME_BASE ATOM_EXTENSION
604# (translatable)
605# ATOM_PATH = ""
606
607# Atom filename base (without extension); used for indexes.
608# (translatable)
609ATOM_FILENAME_BASE = "feed"
610
611# Extension for Atom feed files
612# ATOM_EXTENSION = ".atom"
613
614# Slug the Tag URL. Easier for users to type, special characters are
615# often removed or replaced as well.
616# SLUG_TAG_PATH = True
617
618# Slug the Author URL. Easier for users to type, special characters are
619# often removed or replaced as well.
620# SLUG_AUTHOR_PATH = True
621
622# A list of redirection tuples, [("foo/from.html", "/bar/to.html")].
623#
624# A HTML file will be created in output/foo/from.html that redirects
625# to the "/bar/to.html" URL. notice that the "from" side MUST be a
626# relative URL.
627#
628# If you don't need any of these, just set to []
629REDIRECTIONS = []
630
631# Presets of commands to execute to deploy. Can be anything, for
632# example, you may use rsync:
633# "rsync -rav --delete output/ joe@my.site:/srv/www/site"
634# And then do a backup, or run `nikola ping` from the `ping`
635# plugin (`nikola plugin -i ping`). Or run `nikola check -l`.
636# You may also want to use github_deploy (see below).
637# You can define multiple presets and specify them as arguments
638# to `nikola deploy`. If no arguments are specified, a preset
639# named `default` will be executed. You can use as many presets
640# in a `nikola deploy` command as you like.
641# DEPLOY_COMMANDS = {
642# 'default': [
643# "rsync -rav --delete output/ joe@my.site:/srv/www/site",
644# ]
645# }
646
647# github_deploy configuration
648# For more details, read the manual:
649# https://getnikola.com/handbook.html#deploying-to-github
650# You will need to configure the deployment branch on GitHub.
651GITHUB_SOURCE_BRANCH = 'src'
652GITHUB_DEPLOY_BRANCH = 'master'
653
654# The name of the remote where you wish to push to, using github_deploy.
655GITHUB_REMOTE_NAME = 'origin'
656
657# Whether or not github_deploy should commit to the source branch automatically
658# before deploying.
659GITHUB_COMMIT_SOURCE = True
660
661# Where the output site should be located
662# If you don't use an absolute path, it will be considered as relative
663# to the location of conf.py
664# OUTPUT_FOLDER = 'output'
665
666# where the "cache" of partial generated content should be located
667# default: 'cache'
668# CACHE_FOLDER = 'cache'
669
670# Filters to apply to the output.
671# A directory where the keys are either: a file extensions, or
672# a tuple of file extensions.
673#
674# And the value is a list of commands to be applied in order.
675#
676# Each command must be either:
677#
678# A string containing a '%s' which will
679# be replaced with a filename. The command *must* produce output
680# in place.
681#
682# Or:
683#
684# A python callable, which will be called with the filename as
685# argument.
686#
687# By default, only .php files uses filters to inject PHP into
688# Nikola’s templates. All other filters must be enabled through FILTERS.
689#
690# Many filters are shipped with Nikola. A list is available in the manual:
691# <https://getnikola.com/handbook.html#post-processing-filters>
692#
693# from nikola import filters
694# FILTERS = {
695# ".html": [filters.typogrify],
696# ".js": [filters.closure_compiler],
697# ".jpg": ["jpegoptim --strip-all -m75 -v %s"],
698# }
699
700# Executable for the "yui_compressor" filter (defaults to 'yui-compressor').
701# YUI_COMPRESSOR_EXECUTABLE = 'yui-compressor'
702
703# Executable for the "closure_compiler" filter (defaults to 'closure-compiler').
704# CLOSURE_COMPILER_EXECUTABLE = 'closure-compiler'
705
706# Executable for the "optipng" filter (defaults to 'optipng').
707# OPTIPNG_EXECUTABLE = 'optipng'
708
709# Executable for the "jpegoptim" filter (defaults to 'jpegoptim').
710# JPEGOPTIM_EXECUTABLE = 'jpegoptim'
711
712# Executable for the "html_tidy_withconfig", "html_tidy_nowrap",
713# "html_tidy_wrap", "html_tidy_wrap_attr" and "html_tidy_mini" filters
714# (defaults to 'tidy5').
715# HTML_TIDY_EXECUTABLE = 'tidy5'
716
717# List of XPath expressions which should be used for finding headers
718# ({hx} is replaced by headers h1 through h6).
719# You must change this if you use a custom theme that does not use
720# "e-content entry-content" as a class for post and page contents.
721# HEADER_PERMALINKS_XPATH_LIST = ['*//div[@class="e-content entry-content"]//{hx}']
722# Include *every* header (not recommended):
723# HEADER_PERMALINKS_XPATH_LIST = ['*//{hx}']
724
725# File blacklist for header permalinks. Contains output path
726# (eg. 'output/index.html')
727# HEADER_PERMALINKS_FILE_BLACKLIST = []
728
729# Expert setting! Create a gzipped copy of each generated file. Cheap server-
730# side optimization for very high traffic sites or low memory servers.
731# GZIP_FILES = False
732# File extensions that will be compressed
733# GZIP_EXTENSIONS = ('.txt', '.htm', '.html', '.css', '.js', '.json', '.atom', '.xml')
734# Use an external gzip command? None means no.
735# Example: GZIP_COMMAND = "pigz -k {filename}"
736# GZIP_COMMAND = None
737# Make sure the server does not return a "Accept-Ranges: bytes" header for
738# files compressed by this option! OR make sure that a ranged request does not
739# return partial content of another representation for these resources. Do not
740# use this feature if you do not understand what this means.
741
742# #############################################################################
743# Image Gallery Options
744# #############################################################################
745
746# One or more folders containing galleries. The format is a dictionary of
747# {"source": "relative_destination"}, where galleries are looked for in
748# "source/" and the results will be located in
749# "OUTPUT_PATH/relative_destination/gallery_name"
750# Default is:
751# GALLERY_FOLDERS = {"galleries": "galleries"}
752# More gallery options:
753# THUMBNAIL_SIZE = 180
754# MAX_IMAGE_SIZE = 1280
755# USE_FILENAME_AS_TITLE = True
756# EXTRA_IMAGE_EXTENSIONS = []
757#
758# If set to False, it will sort by filename instead. Defaults to True
759# GALLERY_SORT_BY_DATE = True
760
761# If set to True, EXIF data will be copied when an image is thumbnailed or
762# resized. (See also EXIF_WHITELIST)
763# PRESERVE_EXIF_DATA = False
764
765# If you have enabled PRESERVE_EXIF_DATA, this option lets you choose EXIF
766# fields you want to keep in images. (See also PRESERVE_EXIF_DATA)
767#
768# For a full list of field names, please see here:
769# http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf
770#
771# This is a dictionary of lists. Each key in the dictionary is the
772# name of a IDF, and each list item is a field you want to preserve.
773# If you have a IDF with only a '*' item, *EVERY* item in it will be
774# preserved. If you don't want to preserve anything in a IDF, remove it
775# from the setting. By default, no EXIF information is kept.
776# Setting the whitelist to anything other than {} implies
777# PRESERVE_EXIF_DATA is set to True
778# To preserve ALL EXIF data, set EXIF_WHITELIST to {"*": "*"}
779
780# EXIF_WHITELIST = {}
781
782# Some examples of EXIF_WHITELIST settings:
783
784# Basic image information:
785# EXIF_WHITELIST['0th'] = [
786# "Orientation",
787# "XResolution",
788# "YResolution",
789# ]
790
791# If you want to keep GPS data in the images:
792# EXIF_WHITELIST['GPS'] = ["*"]
793
794# Embedded thumbnail information:
795# EXIF_WHITELIST['1st'] = ["*"]
796
797# If set to True, any ICC profile will be copied when an image is thumbnailed or
798# resized.
799# PRESERVE_ICC_PROFILES = False
800
801# Folders containing images to be used in normal posts or pages.
802# IMAGE_FOLDERS is a dictionary of the form {"source": "destination"},
803# where "source" is the folder containing the images to be published, and
804# "destination" is the folder under OUTPUT_PATH containing the images copied
805# to the site. Thumbnail images will be created there as well.
806
807# To reference the images in your posts, include a leading slash in the path.
808# For example, if IMAGE_FOLDERS = {'images': 'images'}, write
809#
810# .. image:: /images/tesla.jpg
811#
812# See the Nikola Handbook for details (in the “Embedding Images” and
813# “Thumbnails” sections)
814
815# Images will be scaled down according to IMAGE_THUMBNAIL_SIZE and MAX_IMAGE_SIZE
816# options, but will have to be referenced manually to be visible on the site
817# (the thumbnail has ``.thumbnail`` added before the file extension by default,
818# but a different naming template can be configured with IMAGE_THUMBNAIL_FORMAT).
819
820IMAGE_FOLDERS = {'images': 'images'}
821# IMAGE_THUMBNAIL_SIZE = 400
822IMAGE_THUMBNAIL_FORMAT = 'thumbs/{name}{ext}'
823
824# #############################################################################
825# HTML fragments and diverse things that are used by the templates
826# #############################################################################
827
828# Data about post-per-page indexes.
829# INDEXES_PAGES defaults to ' old posts, page %d' or ' page %d' (translated),
830# depending on the value of INDEXES_PAGES_MAIN.
831#
832# (translatable) If the following is empty, defaults to BLOG_TITLE:
833# INDEXES_TITLE = ""
834#
835# (translatable) If the following is empty, defaults to ' [old posts,] page %d' (see above):
836# INDEXES_PAGES = ""
837#
838# If the following is True, INDEXES_PAGES is also displayed on the main (the
839# newest) index page (index.html):
840# INDEXES_PAGES_MAIN = False
841#
842# If the following is True, index-1.html has the oldest posts, index-2.html the
843# second-oldest posts, etc., and index.html has the newest posts. This ensures
844# that all posts on index-x.html will forever stay on that page, now matter how
845# many new posts are added.
846# If False, index-1.html has the second-newest posts, index-2.html the third-newest,
847# and index-n.html the oldest posts. When this is active, old posts can be moved
848# to other index pages when new posts are added.
849# INDEXES_STATIC = True
850#
851# (translatable) If PRETTY_URLS is set to True, this setting will be used to create
852# prettier URLs for index pages, such as page/2/index.html instead of index-2.html.
853# Valid values for this settings are:
854# * False,
855# * a list or tuple, specifying the path to be generated,
856# * a dictionary mapping languages to lists or tuples.
857# Every list or tuple must consist of strings which are used to combine the path;
858# for example:
859# ['page', '{number}', '{index_file}']
860# The replacements
861# {number} --> (logical) page number;
862# {old_number} --> the page number inserted into index-n.html before (zero for
863# the main page);
864# {index_file} --> value of option INDEX_FILE
865# are made.
866# Note that in case INDEXES_PAGES_MAIN is set to True, a redirection will be created
867# for the full URL with the page number of the main page to the normal (shorter) main
868# page URL.
869# INDEXES_PRETTY_PAGE_URL = False
870#
871# If the following is true, a page range navigation will be inserted to indices.
872# Please note that this will undo the effect of INDEXES_STATIC, as all index pages
873# must be recreated whenever the number of pages changes.
874# SHOW_INDEX_PAGE_NAVIGATION = False
875
876# If the following is True, a meta name="generator" tag is added to pages. The
877# generator tag is used to specify the software used to generate the page
878# (it promotes Nikola).
879# META_GENERATOR_TAG = True
880
881# Color scheme to be used for code blocks. If your theme provides
882# "assets/css/code.css" this is ignored. Set to None to disable.
883# Can be any of:
884# algol, algol_nu, autumn, borland, bw, colorful, default, emacs, friendly,
885# fruity, igor, lovelace, manni, monokai, murphy, native, paraiso-dark,
886# paraiso-light, pastie, perldoc, rrt, tango, trac, vim, vs, xcode
887# This list MAY be incomplete since pygments adds styles every now and then.
888# Check with list(pygments.styles.get_all_styles()) in an interpreter.
889#
890# CODE_COLOR_SCHEME = 'default'
891
892# FAVICONS contains (name, file, size) tuples.
893# Used to create favicon link like this:
894# <link rel="name" href="file" sizes="size"/>
895# FAVICONS = (
896# ("icon", "/favicon.ico", "16x16"),
897# ("icon", "/icon_128x128.png", "128x128"),
898# )
899
900# Show teasers (instead of full posts) in indexes? Defaults to False.
901# INDEX_TEASERS = False
902
903# HTML fragments with the Read more... links.
904# The following tags exist and are replaced for you:
905# {link} A link to the full post page.
906# {read_more} The string “Read more” in the current language.
907# {reading_time} An estimate of how long it will take to read the post.
908# {remaining_reading_time} An estimate of how long it will take to read the post, sans the teaser.
909# {min_remaining_read} The string “{remaining_reading_time} min remaining to read” in the current language.
910# {paragraph_count} The amount of paragraphs in the post.
911# {remaining_paragraph_count} The amount of paragraphs in the post, sans the teaser.
912# {post_title} The title of the post.
913# {{ A literal { (U+007B LEFT CURLY BRACKET)
914# }} A literal } (U+007D RIGHT CURLY BRACKET)
915
916# 'Read more...' for the index page, if INDEX_TEASERS is True (translatable)
917INDEX_READ_MORE_LINK = '<p class="more"><a href="{link}">{read_more}…</a></p>'
918# 'Read more...' for the feeds, if FEED_TEASERS is True (translatable)
919FEED_READ_MORE_LINK = '<p><a href="{link}">{read_more}…</a> ({min_remaining_read})</p>'
920
921# Append a URL query to the FEED_READ_MORE_LINK in Atom and RSS feeds. Advanced
922# option used for traffic source tracking.
923# Minimum example for use with Piwik: "pk_campaign=feed"
924# The following tags exist and are replaced for you:
925# {feedRelUri} A relative link to the feed.
926# {feedFormat} The name of the syndication format.
927# Example using replacement for use with Google Analytics:
928# "utm_source={feedRelUri}&utm_medium=nikola_feed&utm_campaign={feedFormat}_feed"
929FEED_LINKS_APPEND_QUERY = False
930
931# A HTML fragment describing the license, for the sidebar.
932# (translatable)
933LICENSE = ""
934# I recommend using the Creative Commons' wizard:
935# https://creativecommons.org/choose/
936# LICENSE = """
937# <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
938# <img alt="Creative Commons License BY-NC-SA"
939# style="border-width:0; margin-bottom:12px;"
940# src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"></a>"""
941
942# A small copyright notice for the page footer (in HTML).
943# (translatable)
944CONTENT_FOOTER = """<div class="container-fluid text-muted bg-light shadow-sm mt-3 py-2">
945 <div class="row justify-content-center text-center">
946 <div class="col-6">
947 <a href="/impressum">Impressum</a>
948 </div>
949 <div class="col-6">
950 <a href="/datenschutz">Privacy policy</a>
951 </div>
952 </div>
953</div>
954"""
955
956# Things that will be passed to CONTENT_FOOTER.format(). This is done
957# for translatability, as dicts are not formattable. Nikola will
958# intelligently format the setting properly.
959# The setting takes a dict. The keys are languages. The values are
960# tuples of tuples of positional arguments and dicts of keyword arguments
961# to format(). For example, {'en': (('Hello'), {'target': 'World'})}
962# results in CONTENT_FOOTER['en'].format('Hello', target='World').
963# If you need to use the literal braces '{' and '}' in your footer text, use
964# '{{' and '}}' to escape them (str.format is used)
965# WARNING: If you do not use multiple languages with CONTENT_FOOTER, this
966# still needs to be a dict of this format. (it can be empty if you
967# do not need formatting)
968# (translatable)
969CONTENT_FOOTER_FORMATS = {
970 DEFAULT_LANG: (
971 (),
972 {
973 "email": BLOG_EMAIL,
974 "author": BLOG_AUTHOR,
975 "date": time.gmtime().tm_year,
976 "license": LICENSE
977 }
978 )
979}
980
981# A simple copyright tag for inclusion in RSS feeds that works just
982# like CONTENT_FOOTER and CONTENT_FOOTER_FORMATS
983RSS_COPYRIGHT = 'Contents © {date} <a href="mailto:{email}">{author}</a> {license}'
984RSS_COPYRIGHT_PLAIN = 'Contents © {date} {author} {license}'
985RSS_COPYRIGHT_FORMATS = CONTENT_FOOTER_FORMATS
986
987# To use comments, you can choose between different third party comment
988# systems. The following comment systems are supported by Nikola:
989# disqus, facebook, intensedebate, isso, muut, commento
990# You can leave this option blank to disable comments.
991COMMENT_SYSTEM = ""
992# And you also need to add your COMMENT_SYSTEM_ID which
993# depends on what comment system you use. The default is
994# "nikolademo" which is a test account for Disqus. More information
995# is in the manual.
996COMMENT_SYSTEM_ID = ""
997
998# Create index.html for page folders?
999# WARNING: if a page would conflict with the index file (usually
1000# caused by setting slug to `index`), the PAGE_INDEX
1001# will not be generated for that directory.
1002# PAGE_INDEX = False
1003# Enable comments on pages (i.e. not posts)?
1004# COMMENTS_IN_PAGES = False
1005# Enable comments on picture gallery pages?
1006# COMMENTS_IN_GALLERIES = False
1007
1008# What file should be used for directory indexes?
1009# Defaults to index.html
1010# Common other alternatives: default.html for IIS, index.php
1011# INDEX_FILE = "index.html"
1012
1013# If a link ends in /index.html, drop the index.html part.
1014# http://mysite/foo/bar/index.html => http://mysite/foo/bar/
1015# (Uses the INDEX_FILE setting, so if that is, say, default.html,
1016# it will instead /foo/default.html => /foo)
1017STRIP_INDEXES = True
1018
1019# List of files relative to the server root (!) that will be asked to be excluded
1020# from indexing and other robotic spidering. * is supported. Will only be effective
1021# if SITE_URL points to server root. The list is used to exclude resources from
1022# /robots.txt and /sitemap.xml, and to inform search engines about /sitemapindex.xml.
1023# ROBOTS_EXCLUSIONS = ["/archive.html", "/category/*.html"]
1024
1025# Instead of putting files in <slug>.html, put them in <slug>/index.html.
1026# No web server configuration is required. Also enables STRIP_INDEXES.
1027# This can be disabled on a per-page/post basis by adding
1028# .. pretty_url: False
1029# to the metadata.
1030PRETTY_URLS = True
1031
1032# If True, publish future dated posts right away instead of scheduling them.
1033# Defaults to False.
1034# FUTURE_IS_NOW = False
1035
1036# If True, future dated posts are allowed in deployed output
1037# Only the individual posts are published/deployed; not in indexes/sitemap
1038# Generally, you want FUTURE_IS_NOW and DEPLOY_FUTURE to be the same value.
1039# DEPLOY_FUTURE = False
1040# If False, draft posts will not be deployed
1041# DEPLOY_DRAFTS = True
1042
1043# Allows scheduling of posts using the rule specified here (new_post -s)
1044# Specify an iCal Recurrence Rule: http://www.kanzaki.com/docs/ical/rrule.html
1045# SCHEDULE_RULE = ''
1046# If True, use the scheduling rule to all posts (not pages!) by default
1047# SCHEDULE_ALL = False
1048
1049# Do you want a add a Mathjax config file?
1050# MATHJAX_CONFIG = ""
1051
1052# If you want support for the $.$ syntax (which may conflict with running
1053# text!), just use this config:
1054# MATHJAX_CONFIG = """
1055# <script type="text/x-mathjax-config">
1056# MathJax.Hub.Config({
1057# tex2jax: {
1058# inlineMath: [ ['$','$'], ["\\\(","\\\)"] ],
1059# displayMath: [ ['$$','$$'], ["\\\[","\\\]"] ],
1060# processEscapes: true
1061# },
1062# displayAlign: 'center', // Change this to 'left' if you want left-aligned equations.
1063# "HTML-CSS": {
1064# styles: {'.MathJax_Display': {"margin": 0}}
1065# }
1066# });
1067# </script>
1068# """
1069
1070# Want to use KaTeX instead of MathJax? While KaTeX may not support every
1071# feature yet, it's faster and the output looks better.
1072# USE_KATEX = False
1073
1074# KaTeX auto-render settings. If you want support for the $.$ syntax (which may
1075# conflict with running text!), just use this config:
1076# KATEX_AUTO_RENDER = """
1077# delimiters: [
1078# {left: "$$", right: "$$", display: true},
1079# {left: "\\\\[", right: "\\\\]", display: true},
1080# {left: "\\\\begin{equation*}", right: "\\\\end{equation*}", display: true},
1081# {left: "$", right: "$", display: false},
1082# {left: "\\\\(", right: "\\\\)", display: false}
1083# ]
1084# """
1085
1086# Do you want to customize the nbconversion of your IPython notebook?
1087# IPYNB_CONFIG = {}
1088# With the following example configuration you can use a custom jinja template
1089# called `toggle.tpl` which has to be located in your site/blog main folder:
1090# IPYNB_CONFIG = {'Exporter': {'template_file': 'toggle'}}
1091
1092# What Markdown extensions to enable?
1093# You will also get gist, nikola and podcast because those are
1094# done in the code, hope you don't mind ;-)
1095# Note: most Nikola-specific extensions are done via the Nikola plugin system,
1096# with the MarkdownExtension class and should not be added here.
1097# Defaults are markdown.extensions.(fenced_code|codehilite|extra)
1098# markdown.extensions.meta is required for Markdown metadata.
1099MARKDOWN_EXTENSIONS = ['markdown.extensions.fenced_code', 'markdown.extensions.codehilite', 'markdown.extensions.extra', 'markdown.extensions.meta']
1100
1101# Options to be passed to markdown extensions (See https://python-markdown.github.io/reference/)
1102# Default is {} (no config at all)
1103# MARKDOWN_EXTENSION_CONFIGS = {}
1104
1105
1106# Extra options to pass to the pandoc command.
1107# by default, it's empty, is a list of strings, for example
1108# ['-F', 'pandoc-citeproc', '--bibliography=/Users/foo/references.bib']
1109# Pandoc does not demote headers by default. To enable this, you can use, for example
1110# ['--base-header-level=2']
1111# PANDOC_OPTIONS = []
1112
1113# Social buttons. This is sample code for AddThis (which was the default for a
1114# long time). Insert anything you want here, or even make it empty (which is
1115# the default right now)
1116# (translatable)
1117# SOCIAL_BUTTONS_CODE = """
1118# <!-- Social buttons -->
1119# <div id="addthisbox" class="addthis_toolbox addthis_peekaboo_style addthis_default_style addthis_label_style addthis_32x32_style">
1120# <a class="addthis_button_more">Share</a>
1121# <ul><li><a class="addthis_button_facebook"></a>
1122# <li><a class="addthis_button_google_plusone_share"></a>
1123# <li><a class="addthis_button_linkedin"></a>
1124# <li><a class="addthis_button_twitter"></a>
1125# </ul>
1126# </div>
1127# <script src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f7088a56bb93798"></script>
1128# <!-- End of social buttons -->
1129# """
1130
1131# Show link to source for the posts?
1132SHOW_SOURCELINK = False
1133# Copy the source files for your pages?
1134# Setting it to False implies SHOW_SOURCELINK = False
1135COPY_SOURCES = False
1136
1137# Modify the number of Post per Index Page
1138# Defaults to 10
1139INDEX_DISPLAY_POST_COUNT = 25
1140
1141# By default, Nikola generates RSS files for the website and for tags, and
1142# links to it. Set this to False to disable everything RSS-related.
1143# GENERATE_RSS = True
1144
1145# By default, Nikola does not generates Atom files for indexes and links to
1146# them. Generate Atom for tags by setting TAG_PAGES_ARE_INDEXES to True.
1147# Atom feeds are built based on INDEX_DISPLAY_POST_COUNT and not FEED_LENGTH
1148# Switch between plain-text summaries and full HTML content using the
1149# FEED_TEASER option. FEED_LINKS_APPEND_QUERY is also respected. Atom feeds
1150# are generated even for old indexes and have pagination link relations
1151# between each other. Old Atom feeds with no changes are marked as archived.
1152# GENERATE_ATOM = False
1153
1154# Only include teasers in Atom and RSS feeds. Disabling include the full
1155# content. Defaults to True.
1156# FEED_TEASERS = True
1157
1158# Strip HTML from Atom and RSS feed summaries and content. Defaults to False.
1159# FEED_PLAIN = False
1160
1161# Number of posts in Atom and RSS feeds.
1162# FEED_LENGTH = 10
1163
1164# RSS_LINK is a HTML fragment to link the RSS or Atom feeds. If set to None,
1165# the base.tmpl will use the feed Nikola generates. However, you may want to
1166# change it for a FeedBurner feed or something else.
1167# RSS_LINK = None
1168
1169# A search form to search this site, for the sidebar. You can use a Google
1170# custom search (https://www.google.com/cse/)
1171# Or a DuckDuckGo search: https://duckduckgo.com/search_box.html
1172# Default is no search form.
1173# (translatable)
1174# SEARCH_FORM = ""
1175#
1176# This search form works for any site and looks good in the "site" theme where
1177# it appears on the navigation bar:
1178#
1179# SEARCH_FORM = """
1180# <!-- DuckDuckGo custom search -->
1181# <form method="get" id="search" action="https://duckduckgo.com/"
1182# class="navbar-form pull-left">
1183# <input type="hidden" name="sites" value="%s">
1184# <input type="hidden" name="k8" value="#444444">
1185# <input type="hidden" name="k9" value="#D51920">
1186# <input type="hidden" name="kt" value="h">
1187# <input type="text" name="q" maxlength="255"
1188# placeholder="Search&hellip;" class="span2" style="margin-top: 4px;">
1189# <input type="submit" value="DuckDuckGo Search" style="visibility: hidden;">
1190# </form>
1191# <!-- End of custom search -->
1192# """ % SITE_URL
1193#
1194# If you prefer a Google search form, here's an example that should just work:
1195# SEARCH_FORM = """
1196# <!-- Google custom search -->
1197# <form method="get" action="https://www.google.com/search" class="navbar-form navbar-right" role="search">
1198# <div class="form-group">
1199# <input type="text" name="q" class="form-control" placeholder="Search">
1200# </div>
1201# <button type="submit" class="btn btn-primary">
1202# <span class="glyphicon glyphicon-search"></span>
1203# </button>
1204# <input type="hidden" name="sitesearch" value="%s">
1205# </form>
1206# <!-- End of custom search -->
1207# """ % SITE_URL
1208
1209SEARCH_FORM = """
1210<form class="navbar-form navbar-right" action="/search/" role="search">
1211 <div class="search">
1212 <div class="search-child-absolute">
1213 <input class="search-input" type="text" class="form-control" id="tipue_search_input" name="q" placeholder="Search" autocomplete="off" required="">
1214 </div>
1215 </div>
1216 <button type="submit" class="d-none btn btn-action">Search</button>
1217</form>
1218"""
1219
1220# Use content distribution networks for jQuery, twitter-bootstrap css and js,
1221# and html5shiv (for older versions of Internet Explorer)
1222# If this is True, jQuery and html5shiv are served from the Google CDN and
1223# Bootstrap is served from BootstrapCDN (provided by MaxCDN)
1224# Set this to False if you want to host your site without requiring access to
1225# external resources.
1226USE_CDN = False
1227
1228# Check for USE_CDN compatibility.
1229# If you are using custom themes, have configured the CSS properly and are
1230# receiving warnings about incompatibility but believe they are incorrect, you
1231# can set this to False.
1232# USE_CDN_WARNING = True
1233
1234# Extra things you want in the pages HEAD tag. This will be added right
1235# before </head>
1236# (translatable)
1237# EXTRA_HEAD_DATA = ""
1238EXTRA_HEAD_DATA = """
1239<link rel="stylesheet" type="text/css" href="/assets/css/tipuesearch.css">
1240"""
1241
1242# Google Analytics or whatever else you use. Added to the bottom of <body>
1243# in the default template (base.tmpl).
1244# (translatable)
1245# BODY_END = ""
1246
1247# The possibility to extract metadata from the filename by using a
1248# regular expression.
1249# To make it work you need to name parts of your regular expression.
1250# The following names will be used to extract metadata:
1251# - title
1252# - slug
1253# - date
1254# - tags
1255# - link
1256# - description
1257#
1258# An example re is the following:
1259# '.*\/(?P<date>\d{4}-\d{2}-\d{2})-(?P<slug>.*)-(?P<title>.*)\.rst'
1260# (Note the '.*\/' in the beginning -- matches source paths relative to conf.py)
1261# FILE_METADATA_REGEXP = None
1262
1263# Should titles fetched from file metadata be unslugified (made prettier?)
1264# FILE_METADATA_UNSLUGIFY_TITLES = True
1265
1266# If enabled, extract metadata from docinfo fields in reST documents.
1267# If your text files start with a level 1 heading, it will be treated as the
1268# document title and will be removed from the text.
1269# USE_REST_DOCINFO_METADATA = False
1270
1271# If enabled, hide docinfo fields in reST document output
1272# HIDE_REST_DOCINFO = False
1273
1274# Map metadata from other formats to Nikola names.
1275# Supported formats: yaml, toml, rest_docinfo, markdown_metadata
1276# METADATA_MAPPING = {}
1277#
1278# Example for Pelican compatibility:
1279# METADATA_MAPPING = {
1280# "rest_docinfo": {"summary": "description", "modified": "updated"},
1281# "markdown_metadata": {"summary": "description", "modified": "updated"}
1282# }
1283# Other examples: https://getnikola.com/handbook.html#mapping-metadata-from-other-formats
1284
1285# Map metadata between types/values. (Runs after METADATA_MAPPING.)
1286# Supported formats: nikola, yaml, toml, rest_docinfo, markdown_metadata
1287# The value on the right should be a dict of callables.
1288# METADATA_VALUE_MAPPING = {}
1289# Examples:
1290# METADATA_VALUE_MAPPING = {
1291# "yaml": {"keywords": lambda value: ', '.join(value)}, # yaml: 'keywords' list -> str
1292# "nikola": {
1293# "widgets": lambda value: value.split(', '), # nikola: 'widgets' comma-separated string -> list
1294# "tags": str.lower # nikola: force lowercase 'tags' (input would be string)
1295# }
1296# }
1297
1298# Additional metadata that is added to a post when creating a new_post
1299# ADDITIONAL_METADATA = {}
1300
1301# Nikola supports Twitter Card summaries, but they are disabled by default.
1302# They make it possible for you to attach media to Tweets that link
1303# to your content.
1304#
1305# Uncomment and modify to following lines to match your accounts.
1306# Images displayed come from the `previewimage` meta tag.
1307# You can specify the card type by using the `card` parameter in TWITTER_CARD.
1308# TWITTER_CARD = {
1309# # 'use_twitter_cards': True, # enable Twitter Cards
1310# # 'card': 'summary', # Card type, you can also use 'summary_large_image',
1311# # see https://dev.twitter.com/cards/types
1312# # 'site': '@website', # twitter nick for the website
1313# # 'creator': '@username', # Username for the content creator / author.
1314# }
1315
1316# Bundle JS and CSS into single files to make site loading faster in a HTTP/1.1
1317# environment but is not recommended for HTTP/2.0 when caching is used.
1318# Defaults to True.
1319# USE_BUNDLES = True
1320
1321# Plugins you don't want to use. Be careful :-)
1322# DISABLED_PLUGINS = ["render_galleries"]
1323
1324# Special settings to disable only parts of the indexes plugin.
1325# Use with care.
1326# DISABLE_INDEXES = False
1327# DISABLE_MAIN_ATOM_FEED = False
1328# DISABLE_MAIN_RSS_FEED = False
1329
1330# Add the absolute paths to directories containing plugins to use them.
1331# For example, the `plugins` directory of your clone of the Nikola plugins
1332# repository.
1333# EXTRA_PLUGINS_DIRS = []
1334
1335# Add the absolute paths to directories containing themes to use them.
1336# For example, the `v7` directory of your clone of the Nikola themes
1337# repository.
1338# EXTRA_THEMES_DIRS = []
1339
1340# List of regular expressions, links matching them will always be considered
1341# valid by "nikola check -l"
1342# LINK_CHECK_WHITELIST = []
1343
1344# If set to True, enable optional hyphenation in your posts (requires pyphen)
1345# Enabling hyphenation has been shown to break math support in some cases,
1346# use with caution.
1347# HYPHENATE = False
1348
1349# The <hN> tags in HTML generated by certain compilers (reST/Markdown)
1350# will be demoted by that much (1 → h1 will become h2 and so on)
1351# This was a hidden feature of the Markdown and reST compilers in the
1352# past. Useful especially if your post titles are in <h1> tags too, for
1353# example.
1354# (defaults to 1.)
1355# DEMOTE_HEADERS = 1
1356
1357# If you don’t like slugified file names ([a-z0-9] and a literal dash),
1358# and would prefer to use all the characters your file system allows.
1359# USE WITH CARE! This is also not guaranteed to be perfect, and may
1360# sometimes crash Nikola, your web server, or eat your cat.
1361# USE_SLUGIFY = True
1362
1363# If set to True, the tags 'draft', 'mathjax' and 'private' have special
1364# meaning. If set to False, these tags are handled like regular tags.
1365USE_TAG_METADATA = False
1366
1367# If set to True, a warning is issued if one of the 'draft', 'mathjax'
1368# and 'private' tags are found in a post. Useful for checking that
1369# migration was successful.
1370WARN_ABOUT_TAG_METADATA = False
1371
1372# Templates will use those filters, along with the defaults.
1373# Consult your engine's documentation on filters if you need help defining
1374# those.
1375# TEMPLATE_FILTERS = {}
1376
1377# Put in global_context things you want available on all your templates.
1378# It can be anything, data, functions, modules, etc.
1379GLOBAL_CONTEXT = { }
1380
1381# Add functions here and they will be called with template
1382# GLOBAL_CONTEXT as parameter when the template is about to be
1383# rendered
1384GLOBAL_CONTEXT_FILLER = []