Skip to main content

LIB_CONFIG_DEFAULT_TOML

Constant LIB_CONFIG_DEFAULT_TOML 

Source
pub const LIB_CONFIG_DEFAULT_TOML: &str = "### The fallback scheme for the `sync_filename` template choice, in case the\n### `scheme` header variable is empty or is not defined.\n### Not to be confused with `app_arg.scheme`!\nscheme_sync_default = \"default\"\n\n\n### This is the base scheme all schemes inherit from.\n[base_scheme]\n\n### The name of the base scheme. Its data is in `base_scheme.filename` and\n### `base_scheme.tmpl`.\nname = \"base_scheme\"\n\n### Filename related settings for the base scheme.\n[base_scheme.filename]\n\n### List of characters that can be part of a _sort tag_.\n### Besides the characters listed here, the digits `0..9` and\n### the lowercase letters `a..z` are always valid sort-tag characters.\nsort_tag.extra_chars = \".-_=\"\n\n### If empty, the first character which is not in `filename.sort_tag.extra_chars`\n### marks the end of a sort tag.\n### If not empty, a _sort_tag_ is only valid, when is its followed by\n### `filename.sort_tag.separator`. A _sort_tag_ itself may contain separators,\n### but must not end with one.\nsort_tag.separator = \"-\"\n\n### In case the file stem starts with a character in `sort_tag.extra_chars` a\n### `sort_tag.extra_separator` character may be inserted in order to tell\n### the sort tag apart reliably.\nsort_tag.extra_separator = \"\'\"\n\n### A sort-tag can have several counters. A counter is a set of digits or\n### a set of lower case letters. A valid sort-tag (sequential or chronological)\n### can have at most this number of letters in succession.\nsort_tag.letters_in_succession_max = 2\n\n### The criterion to tell if a sort tag is sequential or not:\n### a sequential sort-tag must have at most `digits_in_succession_max ` number\n### of digits in succession. By default, this is set to `3` assuming, that a\n### chronological sort-tag usually contains some year information, e.g.\n### `20231028` or `2023-10-28` with at least 4 digits. On the other hand,\n### we require sequential sort-tags to have shorter numbers to satisfy this\n### criterion, e.g. `3.1.123` or `3a123`.\nsort_tag.sequential.digits_in_succession_max = 3\n\n### If the stem of a filename ends with a pattern, that is similar to a copy\n### counter, add this extra separator. It must be one of `TRIM_LINE_CHARS` (see\n### definition in crate: `sanitize_filename_reader_friendly`) because they are\n### known not to appear at the end of `sanitze()`\'d strings. This is why they\n### are suitable here.\ncopy_counter.extra_separator = \"-\"\n\n### Tp-Note may add a counter at the end of the filename when it cannot save a\n### file because the name is taken already. This is the opening bracket search\n### pattern. Some examples: `\"-\"`, \"\'_\'\"\", `\"_-\"`,`\"-_\"`, `\"(\"` Can be empty.\ncopy_counter.opening_brackets = \"(\"\n\n### Tp-Note may add a counter at the end of the filename when it cannot save a\n### file because the name is taken already. This is the closing bracket search\n### pattern. Some examples: `\"-\"`, \"\'_\'\"\", `\"_-\"`,`\"-_\"`, `\"(\"` Can be empty.\ncopy_counter.closing_brackets = \")\"\n\n### File extension for new Tp-Note files.\n### NB: Do not forget to adapt the templates `tmpl.*` in case you set\n### this to another markup language.\nextension_default = \"md\"\n\n### The variable `filename.extensions` lists all file extensions that Tp-Note\n### considers as its own note files. The list entry is a tuple defined as\n### follows:\n###     Vec[(extension,\n###          html_to_markup(extension),\n###          markup_to_html(extension)\n###     )]\n###\n### The templates `from_clipboard` and `from_clipboard_yaml` contain some\n### `html_to_markup(extension)` filters which convert HTML clipboard content\n### into markup formatted content. The second tuple value of the vector\n### parameterizes the `html_to_markup` filter. It determines which converter is\n### used. Currently, the following converters are implemented:\n### * `Disabled`,\n### * `ToMarkdown` and\n### * `PassThrough`.\n###\n### When Tp-Note\'s viewer displays a note file, the HTML output is generated\n### with `tmpl_html` templates. The templates contain some\n### `markup_to_html(extension)` filters which are parametrized by the third\n### value of the tuple. It determines which renderer is used.\n### Currently, the following renderers are implemented:\n### * `Markdown`,\n### * `ReStructuredText`,\n### * `PassThrough`,\n### * `PlainText` and\n### * `RendererDisabled`.\n###\n### Normally, the rendered HTML is displayed to the user via his web browser.\n### Only when the selected renderer for a certain file extension is\n### `RendererDisabled`, then no viewer is started.\n###\n### NB: The list is ordered to look for the most common extensions first.\nextensions = [\n  [\"txt\", \"ToMarkdown\", \"Markdown\"],\n  [\"md\", \"ToMarkdown\", \"Markdown\"],\n  [\"rst\", \"Disabled\", \"ReStructuredText\"],\n  [\"htmlnote\", \"PassThrough\", \"Html\"],\n  [\"txtnote\", \"Disabled\", \"PlainText\"],\n  [\"adoc\", \"Disabled\", \"PlainText\"],\n  [\"text\", \"ToMarkdown\", \"Markdown\"],\n  [\"markdn\", \"ToMarkdown\", \"Markdown\"],\n  [\"markdown\", \"ToMarkdown\", \"Markdown\"],\n  [\"mdown\", \"ToMarkdown\", \"Markdown\"],\n  [\"mdtext\", \"ToMarkdown\", \"Markdown\"],\n  [\"mdtxt\", \"ToMarkdown\", \"Markdown\"],\n  [\"mdwn\", \"ToMarkdown\", \"Markdown\"],\n  [\"mkd\", \"ToMarkdown\", \"Markdown\"],\n  [\"rest\", \"Disabled\", \"ReStructuredText\"],\n  [\"asciidoc\", \"Disabled\", \"PlainText\"],\n  [\"mediawiki\", \"Disabled\", \"RendererDisabled\"],\n  [\"mw\", \"Disabled\", \"RendererDisabled\"],\n  [\"t2t\", \"Disabled\", \"RendererDisabled\"],\n]\n\n### Template related settings for the base scheme.\n[base_scheme.tmpl]\n\n### After generating a new note with a content template, Tp-Note parses the\n### resulting front matter variables, which may be localized. The variables, are\n### then converted into front matter variables starting with `fm.fm_`.\n###\n### The first item per line is the checked `fm.fm_`-variable as it appears\n### in the templates.\n### The second item per line is the translated variable name as it appears in the\n### note file. For example, the expression `fm.fm_lang` resolves to `lang`.\n### This allows to translate the templates into other human languages than English\n### without actually touching the templates itself.\n### For variables not listed below, only the prefix `fm.fm_` is stripped and\n### no translation occurs, e.g. `fm.fm_unknown` becomes `unknown`.\nfm_var.localization = [\n    [\"fm_title\", \"title\"],\n    [\"fm_subtitle\", \"subtitle\"],\n    [\"fm_author\", \"author\"],\n    [\"fm_date\", \"date\"],\n    [\"fm_lang\", \"lang\"],\n    [\"fm_languages\", \"languages\"],\n    [\"fm_sort_tag\", \"sort_tag\"],\n    [\"fm_file_ext\", \"file_ext\"],\n    [\"fm_no_filename_sync\", \"no_filename_sync\"],\n    [\"fm_filename_sync\", \"filename_sync\"],\n    [\"fm_scheme\", \"scheme\"],\n]\n\n### Before the front matter `fm.fm_` variables are applied to a filename template,\n### their validity is checked. The following table lists test, every value has to\n### pass. If one test fails the user is informed.\n###\n### * `IsDefined`: Assert that the variable is defined in the template.\n### * `IsString`: Assert, that if the variable is defined, its type -or all\n###    subtypes- are `Value::String`.\n### * `IsNotEmptyString`: In addition to `IsString`, the condition asserts, that\n###    the string -or all substrings-) are not empty.\n### * `IsNumber`: Assert, that if the variable is defined, its type -or all\n###    subtypes- are `Value::Number`.\n### * `IsBool`: Assert, that if the variable is defined, its type -or all\n###    subtypes- are `Value::Bool`.\n### * `IsNotCompound`: Assert, that if the variable is defined, its type is not\n###   `Value::Array` or `Value::Object`.\n### * `IsValidSortTag`: Assert, that if the variable is defined, the value\'s\n###    string representation contains solely characters of the\n###    `filename.sort_tag.extra_chars` set, digits or lowercase letters.\n###    The number of lowercase letters in a row is limited by\n###    `scheme.filename.sort_tag.letters_in_succession_max`.\n### *  `IsConfguredScheme`: Assert, that -if the variable is defined- the\n###    string equals to one of the `scheme.name` in the configuration file.\n### * `IsTpnoteExtension`: Assert, that if the variable is defined, the values\n###    string representation is registered in one of the `filename.extension_*`\n###    configuration file variables.\n### * `NoOperation` (default): A test that is always satisfied. For internal use\n###    only.\n###\nfm_var.assertions = [\n    [\"fm_title\", [\"IsDefined\", \"IsString\", \"IsNotEmptyString\", \"IsNotCompound\"]],\n    [\"fm_subtitle\", [\"IsString\", \"IsNotCompound\"]],\n    [\"fm_author\",  [\"IsString\"]],\n    [\"fm_lang\", [\"IsString\", \"IsNotCompound\"]],\n    [\"fm_languages\", [\"IsString\"]],\n    [\"fm_sort_tag\", [\"IsNotCompound\", \"IsValidSortTag\"]],\n    [\"fm_file_ext\", [\"IsString\", \"IsNotCompound\", \"IsTpnoteExtension\"]],\n    [\"fm_no_filename_sync\", [\"IsBool\", \"IsNotCompound\"]],\n    [\"fm_filename_sync\", [\"IsBool\", \"IsNotCompound\"]],\n    [\"fm_scheme\", [\"IsString\", \"IsConfiguredScheme\"]],\n]\n\n### The operation mode of the `get_lang` filter.\n###\n### * Disabled:\n###    The `get_lang` filter is disabled. No language guessing occurs.\n### * Monolingual:\n###   The algorithm of the `get_lang` filter assumes, that the input is\n###   monolingual. Only one language is searched and reported.\n### * Multilingual:\n###   The algorithm of the `get_lang` filter assumes, that the input is\n###   monolingual. If present in the input, more than one language can be\n###   reported.\nfilter.get_lang.mode = \"Multilingual\"\n\n### A list of language tags, defining languages the `get_lang` filter tries\n### to identify in its input. The user\'s default language subtag, as reported\n### from the operating system, is automatically added to the present list.\n### The language recognition feature is disabled, when the user\'s default\n### language, as reported from the operating system, is not supported by the\n### external language guessing library Lingua. In this case the filter returns\n### always the empty array.\n### If the list `language_candiates` is empty, the algorithm searches for all\n### available languages (currently 75). The environment variable\n### `TPNOTE_LANG_DETECTION, if set, overwrites this setting.\n### Example: filter.get_lang.language_candidates = [ \"en\", \"fr\", \"de\" ]\nfilter.get_lang.language_candidates = []\n\n### Sets the desired value for the minimum relative distance measure.\n### This is one of the parameters with which false positives can be reduced\n### when determining natural language with the `get_lang` filter.\n### By default, the Lingua library returns the most likely language for a given\n### input text. However, there are certain words that are spelled the same in\n### more than one language. The word prologue, for instance, is both a valid\n### English and French word. Lingua would output either English or French which\n### might be wrong in the given context. For cases like that, it is possible\n### to specify a minimum relative distance that the logarithmized and summed up\n### probabilities for each possible language have to satisfy. Be aware that the\n### distance between the language probabilities is dependent on the length of\n### the input text. The longer the input text, the larger the distance between\n### the languages. So if you want to classify very short text phrases, do not\n### set the minimum relative distance too high. Otherwise, `get_lang` will\n### return most results as empty array, which is the return value for cases\n### where language detection is not reliably possible. Valid values are between\n### `0.0` and `0.99`. A low value finds more languages, but can lead to more\n### false positives.\n### NB: Languages not listed in `language_candidates` are never searched for,\n### independent of the `relative_distance_min` value set here.\nfilter.get_lang.relative_distance_min = 0.3\n\n### Sets the minimum amount of consecutive words in one language to be\n### considered when detecting languages in the input text. This is one of\n### the parameters with which false positives can be reduced when determining\n### natural language with the `get_lang` filter.\nfilter.get_lang.consecutive_words_min  = 7\n\n### Set the minimum word count ratio in percent a language must appear in\n### the input text to be reported. This is one of the parameters with which\n### false positives can be reduced when determining natural language with the\n### `get_lang` filter.\nfilter.get_lang.words_total_percentage_min = 10\n\n### Default values for the `map_lang` hash map filter, that are used to post\n### process the language recognition subtag as defined in `filter.get_lang`.\n### The key is a language subtag as ISO 639 code, the corresponding value is\n### an IETF language tag obtained by adding some region information. The region\n### information is useful because some editor plugins like the _LanguageTool_\n### grammar checker can read it.\n### In case a language subtag has no key in the present hash map, the filter\n### forwards the input unchanged, e.g. the filter input `fr` results in `fr`.\n### One entry, derived from the user\'s default language - as reported from the\n### operating system - is automatically added to the present list. This\n### happens only when this language is not listed yet. For example,\n### consider the list `tmpl.filter.map_lang = &[&[\"en\", \"en-US\"]]`: In this\n### case, the user\'s default language `fr_CA.UTF-8` is added as\n### `&[\"fr\", \"fr-CA\"]`. But, if the user\'s default language were\n### `en_GB.UTF-8`, then it is _not_ added because an entry `&[\"en\", \"en-US\"]`\n### exists already.\n### Note, that the empty input string results in the user\'s default language\n### tag - here `fr-CA` - as well.\nfilter.map_lang = [\n    [ \"de\", \"de-DE\", ],\n    [ \"et\", \"et-ET\", ],\n]\n\n### Default value used by `to_yaml_filter`.\n### The parameter `tmpl.filter.to_yaml_tab = n` indents the YAML values\n### `n` characters to the right of the first character of the key by inserting\n### additional spaces between the key and the value. `n==0` disables the\n### extra indentation.\nfilter.to_yaml_tab = 14\n\n### Default content template used when the command line argument `<sanit>`\n### is a directory. Can be changed through editing the configuration\n### file. The following variables are defined:\n### Clipboard data may be available.\n### This template needs `Context<ReadyForContentTemplate`.\nfrom_dir_content = \"\"\"\n{%- set stdin = stdin.body |default(value = \'\') -%}\n{%- set html_clipboard = html_clipboard.body |default(value = \'\') -%}\n{%- set txt_clipboard = txt_clipboard.body |default(value = \'\') -%}\n\n{%- set title_text = fm.fm_title | default(value = \'\')\n     | replace_empty(with = stdin | html_heading )\n     | replace_empty(with = stdin | link_text_picky )\n     | replace_empty(with = stdin | link_text )\n     | replace_empty(with = stdin | heading )\n     | replace_empty(with = html_clipboard | html_heading )\n     | replace_empty(with = html_clipboard | link_text_picky )\n     | replace_empty(with = txt_clipboard | link_text_picky )\n     | replace_empty(with = html_clipboard | link_text )\n     | replace_empty(with = txt_clipboard | link_text )\n     | replace_empty(with = txt_clipboard | heading )\n     | replace_empty(with = path | trim_file_sort_tag )\n     | trim  -%}\n\n{%- set stdin = stdin\n     | html_to_markup(extension=extension_default, default=stdin)\n     | append(newline=true) -%}\n{%- set clipboard = html_clipboard\n     | html_to_markup(extension=extension_default, default=txt_clipboard) -%}\n{%- set input = stdin ~ clipboard | trim -%}\n\n{%- set languages = fm.fm_languages\n     | default(value = [force_lang])\n     | replace_empty(with = input | replace_empty(with = path | trim_file_sort_tag )\n                             | get_lang | map_lang(default=lang) ) -%}\n{%- set lang = fm.fm_lang | default(value = languages | first ) -%}\n\n---\n{{ title_text | trunc | to_yaml(key=\'fm_title\') }}\n{{ fm.fm_subtitle | default(value = \'Note\') | trunc | to_yaml(key=\'fm_subtitle\') }}\n{{ fm.fm_author | default(value=username | capitalize) | to_yaml(key=\'fm_author\') }}\n{{ fm.fm_date | default(value = now()|date(format=\'%Y-%m-%d\')) | to_yaml(key=\'fm_date\') }}\n{{ lang | to_yaml(key=\'fm_lang\') }}\n{% if languages | length > 1 -%}\n  {{ languages | to_yaml(key=\'fm_languages\') | append(newline=true) }}\n{%- endif -%}\n{#- We deliberately ignore `fm.fm_scheme` from clipboards -#}\n{% if scheme_sync_default != current_scheme -%}\n  {{ current_scheme | to_yaml(key=\'fm_scheme\') | append(newline=true) }}\n{%- endif -%}\n{% if fm.fm_sort_tag -%}\n  {{ fm.fm_sort_tag | to_yaml(key=\'fm_sort_tag\') | append(newline=true) }}\n{%- endif -%}\n{%- if fm -%}\n  {{- fm\n    | remove(key=\'fm_title\')\n    | remove(key=\'fm_subtitle\')\n    | remove(key=\'fm_author\')\n    | remove(key=\'fm_date\')\n    | remove(key=\'fm_lang\')\n    | remove(key=\'fm_languages\')\n    | remove(key=\'fm_scheme\')\n    | remove(key=\'fm_sort_tag\')\n    | to_yaml\n    | prepend(newline=true)\n    | append(newline=true) -}}\n{%- endif -%}\n---\n\n{{ input | append(newline=true) }}\n\"\"\"\n\n### Default filename template for a new note file on disk. It implements the\n### sync criteria for note metadata in front matter and filename.\n### This template needs `Context<ReadyForFilenameTemplate>`.\nfrom_dir_filename = \"\"\"\n{%- if fm.fm_sort_tag -%}\n  {%- set tag = fm.fm_sort_tag | as_str -%}\n{%- else -%}\n  {%- set tag = dir_path | find_last_created_file\n        | incr_sort_tag(default=now() | date(format=\'%Y%m%d\')) -%}\n{%- endif -%}\n{{ fm.fm_title | sanit | prepend(with_sort_tag=tag) }}\\\n{{ fm.fm_subtitle | sanit | prepend(with=\'--\') }}\\\n{{ fm.fm_file_ext | default(value = extension_default ) | prepend(with=\'.\') }}\"\"\"\n\n### Default template used, when the opened text file (with a known file\n### extension) is missing a YAML front matter section. This template prepends\n### such a header. The template inserts information extracted from the input\n### filename and its creation date. `{{ path }}` points to the text file,\n### `{{ dir_path }}` to the directory where it is located.\nfrom_text_file_content = \"\"\"\n{%- set languages = [force_lang]\n   | replace_empty(with = doc.body | get_lang | map_lang(default=lang)) -%}\n{%- set lang = languages | first -%}\n---\n{{ path | file_stem | split(pat=\'--\') | first | trunc | to_yaml(key=\'fm_title\') }}\n{{ path | file_stem | split(pat=\'--\') | nth(n=1) | trunc\n     | to_yaml(key=\'fm_subtitle\') }}\n{{ username | capitalize | to_yaml(key=\'fm_author\') }}\n{{ doc_file_date | default(value=now()) | date(format=\'%Y-%m-%d\') | to_yaml(key=\'fm_date\') }}\n{{ lang | to_yaml(key=\'fm_lang\') }}\n{% if languages | length > 1 -%}\n{{ languages | to_yaml(key=\'fm_languages\') | append(newline=true) }}\n{%- endif -%}\n# {{ path | file_name | to_yaml(key=\'fm_orig_name\', tab=12) }}\n{% if scheme_sync_default != current_scheme -%}\n{{ current_scheme | to_yaml(key=\'fm_scheme\') | append(newline=true) }}\n{%- endif -%}\n---\n\n{{ doc.body }}\n\"\"\"\n\n### Default filename template used when the input file (with a known\n### file extension) is missing a YAML front matter section.\n### The text file\'s sort-tag and file extension are preserved.\nfrom_text_file_filename = \"\"\"\n{%- if path | file_sort_tag != \'\' -%}\n  {%- set tag = path | file_sort_tag -%}\n{%- else -%}\n  {%- set tag = doc_file_date | default(value=now()) | date(format=\'%Y%m%d\') -%}\n{%- endif -%}\n{{ fm.fm_title | sanit | prepend(with_sort_tag=tag) }}\\\n{{ fm.fm_subtitle | default(value=\'\') | sanit | prepend(with=\'--\') }}\\\n{{ path | file_ext | prepend(with=\'.\') }}\"\"\"\n\n### Default template used when the command line `<path>` parameter points to an\n### existing - to be annotated - non-`.md`-file. `{{ path}}` points to that\n### file, `{{ dir_path }}` to the directory where it is located.\nannotate_file_content = \"\"\"\n{%- set stdin = stdin.body |default(value = \'\') -%}\n{%- set html_clipboard = html_clipboard.body |default(value = \'\') -%}\n{%- set txt_clipboard = txt_clipboard.body |default(value = \'\') -%}\n\n{%- set stdin = stdin | html_to_markup(extension=extension_default, default=stdin) | append(newline=true) -%}\n{%- set clipboard = html_clipboard\n      | html_to_markup(extension=extension_default, default=txt_clipboard) -%}\n{%- set input = stdin ~ clipboard | trim_end -%}\n{%- set languages = [force_lang]\n      | replace_empty(with = input | replace_empty(with = path | file_stem) | get_lang | map_lang(default=lang)) -%}\n{%- set lang = languages | first -%}\n\n{%- set fname = path | file_name -%}\n{%- if extension_default != \'rst\' -%}\n   {%- set link = \'[\' ~ fname ~ \'](<\' ~ fname ~ \'>)\' -%}\n{%- else -%}\n   {%- set link = \'`<\' ~ fname ~ \'>`_\' -%}\n  {%- endif -%}\n---\n{{ path | trim_file_sort_tag | to_yaml(key=\'fm_title\') }}\n{{ \'Note\' | to_yaml(key=\'fm_subtitle\') }}\n{{ username | capitalize | to_yaml(key=\'fm_author\') }}\n{{ now() | date(format=\'%Y-%m-%d\') | to_yaml(key=\'fm_date\') }}\n{{ lang | to_yaml(key=\'fm_lang\') }}\n{% if languages | length > 1 -%}\n{{ languages | to_yaml(key=\'fm_languages\') | append(newline=true) }}\n{%- endif -%}\n{% if scheme_sync_default != current_scheme -%}\n{{ current_scheme | to_yaml(key=\'fm_scheme\') | append(newline=true) }}\n{%- endif -%}\n---\n\n{{ link }}\n{{- input | prepend(with=\'\\n____\\n\\n\')}}\n\n\"\"\"\n\n### Filename of a new note, that annotates an existing file on disk given in\n### `<path>`.\nannotate_file_filename = \"\"\"\n{%- set tag = path | file_sort_tag -%}\n{{ fm.fm_title | sanit | prepend(with_sort_tag=tag) }}\\\n{{ fm.fm_subtitle | default(value=\'\') | sanit | prepend(with=\'--\') }}\\\n{{ extension_default | prepend(with=\'.\') }}\"\"\"\n\n### Default filename template to test, if the filename of an existing note file\n### on disk, corresponds to the note\'s meta data stored in its front matter. If\n### it is not the case, the note\'s filename will be renamed.\nsync_filename = \"\"\"\n{%- set tag = fm.fm_sort_tag | default(value = path | file_sort_tag) | as_str -%}\n{{ fm.fm_title | default(value=\'No title\') | sanit | prepend(with_sort_tag=tag) }}\\\n{{ fm.fm_subtitle | default(value=\'\') | sanit | prepend(with=\'--\') }}\\\n{{ fm.fm_file_ext | default(value = path | file_ext) | prepend(with=\'.\') }}\n\"\"\"\n\n\n\n\n### All scheme definitions below inherit from the above `base_scheme`. This\n### has the advantage, that we define here only the differences to\n### `base_scheme`.\n\n\n### The `default` scheme taken form `base_scheme` without modification.\n[[scheme]]\n### The name of this scheme. The data is in `scheme.filename` and\n### `scheme.tmpl`.\nname = \"default\"\n\n\n\n\n[[scheme]]\nname = \"zettel\"\n\n[scheme.filename]\n\nsort_tag.separator = \"--\"\n\n[scheme.tmpl]\n\nfrom_dir_content = \"\"\"\n{%- set stdin = stdin.body |default(value = \'\') -%}\n{%- set html_clipboard = html_clipboard.body |default(value = \'\') -%}\n{%- set txt_clipboard = txt_clipboard.body |default(value = \'\') -%}\n\n{%- set title_text = fm.fm_title | default(value = \'\')\n     | replace_empty(with = stdin | html_heading )\n     | replace_empty(with = stdin | link_text_picky )\n     | replace_empty(with = stdin | link_text )\n     | replace_empty(with = stdin | heading )\n     | replace_empty(with = html_clipboard | html_heading )\n     | replace_empty(with = html_clipboard | link_text_picky )\n     | replace_empty(with = txt_clipboard | link_text_picky )\n     | replace_empty(with = html_clipboard | link_text )\n     | replace_empty(with = txt_clipboard | link_text )\n     | replace_empty(with = txt_clipboard | heading )\n     | replace_empty(with = path | trim_file_sort_tag )\n     | trim  -%}\n\n{%- set stdin = stdin\n     | html_to_markup(extension=extension_default, default=stdin)\n     | append(newline=true) -%}\n{%- set clipboard = html_clipboard\n     | html_to_markup(extension=extension_default, default=txt_clipboard) -%}\n{%- set input = stdin ~ clipboard | trim -%}\n\n{%- set languages = fm.fm_languages\n      | default(value = [force_lang])\n      | replace_empty(with = input\n          | replace_empty(with = path | trim_file_sort_tag )\n          | get_lang\n          | map_lang(default=lang) ) -%}\n{%- set lang = fm.fm_lang | default(value=languages | first ) -%}\n\n{%- if fm.fm_sort_tag -%}\n  {%- set tag = fm.fm_sort_tag -%}\n{%- else -%}\n  {%- set tag_default = now() | date(format=\'%Y%m%d\') -%}\n  {%- set tag = dir_path\n        | find_last_created_file\n        | incr_sort_tag(default=tag_default) -%}\n{%- endif -%}\n---\n{{ title_text | trunc | to_yaml(key=\'fm_title\') }}\n{{ fm.fm_keywords | default(value = [\'note\']) | to_yaml(key=\'fm_keywords\') }}\n{{ fm.fm_author | default(value=username | capitalize) | to_yaml(key=\'fm_author\') }}\n{{ fm.fm_date | default(value = now()|date(format=\'%Y-%m-%d\')) | to_yaml(key=\'fm_date\') }}\n{{ lang | to_yaml(key=\'fm_lang\') }}\n{% if languages | length > 1 -%}\n  {{ languages | to_yaml(key=\'fm_languages\') | append(newline=true) }}\n{%- endif -%}\n{#- We deliberately ignore `fm.fm_scheme` from clipboards -#}\n{{ \'zettel\' | to_yaml(key=\'fm_scheme\') }}\n{{ tag | to_yaml(key=\'fm_sort_tag\') }}\n{% if fm -%}\n  {{- fm\n    | remove(key=\'fm_title\')\n    | remove(key=\'fm_keywords\')\n    | remove(key=\'fm_author\')\n    | remove(key=\'fm_date\')\n    | remove(key=\'fm_lang\')\n    | remove(key=\'fm_languages\')\n    | remove(key=\'fm_scheme\')\n    | remove(key=\'fm_sort_tag\')\n    | to_yaml\n    | prepend(newline=true)\n    | append(newline=true) -}}\n{%- endif -%}\n---\n\n{{ input | append(newline=true) }}\n\"\"\"\n\nfrom_dir_filename = \"\"\"\n{%- set keywords = \'\' -%}\n{%- for sub in fm.fm_keywords | default(value=[]) -%}\n{%- set_global keywords = keywords~sub~\'_\' -%}\n{%- endfor -%}\n\n{%- if fm.fm_sort_tag -%}\n  {%- set tag = fm.fm_sort_tag | as_str -%}\n{%- else -%}\n  {%- set tag_default = now() | date(format=\'%Y%m%d\') -%}\n  {%- set tag = dir_path\n        | find_last_created_file\n        | incr_sort_tag(default=tag_default) -%}\n{%- endif -%}\n\n{{ fm.fm_title | sanit | prepend(with_sort_tag=tag) }}\\\n{{ keywords | default(value=\'\') | sanit | prepend(with=\'__\') }}\\\n{{ fm.fm_file_ext | default(value = extension_default ) | prepend(with=\'.\') }}\"\"\"\n\nfrom_text_file_content = \"\"\"\n{%- set file = path | file_name -%}\n{%- if file is containing(\'==\')-%}\n  {%- set file = file | split(pat=\'==\') | nth(n=1) -%}\n{%- endif -%}\n\n{%- if path | file_sort_tag != \'\' -%}\n  {%- set tag = path | file_sort_tag -%}\n{%- else -%}\n  {%- set tag = doc_file_date | default(value=now()) | date(format=\'%Y%m%d\') -%}\n{%- endif -%}\n\n{%- set file = file | file_stem -%}\n{%- set title = file | split(pat=\'__\') | first -%}\n{%- set keywords = file | split(pat=\'__\') | nth(n=1) -%}\n{%- set languages = [force_lang]\n   | replace_empty(with = doc.body | get_lang | map_lang(default=lang)) -%}\n{%- set lang = languages | first -%}\n---\n{{ title | trunc | to_yaml(key=\'fm_title\') }}\n{{ keywords | split(pat=\'_\') | to_yaml(key=\'fm_keywords\') }}\n{{ username | capitalize | to_yaml(key=\'fm_author\') }}\n{{ doc_file_date | default(value=now()) | date(format=\'%Y-%m-%d\') | to_yaml(key=\'fm_date\') }}\n{{ lang | to_yaml(key=\'fm_lang\') }}\n{% if languages | length > 1 -%}\n{{ languages | to_yaml(key=\'fm_languages\') | append(newline=true) }}\n{%- endif -%}\n{{ \'zettel\' | to_yaml(key=\'fm_scheme\') }}\n{{ tag | to_yaml(key=\'fm_sort_tag\') }}\n# {{ path | file_name | to_yaml(key=\'fm_orig_name\', tab=12) }}\n---\n\n{{ doc.body }}\n\"\"\"\n\nfrom_text_file_filename = \"\"\"\n{%- if fm.fm_sort_tag -%}\n  {%- set tag = fm.fm_sort_tag -%}\n{%- else -%}\n  {%- if path | file_sort_tag != \'\' -%}\n    {%- set tag = path | file_sort_tag -%}\n  {%- else -%}\n    {%- set tag = doc_file_date | default(value=now()) | date(format=\'%Y%m%d\') -%}\n  {%- endif -%}\n{%- endif -%}\n\n{%- set keywords = \'\' -%}\n{%- if fm.fm_keywords | as_str == fm.fm_keywords -%}\n  {%- set keywords = fm.fm_keywords -%}\n{%- else -%}\n  {%- for sub in fm.fm_keywords | default(value=[]) -%}\n    {%- set_global keywords = keywords~sub~\'_\' -%}\n  {%- endfor -%}\n{%- endif -%}\n\n{{ fm.fm_title | sanit | prepend(with_sort_tag=tag) }}\\\n{{ keywords | sanit | prepend(with=\'__\') }}\\\n{{ path | file_ext | prepend(with=\'.\') }}\"\"\"\n\nannotate_file_content = \"\"\"\n{%- set stdin = stdin.body |default(value = \'\') -%}\n{%- set html_clipboard = html_clipboard.body |default(value = \'\') -%}\n{%- set txt_clipboard = txt_clipboard.body |default(value = \'\') -%}\n\n{%- set stdin = stdin\n      | html_to_markup(extension=extension_default, default=stdin)\n      | append(newline=true) -%}\n{%- set clipboard = html_clipboard\n      | html_to_markup(extension=extension_default, default=txt_clipboard) -%}\n{%- set input = stdin ~ clipboard | trim_end -%}\n{%- set languages = [force_lang]\n      | replace_empty(with = input | replace_empty(with = path | file_stem) | get_lang | map_lang(default=lang)) -%}\n{%- set lang = languages | first -%}\n\n{%- set fname = path | file_name -%}\n{%- if extension_default != \'rst\' -%}\n   {%- set link = \'[\' ~ fname ~ \'](<\' ~ fname ~ \'>)\' -%}\n{%- else -%}\n   {%- set link = \'`<\' ~ fname ~ \'>`_\' -%}\n  {%- endif -%}\n---\n{{ path | trim_file_sort_tag | to_yaml(key=\'fm_title\') }}\n{{ [\'note\'] | to_yaml(key=\'fm_keywords\') }}\n{{ username | capitalize | to_yaml(key=\'fm_author\') }}\n{{ now() | date(format=\'%Y-%m-%d\') | to_yaml(key=\'fm_date\') }}\n{{ lang | to_yaml(key=\'fm_lang\') }}\n{% if languages | length > 1 -%}\n{{ languages | to_yaml(key=\'fm_languages\') | append(newline=true) }}\n{%- endif -%}\n{{ \'zettel\' | to_yaml(key=\'fm_scheme\') }}\n{{ path | file_sort_tag | to_yaml(key=\'fm_sort_tag\') }}\n---\n\n{{ link }}\n{{- input | prepend(with=\'\\n____\\n\\n\')}}\n\n\"\"\"\n\nannotate_file_filename = \"\"\"\n{%- set keywords = \'\' -%}\n{%- for sub in fm.fm_keywords | default(value=[]) -%}\n{%- set_global keywords = keywords~sub~\'_\' -%}\n{%- endfor -%}\n\n{%- if fm.fm_sort_tag -%}\n  {%- set tag = fm.fm_sort_tag -%}\n{%- else -%}\n  {%- set tag = path | file_sort_tag -%}\n{%- endif -%}\n\n{{ fm.fm_title | sanit | prepend(with_sort_tag=tag) }}\\\n{{ keywords | default(value=\'\') | sanit | prepend(with=\'__\') }}\\\n{{ extension_default | prepend(with=\'.\') }}\"\"\"\n\nsync_filename = \"\"\"\n{%- set keywords = \'\' -%}\n{%- set fm_keywords = fm.fm_keywords | default(value=\'\') -%}\n{%- if fm_keywords | as_str == fm_keywords -%}\n  {%- set_global keywords = fm_keywords -%}\n{%- else -%}\n  {%- for sub in fm.fm_keywords -%}\n    {%- set_global keywords = keywords~sub~\'_\' -%}\n  {%- endfor -%}\n{%- endif -%}\n\n{%- set tag = fm.fm_sort_tag | default(value = path | file_sort_tag) | as_str -%}\n\n{{ fm.fm_title | default(value=\'No title\') | sanit | prepend(with_sort_tag=tag) }}\\\n{{ keywords | sanit | prepend(with=\'__\') }}\\\n{{ fm.fm_file_ext | default(value = path | file_ext) | prepend(with=\'.\') }}\"\"\"\n\n### This is the end of scheme \"zettel\"\n\n\n\n\n### This part is common for all schemes.\n[tmpl_html]\n\n### HTML template to render regular viewer pages. Note: HTML templates escape HTML\n### critical symbols by default. To disable this feature for a specific variable,\n### add a `safe` filter in last position.\nviewer = \'\'\'\n{%- set ext = fm.fm_file_ext | default(value=path|file_ext) -%}\n<!DOCTYPE html>\n<html lang=\"{{ fm.fm_lang | default(value=\'en\') }}\">\n<head>\n<meta charset=\"UTF-8\">\n<title>{{ fm.fm_title }}</title>\n<link rel=\"stylesheet\" href=\"{{ viewer_doc_css_path | safe}}\">\n<link rel=\"stylesheet\" href=\"{{ viewer_highlighting_css_path |safe }}\">\n<style type=\"text/css\">\n/* Customize the viewer CSS here */\n</style>\n</head>\n<body>\n  <table class=\"fm\">\n    <tr>\n    <th class=\"fmkey\">{{\'fm_title\' | name}}:</th>\n    <th class=\"fmval\"><b>{{ fm.fm_title | default(value=\'\') | to_html | safe }}</b></th>\n  </tr>\n  {% if fm.fm_subtitle %}\n    <tr>\n    <th class=\"fmkey\">{{\'fm_subtitle\' | name}}:</th>\n    <th class=\"fmval\">{{ fm.fm_subtitle | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% if fm.fm_keywords %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_keywords\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_keywords | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_author\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_author | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_date\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_date | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_lang\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_lang | default(value=\'\') |to_html | safe }}</th>\n  </tr>\n  {% if fm.fm_languages %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_languages\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_languages | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% if fm.fm_scheme %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_scheme\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_scheme | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% if fm.fm_sort_tag %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_sort_tag\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_sort_tag | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% set extra_fm = fm\n     | remove(key=\'fm_title\')\n     | remove(key=\'fm_subtitle\')\n     | remove(key=\'fm_keywords\')\n     | remove(key=\'fm_author\')\n     | remove(key=\'fm_date\')\n     | remove(key=\'fm_lang\')\n     | remove(key=\'fm_languages\')\n     | remove(key=\'fm_scheme\')\n     | remove(key=\'fm_sort_tag\')\n   %}\n  {% if extra_fm | length > 0 %}\n    <tr><th colspan=2;\\\"/>&nbsp<th/</tr>\n  {% endif %}\n  {% for k, v in extra_fm %}\n    <tr>\n    <th class=\"fmkeygrey\">{{ k | name }}:</th>\n    <th class=\"fmvalgrey\">{{ v | to_html | safe }}</th>\n  </tr>\n  {% endfor %}\n  </table>\n  <div class=\"doc-body\">{{ doc.body | markup_to_html(extension=ext) | safe }}\n  </div>\n  <script>{{ viewer_doc_js | safe }}</script>\n</body>\n</html>\n\'\'\'\n\n### HTML template to render the viewer-error page.\nviewer_error = \"\"\"\n<!DOCTYPE html>\n<html lang=\\\"en\\\">\n<head>\n<meta charset=\\\"UTF-8\\\">\n<title>Syntax error</title>\n<style type=\"text/css\">\n@media (prefers-color-scheme: dark) {\n  .note-error { color: #e5948d; }\n  h1, h2, h3, h4, h5, h6 { color: #8db2e5; }\n  a { color: #8de594; }\n  body {\n    background: #292929;\n    color: #eeeeee;\n  }\n}\n@media (prefers-color-scheme: light) {\n  .note-error { color: #523626; }\n  h1, h2, h3, h4, h5, h6 { color: #263292; }\n  a { color: #316128; }\n  body {\n    background: #ffffff;\n    color: #000000;\n  }\n}\npre { white-space: pre-wrap; }\nh1, h2, h3, h4, h5, h6 { font-family:sans-serif; }\n</style>\n</head>\n<body>\n<h3>Syntax error</h3>\n<p> in note file: <pre>{{ path }}</pre><p>\n<div class=\\\"note-error\\\">\n<hr>\n<pre>{{ doc_error }}</pre>\n<hr>\n</div>\n{{ doc_text | markup_to_html | safe }}\n<script>{{ viewer_doc_js | safe }}</script>\n</body>\n</html>\n\"\"\"\n\n### A constant holding common CSS code, published by Tp-Note\'s viewer under the\n### `/viewer_doc.css` path.\nviewer_doc_css = \"\"\"\n/* Tp-Note\'s viewer document CSS */\n@media (prefers-color-scheme: dark) {\n  h1, h2, h3 { font-weight: normal; color: #fad566; }\n  h4, h5, h6 { font-weight: bold; color: #fad566; }\n  em { color: #cfba8b; }\n  a { color: #72a59e; }\n  body {\n    background: #232323;\n    color: #f3f2db;\n  }\n  table.fm { background-color: #303030; }\n  th.fmkey{ color: #cfba8b; }\n  th.fmval{ color: #99be70; }\n  th.fmkeygrey{ color: #999999; }\n  th.fmvalgrey{ color: #999999; }\n}\n@media (prefers-color-scheme: light) {\n  h1, h2, h3, h4, h5, h6 { color: #263292; }\n  em { color: #523626; }\n  a { color: #316128; }\n  body {\n    background: #ffffff;\n    color: #000000;\n  }\n  table.fm { background-color: #f3f2e4; }\n  th.fmkey{ color: #444444; }\n  th.fmval{ color: #316128; }\n  th.fmkeygrey{ color: grey; }\n  th.fmvalgrey{ color: grey; }\n}\ntable.fm {\n  font-weight: normal;\n  margin-left: auto;\n  margin-right: auto;\n  padding: 4px;\n  border:1px solid grey;\n}\nth.fmkey, th.fmkeygrey {\n  font-weight: normal;\n  padding-left:20px;\n  padding-right:10px;\n}\nth.fmval, th.fmvalgrey {\n  font-weight: normal;\n  padding-left:10px;\n  padding-right:20px;\n}\nth.fmkey{ text-align:right; vertical-align:top;}\nth.fmval{\n  text-align:left;\n  font-family:sans-serif;\n}\nth.fmkeygrey{ text-align:right; vertical-align:top;}\nth.fmvalgrey{ text-align:left; }\nul.fm {\n  padding-left: 15px;\n  margin: 0px;\n}\nli.fm {\n  padding-bottom: 0px;\n}\nblockquote.fm {\n  margin: 0px;\n  padding-left: 15px\n}\npre { white-space: pre-wrap; }\nh1 { font-size: 150% }\nh2 { font-size: 132% }\nh3 { font-size: 115% }\nh4, h5, h6 { font-size: 100% }\nh1, h2, h3, h4, h5, h6 { font-family:sans-serif; }\n\"\"\"\n\n### Loads the viewer\'s code syntax highlighting theme. The theme is converted\n### into additional CSS. Currently, available are:\n### * `base16-ocean.dark`\n### * `base16-eighties.dark`\n### * `base16-mocha.dark`\n### * `base16-ocean.light`\n### * `InspiredGitHub`\n### * `Solarized (dark)`\n### * `Solarized (light)`\nviewer_highlighting_theme = \"Solarized (light)\"\n\n### When left empty, the CSS is calculated automatically from\n### `viewer_highlighting_theme`. This is what you usually want. Anyway, if none\n### of the above themes fits, you can provide a custom CSS here.\nviewer_highlighting_css = \"\"\n\n### HTML template used to render a note into HTML when the rendition is saved to\n### disk. Similar to `tmpl_html.viewer` but does not inject JavaScript code.\nexporter = \'\'\'\n{%- set ext = fm.fm_file_ext | default(value=path|file_ext) -%}\n<!DOCTYPE html>\n<html lang=\"{{ fm.fm_lang | default(value=\'en\') }}\">\n<head>\n<meta charset=\"utf-8\">\n<title>{{ fm.fm_title }}</title>\n<style type=\"text/css\">\n{{ exporter_doc_css | safe }}\n{{ exporter_highlighting_css | safe }}\n/* Customize the viewer CSS here */\n</style>\n</head>\n<body>\n  <table class=\"fm\">\n    <tr>\n    <th class=\"fmkey\">{{\'fm_title\' | name}}:</th>\n    <th class=\"fmval\"><b>{{ fm.fm_title | default(value=\'\') | to_html | safe }}</b></th>\n  </tr>\n  {% if fm.fm_subtitle %}\n    <tr>\n    <th class=\"fmkey\">{{\'fm_subtitle\' | name}}:</th>\n    <th class=\"fmval\">{{ fm.fm_subtitle | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% if fm.fm_keywords %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_keywords\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_keywords | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_author\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_author | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_date\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_date | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_lang\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_lang | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% if fm.fm_languages %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_languages\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_languages | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% if fm.fm_scheme %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_scheme\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_scheme | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% if fm.fm_sort_tag %}\n    <tr>\n    <th class=\"fmkeygrey\">{{\'fm_sort_tag\' | name}}:</th>\n    <th class=\"fmvalgrey\">{{ fm.fm_sort_tag | default(value=\'\') | to_html | safe }}</th>\n  </tr>\n  {% endif %}\n  {% set extra_fm = fm\n     | remove(key=\'fm_title\')\n     | remove(key=\'fm_subtitle\')\n     | remove(key=\'fm_keywords\')\n     | remove(key=\'fm_author\')\n     | remove(key=\'fm_date\')\n     | remove(key=\'fm_lang\')\n     | remove(key=\'fm_languages\')\n     | remove(key=\'fm_scheme\')\n     | remove(key=\'fm_sort_tag\')\n   %}\n  {% if extra_fm | length > 0 %}\n    <tr><th colspan=2;\\\"/>&nbsp<th/</tr>\n  {% endif %}\n  {% for k, v in extra_fm %}\n    <tr>\n    <th class=\"fmkeygrey\">{{ k | name }}:</th>\n    <th class=\"fmvalgrey\">{{ v | to_html | safe }}</th>\n  </tr>\n  {% endfor %}\n  </table>\n  <div class=\"doc-body\">{{ doc.body | markup_to_html(extension=ext) | safe }}\n  </div>\n</body>\n</html>\n\'\'\'\n\n### Loads the exporter\'s code syntax highlighting theme. The theme is converted\n### into additional CSS. Currently, available are:\n### * `base16-ocean.dark`\n### * `base16-eighties.dark`\n### * `base16-mocha.dark`\n### * `base16-ocean.light`\n### * `InspiredGitHub`\n### * `Solarized (dark)`\n### * `Solarized (light)`\nexporter_highlighting_theme = \"Solarized (light)\"\n\n### When left empty, the CSS is calculated automatically from\n### `exporter_highlighting_theme`. This is what you usually want. Anyway, if\n### none of the above themes fits, you can provide a custom CSS here.\nexporter_highlighting_css = \"\"\n\n### A constant holding common CSS code, inserted into exported HTML documents\n### with the template variable `{{ exporter_doc.css }}`.\n### [CSS Paged Media Module Level 3](https://www.w3.org/TR/css-page-3/)\nexporter_doc_css = \"\"\"\n/* Tp-Note\'s exporter document CSS */\n@page {\n  @bottom-center {\n    content: counter(page) \"/\" counter(pages);\n  }\n  size: A4 portrait;\n}\n\n.custom-options input[type=checkbox]{\n  margin-left: 5px;\n  margin-right: 10px;\n  margin-bottom: 5px;\n}\ninput:before{content:attr(value)}\nselect:before{content:attr(value)}\nlabel {\n  display: block;\n}\ninput[type=checkbox] {\n  background-clip: content-box;\n  background-color: white;\n  border: 1px solid;\n  border-radius: 2px;\n  display: inline-block;\n  height: 0.5em;\n  margin: 0.5em 0.5em 0 0.5em;\n  padding: 2px;\n  width: 0.5em;\n}\ninput[type=checkbox][checked] {\n  background-color: gray;\n}\n\ntable.fm {\n  font-weight: normal;\n  margin-left: auto;\n  margin-right: auto;\n  padding: 4px;\n  background-color: #f3f2e4;\n  border:1px solid grey;\n}\nth.fmkey, th.fmkeygrey {\n  font-weight: normal;\n  padding-left:20px;\n  padding-right:10px;\n}\nth.fmval, th.fmvalgrey {\n  font-weight: normal;\n  padding-left:10px;\n  padding-right:20px;\n}\nth.fmkey{ color:#444444; text-align:right; vertical-align:top;}\nth.fmval{\n  color:#316128;\n  text-align:left;\n  font-family:sans-serif;\n}\nth.fmkeygrey{ color:grey; text-align:right; vertical-align:top;}\nth.fmvalgrey{ color:grey; text-align:left; }\nul.fm {\n  padding-left: 15px;\n  margin: 0px;\n}\nli.fm {\n  padding-bottom: 0px;\n}\nblockquote.fm {\n  margin: 0px;\n  padding-left: 15px\n}\npre { white-space: pre-wrap; }\nem { color: #523626; }\na { color: #316128; }\nh1 { font-size: 150% }\nh2 { font-size: 132% }\nh3 { font-size: 115% }\nh4, h5, h6 { font-size: 100% }\nh1, h2, h3, h4, h5, h6 { color: #263292; font-family:sans-serif; }\n\"\"\"\n";
Expand description

Default library configuration as TOML.