# The base URL of the site; the only required configuration variable.
base_url = "https://blog.zlinux.ru"

# The site title and description; used in feeds by default.
title = "~/zloy_linux"
description = "Блог о Linux, технологиях и жизни. Только хардкор, лайфхаки и реальные истории."

# The default language; used in feeds.
default_language = "ru"

# The site theme to use.
theme = "tabi"

# For overriding the default output directory `public`, set it to another value (e.g.: "docs")
output_dir = "public"

# Whether dotfiles at the root level of the output directory are preserved when (re)building the site.
# Enabling this also prevents the deletion of the output folder itself on rebuilds.
preserve_dotfiles_in_output = false

# When set to "true", the Sass files in the `sass` directory in the site root are compiled.
# Sass files in theme directories are always compiled.
compile_sass = true

# When set to "true", the generated HTML files are minified.
minify_html = true

# A list of glob patterns specifying asset files to ignore when the content
# directory is processed. Defaults to none, which means that all asset files are
# copied over to the `public` directory.
# Example:
#     ignored_content = ["*.{graphml,xlsx}", "temp.*", "**/build_folder"]
ignored_content = []

# Similar to ignored_content, a list of glob patterns specifying asset files to
# ignore when the static directory is processed. Defaults to none, which means
# that all asset files are copied over to the `public` directory
ignored_static = []

# When set to "true", a feed is automatically generated.
generate_feeds = true

# The filenames to use for the feeds. Used as the template filenames, too.
# Defaults to ["atom.xml"], which has a built-in template that renders an Atom 1.0 feed.
# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed.
feed_filenames = ["atom.xml"]

# The number of articles to include in the feed. All items are included if
# this limit is not set (the default).
# feed_limit = 20

# When set to "true", files in the `static` directory are hard-linked. Useful for large
# static files. Note that for this to work, both `static` and the
# output directory need to be on the same filesystem. Note that the theme's `static`
# files are always copied, regardless of this setting.
hard_link_static = false

# The default author for pages
author = "zloy"

# The taxonomies to be rendered for the site and their configuration of the default languages
# Example:
#     taxonomies = [
#       {name = "tags", feed = true}, # each tag will have its own feed
#       {name = "tags"}, # you can have taxonomies with the same name in multiple languages
#       {name = "categories", paginate_by = 5},  # 5 items per page for a term
#       {name = "authors"}, # Basic definition: no feed or pagination
#     ]
#
taxonomies = [{ name = "tags", feed = true }]

# When set to "true", a search index is built from the pages and section
# content for `default_language`.
build_search_index = true

# Configuration of the Markdown rendering
[markdown]
# When set to "true", all code blocks are highlighted.
highlight_code = true

# A list of directories used to search for additional `.sublime-syntax` and `.tmTheme` files.
extra_syntaxes_and_themes = []

# The theme to use for code highlighting.
# See below for list of allowed values.
highlight_theme = "css"

# When set to "true", emoji aliases translated to their corresponding
# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄)
render_emoji = true

# Whether external links are to be opened in a new tab
# If this is true, a `rel="noopener"` will always automatically be added for security reasons
external_links_target_blank = true

# Whether to set rel="nofollow" for all external links
external_links_no_follow = true

# Whether to set rel="noreferrer" for all external links
external_links_no_referrer = true

# Значок рядом с внешними ссылками
external_links_class = "external"

# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form)
# For example, `...` into `…`, `"quote"` into `“curly”` etc
smart_punctuation = false

# Whether to set decoding="async" and loading="lazy" for all images
# When turned on, the alt text must be plain text.
# For example, `![xx](...)` is ok but `![*x*x](...)` isn’t ok
lazy_async_image = false

# Configuration of the link checker.

[markdown.highlighting]
theme = "catppuccin-frappe"
style = "class"
error_on_missing_language = true

[link_checker]
# Skip link checking for external URLs that start with these prefixes
skip_prefixes = ["http://[2001:db8::]/"]

# Skip anchor checking for external URLs that start with these prefixes
skip_anchor_prefixes = ["https://caniuse.com/"]

# Treat internal link problems as either "error" or "warn", default is "error"
internal_level = "warn"

# Treat external link problems as either "error" or "warn", default is "error"
external_level = "error"

# Various slugification strategies, see below for details
# Defaults to everything being a slug
[slugify]
paths = "on"
taxonomies = "on"
anchors = "on"
# Whether to remove date prefixes for page path slugs.
# For example, content/posts/2016-10-08_a-post-with-dates.md => posts/a-post-with-dates
# When true, content/posts/2016-10-08_a-post-with-dates.md => posts/2016-10-08-a-post-with-dates
paths_keep_dates = false

