diff options
Diffstat (limited to 'nikola/conf.py.in')
| -rw-r--r-- | nikola/conf.py.in | 591 |
1 files changed, 365 insertions, 226 deletions
diff --git a/nikola/conf.py.in b/nikola/conf.py.in index 5010278..4546460 100644 --- a/nikola/conf.py.in +++ b/nikola/conf.py.in @@ -1,7 +1,6 @@ ## -*- coding: utf-8 -*- # -*- coding: utf-8 -*- -from __future__ import unicode_literals import time # !! This is the configuration of Nikola. !! # @@ -57,7 +56,7 @@ TRANSLATIONS = ${TRANSLATIONS} # this pattern is also used for metadata: # something.meta -> something.pl.meta -TRANSLATIONS_PATTERN = ${TRANSLATIONS_PATTERN} +TRANSLATIONS_PATTERN = '{path}.{lang}.{ext}' # Links for the sidebar / navigation bar. (translatable) # This is a dict. The keys are languages, and values are tuples. @@ -76,9 +75,9 @@ TRANSLATIONS_PATTERN = ${TRANSLATIONS_PATTERN} # # WARNING: Support for submenus is theme-dependent. # Only one level of submenus is supported. -# WARNING: Some themes, including the default Bootstrap 3 theme, +# WARNING: Some themes, including the default Bootstrap 4 theme, # may present issues if the menu is too large. -# (in bootstrap3, the navbar can grow too large and cover contents.) +# (in Bootstrap, the navbar can grow too large and cover contents.) # WARNING: If you link to directories, make sure to follow # ``STRIP_INDEXES``. If it’s set to ``True``, end your links # with a ``/``, otherwise end them with ``/index.html`` — or @@ -86,14 +85,61 @@ TRANSLATIONS_PATTERN = ${TRANSLATIONS_PATTERN} NAVIGATION_LINKS = ${NAVIGATION_LINKS} +# Alternative navigation links. Works the same way NAVIGATION_LINKS does, +# although themes may not always support them. (translatable) +# (Bootstrap 4: right-side of navbar, Bootblog 4: right side of title) +NAVIGATION_ALT_LINKS = { + DEFAULT_LANG: () +} + # Name of the theme to use. THEME = ${THEME} -# Primary color of your theme. This will be used to customize your theme and -# auto-generate related colors in POSTS_SECTION_COLORS. Must be a HEX value. +# A theme color. In default themes, it might be displayed by some browsers as +# the browser UI color (eg. Chrome on Android). Other themes might also use it +# as an accent color (the default ones don’t). Must be a HEX value. THEME_COLOR = '#5670d4' +# Theme configuration. Fully theme-dependent. (translatable) +# Samples for bootblog4 (enabled) and bootstrap4 (commented) follow. +# bootblog4 supports: featured_large featured_small featured_on_mobile +# featured_large_image_on_mobile featured_strip_html sidebar +# bootstrap4 supports: navbar_light (defaults to False) +# navbar_custom_bg (defaults to '') + +# Config for bootblog4: +THEME_CONFIG = { + DEFAULT_LANG: { + # Show the latest featured post in a large box, with the previewimage as its background. + 'featured_large': False, + # Show the first (remaining) two featured posts in small boxes. + 'featured_small': False, + # Show featured posts on mobile. + 'featured_on_mobile': True, + # Show image in `featured_large` on mobile. + # `featured_small` displays them only on desktop. + 'featured_large_image_on_mobile': True, + # Strip HTML from featured post text. + 'featured_strip_html': False, + # Contents of the sidebar, If empty, the sidebar is not displayed. + 'sidebar': '' + } +} +# Config for bootstrap4: +# THEME_CONFIG = { +# DEFAULT_LANG: { +# # Use a light navbar with dark text. Defaults to False. +# 'navbar_light': False, +# # Use a custom navbar color. If unset, 'navbar_light' sets text + +# # background color. If set, navbar_light controls only background +# # color. Supported values: bg-dark, bg-light, bg-primary, bg-secondary, +# # bg-success, bg-danger, bg-warning, bg-info, bg-white, bg-transparent. +# 'navbar_custom_bg': '', +# } +# } + # POSTS and PAGES contains (wildcard, destination, template) tuples. +# (translatable) # # The wildcard is used to generate a list of source files # (whatever/thing.rst, for example). @@ -119,6 +165,12 @@ THEME_COLOR = '#5670d4' # to feeds, indexes, tag lists and archives and are considered part # of a blog, while PAGES are just independent HTML pages. # +# Finally, note that destination can be translated, i.e. you can +# specify a different translation folder per language. Example: +# PAGES = ( +# ("pages/*.rst", {"en": "pages", "de": "seiten"}, "page.tmpl"), +# ("pages/*.md", {"en": "pages", "de": "seiten"}, "page.tmpl"), +# ) POSTS = ${POSTS} PAGES = ${PAGES} @@ -143,36 +195,29 @@ TIMEZONE = ${TIMEZONE} # FORCE_ISO8601 = False # Date format used to display post dates. (translatable) -# (str used by datetime.datetime.strftime) -# DATE_FORMAT = '%Y-%m-%d %H:%M' +# Used by babel.dates, CLDR style: http://cldr.unicode.org/translation/date-time +# You can also use 'full', 'long', 'medium', or 'short' +# DATE_FORMAT = 'yyyy-MM-dd HH:mm' # Date format used to display post dates, if local dates are used. (translatable) -# (str used by moment.js) -# JS_DATE_FORMAT = 'YYYY-MM-DD HH:mm' +# Used by Luxon: https://moment.github.io/luxon/docs/manual/formatting +# Example for presets: {'preset': True, 'format': 'DATE_FULL'} +# LUXON_DATE_FORMAT = { +# DEFAULT_LANG: {'preset': False, 'format': 'yyyy-MM-dd HH:mm'}, +# } # Date fanciness. # -# 0 = using DATE_FORMAT and TIMEZONE -# 1 = using JS_DATE_FORMAT and local user time (via moment.js) -# 2 = using a string like “2 days ago” +# 0 = using DATE_FORMAT and TIMEZONE (without JS) +# 1 = using LUXON_DATE_FORMAT and local user time (JS, using Luxon) +# 2 = using a string like “2 days ago” (JS, using Luxon) # -# Your theme must support it, bootstrap and bootstrap3 already do. +# Your theme must support it, Bootstrap already does. # DATE_FANCINESS = 0 -# While Nikola can select a sensible locale for each language, -# sometimes explicit control can come handy. -# In this file we express locales in the string form that -# python's locales will accept in your OS, by example -# "en_US.utf8" in Unix-like OS, "English_United States" in Windows. -# LOCALES = dict mapping language --> explicit locale for the languages -# in TRANSLATIONS. You can omit one or more keys. -# LOCALE_FALLBACK = locale to use when an explicit locale is unavailable -# LOCALE_DEFAULT = locale to use for languages not mentioned in LOCALES; if -# not set the default Nikola mapping is used. - +# Customize the locale/region used for a language. +# For example, to use British instead of US English: LOCALES = {'en': 'en_GB'} # LOCALES = {} -# LOCALE_FALLBACK = None -# LOCALE_DEFAULT = None # One or more folders containing files to be copied as-is into the output. # The format is a dictionary of {source: relative destination}. @@ -190,20 +235,42 @@ TIMEZONE = ${TIMEZONE} # Feel free to add or delete extensions to any list, but don't add any new # compilers unless you write the interface for it yourself. # +# The default compiler for `new_post` is the first entry in the POSTS tuple. +# # 'rest' is reStructuredText -# 'markdown' is MarkDown +# 'markdown' is Markdown # 'html' assumes the file is HTML and just copies it COMPILERS = ${COMPILERS} +# Enable reST directives that insert the contents of external files such +# as "include" and "raw." This maps directly to the docutils file_insertion_enabled +# config. See: http://docutils.sourceforge.net/docs/user/config.html#file-insertion-enabled +# REST_FILE_INSERTION_ENABLED = True + # Create by default posts in one file format? # Set to False for two-file posts, with separate metadata. # ONE_FILE_POSTS = True +# Preferred metadata format for new posts +# "Nikola": reST comments, wrapped in a HTML comment if needed (default) +# "YAML": YAML wrapped in "---" +# "TOML": TOML wrapped in "+++" +# "Pelican": Native markdown metadata or reST docinfo fields. Nikola style for other formats. +# METADATA_FORMAT = "Nikola" + +# Use date-based path when creating posts? +# Can be enabled on a per-post basis with `nikola new_post -d`. +# The setting is ignored when creating pages. +# NEW_POST_DATE_PATH = False + +# What format to use when creating posts with date paths? +# Default is '%Y/%m/%d', other possibilities include '%Y' or '%Y/%m'. +# NEW_POST_DATE_PATH_FORMAT = '%Y/%m/%d' + # If this is set to True, the DEFAULT_LANG version will be displayed for # untranslated posts. # If this is set to False, then posts that are not translated to a language # LANG will not be visible at all in the pages in that language. -# Formerly known as HIDE_UNTRANSLATED_POSTS (inverse) # SHOW_UNTRANSLATED_POSTS = True # Nikola supports logo display. If you have one, you can put the URL here. @@ -211,77 +278,33 @@ COMPILERS = ${COMPILERS} # The URL may be relative to the site root. # LOGO_URL = '' +# When linking posts to social media, Nikola provides Open Graph metadata +# which is used to show a nice preview. This includes an image preview +# taken from the post's previewimage metadata field. +# This option lets you use an image to be used if the post doesn't have it. +# The default is None, valid values are URLs or output paths like +# "/images/foo.jpg" +# DEFAULT_PREVIEW_IMAGE = None + # If you want to hide the title of your website (for example, if your logo # already contains the text), set this to False. # SHOW_BLOG_TITLE = True -# Writes tag cloud data in form of tag_cloud_data.json. -# Warning: this option will change its default value to False in v8! -WRITE_TAG_CLOUD = True - -# Generate pages for each section. The site must have at least two sections -# for this option to take effect. It wouldn't build for just one section. -POSTS_SECTIONS = True - -# Setting this to False generates a list page instead of an index. Indexes -# are the default and will apply GENERATE_ATOM if set. -# POSTS_SECTIONS_ARE_INDEXES = True - -# Each post and section page will have an associated color that can be used -# to style them with a recognizable color detail across your site. A color -# is assigned to each section based on shifting the hue of your THEME_COLOR -# at least 7.5 % while leaving the lightness and saturation untouched in the -# HUSL colorspace. You can overwrite colors by assigning them colors in HEX. -# POSTS_SECTION_COLORS = { -# DEFAULT_LANG: { -# 'posts': '#49b11bf', -# 'reviews': '#ffe200', -# }, -# } - -# Associate a description with a section. For use in meta description on -# section index pages or elsewhere in themes. -# POSTS_SECTION_DESCRIPTIONS = { -# DEFAULT_LANG: { -# 'how-to': 'Learn how-to things properly with these amazing tutorials.', -# }, -# } - -# Sections are determined by their output directory as set in POSTS by default, -# but can alternatively be determined from file metadata instead. -# POSTS_SECTION_FROM_META = False - -# Names are determined from the output directory name automatically or the -# metadata label. Unless overwritten below, names will use title cased and -# hyphens replaced by spaces. -# POSTS_SECTION_NAME = { -# DEFAULT_LANG: { -# 'posts': 'Blog Posts', -# 'uncategorized': 'Odds and Ends', -# }, -# } - -# Titles for per-section index pages. Can be either one string where "{name}" -# is substituted or the POSTS_SECTION_NAME, or a dict of sections. Note -# that the INDEX_PAGES option is also applied to section page titles. -# POSTS_SECTION_TITLE = { -# DEFAULT_LANG: { -# 'how-to': 'How-to and Tutorials', -# }, -# } - # Paths for different autogenerated bits. These are combined with the # translation paths. # Final locations are: # output / TRANSLATION[lang] / TAG_PATH / index.html (list of tags) # output / TRANSLATION[lang] / TAG_PATH / tag.html (list of posts for a tag) -# output / TRANSLATION[lang] / TAG_PATH / tag.xml (RSS feed for a tag) +# output / TRANSLATION[lang] / TAG_PATH / tag RSS_EXTENSION (RSS feed for a tag) # (translatable) # TAG_PATH = "categories" -# See TAG_PATH's "list of tags" for the default setting value. Can be overwritten -# here any path relative to the output directory. +# By default, the list of tags is stored in +# output / TRANSLATION[lang] / TAG_PATH / index.html +# (see explanation for TAG_PATH). This location can be changed to +# output / TRANSLATION[lang] / TAGS_INDEX_PATH +# with an arbitrary relative path TAGS_INDEX_PATH. # (translatable) # TAGS_INDEX_PATH = "tags.html" @@ -292,15 +315,15 @@ POSTS_SECTIONS = True # Set descriptions for tag pages to make them more interesting. The # default is no description. The value is used in the meta description # and displayed underneath the tag list or index page’s title. -# TAG_PAGES_DESCRIPTIONS = { +# TAG_DESCRIPTIONS = { # DEFAULT_LANG: { -# "blogging": "Meta-blog posts about blogging about blogging.", +# "blogging": "Meta-blog posts about blogging.", # "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects." # }, # } # Set special titles for tag pages. The default is "Posts about TAG". -# TAG_PAGES_TITLES = { +# TAG_TITLES = { # DEFAULT_LANG: { # "blogging": "Meta-posts about blogging", # "open source": "Posts about open source software" @@ -308,7 +331,7 @@ POSTS_SECTIONS = True # } # If you do not want to display a tag publicly, you can mark it as hidden. -# The tag will not be displayed on the tag list page, the tag cloud and posts. +# The tag will not be displayed on the tag list page and posts. # Tag pages will still be generated. HIDDEN_TAGS = ['mathjax'] @@ -318,14 +341,36 @@ HIDDEN_TAGS = ['mathjax'] # However, more obscure tags can be hidden from the tag index page. # TAGLIST_MINIMUM_POSTS = 1 +# A list of dictionaries specifying tags which translate to each other. +# Format: a list of dicts {language: translation, language2: translation2, …} +# For example: +# [ +# {'en': 'private', 'de': 'Privat'}, +# {'en': 'work', 'fr': 'travail', 'de': 'Arbeit'}, +# ] +# TAG_TRANSLATIONS = [] + +# If set to True, a tag in a language will be treated as a translation +# of the literally same tag in all other languages. Enable this if you +# do not translate tags, for example. +# TAG_TRANSLATIONS_ADD_DEFAULTS = True + # Final locations are: # output / TRANSLATION[lang] / CATEGORY_PATH / index.html (list of categories) # output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.html (list of posts for a category) -# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category.xml (RSS feed for a category) +# output / TRANSLATION[lang] / CATEGORY_PATH / CATEGORY_PREFIX category RSS_EXTENSION (RSS feed for a category) # (translatable) # CATEGORY_PATH = "categories" # CATEGORY_PREFIX = "cat_" +# By default, the list of categories is stored in +# output / TRANSLATION[lang] / CATEGORY_PATH / index.html +# (see explanation for CATEGORY_PATH). This location can be changed to +# output / TRANSLATION[lang] / CATEGORIES_INDEX_PATH +# with an arbitrary relative path CATEGORIES_INDEX_PATH. +# (translatable) +# CATEGORIES_INDEX_PATH = "categories.html" + # If CATEGORY_ALLOW_HIERARCHIES is set to True, categories can be organized in # hierarchies. For a post, the whole path in the hierarchy must be specified, # using a forward slash ('/') to separate paths. Use a backslash ('\') to escape @@ -343,15 +388,15 @@ CATEGORY_OUTPUT_FLAT_HIERARCHY = ${CATEGORY_OUTPUT_FLAT_HIERARCHY} # Set descriptions for category pages to make them more interesting. The # default is no description. The value is used in the meta description # and displayed underneath the category list or index page’s title. -# CATEGORY_PAGES_DESCRIPTIONS = { +# CATEGORY_DESCRIPTIONS = { # DEFAULT_LANG: { -# "blogging": "Meta-blog posts about blogging about blogging.", +# "blogging": "Meta-blog posts about blogging.", # "open source": "My contributions to my many, varied, ever-changing, and eternal libre software projects." # }, # } # Set special titles for category pages. The default is "Posts about CATEGORY". -# CATEGORY_PAGES_TITLES = { +# CATEGORY_TITLES = { # DEFAULT_LANG: { # "blogging": "Meta-posts about blogging", # "open source": "Posts about open source software" @@ -363,14 +408,56 @@ CATEGORY_OUTPUT_FLAT_HIERARCHY = ${CATEGORY_OUTPUT_FLAT_HIERARCHY} # Category pages will still be generated. HIDDEN_CATEGORIES = [] +# A list of dictionaries specifying categories which translate to each other. +# Format: a list of dicts {language: translation, language2: translation2, …} +# See TAG_TRANSLATIONS example above. +# CATEGORY_TRANSLATIONS = [] + +# If set to True, a category in a language will be treated as a translation +# of the literally same category in all other languages. Enable this if you +# do not translate categories, for example. +# CATEGORY_TRANSLATIONS_ADD_DEFAULTS = True + +# If no category is specified in a post, the destination path of the post +# can be used in its place. This replaces the sections feature. Using +# category hierarchies is recommended. +# CATEGORY_DESTPATH_AS_DEFAULT = False + +# If True, the prefix will be trimmed from the category name, eg. if the +# POSTS destination is "foo/bar", and the path is "foo/bar/baz/quux", +# the category will be "baz/quux" (or "baz" if only the first directory is considered). +# Note that prefixes coming from translations are always ignored. +# CATEGORY_DESTPATH_TRIM_PREFIX = False + +# If True, only the first directory of a path will be used. +# CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY = True + +# Map paths to prettier category names. (translatable) +# CATEGORY_DESTPATH_NAMES = { +# DEFAULT_LANG: { +# 'webdev': 'Web Development', +# 'webdev/django': 'Web Development/Django', +# 'random': 'Odds and Ends', +# }, +# } + +# By default, category indexes will appear in CATEGORY_PATH and use +# CATEGORY_PREFIX. If this is enabled, those settings will be ignored (except +# for the index) and instead, they will follow destination paths (eg. category +# 'foo' might appear in 'posts/foo'). If the category does not come from a +# destpath, first entry in POSTS followed by the category name will be used. +# For this setting, category hierarchies are required and cannot be flattened. +# CATEGORY_PAGES_FOLLOW_DESTPATH = False + # If ENABLE_AUTHOR_PAGES is set to True and there is more than one # author, author pages are generated. # ENABLE_AUTHOR_PAGES = True -# Final locations are: -# output / TRANSLATION[lang] / AUTHOR_PATH / index.html (list of tags) -# output / TRANSLATION[lang] / AUTHOR_PATH / author.html (list of posts for a tag) -# output / TRANSLATION[lang] / AUTHOR_PATH / author.xml (RSS feed for a tag) +# Path to author pages. Final locations are: +# output / TRANSLATION[lang] / AUTHOR_PATH / index.html (list of authors) +# output / TRANSLATION[lang] / AUTHOR_PATH / author.html (list of posts by an author) +# output / TRANSLATION[lang] / AUTHOR_PATH / author RSS_EXTENSION (RSS feed for an author) +# (translatable) # AUTHOR_PATH = "authors" # If AUTHOR_PAGES_ARE_INDEXES is set to True, each author's page will contain @@ -393,8 +480,12 @@ HIDDEN_CATEGORIES = [] # Tag pages will still be generated. HIDDEN_AUTHORS = ['Guest'] +# Allow multiple, comma-separated authors for a post? (Requires theme support, present in built-in themes) +# MULTIPLE_AUTHORS_PER_POST = False + # Final location for the main blog page and sibling paginated pages is # output / TRANSLATION[lang] / INDEX_PATH / index-*.html +# (translatable) # INDEX_PATH = "" # Optional HTML that displayed on “main” blog index.html files. @@ -412,11 +503,14 @@ FRONT_INDEX_HEADER = { # CREATE_FULL_ARCHIVES = False # If monthly archives or full archives are created, adds also one archive per day # CREATE_DAILY_ARCHIVE = False +# Create previous, up, next navigation links for archives +# CREATE_ARCHIVE_NAVIGATION = False # Final locations for the archives are: # output / TRANSLATION[lang] / ARCHIVE_PATH / ARCHIVE_FILENAME # output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / index.html # output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / index.html # output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / DAY / index.html +# (translatable) # ARCHIVE_PATH = "" # ARCHIVE_FILENAME = "archive.html" @@ -431,20 +525,30 @@ FRONT_INDEX_HEADER = { # absolute: a complete URL (that includes the SITE_URL) # URL_TYPE = 'rel_path' -# If USE_BASE_TAG is True, then all HTML files will include -# something like <base href=http://foo.var.com/baz/bat> to help -# the browser resolve relative links. -# Most people don’t need this tag; major websites don’t use it. Use -# only if you know what you’re doing. If this is True, your website -# will not be fully usable by manually opening .html files in your web -# browser (`nikola serve` or `nikola auto` is mandatory). Also, if you -# have mirrors of your site, they will point to SITE_URL everywhere. -USE_BASE_TAG = False +# Extension for RSS feed files +# RSS_EXTENSION = ".xml" + +# RSS filename base (without extension); used for indexes and galleries. +# (translatable) +# RSS_FILENAME_BASE = "rss" # Final location for the blog main RSS feed is: -# output / TRANSLATION[lang] / RSS_PATH / rss.xml +# output / TRANSLATION[lang] / RSS_PATH / RSS_FILENAME_BASE RSS_EXTENSION +# (translatable) # RSS_PATH = "" +# Final location for the blog main Atom feed is: +# output / TRANSLATION[lang] / ATOM_PATH / ATOM_FILENAME_BASE ATOM_EXTENSION +# (translatable) +# ATOM_PATH = "" + +# Atom filename base (without extension); used for indexes. +# (translatable) +ATOM_FILENAME_BASE = "feed" + +# Extension for Atom feed files +# ATOM_EXTENSION = ".atom" + # Slug the Tag URL. Easier for users to type, special characters are # often removed or replaced as well. # SLUG_TAG_PATH = True @@ -531,6 +635,35 @@ GITHUB_COMMIT_SOURCE = True # ".jpg": ["jpegoptim --strip-all -m75 -v %s"], # } +# Executable for the "yui_compressor" filter (defaults to 'yui-compressor'). +# YUI_COMPRESSOR_EXECUTABLE = 'yui-compressor' + +# Executable for the "closure_compiler" filter (defaults to 'closure-compiler'). +# CLOSURE_COMPILER_EXECUTABLE = 'closure-compiler' + +# Executable for the "optipng" filter (defaults to 'optipng'). +# OPTIPNG_EXECUTABLE = 'optipng' + +# Executable for the "jpegoptim" filter (defaults to 'jpegoptim'). +# JPEGOPTIM_EXECUTABLE = 'jpegoptim' + +# Executable for the "html_tidy_withconfig", "html_tidy_nowrap", +# "html_tidy_wrap", "html_tidy_wrap_attr" and "html_tidy_mini" filters +# (defaults to 'tidy5'). +# HTML_TIDY_EXECUTABLE = 'tidy5' + +# List of XPath expressions which should be used for finding headers +# ({hx} is replaced by headers h1 through h6). +# You must change this if you use a custom theme that does not use +# "e-content entry-content" as a class for post and page contents. +# HEADER_PERMALINKS_XPATH_LIST = ['*//div[@class="e-content entry-content"]//{hx}'] +# Include *every* header (not recommended): +# HEADER_PERMALINKS_XPATH_LIST = ['*//{hx}'] + +# File blacklist for header permalinks. Contains output path +# (eg. 'output/index.html') +# HEADER_PERMALINKS_FILE_BLACKLIST = [] + # Expert setting! Create a gzipped copy of each generated file. Cheap server- # side optimization for very high traffic sites or low memory servers. # GZIP_FILES = False @@ -544,20 +677,6 @@ GITHUB_COMMIT_SOURCE = True # return partial content of another representation for these resources. Do not # use this feature if you do not understand what this means. -# Compiler to process LESS files. -# LESS_COMPILER = 'lessc' - -# A list of options to pass to the LESS compiler. -# Final command is: LESS_COMPILER LESS_OPTIONS file.less -# LESS_OPTIONS = [] - -# Compiler to process Sass files. -# SASS_COMPILER = 'sass' - -# A list of options to pass to the Sass compiler. -# Final command is: SASS_COMPILER SASS_OPTIONS file.s(a|c)ss -# SASS_OPTIONS = [] - # ############################################################################# # Image Gallery Options # ############################################################################# @@ -573,7 +692,16 @@ GITHUB_COMMIT_SOURCE = True # MAX_IMAGE_SIZE = 1280 # USE_FILENAME_AS_TITLE = True # EXTRA_IMAGE_EXTENSIONS = [] -# + +# Use a thumbnail (defined by ".. previewimage:" in the gallery's index) in +# list of galleries for each gallery +GALLERIES_USE_THUMBNAIL = False + +# Image to use as thumbnail for those galleries that don't have one +# None: show a grey square +# '/url/to/file': show the image in that url +GALLERIES_DEFAULT_THUMBNAIL = None + # If set to False, it will sort by filename instead. Defaults to True # GALLERY_SORT_BY_DATE = True @@ -613,6 +741,10 @@ GITHUB_COMMIT_SOURCE = True # Embedded thumbnail information: # EXIF_WHITELIST['1st'] = ["*"] +# If set to True, any ICC profile will be copied when an image is thumbnailed or +# resized. +# PRESERVE_ICC_PROFILES = False + # Folders containing images to be used in normal posts or pages. # IMAGE_FOLDERS is a dictionary of the form {"source": "destination"}, # where "source" is the folder containing the images to be published, and @@ -622,17 +754,19 @@ GITHUB_COMMIT_SOURCE = True # To reference the images in your posts, include a leading slash in the path. # For example, if IMAGE_FOLDERS = {'images': 'images'}, write # -# ..image:: /images/tesla.jpg +# .. image:: /images/tesla.jpg # # See the Nikola Handbook for details (in the “Embedding Images” and # “Thumbnails” sections) # Images will be scaled down according to IMAGE_THUMBNAIL_SIZE and MAX_IMAGE_SIZE # options, but will have to be referenced manually to be visible on the site -# (the thumbnail has ``.thumbnail`` added before the file extension). +# (the thumbnail has ``.thumbnail`` added before the file extension by default, +# but a different naming template can be configured with IMAGE_THUMBNAIL_FORMAT). IMAGE_FOLDERS = {'images': 'images'} # IMAGE_THUMBNAIL_SIZE = 400 +# IMAGE_THUMBNAIL_FORMAT = '{name}.thumbnail{ext}' # ############################################################################# # HTML fragments and diverse things that are used by the templates @@ -680,49 +814,28 @@ IMAGE_FOLDERS = {'images': 'images'} # for the full URL with the page number of the main page to the normal (shorter) main # page URL. # INDEXES_PRETTY_PAGE_URL = False +# +# If the following is true, a page range navigation will be inserted to indices. +# Please note that this will undo the effect of INDEXES_STATIC, as all index pages +# must be recreated whenever the number of pages changes. +# SHOW_INDEX_PAGE_NAVIGATION = False + +# If the following is True, a meta name="generator" tag is added to pages. The +# generator tag is used to specify the software used to generate the page +# (it promotes Nikola). +# META_GENERATOR_TAG = True # Color scheme to be used for code blocks. If your theme provides -# "assets/css/code.css" this is ignored. +# "assets/css/code.css" this is ignored. Set to None to disable. # Can be any of: -# algol -# algol_nu -# arduino -# autumn -# borland -# bw -# colorful -# default -# emacs -# friendly -# fruity -# igor -# lovelace -# manni -# monokai -# murphy -# native -# paraiso_dark -# paraiso_light -# pastie -# perldoc -# rrt -# tango -# trac -# vim -# vs -# xcode +# algol, algol_nu, autumn, borland, bw, colorful, default, emacs, friendly, +# fruity, igor, lovelace, manni, monokai, murphy, native, paraiso-dark, +# paraiso-light, pastie, perldoc, rrt, tango, trac, vim, vs, xcode # This list MAY be incomplete since pygments adds styles every now and then. +# Check with list(pygments.styles.get_all_styles()) in an interpreter. +# # CODE_COLOR_SCHEME = 'default' -# If you use 'site-reveal' theme you can select several subthemes -# THEME_REVEAL_CONFIG_SUBTHEME = 'sky' -# You can also use: beige/serif/simple/night/default - -# Again, if you use 'site-reveal' theme you can select several transitions -# between the slides -# THEME_REVEAL_CONFIG_TRANSITION = 'cube' -# You can also use: page/concave/linear/none/default - # FAVICONS contains (name, file, size) tuples. # Used to create favicon link like this: # <link rel="name" href="file" sizes="size"/> @@ -743,6 +856,7 @@ IMAGE_FOLDERS = {'images': 'images'} # {min_remaining_read} The string “{remaining_reading_time} min remaining to read” in the current language. # {paragraph_count} The amount of paragraphs in the post. # {remaining_paragraph_count} The amount of paragraphs in the post, sans the teaser. +# {post_title} The title of the post. # {{ A literal { (U+007B LEFT CURLY BRACKET) # }} A literal } (U+007D RIGHT CURLY BRACKET) @@ -786,6 +900,8 @@ CONTENT_FOOTER = 'Contents © {date} \ # tuples of tuples of positional arguments and dicts of keyword arguments # to format(). For example, {'en': (('Hello'), {'target': 'World'})} # results in CONTENT_FOOTER['en'].format('Hello', target='World'). +# If you need to use the literal braces '{' and '}' in your footer text, use +# '{{' and '}}' to escape them (str.format is used) # WARNING: If you do not use multiple languages with CONTENT_FOOTER, this # still needs to be a dict of this format. (it can be empty if you # do not need formatting) @@ -802,6 +918,12 @@ CONTENT_FOOTER_FORMATS = { ) } +# A simple copyright tag for inclusion in RSS feeds that works just +# like CONTENT_FOOTER and CONTENT_FOOTER_FORMATS +RSS_COPYRIGHT = 'Contents © {date} <a href="mailto:{email}">{author}</a> {license}' +RSS_COPYRIGHT_PLAIN = 'Contents © {date} {author} {license}' +RSS_COPYRIGHT_FORMATS = CONTENT_FOOTER_FORMATS + # To use comments, you can choose between different third party comment # systems. The following comment systems are supported by Nikola: ${_SUPPORTED_COMMENT_SYSTEMS} @@ -813,13 +935,6 @@ COMMENT_SYSTEM = ${COMMENT_SYSTEM} # is in the manual. COMMENT_SYSTEM_ID = ${COMMENT_SYSTEM_ID} -# Enable annotations using annotateit.org? -# If set to False, you can still enable them for individual posts and pages -# setting the "annotations" metadata. -# If set to True, you can disable them for individual posts and pages using -# the "noannotations" metadata. -# ANNOTATIONS = False - # Create index.html for page folders? # WARNING: if a page would conflict with the index file (usually # caused by setting slug to `index`), the PAGE_INDEX @@ -839,17 +954,8 @@ COMMENT_SYSTEM_ID = ${COMMENT_SYSTEM_ID} # http://mysite/foo/bar/index.html => http://mysite/foo/bar/ # (Uses the INDEX_FILE setting, so if that is, say, default.html, # it will instead /foo/default.html => /foo) -# (Note: This was briefly STRIP_INDEX_HTML in v 5.4.3 and 5.4.4) STRIP_INDEXES = ${STRIP_INDEXES} -# Should the sitemap list directories which only include other directories -# and no files. -# Default to True -# If this is False -# e.g. /2012 includes only /01, /02, /03, /04, ...: don't add it to the sitemap -# if /2012 includes any files (including index.html)... add it to the sitemap -# SITEMAP_INCLUDE_FILELESS_DIRS = True - # List of files relative to the server root (!) that will be asked to be excluded # from indexing and other robotic spidering. * is supported. Will only be effective # if SITE_URL points to server root. The list is used to exclude resources from @@ -877,13 +983,14 @@ PRETTY_URLS = ${PRETTY_URLS} # Allows scheduling of posts using the rule specified here (new_post -s) # Specify an iCal Recurrence Rule: http://www.kanzaki.com/docs/ical/rrule.html # SCHEDULE_RULE = '' -# If True, use the scheduling rule to all posts by default +# If True, use the scheduling rule to all posts (not pages!) by default # SCHEDULE_ALL = False -# Do you want a add a Mathjax config file? +# Do you want to add a Mathjax config file? # MATHJAX_CONFIG = "" -# If you are using the compile-ipynb plugin, just add this one: +# If you want support for the $.$ syntax (which may conflict with running +# text!), just use this config: # MATHJAX_CONFIG = """ # <script type="text/x-mathjax-config"> # MathJax.Hub.Config({ @@ -892,7 +999,7 @@ PRETTY_URLS = ${PRETTY_URLS} # displayMath: [ ['$$','$$'], ["\\\[","\\\]"] ], # processEscapes: true # }, -# displayAlign: 'left', // Change this to 'center' to center equations. +# displayAlign: 'center', // Change this to 'left' if you want left-aligned equations. # "HTML-CSS": { # styles: {'.MathJax_Display': {"margin": 0}} # } @@ -900,21 +1007,19 @@ PRETTY_URLS = ${PRETTY_URLS} # </script> # """ -# Want to use KaTeX instead of MathJax? While KaTeX is less featureful, -# it's faster and the output looks better. -# If you set USE_KATEX to True, you also need to add an extra CSS file -# like this: -# EXTRA_HEAD_DATA = """<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.6.0/katex.min.css">""" +# Want to use KaTeX instead of MathJax? While KaTeX may not support every +# feature yet, it's faster and the output looks better. # USE_KATEX = False -# If you want to use the old (buggy) inline math $.$ with KaTeX, then -# you might want to use this feature. +# KaTeX auto-render settings. If you want support for the $.$ syntax (which may +# conflict with running text!), just use this config: # KATEX_AUTO_RENDER = """ # delimiters: [ # {left: "$$", right: "$$", display: true}, -# {left: "\\\[", right: "\\\]", display: true}, +# {left: "\\\\[", right: "\\\\]", display: true}, +# {left: "\\\\begin{equation*}", right: "\\\\end{equation*}", display: true}, # {left: "$", right: "$", display: false}, -# {left: "\\\(", right: "\\\)", display: false} +# {left: "\\\\(", right: "\\\\)", display: false} # ] # """ @@ -922,17 +1027,23 @@ PRETTY_URLS = ${PRETTY_URLS} # IPYNB_CONFIG = {} # With the following example configuration you can use a custom jinja template # called `toggle.tpl` which has to be located in your site/blog main folder: -# IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}} +# IPYNB_CONFIG = {'Exporter': {'template_file': 'toggle'}} # What Markdown extensions to enable? # You will also get gist, nikola and podcast because those are # done in the code, hope you don't mind ;-) # Note: most Nikola-specific extensions are done via the Nikola plugin system, # with the MarkdownExtension class and should not be added here. -# The default is ['fenced_code', 'codehilite'] -MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite', 'extra'] +# Defaults are markdown.extensions.(fenced_code|codehilite|extra) +# markdown.extensions.meta is required for Markdown metadata. +MARKDOWN_EXTENSIONS = ['markdown.extensions.fenced_code', 'markdown.extensions.codehilite', 'markdown.extensions.extra'] -# Extra options to pass to the pandoc comand. +# Options to be passed to markdown extensions (See https://python-markdown.github.io/reference/) +# Default is {} (no config at all) +# MARKDOWN_EXTENSION_CONFIGS = {} + + +# Extra options to pass to the pandoc command. # by default, it's empty, is a list of strings, for example # ['-F', 'pandoc-citeproc', '--bibliography=/Users/foo/references.bib'] # Pandoc does not demote headers by default. To enable this, you can use, for example @@ -958,7 +1069,6 @@ MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite', 'extra'] # """ # Show link to source for the posts? -# Formerly known as HIDE_SOURCELINK (inverse) # SHOW_SOURCELINK = True # Copy the source files for your pages? # Setting it to False implies SHOW_SOURCELINK = False @@ -981,22 +1091,16 @@ MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite', 'extra'] # between each other. Old Atom feeds with no changes are marked as archived. # GENERATE_ATOM = False -# Only inlclude teasers in Atom and RSS feeds. Disabling include the full +# Only include teasers in Atom and RSS feeds. Disabling include the full # content. Defaults to True. # FEED_TEASERS = True -# Strip HTML from Atom annd RSS feed summaries and content. Defaults to False. +# Strip HTML from Atom and RSS feed summaries and content. Defaults to False. # FEED_PLAIN = False # Number of posts in Atom and RSS feeds. # FEED_LENGTH = 10 -# Include preview image as a <figure><img></figure> at the top of the entry. -# Requires FEED_PLAIN = False. If the preview image is found in the content, -# it will not be included again. Image will be included as-is, aim to optmize -# the image source for Feedly, Apple News, Flipboard, and other popular clients. -# FEED_PREVIEWIMAGE = True - # RSS_LINK is a HTML fragment to link the RSS or Atom feeds. If set to None, # the base.tmpl will use the feed Nikola generates. However, you may want to # change it for a FeedBurner feed or something else. @@ -1081,26 +1185,52 @@ MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite', 'extra'] # (Note the '.*\/' in the beginning -- matches source paths relative to conf.py) # FILE_METADATA_REGEXP = None -# If you hate "Filenames with Capital Letters and Spaces.md", you should -# set this to true. -UNSLUGIFY_TITLES = True +# Should titles fetched from file metadata be unslugified (made prettier?) +# FILE_METADATA_UNSLUGIFY_TITLES = True + +# If enabled, extract metadata from docinfo fields in reST documents. +# If your text files start with a level 1 heading, it will be treated as the +# document title and will be removed from the text. +# USE_REST_DOCINFO_METADATA = False + +# If enabled, hide docinfo fields in reST document output +# HIDE_REST_DOCINFO = False + +# Map metadata from other formats to Nikola names. +# Supported formats: ${_METADATA_MAPPING_FORMATS} +# METADATA_MAPPING = {} +# +# Example for Pelican compatibility: +# METADATA_MAPPING = { +# "rest_docinfo": {"summary": "description", "modified": "updated"}, +# "markdown_metadata": {"summary": "description", "modified": "updated"} +# } +# Other examples: https://getnikola.com/handbook.html#mapping-metadata-from-other-formats + +# Map metadata between types/values. (Runs after METADATA_MAPPING.) +# Supported formats: nikola, ${_METADATA_MAPPING_FORMATS} +# The value on the right should be a dict of callables. +# METADATA_VALUE_MAPPING = {} +# Examples: +# METADATA_VALUE_MAPPING = { +# "yaml": {"keywords": lambda value: ', '.join(value)}, # yaml: 'keywords' list -> str +# "nikola": { +# "widgets": lambda value: value.split(', '), # nikola: 'widgets' comma-separated string -> list +# "tags": str.lower # nikola: force lowercase 'tags' (input would be string) +# } +# } + +# Add any post types here that you want to be displayed without a title. +# If your theme supports it, the titles will not be shown. +# TYPES_TO_HIDE_TITLE = [] # Additional metadata that is added to a post when creating a new_post # ADDITIONAL_METADATA = {} -# Nikola supports Open Graph Protocol data for enhancing link sharing and -# discoverability of your site on Facebook, Google+, and other services. -# Open Graph is enabled by default. -# USE_OPEN_GRAPH = True - # Nikola supports Twitter Card summaries, but they are disabled by default. # They make it possible for you to attach media to Tweets that link # to your content. # -# IMPORTANT: -# Please note, that you need to opt-in for using Twitter Cards! -# To do this please visit https://cards-dev.twitter.com/validator -# # Uncomment and modify to following lines to match your accounts. # Images displayed come from the `previewimage` meta tag. # You can specify the card type by using the `card` parameter in TWITTER_CARD. @@ -1112,14 +1242,20 @@ UNSLUGIFY_TITLES = True # # 'creator': '@username', # Username for the content creator / author. # } -# If webassets is installed, bundle JS and CSS into single files to make -# site loading faster in a HTTP/1.1 environment but is not recommended for -# HTTP/2.0 when caching is used. Defaults to True. +# Bundle JS and CSS into single files to make site loading faster in a HTTP/1.1 +# environment but is not recommended for HTTP/2.0 when caching is used. +# Defaults to True. # USE_BUNDLES = True # Plugins you don't want to use. Be careful :-) # DISABLED_PLUGINS = ["render_galleries"] +# Special settings to disable only parts of the indexes plugin. +# Use with care. +# DISABLE_INDEXES = False +# DISABLE_MAIN_ATOM_FEED = False +# DISABLE_MAIN_RSS_FEED = False + # Add the absolute paths to directories containing plugins to use them. # For example, the `plugins` directory of your clone of the Nikola plugins # repository. @@ -1147,18 +1283,21 @@ UNSLUGIFY_TITLES = True # (defaults to 1.) # DEMOTE_HEADERS = 1 -# Docutils, by default, will perform a transform in your documents -# extracting unique titles at the top of your document and turning -# them into metadata. This surprises a lot of people, and setting -# this option to True will prevent it. -# NO_DOCUTILS_TITLE_TRANSFORM = False - # If you don’t like slugified file names ([a-z0-9] and a literal dash), # and would prefer to use all the characters your file system allows. # USE WITH CARE! This is also not guaranteed to be perfect, and may # sometimes crash Nikola, your web server, or eat your cat. # USE_SLUGIFY = True +# If set to True, the tags 'draft', 'mathjax' and 'private' have special +# meaning. If set to False, these tags are handled like regular tags. +USE_TAG_METADATA = False + +# If set to True, a warning is issued if one of the 'draft', 'mathjax' +# and 'private' tags are found in a post. Useful for checking that +# migration was successful. +WARN_ABOUT_TAG_METADATA = False + # Templates will use those filters, along with the defaults. # Consult your engine's documentation on filters if you need help defining # those. |
