142 lines
No EOL
4.9 KiB
TOML
142 lines
No EOL
4.9 KiB
TOML
|
|
# To learn about configuring soupault, visit https://www.soupault.app/reference-manual
|
|
|
|
[settings]
|
|
# Soupault version that the config was written/generated for
|
|
# Trying to process this config with an older version will result in an error message
|
|
soupault_version = "4.11.0"
|
|
|
|
# Display progress?
|
|
verbose = true
|
|
|
|
# Display detailed debug output?
|
|
debug = false
|
|
|
|
# Where input files (pages and assets) are stored.
|
|
site_dir = "site"
|
|
|
|
# Where the output goes
|
|
build_dir = "serve"
|
|
|
|
# Files inside the site/ directory can be treated as pages or static assets,
|
|
# depending on the extension.
|
|
#
|
|
# Files with extensions from this list are considered pages and processed.
|
|
# All other files are copied to build/ unchanged.
|
|
#
|
|
# Note that for formats other than HTML, you need to specify an external program
|
|
# for converting them to HTML (see below).
|
|
page_file_extensions = ["html", "dj"]
|
|
|
|
# By default, soupault uses "clean URLs",
|
|
# that is, $site_dir/page.html is converted to $build_dir/page/index.html
|
|
# You can make it produce $build_dir/page.tml instead by changing this option to false
|
|
clean_urls = true
|
|
|
|
# If you set clean_urls=false,
|
|
# file names with ".html" and ".htm" extensions are left unchanged.
|
|
keep_extensions = ["html"]
|
|
|
|
# All other extensions (".md", ".rst"...) are replaced, by default with ".html"
|
|
default_extension = "html"
|
|
|
|
# Page files with these extensions are ignored.
|
|
ignore_extensions = ["draft", "bak"]
|
|
|
|
# Soupault can work as a website generator or an HTML processor.
|
|
#
|
|
# In the "website generator" mode, it considers files in site/ page bodies
|
|
# and inserts them into the empty page template stored in templates/main.html
|
|
#
|
|
# Setting this option to false switches it to the "HTML processor" mode
|
|
# when it considers every file in site/ a complete page and only runs it through widgets/plugins.
|
|
generator_mode = true
|
|
|
|
# Files that contain an <html> element are considered complete pages rather than page bodies,
|
|
# even in the "website generator" mode.
|
|
# This allows you to use a unique layout for some pages and still have them processed by widgets.
|
|
complete_page_selector = "html"
|
|
|
|
# Website generator mode requires a page template (an empty page to insert a page body into).
|
|
# If you use "generator_mode = false", this file is not required.
|
|
default_template_file = "templates/main.html"
|
|
|
|
# Page content is inserted into a certain element of the page template.
|
|
# This option is a CSS selector that is used for locating that element.
|
|
default_content_selector = "main"
|
|
|
|
# You can choose where exactly to insert the content in its parent element.
|
|
# The default is append_child, but there are more, including prepend_child and replace_content
|
|
default_content_action = "append_child"
|
|
|
|
# If a page already has a document type declaration, keep the declaration
|
|
keep_doctype = true
|
|
|
|
# If a page does not have a document type declaration, force it to HTML5
|
|
# With keep_doctype=false, soupault will replace existing declarations with it too
|
|
doctype = "<!DOCTYPE html>"
|
|
|
|
# Insert whitespace into HTML for better readability
|
|
# When set to false, the original whitespace (if any) will be preserved as is
|
|
pretty_print_html = true
|
|
|
|
# Plugins can be either automatically discovered or loaded explicitly.
|
|
# By default discovery is enabled and the place where soupault is looking is the plugins/ subdirectory
|
|
# in your project.
|
|
# E.g., a file at plugins/my-plugin.lua will be registered as a widget named "my-plugin".
|
|
plugin_discovery = true
|
|
plugin_dirs = ["plugins"]
|
|
|
|
# Soupault can cache outputs of external programs
|
|
# (page preprocessors and preprocess_element widget commands).
|
|
# It's disabled by default but you can enable it and configure the cache directory name/path
|
|
caching = false
|
|
cache_dir = ".soupault-cache"
|
|
|
|
# Soupault supports a variety of page source character encodings,
|
|
# the default encoding is UTF-8
|
|
page_character_encoding = "utf-8"
|
|
|
|
# It is possible to store pages in any format if you have a program
|
|
# that converts it to HTML and writes it to standard output.
|
|
# Example:
|
|
[preprocessors]
|
|
# dj = "pandoc -r djot -w html"
|
|
dj = "jotdown"
|
|
|
|
# Pages can be further processed with "widgets"
|
|
|
|
# Takes the content of the first <h1> and inserts it into the <title>
|
|
[widgets.page-title]
|
|
widget = "title"
|
|
selector = "h1"
|
|
# default = "My Homepage"
|
|
# append = " — My Homepage"
|
|
|
|
# Insert a <title> in a page if it doesn't have one already.
|
|
# By default soupault assumes if it's missing, you don't want it.
|
|
force = false
|
|
|
|
# Inserts a generator meta tag in the page <head>
|
|
# Just for demonstration, feel free to remove
|
|
[widgets.generator-meta]
|
|
widget = "insert_html"
|
|
html = '<meta name="generator" content="soupault">'
|
|
selector = "head"
|
|
|
|
[widgets.syntax]
|
|
widget = "preprocess_element"
|
|
selector = 'pre code'
|
|
command = "./syntax_wrapper.sh ${ATTR_CLASS##*-}"
|
|
|
|
[widgets.math-inline]
|
|
widget = "preprocess_element"
|
|
selector = "span.math.inline"
|
|
command = "./math_wrapper.sh inline"
|
|
action = "replace_element"
|
|
|
|
[widgets.math-display]
|
|
widget = "preprocess_element"
|
|
selector = "span.math.display"
|
|
command = "./math_wrapper.sh display"
|
|
action = "replace_element" |