[search]
# Whether to include the title of the page/section in the index
include_title = true
# Whether to include the description of the page/section in the index
include_description = true
# Whether to include the path of the page/section in the index
include_path = true
# Whether to include the rendered content of the page/section in the index
include_content = true
# At which character to truncate the content to. Useful if you have a lot of pages and the index would
# become too big to load on the site. Defaults to not being set.
# truncate_content_length = 100

# Wether to produce the search index as a javascript file or as a JSON file
# Accepted value "elasticlunr_javascript" or "elasticlunr_json"
index_format = "elasticlunr_json"

# Optional translation object for the default language
# Example:
#     default_language = "fr"
#
#     [translations]
#     title = "Un titre"
#
[translations]

# Additional languages definition
# You can define language specific config values and translations: 
# title, description, generate_feed, feed_filename, taxonomies, build_search_index
# as well as its own search configuration and translations (see above for details on those)
[languages]
# For example
# [languages.fr]
# title = "Mon blog"
# generate_feed = true
# taxonomies = [
#    {name = "auteurs"},
#    {name = "tags"},
# ]
# build_search_index = false

# You can put any kind of data here. The data
# will be accessible in all templates
# Example:
#     [extra]
#     author = "Famous author"
#
# author value will be available using {{ config.extra.author }} in templates
#
[extra]
theme_switcher = false
default_theme = "dark"
skin = "zloy"
override_serif_with_sans = true
show_reading_time = true
post_listing_date = "date"
favicon = "img/zloy.png"
#favicon_emoji = "🌱"
social_media_card = "index.jpg"
fediverse_creator = { handle = "zloy_linux", domain = "zlinux.ru" }
show_previous_next_article_links = true
invert_previous_next_article_links = true

# For multilingual sites: show current language code on the language switcher.
show_selected_language_code_in_language_switcher = false

# Enable iine like buttons on all posts: https://iine.to/
# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy
iine = true
iine_icon = "thumbs_up"  # See https://iine.to/#customise
# Unify like counts across all language versions of the same page.
# When enabled, likes on /es/blog/hello/ will count towards /blog/hello/ (default language).
iine_unified_languages = true



enable_csp = false


#allowed_domains = [
#    { directive = "font-src", domains = ["'self'", "data:"] },
#    { directive = "img-src", domains = ["'self'", "https://*", "data:"] },
#    { directive = "media-src", domains = ["'self'", "https://zlinux.ru/"] },
#    { directive = "script-src", domains = ["'self'", "https://zlinux.ru"] },
#    { directive = "style-src", domains = ["'self'", "https://zlinux.ru"] },
#    { directive = "frame-src", domains = ["player.vimeo.com", "https://www.youtube-nocookie.com", "https://zlinux.ru"] },
#]


remote_repository_url = "https://gitea.zlinux.ru/zloy_linux/blog.zlinux.ru.git"
remote_repository_git_platform = "auto"
remote_repository_branch = "main"
show_remote_changes = true
show_remote_source = true


katex = false
mermaid = false
copy_button = true
code_block_name_links = true


compact_tags = false

short_date_format = ""

# Date format used for the archive page.
# Default is "06 July" in English and "%d %b" in other languages.
archive_date_format = ""

# Per-language date format overrides.
# Examples: Spanish uses "3 de febrero de 2024", German uses "3. Februar 2024"
date_formats = [
    { lang = "ru", long = "%d %B %Y", short = "%-d %b %Y", archive = "%d %b" },
    { lang = "en", long = "%d. %B %Y", short = "%d.%m.%Y" },
]

tag_sorting = "frequency"

menu = [
  { name = "blog", url = "blog", trailing_slash = true },
  { name = "soft", url = "soft", trailing_slash = true },
  { name = "articles", url = "articles", trailing_slash = true },
  { name = "tags", url = "tags", trailing_slash = true },
  { name = "archive", url = "archive", trailing_slash = true },
  { name = "git", url = "https://gitea.zlinux.ru/zloy_linux", trailing_slash = true },
]

feed_icon = true
email = "emxveV9saW51eEB6bGludXgucnU="
encode_plaintext_email = true

