mirror of
https://github.com/hugo-fixit/FixIt.git
synced 2026-08-24 15:28:57 +00:00
a96ba665ac
* refactor(assets)!: rewrite content encryption with AES-256-GCM and PBKDF2
- Remove legacy Base64 obfuscation layer (content-encryption.html)
- Replace <cipher-text> with <template> for inert content storage
- Single-layer AES-256-GCM encryption via post-build script
- PBKDF2 key derivation (100k iterations) for encryption
- PBKDF2-protected password verification (data-verify-salt)
- Depth-tracking parser for nested shortcode support
- Dev mode: plaintext content used directly without encryption
- Remove crypto-js and xxhash-wasm vendored dependencies
* feat(post-encrypt): prepare package for npm publishing
- Add bin entry, build script, and dist output for npx usage
- Replace @hugo-fixit/shared with standalone implementations
- Add CLI shebang for direct execution
- Add package README with usage documentation
- Remove FIXIT_ENCRYPT_INPUT env var (redundant with --input)
- Add encryption detection warning in assets.html
- Remove Post-build Encryption sections from READMEs
* chore: integrate post-encrypt into build pipeline and use consola
- Replace console with consola for post-encrypt logging
- Improve verification messages (no templates, count, etc.)
- Simplify build scripts: encrypt runs as part of main build
- Update encryption detection warning to use npx command
* feat(assets): add encryption dev warning admonition
- Add danger admonition in single.html for full-page encryption (dev mode only)
- Add encryption detection warning in assets.html console
- Improve post-encrypt verification messages with template count
* feat(assets): improve encryption i18n, cache security, and error handling
- Add encryptionWarning and encryptionCommand i18n keys for all 16 languages
- Store PBKDF2 verification hash in localStorage cache for better security
- Show decryption errors via flashTooltip instead of console only
- Add FixItDecryptor type definitions in global.ts
- Move encryption detection to init/detection-encryption.html with batched warning
- Remove redundant per-page warning from assets.html
* feat(assets): redesign fixit-decryptor UI with card layout
- Page-level: card form with lock icon header, password input with key icon, primary-colored unlock button, circular re-encrypt button
- Shortcode-level: connected input+button design (search bar style) with focus ring sync
- Remove loading spinner, use display:none/flex toggle via .initialized class
- Move lock icon styling to UnoCSS (text-primary text-xl)
- Initialize CellTooltip on re-encrypt button
- Fix JSDoc @param warnings in global.ts
* refactor(assets): unify TOC template and decryptor animations
- TOC always rendered in `<template data-toc>`, containers populated by initToc()
- Moved TOC scroll/resize handling from events.ts to toc.ts (syncTocLayout, syncTocActiveState)
- Removed EventsModule toc dependency, updated public-api.ts constructor
- Removed visibility:hidden from #toc-auto
- Decryptor: form always visible, @starting-style for fade-in on init
- Decryptor: content expand/collapse animation using height + opacity
- Removed encrypted-hidden from TOC elements in single.html
* refactor(assets): add target to fixit:decrypted event and simplify handlers
- Add { target: Element } payload to fixit:decrypted in event-bus.ts
- Remove $content closure from fixit-decryptor init(), use detail.target
- Update content.ts and toc.ts to use detail.target from event
* fix(assets): use eventBus for TOC scroll/resize listeners and eliminate redundant template parsing
- Replace raw window scroll/resize listeners in TocModule with eventBus
subscriptions (fixit:scroll/fixit:resize), reusing EventsModule's
throttle and debounce instead of duplicating un-throttled handlers.
- Refactor hasUnencryptedTemplate in post-encrypt to accept the already-
computed matches array, avoiding a redundant findEncryptionTemplates
call on the same HTML content.
- Remove crypto-js and xxhash-wasm from README credits.
* style(assets): soften decryptor button background and add form hover shadow
* build(workflow): add post-encrypt step to build script
1882 lines
48 KiB
TOML
1882 lines
48 KiB
TOML
# =====================================================================================
|
|
# It's recommended to use Alternate Theme Config to configure FixIt
|
|
# Modifying this file may result in merge conflict
|
|
# There are currently some restrictions to what a theme component can configure:
|
|
# params, menu(s), outputformats and mediatypes
|
|
# =====================================================================================
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Hugo Configuration
|
|
# See: https://gohugo.io/configuration/all/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
# website title
|
|
title = ""
|
|
# hostname (and path) to the root
|
|
baseURL = "http://localhost:1313"
|
|
# theme list
|
|
# theme = ["FixIt"] # enable in your site config file
|
|
# determines default content language ["en", "zh-cn", "fr", "pl", ...]
|
|
defaultContentLanguage = "en"
|
|
# language code ["en", "zh-CN", "fr", "pl", ...]
|
|
languageCode = "en"
|
|
# language name ["English", "简体中文", "Français", "Polski", ...]
|
|
languageName = "English"
|
|
# whether to include Chinese/Japanese/Korean
|
|
hasCJKLanguage = false
|
|
# copyright description used only for seo schema
|
|
copyright = ""
|
|
# whether to use robots.txt
|
|
enableRobotsTXT = true
|
|
# whether to use git commit log
|
|
enableGitInfo = true
|
|
# whether to use emoji code
|
|
enableEmoji = true
|
|
# the main sections of a site
|
|
# if set, the MainSections method on the Site object returns the given sections,
|
|
# otherwise it returns the section with the most pages.
|
|
# mainSections = ["posts"]
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Front Matter Configuration
|
|
# See: https://gohugo.io/configuration/front-matter/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[frontmatter]
|
|
_merge = "shallow"
|
|
lastmod = [
|
|
"lastmod",
|
|
":git",
|
|
":fileModTime",
|
|
":default",
|
|
]
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Imaging Configuration
|
|
# See: https://gohugo.io/configuration/imaging/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[imaging]
|
|
_merge = "shallow"
|
|
quality = 75
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Menu Configuration
|
|
# See: https://fixit.lruihao.cn/documentation/basics/#menu-configuration
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[menus]
|
|
|
|
[[menus.main]]
|
|
identifier = "archives"
|
|
parent = ""
|
|
# you can add extra information before the name (HTML format is supported), such as icons
|
|
pre = ""
|
|
# you can add extra information after the name (HTML format is supported), such as icons
|
|
post = ""
|
|
name = "Archives"
|
|
url = "/archives/"
|
|
# title will be shown when you hover on this menu link
|
|
title = ""
|
|
weight = 1
|
|
|
|
# add user-defined content to menu items
|
|
[menus.main.params]
|
|
# add css class to a specific menu item
|
|
class = ""
|
|
# whether set as a draft menu item whose function is similar to a draft post/page
|
|
draft = false
|
|
# add fontawesome icon to a specific menu item
|
|
icon = "fa-solid fa-archive"
|
|
# set menu item type, optional values: ["mobile", "desktop"]
|
|
type = ""
|
|
# whether to show the submenu item divider line
|
|
divided = false
|
|
|
|
[[menus.main]]
|
|
identifier = "categories"
|
|
parent = ""
|
|
pre = ""
|
|
post = ""
|
|
name = "Categories"
|
|
url = "/categories/"
|
|
title = ""
|
|
weight = 2
|
|
|
|
[menus.main.params]
|
|
icon = "fa-solid fa-folder-tree"
|
|
|
|
[[menus.main]]
|
|
identifier = "tags"
|
|
parent = ""
|
|
pre = ""
|
|
post = ""
|
|
name = "Tags"
|
|
url = "/tags/"
|
|
title = ""
|
|
weight = 3
|
|
|
|
[menus.main.params]
|
|
icon = "fa-solid fa-tags"
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Related content Configuration
|
|
# See: https://gohugo.io/content-management/related-content/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[related]
|
|
includeNewer = false
|
|
threshold = 80
|
|
toLower = false
|
|
|
|
[[related.indices]]
|
|
applyFilter = false
|
|
cardinalityThreshold = 0
|
|
name = 'keywords'
|
|
pattern = ''
|
|
toLower = false
|
|
type = 'basic'
|
|
weight = 100
|
|
|
|
[[related.indices]]
|
|
applyFilter = false
|
|
cardinalityThreshold = 0
|
|
name = 'date'
|
|
pattern = ''
|
|
toLower = false
|
|
type = 'basic'
|
|
weight = 10
|
|
|
|
[[related.indices]]
|
|
applyFilter = false
|
|
cardinalityThreshold = 0
|
|
name = 'tags'
|
|
pattern = ''
|
|
toLower = false
|
|
type = 'basic'
|
|
weight = 80
|
|
|
|
[[related.indices]]
|
|
applyFilter = false
|
|
name = 'fragmentrefs'
|
|
type = 'fragments'
|
|
weight = 80
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Modules Configuration
|
|
# See: https://gohugo.io/configuration/module/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[module]
|
|
|
|
[module.hugoVersion]
|
|
extended = true
|
|
min = "0.161.0"
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Markup Configuration
|
|
# See: https://gohugo.io/configuration/markup/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[markup]
|
|
_merge = "shallow"
|
|
|
|
# Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
|
|
[markup.highlight]
|
|
# ~~~~~~~~~~ necessary configurations ~~~~~~~~~~
|
|
# https://github.com/hugo-fixit/FixIt/issues/43
|
|
codeFences = true
|
|
noClasses = false
|
|
# ~~~~~~~~~~ necessary configurations ~~~~~~~~~~
|
|
anchorLineNos = false
|
|
guessSyntax = true
|
|
lineNos = true
|
|
lineNumbersInTable = true
|
|
|
|
# goldmark is from Hugo 0.60 the default library used for Markdown
|
|
# See: https://gohugo.io/configuration/markup/#goldmark
|
|
[markup.goldmark]
|
|
duplicateResourceFiles = false
|
|
|
|
[markup.goldmark.extensions]
|
|
definitionList = true
|
|
footnote = true
|
|
linkify = true
|
|
linkifyProtocol = 'https'
|
|
strikethrough = false
|
|
table = true
|
|
taskList = true
|
|
typographer = true
|
|
|
|
# See: https://gohugo.io/configuration/markup/#extras
|
|
[markup.goldmark.extensions.extras]
|
|
|
|
[markup.goldmark.extensions.extras.delete]
|
|
enable = true
|
|
|
|
[markup.goldmark.extensions.extras.insert]
|
|
enable = true
|
|
|
|
[markup.goldmark.extensions.extras.mark]
|
|
enable = true
|
|
|
|
[markup.goldmark.extensions.extras.subscript]
|
|
enable = true
|
|
|
|
[markup.goldmark.extensions.extras.superscript]
|
|
enable = true
|
|
|
|
# https://gohugo.io/content-management/mathematics/
|
|
[markup.goldmark.extensions.passthrough]
|
|
enable = true
|
|
|
|
[markup.goldmark.extensions.passthrough.delimiters]
|
|
block = [
|
|
[
|
|
'\[',
|
|
'\]'
|
|
],
|
|
[
|
|
'$$',
|
|
'$$'
|
|
]
|
|
]
|
|
inline = [
|
|
[
|
|
'\(',
|
|
'\)'
|
|
],
|
|
[
|
|
'$',
|
|
'$'
|
|
]
|
|
]
|
|
|
|
[markup.goldmark.parser]
|
|
|
|
[markup.goldmark.parser.attribute]
|
|
block = true
|
|
title = true
|
|
|
|
[markup.goldmark.renderer]
|
|
hardWraps = false
|
|
# whether to use HTML tags directly in the document
|
|
unsafe = true
|
|
xhtml = false
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Sitemap Configuration
|
|
# See: https://gohugo.io/templates/sitemap/#configuration
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[sitemap]
|
|
changefreq = "weekly"
|
|
disable = false
|
|
filename = "sitemap.xml"
|
|
priority = 0.5
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Permalinks Configuration
|
|
# See: https://gohugo.io/content-management/urls/#permalinks
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[permalinks]
|
|
|
|
[permalinks.page]
|
|
# posts = "/p/:slugorcontentbasename"
|
|
|
|
[permalinks.section]
|
|
# posts = "/posts/:slugorcontentbasename"
|
|
|
|
[permalinks.taxonomy]
|
|
|
|
[permalinks.term]
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Privacy Configuration
|
|
# See: https://gohugo.io/configuration/privacy/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[privacy]
|
|
|
|
[privacy.x]
|
|
enableDNT = true
|
|
|
|
[privacy.youtube]
|
|
privacyEnhanced = true
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Media Types Configuration
|
|
# See: https://gohugo.io/configuration/media-types/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
# [mediaTypes]
|
|
|
|
# [mediaTypes."application/feed+json"]
|
|
# suffixes = [ "json" ]
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Output Format Configuration
|
|
# See: https://gohugo.io/configuration/output-formats/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[outputFormats]
|
|
|
|
# Options to make output /archives/index.html file
|
|
[outputFormats.archives]
|
|
path = "archives"
|
|
baseName = "index"
|
|
mediaType = "text/html"
|
|
isPlainText = false
|
|
isHTML = true
|
|
permalinkable = true
|
|
notAlternative = true
|
|
|
|
# Options to make output /offline/index.html file
|
|
[outputFormats.offline]
|
|
path = "offline"
|
|
baseName = "index"
|
|
mediaType = "text/html"
|
|
isPlainText = false
|
|
isHTML = true
|
|
permalinkable = true
|
|
notAlternative = true
|
|
|
|
# Options to make output /link/index.html file
|
|
[outputFormats.link]
|
|
path = "link"
|
|
baseName = "index"
|
|
mediaType = "text/html"
|
|
isPlainText = false
|
|
isHTML = true
|
|
permalinkable = true
|
|
notAlternative = true
|
|
|
|
# Options to make output readme.md file
|
|
[outputFormats.readme]
|
|
baseName = "readme"
|
|
mediaType = "text/markdown"
|
|
isPlainText = true
|
|
isHTML = false
|
|
notAlternative = true
|
|
|
|
# Options to make output baidu_urls.txt file
|
|
[outputFormats.baidu_urls]
|
|
baseName = "baidu_urls"
|
|
mediaType = "text/plain"
|
|
isPlainText = true
|
|
isHTML = false
|
|
notAlternative = true
|
|
|
|
# Options to make output search.json file
|
|
[outputFormats.search]
|
|
baseName = "search"
|
|
mediaType = "application/json"
|
|
rel = "search"
|
|
isPlainText = true
|
|
isHTML = false
|
|
permalinkable = true
|
|
|
|
# Options to make output site.webmanifest file
|
|
[outputFormats.manifest]
|
|
baseName = "site"
|
|
mediaType = "application/manifest+json"
|
|
rel = "manifest"
|
|
isPlainText = true
|
|
isHTML = false
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Output Configuration
|
|
# See: https://gohugo.io/configuration/outputs/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
# options to make hugo output files, the optional values are below:
|
|
# home = ["html", "rss", "archives", "search", "offline", "manifest", "link", "readme", "baidu_urls"]
|
|
# page = ["html", "markdown"]
|
|
# section = ["html", "rss"]
|
|
# taxonomy = ["html"]
|
|
# term = ["html", "rss"]
|
|
[outputs]
|
|
_merge = "shallow"
|
|
home = [
|
|
"html",
|
|
"rss",
|
|
"archives",
|
|
"search",
|
|
"offline",
|
|
"manifest",
|
|
"link"
|
|
]
|
|
page = [
|
|
"html",
|
|
"markdown"
|
|
]
|
|
section = [
|
|
"html",
|
|
"rss"
|
|
]
|
|
taxonomy = [ "html" ]
|
|
term = [
|
|
"html",
|
|
"rss"
|
|
]
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Taxonomies Configuration
|
|
# See: https://gohugo.io/configuration/taxonomies/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[taxonomies]
|
|
_merge = "shallow"
|
|
category = "categories"
|
|
tag = "tags"
|
|
collection = "collections"
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Build Configuration
|
|
# See: https://gohugo.io/configuration/build/
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[build]
|
|
noJSConfigInAssets = true
|
|
|
|
# -------------------------------------------------------------------------------------
|
|
# Theme Core Configuration
|
|
# Two types of params:
|
|
# 1. Site-level params — apply to the entire site, can NOT be overridden per-page.
|
|
# 2. Page-level params — can be overridden per-page via page front matter.
|
|
#
|
|
# See: https://fixit.lruihao.cn/documentation/basics/#theme-configuration
|
|
# -------------------------------------------------------------------------------------
|
|
|
|
[params]
|
|
# FixIt theme version
|
|
version = "1.0.X" # e.g. "0.4.X", "0.4.5", "v1.0.0" etc.
|
|
# site description
|
|
description = ""
|
|
# site keywords
|
|
keywords = []
|
|
# site default theme ["light", "dark", "auto"]
|
|
default_theme = "auto"
|
|
# which hash function used for SRI, when empty, no SRI is used
|
|
# ["sha256", "sha384", "sha512", "md5"]
|
|
fingerprint = ""
|
|
# date format
|
|
date_format = "2006-01-02"
|
|
# website images for Open Graph and Twitter Cards
|
|
images = []
|
|
# whether to add site title to the title of every page
|
|
# remember to set up your site title in `hugo.toml` (e.g. title = "title")
|
|
with_site_title = true
|
|
# title delimiter when the site title is be added to the title of every page
|
|
title_delimiter = "-"
|
|
# whether to add site subtitle to the title of index page
|
|
# remember to set up your site subtitle by `params.header.subtitle.name`
|
|
index_with_subtitle = false
|
|
# whether to enable merging missing translations from other languages
|
|
# when set to true, missing translations from other languages will be merged and displayed
|
|
# default is false for better performance, especially for single-language sites
|
|
# set to true if your site has multiple languages and you want to show all content
|
|
enable_translation_merge = false
|
|
# whether to enable tooltip replacement for elements with title attribute, such as footnote references
|
|
tooltip = true
|
|
# FixIt will, by default, inject a theme meta tag in the HTML head on the home page only.
|
|
# you can turn it off, but we would really appreciate if you don't, as this is a good way to watch FixIt's popularity on the rise.
|
|
disable_theme_inject = false
|
|
|
|
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
# Page-level params
|
|
# All params and sections below can be used in page front matter to override per-page.
|
|
#
|
|
# Example front matter:
|
|
# ---
|
|
# capitalize_titles: false
|
|
# hidden_from_home_page: true
|
|
# toc:
|
|
# enable: true
|
|
# math:
|
|
# enable: true
|
|
# comment:
|
|
# enable: false
|
|
# ---
|
|
#
|
|
# See: https://fixit.lruihao.cn/documentation/content-management/front-matter
|
|
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
# whether to capitalize titles
|
|
capitalize_titles = true
|
|
# whether to show summary in plain text
|
|
summary_plainify = false
|
|
# whether to enable the author's avatar of the post
|
|
author_avatar = true
|
|
# whether to hide a page from home page
|
|
hidden_from_home_page = false
|
|
# whether to hide a page from search results
|
|
hidden_from_search = false
|
|
# whether to hide a page from related posts
|
|
hidden_from_related = false
|
|
# whether to hide a page from RSS, Atom and JSON feed
|
|
hidden_from_feed = false
|
|
# whether to enable twemoji
|
|
twemoji = false
|
|
# whether to enable lightgallery
|
|
# set to true, images in the content will be shown as the gallery if the image has a title, e.g. 
|
|
# set to "force", images in the content will be forced to shown as the gallery regardless of the image has a title or not, e.g. 
|
|
# [todo] change gallery engine in the future
|
|
lightgallery = false
|
|
# whether to enable the ruby extended syntax
|
|
ruby = true
|
|
# whether to enable the fraction extended syntax
|
|
fraction = true
|
|
# whether to enable the fontawesome extended syntax
|
|
fontawesome = true
|
|
# license info (HTML format is supported)
|
|
license = '<a rel="license external nofollow noopener noreferrer" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a>'
|
|
# Page style ["narrow", "normal", "wide", ...]
|
|
page_style = "normal"
|
|
# Auto Bookmark Support
|
|
# if true, save the reading progress when closing the page.
|
|
auto_bookmark = false
|
|
# whether to show the last modified time
|
|
show_lastmod = true
|
|
# whether to enable wordCount
|
|
word_count = true
|
|
# whether to enable readingTime
|
|
reading_time = true
|
|
# whether to enable instant.page
|
|
instant_page = false
|
|
# whether to enable collection list at the sidebar
|
|
collection_list = false
|
|
# whether to enable collection navigation at the end of the post
|
|
collection_navigation = false
|
|
# end of post flag
|
|
end_flag = ""
|
|
|
|
# Author Configuration
|
|
[params.author]
|
|
name = ""
|
|
email = ""
|
|
link = ""
|
|
avatar = ""
|
|
|
|
# Link config
|
|
[params.link]
|
|
# whether to add external Icon for external links automatically
|
|
external_icon = true
|
|
|
|
# External link guard config
|
|
[params.link.guard]
|
|
enable = false
|
|
# external link guard mode, available modes: ["modal", "redirect"]
|
|
# in "modal" mode, a dialog will pop up to ask for confirmation when users click external links
|
|
# in "redirect" mode, users will be redirected to an intermediate page before visiting external links
|
|
mode = "modal"
|
|
# allowed domains (exact host or parent domain) will skip confirmation
|
|
allow_domains = []
|
|
|
|
# Image config
|
|
# combined with Hugo's image processing option `imaging` for image optimisation
|
|
[params.image]
|
|
# cache remote images for better optimisations
|
|
cache_remote = false
|
|
# Image resizing and optimisation (may slow builds)
|
|
optimise = false
|
|
# A list of image file names or patterns to exclude from optimisation
|
|
# e.g. ["no-optimize.jpg", "*.tiff", "images/exclude-*.webp"]
|
|
black_list = []
|
|
|
|
# Code block wrapper config
|
|
# you can override the global config via Markdown attributes, for example:
|
|
# ```lang {mode="mac", max_shown_lines=5}
|
|
# code here
|
|
# ```
|
|
[params.codeblock]
|
|
# whether to enable the code block wrapper
|
|
wrapper = true
|
|
# code block mode
|
|
# available modes: ["classic", "mac", "simple", ...]
|
|
# if you set to custom value, you need to create a custom CSS for data-mode attribute
|
|
mode = "classic"
|
|
# additional classes for the code block wrapper
|
|
# e.g. "is-collapsed is-expanded line-nos-hidden line-wrapping"
|
|
wrapper_class = ""
|
|
# the maximum number of lines to show in the code block preview
|
|
max_shown_lines = 10
|
|
# whether to show shadow effect for code blocks, available values: ["always", "hover", "never"]
|
|
shadow = "never"
|
|
# whether to enable code copy button
|
|
copyable = true
|
|
# [classic] whether to enable code download button in the code block header
|
|
downloadable = false
|
|
# [classic] whether to enable code fullscreen button in the code block header
|
|
fullscreen = false
|
|
# [classic] whether to enable line numbers toggle button in the code block header
|
|
line_nos_toggler = true
|
|
# [classic] whether to enable toggle line wrapping button in the code block header
|
|
line_wrap_toggler = true
|
|
# [classic][Experimental] whether to enable code edit button in the code block header
|
|
editable = false
|
|
|
|
# JSON Viewer config
|
|
# See https://github.com/Lruihao/json-viewer-element
|
|
[params.json_viewer]
|
|
enable = true
|
|
expand_depth = 1
|
|
copyable = true
|
|
sort = false
|
|
boxed = true
|
|
|
|
# File tree config
|
|
# See https://fixit.lruihao.cn/documentation/content-management/shortcodes/extended/file-tree/
|
|
[params.filetree]
|
|
# the expand level of the tree (expand all: -1, collapse all: 0)
|
|
level = 1
|
|
# whether to append a trailing "/" to folder names
|
|
folder_slash = false
|
|
# list of file or folder names to ignore
|
|
ignore_list = []
|
|
# list of file or folder names to highlight
|
|
highlight_list = []
|
|
|
|
# Mermaid config
|
|
# See http://fixit.lruihao.cn/documentation/content-management/diagrams-support/mermaid/
|
|
[params.mermaid]
|
|
# whether to enable the Mermaid wrapper
|
|
# When enabled, Mermaid diagrams are wrapped with diagram tabs and actions:
|
|
# - pan/zoom (drag & ctrl+wheel)
|
|
# - reset view
|
|
# - download as SVG
|
|
wrapper = true
|
|
# Mermaid ESM module CDN source
|
|
# default is https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs
|
|
cdn = ""
|
|
# ZenUML ESM module CDN source
|
|
# default is empty, you can set it to a CDN source to enable ZenUML support
|
|
# e.g. https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.min.mjs
|
|
zenuml = ""
|
|
# for values, see https://mermaid.js.org/config/theming.html#available-themes
|
|
themes = [
|
|
"default",
|
|
"dark"
|
|
]
|
|
# The security level for Mermaid diagrams
|
|
# optional values: ["strict", "loose", "antiscript", "sandbox"]
|
|
security_level = "loose"
|
|
# The appearance style for Mermaid diagrams
|
|
# optional values: ["classic", "handDrawn"]
|
|
look = "handDrawn"
|
|
# Specifies the font to be used in the rendered diagrams
|
|
font_family = ""
|
|
# Layout loaders from ESM module CDN sources (e.g., ELK layout engine)
|
|
# Example: ["https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk/dist/mermaid-layout-elk.esm.min.mjs"]
|
|
# this will enable additional layout options: ["elk", "elk.layered", "elk.stress", "elk.force", "elk.mrtree"]
|
|
layout_loaders = []
|
|
# default layout algorithm for rendering diagrams
|
|
# available options: "dagre" (default), "elk", "elk.layered", "elk.stress", "elk.force", "elk.mrtree"
|
|
# note: ELK layouts require layout_loaders to be configured first
|
|
layout = "dagre"
|
|
|
|
# Table of the contents config
|
|
[params.toc]
|
|
# whether to enable the table of the contents
|
|
enable = true
|
|
# whether to keep the static table of the contents in front of the post
|
|
keep_static = false
|
|
# whether to make the table of the contents in the sidebar automatically collapsed
|
|
auto = true
|
|
# position of TOC ["left", "right"]
|
|
position = "right"
|
|
# supersede `markup.tableOfContents` settings
|
|
ordered = false
|
|
start_level = 2
|
|
end_level = 6
|
|
# whether to decrease the H1 heading level in content
|
|
decrease_h1 = false
|
|
|
|
# Display a message at the beginning of an article to warn the reader that its content might be expired
|
|
[params.expiration_reminder]
|
|
enable = false
|
|
# display the reminder if the last modified time is more than 90 days ago
|
|
reminder = 90
|
|
# display warning if the last modified time is more than 180 days ago
|
|
warning = 180
|
|
# if the article expires, close the comment or not
|
|
close_comment = false
|
|
|
|
# page heading config
|
|
[params.heading]
|
|
# whether to capitalize automatic text of headings
|
|
capitalize = false
|
|
|
|
# must set `params.toc.ordered` to true
|
|
[params.heading.number]
|
|
# whether to enable auto heading numbering
|
|
enable = false
|
|
# only enable in main section pages (default is posts)
|
|
only_main_section = true
|
|
|
|
[params.heading.number.format]
|
|
h1 = "{title}"
|
|
h2 = "{h2} {title}"
|
|
h3 = "{h2}.{h3} {title}"
|
|
h4 = "{h2}.{h3}.{h4} {title}"
|
|
h5 = "{h2}.{h3}.{h4}.{h5} {title}"
|
|
h6 = "{h2}.{h3}.{h4}.{h5}.{h6} {title}"
|
|
|
|
# mathematical formulas configuration
|
|
# See http://fixit.lruihao.cn/documentation/content-management/markdown-syntax/extended/#formula
|
|
[params.math]
|
|
enable = true
|
|
# mathematical formulas rendering engines, optional values: ["katex", "mathjax"]
|
|
type = "katex"
|
|
|
|
# KaTeX server-side rendering (https://katex.org)
|
|
# KaTeX partial config: https://gohugo.io/functions/transform/tomath/#options
|
|
[params.math.katex]
|
|
# KaTeX extension copy-tex
|
|
copy_tex = true
|
|
throw_on_error = false
|
|
error_color = "#ff4949"
|
|
|
|
# custom macros map
|
|
# syntax: <macro> = <definition>
|
|
[params.math.katex.macros]
|
|
# "\\f" = "#1f(#2)" # usage: $\f{a}{b}$
|
|
|
|
# MathJax server-side rendering (https://www.mathjax.org)
|
|
# MathJax config: https://docs.mathjax.org/en/latest/options/index.html
|
|
[params.math.mathjax]
|
|
cdn = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
|
|
|
|
[params.math.mathjax.packages]
|
|
# "[+]" = ["configmacros"]
|
|
|
|
# custom macros map
|
|
# syntax: <macro> = <definition>
|
|
[params.math.mathjax.macros]
|
|
# bold = ["{\\bf #1}", 1] # usage: $\bold{math}$
|
|
|
|
[params.math.mathjax.loader]
|
|
load = [ "ui/safe" ]
|
|
|
|
[params.math.mathjax.loader.paths]
|
|
# custom = "https://cdn.jsdelivr.net/gh/sonoisa/XyJax-v3@3.0.1/build/"
|
|
|
|
# more loader config e.g source, dependencies, provides etc.
|
|
|
|
[params.math.mathjax.options]
|
|
enable_menu = true
|
|
# HTML tags that won't be searched for math
|
|
skip_html_tags = [
|
|
"script",
|
|
"noscript",
|
|
"style",
|
|
"textarea",
|
|
"pre",
|
|
"code",
|
|
"math",
|
|
"select",
|
|
"option",
|
|
"mjx-container"
|
|
]
|
|
# class that marks tags not to search
|
|
ignore_html_class = "mathjax_ignore"
|
|
|
|
# HTML tags that can appear within math
|
|
[params.math.mathjax.options.include_html_tags]
|
|
# "#comment" = ""
|
|
# br = "\n"
|
|
# wbr = ""
|
|
|
|
# Mapbox GL JS config (https://docs.mapbox.com/mapbox-gl-js)
|
|
[params.mapbox]
|
|
# access token of Mapbox GL JS
|
|
access_token = ""
|
|
# style for the light theme
|
|
light_style = "mapbox://styles/mapbox/light-v11"
|
|
# style for the dark theme
|
|
dark_style = "mapbox://styles/mapbox/dark-v11"
|
|
# whether to add NavigationControl
|
|
navigation = true
|
|
# whether to add GeolocateControl
|
|
geolocate = true
|
|
# whether to add ScaleControl
|
|
scale = true
|
|
# whether to add FullscreenControl
|
|
fullscreen = true
|
|
|
|
# PostChat AI config
|
|
# based on your posts to build a knowledge base, support AI summary, AI search, and AI Chatbot.
|
|
# get PostChat Key from my invitation link, thanks for your support!
|
|
# https://ai.zhheo.com/console/login?InviteID=85041330
|
|
[params.post_chat]
|
|
enable = false
|
|
key = ""
|
|
# how users initiate chats: ["iframe", "magic"]
|
|
user_mode = "iframe"
|
|
add_button = true
|
|
default_input = false
|
|
left = ""
|
|
bottom = ""
|
|
width = ""
|
|
height = ""
|
|
fill = ""
|
|
background_color = ""
|
|
upload_web = true
|
|
show_invite_link = true
|
|
user_title = ""
|
|
user_desc = ""
|
|
# dom container to be blacked out, e.g. [".aplayer"]
|
|
black_dom = []
|
|
# only for iframe mode
|
|
frame_width = "" # e.g. "375px"
|
|
frame_height = "" # e.g. "600px"
|
|
# only for magic mode
|
|
user_icon = ""
|
|
default_chat_questions = []
|
|
default_search_questions = []
|
|
hot_words = true
|
|
|
|
# Summary AI config
|
|
# See https://ai.zhheo.com/docs/summary.html
|
|
[params.post_summary]
|
|
enable = false
|
|
# if you set `params.post_chat.key`, you don't need to set `params.post_summary.key`
|
|
key = ""
|
|
title = ""
|
|
# themes options: ["", "simple", "yanzhi", "menghuan"]
|
|
theme = ""
|
|
post_url = ""
|
|
blacklist = ""
|
|
word_limit = 1000
|
|
typing_animate = true
|
|
beginning_text = ""
|
|
loading_text = true
|
|
|
|
# Podcast AI config
|
|
# See https://ai.zhheo.com/docs/podcast.html
|
|
[params.podcast]
|
|
enable = false
|
|
|
|
# Related content config (https://gohugo.io/content-management/related/)
|
|
[params.related]
|
|
enable = false
|
|
count = 5
|
|
# position of related content, optional values: ["aside", "footer"]
|
|
position = [
|
|
"aside",
|
|
"footer"
|
|
]
|
|
|
|
# Donate (Sponsor) settings
|
|
[params.reward]
|
|
enable = false
|
|
animation = false
|
|
# position relative to post footer, optional values: ["before", "after"]
|
|
position = "after"
|
|
# comment = "Buy me a coffee"
|
|
# display mode of QR code images, optional values: ["static", "fixed"], default: `static`
|
|
mode = "static"
|
|
|
|
[params.reward.ways]
|
|
# wechatpay = "/images/wechatpay.png"
|
|
# alipay = "/images/alipay.png"
|
|
# paypal = "/images/paypal.png"
|
|
# bitcoin = "/images/bitcoin.png"
|
|
|
|
# Post footer link config
|
|
[params.post_link]
|
|
# whether to show link to Raw Markdown content
|
|
markdown = true
|
|
# whether to show link to view source code (requires git_info.repo)
|
|
source = true
|
|
# whether to show link to edit the post (requires git_info.repo)
|
|
edit = true
|
|
# whether to show link to report issue (requires git_info.repo)
|
|
report = true
|
|
# open in editor protocol (e.g. "vscode", "trae" etc.), empty to disable
|
|
editor = "vscode"
|
|
|
|
# Social share links in post page
|
|
[params.share]
|
|
enable = true
|
|
Twitter = true
|
|
Facebook = true
|
|
Linkedin = false
|
|
Whatsapp = false
|
|
Pinterest = false
|
|
Tumblr = false
|
|
HackerNews = false
|
|
Reddit = false
|
|
VK = false
|
|
Buffer = false
|
|
Xing = false
|
|
Line = false
|
|
Instapaper = false
|
|
Pocket = false
|
|
Flipboard = false
|
|
Weibo = true
|
|
Myspace = false
|
|
Blogger = false
|
|
Baidu = false
|
|
Odnoklassniki = false
|
|
Evernote = false
|
|
Skype = false
|
|
Trello = false
|
|
Mix = false
|
|
|
|
# Comment config
|
|
[params.comment]
|
|
enable = false
|
|
|
|
# Artalk comment config (https://artalk.js.org/)
|
|
[params.comment.artalk]
|
|
enable = false
|
|
server = "https://yourdomain"
|
|
site = "默认站点"
|
|
# prefer remote (backend) configuration over local
|
|
# If true, remote config takes priority; if false (default), local config overrides remote
|
|
prefer_remote_conf = false
|
|
placeholder = ""
|
|
no_comment = ""
|
|
send_btn = ""
|
|
editor_travel = true
|
|
flat_mode = "auto"
|
|
# enable lightgallery support
|
|
lightgallery = false
|
|
locale = ""
|
|
emoticons = ""
|
|
nest_max = 2
|
|
nest_sort = "DATE_ASC" # ["DATE_ASC", "DATE_DESC", "VOTE_UP_DESC"]
|
|
vote = true
|
|
vote_down = false
|
|
ua_badge = true
|
|
list_sort = true
|
|
list_unread_highlight = false
|
|
img_upload = true
|
|
img_lazy_load = false # false | "native" | "data-src"
|
|
preview = true
|
|
version_check = true
|
|
# request timeout in milliseconds
|
|
req_timeout = 15000
|
|
# page view increment on comment list load
|
|
pv_add = true
|
|
|
|
# pagination config
|
|
[params.comment.artalk.pagination]
|
|
page_size = 20
|
|
read_more = true
|
|
auto_load = true
|
|
|
|
# height limit config
|
|
[params.comment.artalk.height_limit]
|
|
content = 300
|
|
children = 400
|
|
scrollable = false
|
|
|
|
# Disqus comment config (https://disqus.com)
|
|
[params.comment.disqus]
|
|
enable = false
|
|
# Disqus shortname to use Disqus in posts
|
|
shortname = ""
|
|
|
|
# Gitalk comment config (https://github.com/gitalk/gitalk)
|
|
[params.comment.gitalk]
|
|
enable = false
|
|
owner = ""
|
|
repo = ""
|
|
client_id = ""
|
|
client_secret = ""
|
|
|
|
# Valine comment config (https://github.com/xCss/Valine)
|
|
[params.comment.valine]
|
|
enable = false
|
|
app_id = ""
|
|
app_key = ""
|
|
placeholder = ""
|
|
avatar = "mp"
|
|
meta = [
|
|
'nick',
|
|
'mail',
|
|
'link'
|
|
]
|
|
required_fields = []
|
|
page_size = 10
|
|
lang = ""
|
|
visitor = true
|
|
record_ip = true
|
|
highlight = true
|
|
enable_qq = false
|
|
server_urls = ""
|
|
# emoji data file name, default is "google.yml"
|
|
# ["apple.yml", "google.yml", "facebook.yml", "twitter.yml"]
|
|
# located in "themes/FixIt/assets/lib/valine/emoji/" directory
|
|
# you can store your own data files in the same path under your project:
|
|
# "assets/lib/valine/emoji/"
|
|
emoji = ""
|
|
comment_count = true
|
|
|
|
# Waline comment config (https://waline.js.org)
|
|
[params.comment.waline]
|
|
enable = false
|
|
server_url = ""
|
|
pageview = false
|
|
emoji = [ "//unpkg.com/@waline/emojis@1.1.0/weibo" ]
|
|
meta = [
|
|
"nick",
|
|
"mail",
|
|
"link"
|
|
]
|
|
required_meta = []
|
|
login = "enable"
|
|
word_limit = 0
|
|
page_size = 10
|
|
image_uploader = false
|
|
highlighter = false
|
|
comment = false
|
|
tex_renderer = false
|
|
search = false
|
|
recaptcha_v3_key = ""
|
|
turnstile_key = ""
|
|
reaction = false
|
|
|
|
# Facebook comment config (https://developers.facebook.com/docs/plugins/comments)
|
|
[params.comment.facebook]
|
|
enable = false
|
|
width = "100%"
|
|
num_posts = 10
|
|
app_id = ""
|
|
language_code = ""
|
|
|
|
# Telegram comments config (https://comments.app)
|
|
[params.comment.telegram]
|
|
enable = false
|
|
site_id = ""
|
|
limit = 5
|
|
height = ""
|
|
color = ""
|
|
colorful = true
|
|
dislikes = false
|
|
outlined = false
|
|
|
|
# Commento comment config (https://commento.io)
|
|
[params.comment.commento]
|
|
enable = false
|
|
|
|
# Utterances comment config (https://utteranc.es)
|
|
[params.comment.utterances]
|
|
enable = false
|
|
# owner/repo
|
|
repo = ""
|
|
issue_term = "pathname"
|
|
label = ""
|
|
light_theme = "github-light"
|
|
dark_theme = "github-dark"
|
|
|
|
# Twikoo comment config (https://twikoo.js.org/)
|
|
[params.comment.twikoo]
|
|
enable = false
|
|
env_id = ""
|
|
region = ""
|
|
path = ""
|
|
visitor = true
|
|
comment_count = true
|
|
lang = ""
|
|
# enable lightgallery support
|
|
lightgallery = false
|
|
# enable Katex support
|
|
katex = false
|
|
|
|
# Giscus comments config
|
|
[params.comment.giscus]
|
|
enable = false
|
|
repo = ""
|
|
repo_id = ""
|
|
category = ""
|
|
category_id = ""
|
|
mapping = ""
|
|
# Or set it to your self-hosted domain
|
|
origin = "https://giscus.app"
|
|
strict = "0"
|
|
term = ""
|
|
reactions_enabled = "1"
|
|
emit_metadata = "0"
|
|
input_position = "bottom" # ["top", "bottom"]
|
|
lang = ""
|
|
light_theme = "light"
|
|
dark_theme = "dark"
|
|
lazy_load = true
|
|
|
|
# Third-party library config
|
|
[params.library]
|
|
|
|
[params.library.css]
|
|
# someCSS = "some.css"
|
|
# located in "assets/"
|
|
# Or
|
|
# someCSS = "https://cdn.example.com/some.css"
|
|
|
|
[params.library.js]
|
|
# someJavascript = "some.js"
|
|
# located in "assets/"
|
|
# Or
|
|
# someJavascript = "https://cdn.example.com/some.js"
|
|
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
# public Git repository information only then enableGitInfo is true
|
|
[params.git_info]
|
|
# e.g. "https://github.com/hugo-fixit/docs"
|
|
repo = ""
|
|
branch = "main"
|
|
# the content directory path relative to the root of the repository
|
|
dir = "content"
|
|
# the issue template for reporting issue of the posts
|
|
# available template params: {title} {URL} {sourceURL}
|
|
issue_tpl = "title=[BUG]%20{title}&body=|Field|Value|%0A|-|-|%0A|Title|{title}|%0A|URL|{URL}|%0A|Filename|{sourceURL}|"
|
|
|
|
# App and PWA config
|
|
[params.app]
|
|
# whether to enable PWA support
|
|
pwa = false
|
|
# app name used for home screen and manifest (falls back to site title)
|
|
name = ""
|
|
# optional short name for the manifest (falls back to name)
|
|
short_name = ""
|
|
# whether to omit favicon resource links
|
|
no_favicon = false
|
|
# modern SVG favicon to use in place of older style .png and .ico files
|
|
svg_favicon = ""
|
|
# Safari mask icon color
|
|
mask_color = "#5bbad5"
|
|
# Windows v8-10 tile color
|
|
tile_color = "#da532c"
|
|
|
|
# Android browser theme color
|
|
[params.app.theme_color]
|
|
light = "#f6f8fa"
|
|
dark = "#151b23"
|
|
|
|
# Web app manifest icons (users should provide their own icon files)
|
|
[[params.app.icons]]
|
|
src = "/apple-touch-icon.png"
|
|
sizes = "180x180"
|
|
type = "image/png"
|
|
purpose = "any maskable"
|
|
|
|
[[params.app.icons]]
|
|
src = "/android-chrome-192x192.png"
|
|
sizes = "192x192"
|
|
type = "image/png"
|
|
|
|
[[params.app.icons]]
|
|
src = "/android-chrome-512x512.png"
|
|
sizes = "512x512"
|
|
type = "image/png"
|
|
|
|
# Search config
|
|
[params.search]
|
|
enable = true
|
|
# type of search engine ["fuse", "algolia", "pagefind", "cse"]
|
|
type = "fuse"
|
|
# max index length of the chunked content
|
|
content_length = 4000
|
|
# placeholder of the search bar
|
|
placeholder = ""
|
|
# max number of results length
|
|
max_result_length = 10
|
|
# snippet length of the result
|
|
snippet_length = 30
|
|
# HTML tag name of the highlight part in results
|
|
highlight_tag = "em"
|
|
# whether to use the absolute URL based on the baseURL in search index
|
|
absolute_url = false
|
|
# whether to enable anchorify for headings in search results
|
|
anchorify = true
|
|
|
|
[params.search.algolia]
|
|
index = ""
|
|
app_id = ""
|
|
search_key = ""
|
|
|
|
# https://fusejs.io/api/options.html
|
|
[params.search.fuse]
|
|
is_case_sensitive = false
|
|
min_match_char_length = 2
|
|
find_all_matches = false
|
|
location = 0
|
|
threshold = 0.3
|
|
distance = 100
|
|
ignore_location = false
|
|
use_extended_search = false
|
|
ignore_field_norm = false
|
|
|
|
# Pagefind search config (http://pagefind.app/)
|
|
[params.search.pagefind]
|
|
# Pagefind bundle and index directory
|
|
bundle_path = "pagefind/"
|
|
# debounce timeout in milliseconds, set to 0 to disable debounce
|
|
debounce_timeout_ms = 300
|
|
# whether to respect FixIt built-in search visibility rules
|
|
use_built_in_filters = true
|
|
# optional sort field: ["date", "title"]
|
|
sort_by = ""
|
|
# sort order for sort_by: ["asc", "desc"]
|
|
sort_order = "desc"
|
|
|
|
# Custom Search Engine (CSE)
|
|
[params.cse]
|
|
# search engine: ["google", "bing"]
|
|
engine = "google"
|
|
# search results page URL (layout: search)
|
|
results_page = "/search/"
|
|
|
|
# Google Custom Search Engine Context
|
|
# See: https://programmablesearchengine.google.com/
|
|
[params.cse.google]
|
|
cx = ""
|
|
|
|
# Bing Custom Search Engine Context (unverified)
|
|
# See: https://www.customsearch.ai/
|
|
[params.cse.bing]
|
|
cx = ""
|
|
|
|
# Header config
|
|
[params.header]
|
|
# desktop header mode ["sticky", "normal", "auto"]
|
|
desktop_mode = "sticky"
|
|
# mobile header mode ["sticky", "normal", "auto"]
|
|
mobile_mode = "auto"
|
|
# whether to enable header blur effect
|
|
blur = false
|
|
|
|
# Header title config
|
|
[params.header.title]
|
|
# URL of the logo
|
|
logo = ""
|
|
# title name
|
|
name = ""
|
|
# you can add extra information before the name (HTML format is supported), such as icons
|
|
pre = ""
|
|
# you can add extra information after the name (HTML format is supported), such as icons
|
|
post = ""
|
|
# whether to use typeit animation for title name
|
|
typeit = false
|
|
|
|
# Header subtitle config
|
|
[params.header.subtitle]
|
|
# subtitle name
|
|
name = ""
|
|
# whether to use typeit animation for subtitle name
|
|
typeit = false
|
|
|
|
# Breadcrumb config
|
|
[params.breadcrumb]
|
|
enable = false
|
|
sticky = false
|
|
show_home = false
|
|
separator = "/"
|
|
capitalize = true
|
|
|
|
# Post navigation config
|
|
[params.navigation]
|
|
# whether to show the post navigation in section pages scope
|
|
in_section = false
|
|
# whether to reverse the next/previous post navigation order
|
|
reverse = false
|
|
|
|
# Footer config
|
|
[params.footer]
|
|
enable = true
|
|
# whether to show copyright info
|
|
copyright = true
|
|
# whether to show the author
|
|
author = true
|
|
# site creation year
|
|
since = ""
|
|
# Public network security only in China (HTML format is supported)
|
|
gov = ""
|
|
# ICP info only in China (HTML format is supported)
|
|
icp = ""
|
|
# license info (HTML format is supported)
|
|
license = ""
|
|
|
|
# whether to show Hugo and theme info
|
|
[params.footer.powered]
|
|
enable = true
|
|
hugo_logo = false
|
|
theme_logo = false
|
|
|
|
# Site creation time
|
|
[params.footer.site_time]
|
|
enable = false
|
|
animate = true
|
|
icon = "fa-solid fa-heartbeat"
|
|
pre = ""
|
|
# e.g. "2021-12-18T16:15:22+08:00"
|
|
value = ""
|
|
|
|
# footer lines order, optional values: ["first", 0-5, "last"]
|
|
[params.footer.order]
|
|
powered = 0
|
|
copyright = 0
|
|
statistics = 0
|
|
visitor = 0
|
|
beian = 0
|
|
|
|
# Archives page config (all pages of posts type)
|
|
[params.archives]
|
|
# special amount of posts in archives page
|
|
paginate = 20
|
|
# date format (month and day)
|
|
date_format = "01-02"
|
|
|
|
# Section page config (all pages in section)
|
|
[params.section]
|
|
# special amount of pages in each section page
|
|
paginate = 20
|
|
# date format (month and day)
|
|
date_format = "01-02"
|
|
|
|
# Section feed config for RSS, Atom and JSON feed.
|
|
[params.section.feed]
|
|
# the number of posts to include in the feed. If set to -1, all posts.
|
|
limit = -1
|
|
# whether to show the full text content in feed.
|
|
full_text = false
|
|
|
|
# Term list (category or tag) page config
|
|
[params.list]
|
|
# special amount of posts in each list page
|
|
paginate = 20
|
|
# date format (month and day)
|
|
date_format = "01-02"
|
|
|
|
# Term list feed config for RSS, Atom and JSON feed.
|
|
[params.list.feed]
|
|
# the number of posts to include in the feed. If set to -1, all posts.
|
|
limit = -1
|
|
# whether to show the full text content in feed.
|
|
full_text = false
|
|
|
|
# recently updated pages config for archives, section and term list
|
|
[params.recently_updated]
|
|
archives = true
|
|
section = true
|
|
list = true
|
|
days = 30
|
|
max_count = 10
|
|
|
|
# TagCloud config for tags page
|
|
[params.tag_cloud]
|
|
enable = false
|
|
min = 14 # Minimum font size in px
|
|
max = 32 # Maximum font size in px
|
|
peak_count = 10 # Maximum count of posts per tag
|
|
orderby = "name" # Order of tags, optional values: ["name", "count"]
|
|
|
|
# Home page config
|
|
[params.home]
|
|
|
|
# Home page profile
|
|
[params.home.profile]
|
|
enable = false
|
|
# whether to show profile and content only in the first home page
|
|
only_first_page = false
|
|
# Gravatar email for preferred avatar in home page
|
|
gravatar_email = ""
|
|
# URL of avatar shown in home page, default is author's avatar
|
|
avatar_url = ""
|
|
# identifier of avatar menu link
|
|
avatar_menu = ""
|
|
# title shown in home page (HTML format is supported)
|
|
title = ""
|
|
# subtitle shown in home page (HTML format is supported)
|
|
subtitle = ""
|
|
# whether to use typeit animation for subtitle
|
|
typeit = true
|
|
# whether to show social links
|
|
social = true
|
|
# disclaimer (HTML format is supported)
|
|
disclaimer = ""
|
|
|
|
# Home page posts
|
|
[params.home.posts]
|
|
enable = true
|
|
# special amount of posts in each home posts page
|
|
paginate = 6
|
|
# whether to show featured image preview in home page post list
|
|
image_preview = true
|
|
|
|
# Social config about the author
|
|
[params.social]
|
|
GitHub = ""
|
|
Linkedin = ""
|
|
Twitter = ""
|
|
Instagram = ""
|
|
Facebook = ""
|
|
Telegram = ""
|
|
Medium = ""
|
|
Gitlab = ""
|
|
Youtubelegacy = ""
|
|
Youtubecustom = ""
|
|
Youtubechannel = ""
|
|
Tumblr = ""
|
|
Quora = ""
|
|
Keybase = ""
|
|
Pinterest = ""
|
|
Reddit = ""
|
|
Codepen = ""
|
|
FreeCodeCamp = ""
|
|
Bitbucket = ""
|
|
Stackoverflow = ""
|
|
Weibo = ""
|
|
Odnoklassniki = ""
|
|
VK = ""
|
|
Flickr = ""
|
|
Xing = ""
|
|
Snapchat = ""
|
|
Soundcloud = ""
|
|
Spotify = ""
|
|
Bandcamp = ""
|
|
Paypal = ""
|
|
Fivehundredpx = ""
|
|
Mix = ""
|
|
Goodreads = ""
|
|
Lastfm = ""
|
|
Foursquare = ""
|
|
Hackernews = ""
|
|
Kickstarter = ""
|
|
Patreon = ""
|
|
Steam = ""
|
|
Twitch = ""
|
|
Strava = ""
|
|
Skype = ""
|
|
Whatsapp = ""
|
|
Zhihu = ""
|
|
Douban = ""
|
|
Angellist = ""
|
|
Slidershare = ""
|
|
Jsfiddle = ""
|
|
Deviantart = ""
|
|
Behance = ""
|
|
Dribbble = ""
|
|
Wordpress = ""
|
|
Vine = ""
|
|
Googlescholar = ""
|
|
Researchgate = ""
|
|
Mastodon = ""
|
|
Thingiverse = ""
|
|
Devto = ""
|
|
Gitea = ""
|
|
XMPP = ""
|
|
Matrix = ""
|
|
Bilibili = ""
|
|
ORCID = ""
|
|
Liberapay = ""
|
|
Ko-Fi = ""
|
|
BuyMeaCoffee = ""
|
|
Linktree = ""
|
|
QQ = ""
|
|
QQGroup = ""
|
|
Diaspora = ""
|
|
CSDN = ""
|
|
Discord = ""
|
|
DiscordInvite = ""
|
|
Lichess = ""
|
|
Pleroma = ""
|
|
Kaggle = ""
|
|
MediaWiki = ""
|
|
Plume = ""
|
|
HackTheBox = ""
|
|
RootMe = ""
|
|
Feishu = ""
|
|
TryHackMe = ""
|
|
Douyin = ""
|
|
TikTok = ""
|
|
Credly = ""
|
|
Bluesky = ""
|
|
Phone = ""
|
|
Email = ""
|
|
RSS = true
|
|
|
|
# custom social links like the following
|
|
# [params.social.twitter]
|
|
# id = "lruihao"
|
|
# weight = 3
|
|
# prefix = "https://x.com/"
|
|
# title = "X"
|
|
|
|
# [params.social.twitter.icon]
|
|
# class = "fa-brands fa-x-twitter"
|
|
|
|
# TypeIt config
|
|
[params.typeit]
|
|
# typing speed between each step (measured in milliseconds)
|
|
speed = 100
|
|
# blinking speed of the cursor (measured in milliseconds)
|
|
cursor_speed = 1000
|
|
# character used for the cursor (HTML format is supported)
|
|
cursor_char = "|"
|
|
# cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited)
|
|
duration = -1
|
|
# whether your strings will continuously loop after completing
|
|
# [fixme] There is a bug when printing in groups
|
|
loop = false
|
|
|
|
# Admonitions custom config
|
|
# See https://fixit.lruihao.cn/documentation/content-management/shortcodes/extended/admonition/#custom-admonitions
|
|
# syntax: <type> = <icon>
|
|
[params.admonition]
|
|
# ban = "fa-solid fa-ban"
|
|
|
|
# Task lists custom config
|
|
# See https://fixit.lruihao.cn/documentation/content-management/advanced/#custom-task-lists
|
|
# syntax: <sign> = <icon>
|
|
[params.task_list]
|
|
# tip = "fa-regular fa-lightbulb"
|
|
|
|
# version shortcode config
|
|
[params.repo_version]
|
|
# project name
|
|
name = "FixIt"
|
|
# url prefix for the release tag
|
|
url = "https://github.com/hugo-fixit/FixIt/releases/tag/v"
|
|
|
|
# PanguJS config
|
|
[params.pangu]
|
|
# for Chinese writing
|
|
enable = false
|
|
selector = "article"
|
|
|
|
# Watermark config
|
|
# detail config see https://github.com/Lruihao/watermark#readme
|
|
[params.watermark]
|
|
enable = false
|
|
# watermark's text (HTML format is supported)
|
|
content = ""
|
|
# watermark's transparency
|
|
opacity = 0.1
|
|
# watermark's width. unit: px
|
|
width = 150
|
|
# watermark's height. unit: px
|
|
height = 20
|
|
# row spacing of watermarks. unit: px
|
|
row_spacing = 60
|
|
# col spacing of watermarks. unit: px
|
|
col_spacing = 30
|
|
# watermark's tangent angle. unit: deg
|
|
rotate = 15
|
|
# watermark's fontSize. unit: rem
|
|
font_size = 0.85
|
|
# watermark's fontFamily
|
|
font_family = "inherit"
|
|
|
|
# Busuanzi count
|
|
[params.busuanzi]
|
|
# whether to enable busuanzi count
|
|
enable = false
|
|
# busuanzi count core script source. Default is https://vercount.one/js
|
|
source = "https://vercount.one/js"
|
|
# whether to show the site views
|
|
site_views = true
|
|
# whether to show the page views
|
|
page_views = true
|
|
|
|
# Site verification code config for Google/Bing/Yandex/Pinterest/Baidu/360/Sogou
|
|
[params.verification]
|
|
google = ""
|
|
bing = ""
|
|
yandex = ""
|
|
pinterest = ""
|
|
baidu = ""
|
|
so = ""
|
|
sogou = ""
|
|
|
|
# Site SEO config
|
|
[params.seo]
|
|
# default cover image for the site
|
|
cover = ""
|
|
# thumbnail URL
|
|
thumbnail_url = ""
|
|
# Page SEO images (frontmatter-overridable)
|
|
images = []
|
|
|
|
# Publisher info (frontmatter-overridable)
|
|
[params.seo.publisher]
|
|
name = ""
|
|
logo_url = ""
|
|
|
|
# Analytics config
|
|
[params.analytics]
|
|
enable = false
|
|
|
|
# Google Analytics
|
|
[params.analytics.google]
|
|
id = ""
|
|
# whether to anonymize IP
|
|
anonymize_ip = true
|
|
|
|
# Fathom Analytics
|
|
[params.analytics.fathom]
|
|
id = ""
|
|
# server url for your tracker if you're self hosting
|
|
server = ""
|
|
|
|
# Baidu Analytics
|
|
[params.analytics.baidu]
|
|
id = ""
|
|
|
|
# Umami Analytics
|
|
[params.analytics.umami]
|
|
data_website_id = ""
|
|
src = ""
|
|
data_host_url = ""
|
|
data_domains = ""
|
|
|
|
# Plausible Analytics
|
|
[params.analytics.plausible]
|
|
data_domain = ""
|
|
src = ""
|
|
|
|
# Cloudflare Analytics
|
|
[params.analytics.cloudflare]
|
|
token = ""
|
|
|
|
# Splitbee Analytics
|
|
[params.analytics.splitbee]
|
|
enable = false
|
|
# no cookie mode
|
|
no_cookie = true
|
|
# respect the do not track setting of the browser
|
|
do_not_track = true
|
|
# token(optional), more info on https://splitbee.io/docs/embed-the-script
|
|
data_token = ""
|
|
|
|
# Cookie consent config
|
|
[params.cookieconsent]
|
|
enable = true
|
|
|
|
# text strings used for Cookie consent banner
|
|
[params.cookieconsent.content]
|
|
message = ""
|
|
dismiss = ""
|
|
link = ""
|
|
|
|
# CDN config for third-party library files
|
|
[params.cdn]
|
|
# CDN data file name, disabled by default ["jsdelivr.yml", "unpkg.yml", ...]
|
|
# located in "themes/FixIt/assets/data/cdn/" directory
|
|
# you can store your own data files in the same path under your project: "assets/data/cdn/"
|
|
data = ""
|
|
|
|
# Compatibility config
|
|
[params.compatibility]
|
|
# whether to use Polyfill.io on cdnjs to be compatible with older browsers
|
|
# https://cdnjs.cloudflare.com/polyfill
|
|
polyfill = false
|
|
# whether to use object-fit-images to be compatible with older browsers
|
|
object_fit = false
|
|
|
|
# GitHub banner in the top-right or top-left corner
|
|
[params.github_corner]
|
|
enable = false
|
|
permalink = "https://github.com/hugo-fixit/FixIt"
|
|
title = "View source on GitHub"
|
|
position = "right" # ["left", "right"]
|
|
|
|
# Gravatar config
|
|
[params.gravatar]
|
|
# Depends on the author's email, if the author's email is not set, the local avatar will be used
|
|
enable = false
|
|
# Gravatar host, default: "www.gravatar.com"
|
|
host = "www.gravatar.com" # ["cravatar.cn", "gravatar.loli.net", ...]
|
|
style = "" # ["", "mp", "identicon", "monsterid", "wavatar", "retro", "blank", "robohash"]
|
|
|
|
# Back to top
|
|
[params.back_to_top]
|
|
enable = true
|
|
# whether to show the scroll percent indicator around the back to top button
|
|
scrollpercent = false
|
|
|
|
# Reading progress bar
|
|
[params.reading_progress]
|
|
enable = false
|
|
# available values: ["left", "right"]
|
|
start = "left"
|
|
# available values: ["top", "bottom"]
|
|
position = "top"
|
|
reversed = false
|
|
light = ""
|
|
dark = ""
|
|
height = "2px"
|
|
|
|
# Progress bar in the top during page loading.
|
|
# for more information: https://github.com/CodeByZach/pace
|
|
[params.pace]
|
|
enable = false
|
|
# all available colors:
|
|
# ["black", "blue", "green", "orange", "pink", "purple", "red", "silver", "white", "yellow"]
|
|
color = "blue"
|
|
# all available themes:
|
|
# ["barber-shop", "big-counter", "bounce", "center-atom", "center-circle", "center-radar", "center-simple",
|
|
# "corner-indicator", "fill-left", "flash", "flat-top", "loading-bar", "mac-osx", "material", "minimal"]
|
|
theme = "minimal"
|
|
|
|
# Global Feed config for RSS, Atom and JSON feed.
|
|
[params.feed]
|
|
# the number of posts to include in the feed. If set to -1, all posts.
|
|
limit = 10
|
|
# whether to show the full text content in feed.
|
|
full_text = true
|
|
|
|
# Site Challenge for Follow: https://follow.is/
|
|
[params.feed.follow]
|
|
feed_id = ""
|
|
user_id = ""
|
|
|
|
# Taxonomy icons config
|
|
# works with [taxonomies]. Configure [taxonomies] first, otherwise taxonomy icons will not take effect.
|
|
[params.taxonomy_icons]
|
|
# syntax: <taxonomy> = [<title icon>, <card icon>, <term title icon>]
|
|
# example:
|
|
# topic = [
|
|
# "fa-solid fa-book-bookmark",
|
|
# "fa-solid fa-book",
|
|
# "fa-solid fa-book-open"
|
|
# ]
|
|
|
|
# Print config
|
|
[params.print]
|
|
# whether to expand all admonitions before printing
|
|
expand_admonition = true
|
|
# whether to expand all code blocks and code tabs before printing
|
|
expand_code = true
|
|
# whether to expand all details elements before printing
|
|
expand_details = true
|
|
# whether to expand all file trees before printing
|
|
expand_file_tree = false
|
|
|
|
# Custom partials config
|
|
# custom partials must be stored in the /layouts/_partials/ directory.
|
|
# depends on open custom blocks https://fixit.lruihao.cn/references/blocks/
|
|
[params.custom_partials]
|
|
head = []
|
|
menu_desktop = []
|
|
menu_mobile = []
|
|
profile = []
|
|
aside = []
|
|
comment = []
|
|
footer = []
|
|
widgets = []
|
|
assets = []
|
|
post_toc_before = []
|
|
post_toc_after = []
|
|
post_content_before = []
|
|
post_content_after = []
|
|
post_footer_before = []
|
|
post_footer_after = []
|
|
|
|
# SCSS variables customization via config
|
|
# Leave empty to use the theme default value (defined in scss-vars.html).
|
|
# Note: Color values must use hex format (e.g. "#ff0000"), CSS named colors (e.g. "red") are not supported.
|
|
[params.appearance]
|
|
# Global Typography
|
|
global_font_family = ""
|
|
global_font_size = ""
|
|
global_font_weight = ""
|
|
global_line_height = ""
|
|
global_border_radius = ""
|
|
# Global Colors
|
|
global_background_color = ""
|
|
global_background_color_dark = ""
|
|
global_font_color = ""
|
|
global_font_color_dark = ""
|
|
global_font_secondary_color = ""
|
|
global_font_secondary_color_dark = ""
|
|
global_link_color = ""
|
|
global_link_color_dark = ""
|
|
global_link_hover_color = ""
|
|
global_link_hover_color_dark = ""
|
|
global_border_color = ""
|
|
global_border_color_dark = ""
|
|
# Scrollbar
|
|
scrollbar_color = ""
|
|
scrollbar_hover_color = ""
|
|
# Selection
|
|
selection_color = ""
|
|
selection_color_dark = ""
|
|
# Header
|
|
header_background_color = ""
|
|
header_background_color_dark = ""
|
|
header_title_font_size = ""
|
|
header_title_font_family = ""
|
|
menu_active_color = ""
|
|
menu_active_color_dark = ""
|
|
menu_border_color = ""
|
|
menu_border_color_dark = ""
|
|
search_background_color = ""
|
|
search_background_color_dark = ""
|
|
# Tag Cloud
|
|
tag_cloud_start = ""
|
|
tag_cloud_start_dark = ""
|
|
tag_cloud_end = ""
|
|
tag_cloud_end_dark = ""
|
|
# Single Content
|
|
toc_title_font_size = ""
|
|
toc_content_font_size = ""
|
|
collection_title_font_size = ""
|
|
collection_list_font_size = ""
|
|
related_title_font_size = ""
|
|
related_list_font_size = ""
|
|
single_link_color = ""
|
|
single_link_color_dark = ""
|
|
single_link_hover_color = ""
|
|
single_link_hover_color_dark = ""
|
|
# Table
|
|
table_background_color = ""
|
|
table_background_color_dark = ""
|
|
table_thead_color = ""
|
|
table_thead_color_dark = ""
|
|
table_border_color = ""
|
|
table_border_color_dark = ""
|
|
# Blockquote
|
|
blockquote_color = ""
|
|
blockquote_color_dark = ""
|
|
# Reward
|
|
reward_color = ""
|
|
reward_color_dark = ""
|
|
reward_img_width = ""
|
|
# Pagination
|
|
pagination_link_color = ""
|
|
pagination_link_color_dark = ""
|
|
pagination_link_hover_color = ""
|
|
pagination_link_hover_color_dark = ""
|
|
# Code
|
|
code_color = ""
|
|
code_color_dark = ""
|
|
code_font_family = ""
|
|
code_header_color = ""
|
|
code_header_color_dark = ""
|
|
code_header_background_color = ""
|
|
code_header_background_color_dark = ""
|
|
code_background_color = ""
|
|
code_background_color_dark = ""
|
|
code_error_color = ""
|
|
code_highlight_color = ""
|
|
code_highlight_color_dark = ""
|
|
code_font_size = ""
|
|
code_block_font_size = ""
|
|
# GitHub Corners
|
|
github_corner_color = ""
|
|
github_corner_color_dark = ""
|
|
github_corner_fill = ""
|
|
github_corner_fill_dark = ""
|
|
|
|
# Developer options
|
|
# select the scope named `public_repo` to generate personal access token,
|
|
# configure with environment variable `HUGO_PARAMS_GHTOKEN=xxx`, see https://gohugo.io/functions/os/getenv/#examples
|
|
[params.dev]
|
|
enable = false
|
|
# check for updates
|
|
c4u = false
|