socials = [
  { name = "microblog", url = "https://bashebash.ru/", icon = "microblog" },
  { name = "deltachat", url = "https://i.delta.chat/#CA381D2DA62FA2A043501FE30AEE6972AD3ED2DA&a=zloy_linux%40zlinux.ru&n=zloy%20linux&i=hfOmwJ91hQA25fsRmD3mdRmC&s=Wr9KTnrOFKPSdG00_TdVJgf6", icon = "deltachat" },
  # { name = "peertube", url = "https://video.zlinux.ru/a/zloy_linux/video-channels", icon = "peertube" },
  #  { name = "youtube", url = "https://youtube.com/#", icon = "youtube" },
  { name = "pixelfed", url = "https://pixelfed.social/zloy_linuxoid", icon = "pixelfed" },
]

footer_menu = [
  #    {url = "about", name = "about", trailing_slash = true},
  #    {url = "privacy", name = "privacy", trailing_slash = true},
  { name = "projects", url = "projects", trailing_slash = true }, 
  { url = "https://zloy.goatcounter.com", name = "статистика", trailing_slash = true },
  { url = "sitemap.xml", name = "sitemap", trailing_slash = false },
]

[extra.analytics]
#service = "umami"
#id = "4ee44323-925a-401b-996d-2b6a63dfc527"
#self_hosted_url = "https://stats.zlinux.ru"
service = "goatcounter"
id = "zloy"
#self_hosted_url = "https://zloy.goatcounter.com"

# Optional: For Umami, enable this option to respect users' Do Not Track (DNT) settings. The default is true.
do_not_track = true

[extra.isso]
enabled_for_all_posts = true  # Enables Isso on all posts. It can be enabled on individual posts by setting `isso = true` in the [extra] section of a post's front matter.
automatic_loading = true  # If set to false, a "Load comments" button will be shown.
endpoint_url = "https://comment.zlinux.ru/"  # Accepts relative paths like "/comments/" or "/isso/", as well as full urls like "https://example.com/comments/". Include the trailing slash.
page_id_is_slug = true  # If true, it will use the relative path for the default language as id; this is the only way to share comments between languages. If false, it will use the entire url as id.
lang = ""  # Leave blank to match the page's language.
max_comments_top = "inf"  # Number of top level comments to show by default. If some comments are not shown, an “X Hidden” link is shown.
max_comments_nested = "5"  # Number of nested comments to show by default. If some comments are not shown, an “X Hidden” link is shown.
avatar = true
voting = true
page_author_hashes = ""  # hash (or list of hashes) of the author.
lazy_loading = true  # Loads when the comments are in the viewport (using the Intersection Observer API).


[extra.webmentions]
# To disable for a specific section or page, set webmentions = false in that page/section's front matter's [extra] section.
enable = false
# Specify the domain registered with webmention.io.
domain = ""

# The HTML ID for the object to fill in with the webmention data.
# Defaults to "webmentions"
# id = "webmentions"

# data configuration for the webmention.min.js script
# The base URL to use for this page. Defaults to window.location
# page_url =

# Additional URLs to check, separated by |s
# add_urls

# The maximum number of words to render in reply mentions.
# wordcount = 20

# The maximum number of mentions to retrieve. Defaults to 30.
# max_webmentions = 30

# By default, Webmentions render using the mf2 'url' element, which plays
# nicely with webmention bridges (such as brid.gy and telegraph)
# but allows certain spoofing attacks. If you would like to prevent
# spoofing, set this to a non-empty string (e.g. "true").
# prevent_spoofing

# What to order the responses by; defaults to 'published'. See
# https://github.com/aaronpk/webmention.io#api
# sort_by

# The order to sort the responses by; defaults to 'up' (i.e. oldest
# first). See https://github.com/aaronpk/webmention.io#api
# sort_dir

# If set to a non-empty string (e.g. "true"), will display comment-type responses
# (replies/mentions/etc.) as being part of the reactions
# (favorites/bookmarks/etc.) instead of in a separate comment list.
# comments_are_reactions = "true"

# h-card configuration
# Will identify you on the indieweb (see https://microformats.org/wiki/h-card)
[extra.hcard]
# Enable home page h-card.
enable = true
# Add your email to the card if extra.email is set and not encoded.
with_mail = true
# Add your social links ('socials' config) to the card.
with_social_links = true
# Homepage url. Defaults to the value of 'base_url'.
homepage = "https://zlinux.ru"
avatar = "img/avator.webp"
# Display name, default to the value of 'author'.
full_name = "Zloy Linux"
# Small bio, as shown on social media profiles.
biography = "Linux Man"
#
# You can add any property from https://microformats.org/wiki/h-card#Properties
# Make sure to replace all '-' characters by '_'
# Examples:
p_nickname = "zloy_linux"
# p_locality = "Bordeaux"
p_country_name = "Russia"
