feat(web/website): init
This adds a new Website/Docs for Snix, using Thulite / Doks, which is mostly hugo and a bit of npm. Change-Id: Iea10d4068fa783ec0ddd6bcaba5c8d92b1a1168f
This commit is contained in:
parent
2705517e6d
commit
91d8b86b39
55 changed files with 6205 additions and 0 deletions
86
web/config/_default/hugo.toml
Normal file
86
web/config/_default/hugo.toml
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
title = "Snix"
|
||||
baseurl = "http://snix.dev/"
|
||||
canonifyURLs = false
|
||||
disableAliases = true
|
||||
disableHugoGeneratorInject = true
|
||||
# disableKinds = ["taxonomy", "term"]
|
||||
enableEmoji = true
|
||||
enableGitInfo = false
|
||||
enableRobotsTXT = true
|
||||
languageCode = "en-US"
|
||||
pagerSize = 10
|
||||
rssLimit = 10
|
||||
summarylength = 20 # 70 (default)
|
||||
|
||||
# Multilingual
|
||||
defaultContentLanguage = "en"
|
||||
disableLanguages = ["de", "nl"]
|
||||
defaultContentLanguageInSubdir = false
|
||||
|
||||
copyRight = "Copyright (c) 2025 The Snix Project"
|
||||
|
||||
[build.buildStats]
|
||||
enable = true
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "searchIndex"]
|
||||
section = ["HTML", "RSS", "SITEMAP"]
|
||||
|
||||
[outputFormats.searchIndex]
|
||||
mediaType = "application/json"
|
||||
baseName = "search-index"
|
||||
isPlainText = true
|
||||
notAlternative = true
|
||||
|
||||
# Add output format for section sitemap.xml
|
||||
[outputFormats.SITEMAP]
|
||||
mediaType = "application/xml"
|
||||
baseName = "sitemap"
|
||||
isHTML = false
|
||||
isPlainText = true
|
||||
noUgly = true
|
||||
rel = "sitemap"
|
||||
|
||||
[sitemap]
|
||||
changefreq = "monthly"
|
||||
filename = "sitemap.xml"
|
||||
priority = 0.5
|
||||
|
||||
[caches]
|
||||
[caches.getjson]
|
||||
dir = ":cacheDir/:project"
|
||||
maxAge = -1 # "30m"
|
||||
|
||||
[taxonomies]
|
||||
contributor = "contributors"
|
||||
category = "categories"
|
||||
tag = "tags"
|
||||
|
||||
[permalinks]
|
||||
blog = "/blog/:slug/"
|
||||
docs = "/docs/:sections[1:]/:slug/"
|
||||
# docs = "/docs/1.0/:sections[1:]/:slug/"
|
||||
|
||||
[minify.tdewolff.html]
|
||||
keepWhitespace = false
|
||||
|
||||
[related]
|
||||
threshold = 80
|
||||
includeNewer = true
|
||||
toLower = false
|
||||
[[related.indices]]
|
||||
name = "categories"
|
||||
weight = 100
|
||||
[[related.indices]]
|
||||
name = "tags"
|
||||
weight = 80
|
||||
[[related.indices]]
|
||||
name = "date"
|
||||
weight = 10
|
||||
|
||||
[imaging]
|
||||
anchor = "Center"
|
||||
bgColor = "#ffffff"
|
||||
hint = "photo"
|
||||
quality = 85
|
||||
resampleFilter = "Lanczos"
|
||||
9
web/config/_default/languages.toml
Normal file
9
web/config/_default/languages.toml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[en]
|
||||
languageName = "English"
|
||||
contentDir = "content/en"
|
||||
weight = 10
|
||||
[en.params]
|
||||
languageISO = "EN"
|
||||
languageTag = "en-US"
|
||||
footer = ''
|
||||
# alertText = '<a class="alert-link stretched-link fw-normal" href="/blog/example-post/">Doks version 1.0 just shipped!</a>'
|
||||
33
web/config/_default/markup.toml
Normal file
33
web/config/_default/markup.toml
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
defaultMarkdownHandler = "goldmark"
|
||||
|
||||
[goldmark]
|
||||
[goldmark.extensions]
|
||||
linkify = false
|
||||
[goldmark.parser]
|
||||
autoHeadingID = true
|
||||
autoHeadingIDType = "github"
|
||||
[goldmark.parser.attribute]
|
||||
block = true
|
||||
title = true
|
||||
[goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
[highlight]
|
||||
anchorLineNos = false
|
||||
codeFences = true
|
||||
guessSyntax = false
|
||||
hl_Lines = ''
|
||||
hl_inline = false
|
||||
lineAnchors = ''
|
||||
lineNoStart = 1
|
||||
lineNos = false
|
||||
lineNumbersInTable = false
|
||||
noClasses = false
|
||||
noHl = false
|
||||
style = 'monokai'
|
||||
tabWidth = 2
|
||||
|
||||
[tableOfContents]
|
||||
endLevel = 3
|
||||
ordered = false
|
||||
startLevel = 2
|
||||
105
web/config/_default/menus/menus.en.toml
Normal file
105
web/config/_default/menus/menus.en.toml
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
# [[docs]]
|
||||
# name = "Prologue"
|
||||
# weight = 10
|
||||
# identifier = "prologue"
|
||||
# url = "/docs/prologue/"
|
||||
|
||||
# [[docs]]
|
||||
# name = "Help"
|
||||
# weight = 60
|
||||
# identifier = "help"
|
||||
# url = "/docs/help/"
|
||||
|
||||
# [[docs]]
|
||||
# name = "Lorem"
|
||||
# weight = 70
|
||||
# identifier = "lorem"
|
||||
# url = "/docs/lorem/"
|
||||
|
||||
[[guide]]
|
||||
name = "Lorem"
|
||||
weight = 10
|
||||
identifier = "lorem"
|
||||
url = "/guide/lorem/"
|
||||
|
||||
[[tutorial]]
|
||||
name = "Lorem"
|
||||
weight = 10
|
||||
identifier = "lorem"
|
||||
url = "/tutorial/lorem/"
|
||||
|
||||
[[main]]
|
||||
name = "About"
|
||||
url = "/about/"
|
||||
weight = 10
|
||||
|
||||
[[main]]
|
||||
name = "Docs"
|
||||
url = "/docs/components/architecture/"
|
||||
# url = "/docs/1.0/prologue/introduction/"
|
||||
weight = 20
|
||||
|
||||
# [[main]]
|
||||
# name = "Blog"
|
||||
# url = "/blog/"
|
||||
# weight = 30
|
||||
|
||||
[[main]]
|
||||
name = "Contact"
|
||||
url = "/contact/"
|
||||
weight = 31
|
||||
|
||||
# [[social]]
|
||||
# name = "X"
|
||||
# pre = '<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 4l11.733 16h4.267l-11.733 -16z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>'
|
||||
# url = "https://twitter.com/getdoks"
|
||||
# weight = 10
|
||||
#
|
||||
# [[social]]
|
||||
# name = "Discord"
|
||||
# pre = '<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-discord" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M8.5 17c0 1 -1.356 3 -1.832 3c-1.429 0 -2.698 -1.667 -3.333 -3c-.635 -1.667 -.476 -5.833 1.428 -11.5c1.388 -1.015 2.782 -1.34 4.237 -1.5l.975 1.923a11.913 11.913 0 0 1 4.053 0l.972 -1.923c1.5 .16 3.043 .485 4.5 1.5c2 5.667 2.167 9.833 1.5 11.5c-.667 1.333 -2 3 -3.5 3c-.5 0 -2 -2 -2 -3"></path><path d="M7 16.5c3.5 1 6.5 1 10 0"></path></svg>'
|
||||
# url = "https://getdoks.org/chat"
|
||||
# weight = 20
|
||||
|
||||
[[social]]
|
||||
name = "Gerrit"
|
||||
pre = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-git"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M16 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 8m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 16m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 15v-6" /><path d="M15 11l-2 -2" /><path d="M11 7l-1.9 -1.9" /><path d="M13.446 2.6l7.955 7.954a2.045 2.045 0 0 1 0 2.892l-7.955 7.955a2.045 2.045 0 0 1 -2.892 0l-7.955 -7.955a2.045 2.045 0 0 1 0 -2.892l7.955 -7.955a2.045 2.045 0 0 1 2.892 0z" /></svg>'
|
||||
url = "https://cl.snix.dev"
|
||||
weight = 30
|
||||
|
||||
[[social]]
|
||||
name = "Code"
|
||||
pre = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-code"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 8l-4 4l4 4" /><path d="M17 8l4 4l-4 4" /><path d="M14 4l-4 16" /></svg>'
|
||||
url = "https://git.snix.dev/snix/snix"
|
||||
weight = 31
|
||||
|
||||
[[social]]
|
||||
name = "Rustdoc"
|
||||
pre = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="Cubes--Streamline-Font-Awesome" height="16" width="16"><desc>Cubes Streamline Icon: https://streamlinehq.com</desc><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m8.074847222222221 2.352027777777778 2.133852777777778 0.8083611111111111 -2.210061111111111 0.849186111111111 -2.210061111111111 -0.849186111111111 2.133852777777778 -0.8083611111111111c0.04899166666666666 -0.019049999999999997 0.10342499999999999 -0.019049999999999997 0.15513888888888888 0Zm-4.213266666666667 1.19485v3.0538027777777774c-0.03538333333333333 0.010886111111111112 -0.07076666666666666 0.021772222222222224 -0.10615 0.03538333333333333l-2.6128777777777774 0.9907166666666666C0.5519333333333333 7.8499638888888885 0.15999999999999998 8.418808333333333 0.15999999999999998 9.050255555555553v3.244325c0 0.6042277777777777 0.35655 1.1513 0.9117861111111111 1.3962583333333334l2.6128805555555554 1.1485777777777777c0.39193055555555556 0.17146944444444445 0.8355777777777778 0.17146944444444445 1.2275083333333332 0l3.086463888888889 -1.3581527777777778 3.089186111111111 1.3581527777777778c0.3919333333333333 0.17146944444444445 0.8355777777777778 0.17146944444444445 1.2275083333333332 0l2.6128805555555554 -1.1485777777777777c0.5525166666666667 -0.2422361111111111 0.9117861111111111 -0.7920305555555556 0.9117861111111111 -1.3962583333333334V9.050255555555553c0 -0.6341694444444445 -0.39193055555555556 -1.2002916666666668 -0.9825527777777776 -1.4261972222222221l-2.6128777777777774 -0.9907166666666666c-0.03538333333333333 -0.013608333333333333 -0.07076666666666666 -0.024497222222222222 -0.10615 -0.03538333333333333V3.5468777777777776c0 -0.6341694444444445 -0.39193055555555556 -1.2002916666666668 -0.9825499999999999 -1.4261972222222221l-2.6128805555555554 -0.9907166666666666c-0.3483833333333333 -0.13064444444444442 -0.73215 -0.13064444444444442 -1.0805333333333333 0l-2.6128805555555554 0.9907166666666666c-0.5960638888888888 0.22590555555555555 -0.9879944444444444 0.79475 -0.9879944444444444 1.4261972222222221Zm6.967677777777777 3.2143861111111107 -2.242722222222222 0.849186111111111v-2.4278027777777775l2.242722222222222 -0.8600722222222221v2.4386888888888887Zm-6.455988888888889 1.0968638888888889 2.13385 0.8083611111111111 -2.210061111111111 0.8464638888888888 -2.2100583333333335 -0.8464638888888888 2.13385 -0.8083611111111111c0.04899166666666666 -0.019052777777777776 0.10342777777777777 -0.019052777777777776 0.15513888888888888 0Zm0.5116888888888889 5.563258333333333V10.686027777777777l2.242722222222222 -0.860075V12.43611111111111l-2.242722222222222 0.985275Zm6.739052777777777 -5.563258333333333c0.04898888888888889 -0.019052777777777776 0.10342499999999999 -0.019052777777777776 0.15513888888888888 0l2.13385 0.8083611111111111 -2.2127805555555553 0.8464638888888888 -2.210061111111111 -0.8464638888888888 2.13385 -0.8083611111111111Zm2.776183333333333 4.635141666666667 -2.112077777777778 0.9281166666666666V10.686027777777777l2.242722222222222 -0.860075v2.4686277777777774c0 0.08709722222222221 -0.051713888888888886 0.16330555555555554 -0.13064444444444442 0.1986888888888889Z" fill="currentColor" stroke-width="0.0278"></path></svg>'
|
||||
url = "https://snix.dev/rustdoc"
|
||||
weight = 32
|
||||
|
||||
# [[sidebar_docs]]
|
||||
# name = "Guides"
|
||||
# pageRef = "/docs/guides"
|
||||
# weight = 10
|
||||
#
|
||||
# [[sidebar_docs]]
|
||||
# name = "Reference"
|
||||
# pageRef = "/docs/reference"
|
||||
# weight = 20
|
||||
#
|
||||
# [[sidebar_docs]]
|
||||
# name = "Resources"
|
||||
# pageRef = "/docs/resources"
|
||||
# weight = 30
|
||||
|
||||
# [[footer]]
|
||||
# name = "Privacy Policy"
|
||||
# url = "/privacy/"
|
||||
# weight = 10
|
||||
|
||||
# [[footer]]
|
||||
# name = "Terms of Service"
|
||||
# url = "/terms/"
|
||||
# weight = 20
|
||||
87
web/config/_default/module.toml
Normal file
87
web/config/_default/module.toml
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# mounts
|
||||
## archetypes
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/doks-core/archetypes"
|
||||
target = "archetypes"
|
||||
|
||||
[[mounts]]
|
||||
source = "archetypes"
|
||||
target = "archetypes"
|
||||
|
||||
## assets
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/core/assets"
|
||||
target = "assets"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/images/assets"
|
||||
target = "assets"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/doks-core/assets"
|
||||
target = "assets"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@tabler/icons/icons"
|
||||
target = "assets/svgs/tabler-icons"
|
||||
|
||||
[[mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
|
||||
## content
|
||||
[[mounts]]
|
||||
source = "content"
|
||||
target = "content"
|
||||
|
||||
## data
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/doks-core/data"
|
||||
target = "data"
|
||||
|
||||
[[mounts]]
|
||||
source = "data"
|
||||
target = "data"
|
||||
|
||||
## i18n
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/doks-core/i18n"
|
||||
target = "i18n"
|
||||
|
||||
[[mounts]]
|
||||
source = "i18n"
|
||||
target = "i18n"
|
||||
|
||||
## layouts
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/core/layouts"
|
||||
target = "layouts"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/seo/layouts"
|
||||
target = "layouts"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/images/layouts"
|
||||
target = "layouts"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/doks-core/layouts"
|
||||
target = "layouts"
|
||||
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/inline-svg/layouts"
|
||||
target = "layouts"
|
||||
|
||||
[[mounts]]
|
||||
source = "layouts"
|
||||
target = "layouts"
|
||||
|
||||
## static
|
||||
[[mounts]]
|
||||
source = "node_modules/@thulite/doks-core/static"
|
||||
target = "static"
|
||||
|
||||
[[mounts]]
|
||||
source = "static"
|
||||
target = "static"
|
||||
138
web/config/_default/params.toml
Normal file
138
web/config/_default/params.toml
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
# Hugo
|
||||
title = "My Docs"
|
||||
description = "Congrats on setting up a new Doks project!"
|
||||
images = ["cover.png"]
|
||||
|
||||
# mainSections
|
||||
mainSections = ["docs"]
|
||||
|
||||
[social]
|
||||
twitter = "getdoks"
|
||||
|
||||
# Doks (@thulite/doks-core)
|
||||
[doks]
|
||||
# Color mode
|
||||
colorMode = "auto" # auto (default), light or dark
|
||||
colorModeToggler = true # true (default) or false (this setting is only relevant when colorMode = auto)
|
||||
|
||||
# Navbar
|
||||
navbarSticky = true # true (default) or false
|
||||
containerBreakpoint = "lg" # "", "sm", "md", "lg" (default), "xl", "xxl", or "fluid"
|
||||
|
||||
## Button
|
||||
navBarButton = false # false (default) or true
|
||||
navBarButtonUrl = "/docs/prologue/introduction/"
|
||||
navBarButtonText = "Get started"
|
||||
|
||||
# FlexSearch
|
||||
flexSearch = true # true (default) or false
|
||||
searchExclKinds = [] # list of page kinds to exclude from search indexing (e.g. ["home", "taxonomy", "term"] )
|
||||
searchExclTypes = [] # list of content types to exclude from search indexing (e.g. ["blog", "docs", "legal", "contributors", "categories"])
|
||||
showSearch = [] # [] (all pages, default) or homepage (optionally) and list of sections (e.g. ["homepage", "blog", "guides"])
|
||||
indexSummary = false # true or false (default); whether to index only the `.Summary` instead of the full `.Content`; limits the respective JSON field size and thus increases loading time
|
||||
|
||||
## Search results
|
||||
showDate = false # false (default) or true
|
||||
showSummary = true # true (default) or false
|
||||
searchLimit = 99 # 0 (no limit, default) or natural number
|
||||
|
||||
# Global alert
|
||||
alert = false # false (default) or true
|
||||
alertDismissable = true # true (default) or false
|
||||
|
||||
# Bootstrap
|
||||
bootstrapJavascript = false # false (default) or true
|
||||
|
||||
# Nav
|
||||
sectionNav = ["docs"] # ["docs"] (default) or list of sections (e.g. ["docs", "guides"])
|
||||
toTopButton = false # false (default) or true
|
||||
breadcrumbTrail = false # false (default) or true
|
||||
headlineHash = true # true (default) or false
|
||||
scrollSpy = true # true (default) or false
|
||||
|
||||
# Multilingual
|
||||
multilingualMode = false # false (default) or true
|
||||
showMissingLanguages = true # whether or not to show untranslated languages in the language menu; true (default) or false
|
||||
|
||||
# Versioning
|
||||
docsVersioning = false # false (default) or true
|
||||
docsVersion = "1.0"
|
||||
|
||||
# UX
|
||||
headerBar = false # true (default) or false
|
||||
backgroundDots = true # true (default) or false
|
||||
|
||||
# Homepage
|
||||
sectionFooter = false # false (default) or true
|
||||
|
||||
# Blog
|
||||
relatedPosts = false # false (default) or true
|
||||
imageList = true # true (default) or false
|
||||
imageSingle = true # true (default) or false
|
||||
|
||||
# Repository
|
||||
editPage = false # false (default) or true
|
||||
lastMod = false # false (default) or true
|
||||
repoHost = "GitHub" # GitHub (default), Gitea, GitLab, Bitbucket, or BitbucketServer
|
||||
docsRepo = "https://github.com/h-enk/doks"
|
||||
docsRepoBranch = "main" # main (default), master, or <branch name>
|
||||
docsRepoSubPath = "" # "" (none, default) or <sub path>
|
||||
|
||||
# SCSS colors
|
||||
# backGround = "yellowgreen"
|
||||
## Dark theme
|
||||
# textDark = "#dee2e6" # "#dee2e6" (default), "#dee2e6" (orignal), or custom color
|
||||
# accentDark = "#5d2f86" # "#5d2f86" (default), "#5d2f86" (original), or custom color
|
||||
## Light theme
|
||||
# textLight = "#1d2d35" # "#1d2d35" (default), "#1d2d35" (orignal), or custom color
|
||||
# accentLight = "#8ed6fb" # "#8ed6fb" (default), "#8ed6fb" (orignal), or custom color
|
||||
|
||||
# [doks.menu]
|
||||
# [doks.menu.section]
|
||||
# auto = true # true (default) or false
|
||||
# collapsibleSidebar = true # true (default) or false
|
||||
|
||||
# Debug
|
||||
[render_hooks.image]
|
||||
errorLevel = 'ignore' # ignore (default), warning, or error (fails the build)
|
||||
|
||||
[render_hooks.link]
|
||||
errorLevel = 'ignore' # ignore (default), warning, or error (fails the build)
|
||||
highlightBroken = false # true or false (default)
|
||||
|
||||
# Images (@thulite/images)
|
||||
[thulite_images]
|
||||
[thulite_images.defaults]
|
||||
decoding = "async" # sync, async, or auto (default)
|
||||
fetchpriority = "auto" # high, low, or auto (default)
|
||||
loading = "lazy" # eager or lazy (default)
|
||||
widths = [480, 576, 768, 1025, 1200, 1440] # [640, 768, 1024, 1366, 1600, 1920] for example
|
||||
sizes = "auto" # 100vw (default), 75vw, or auto for example
|
||||
process = "" # "fill 1600x900" or "fill 2100x900" for example
|
||||
lqip = "16x webp q20" # "16x webp q20" or "21x webp q20" for example
|
||||
|
||||
# Inline SVG (@thulite/inline-svg)
|
||||
[inline_svg]
|
||||
iconSetDir = "tabler-icons" # "tabler-icons" (default)
|
||||
|
||||
# SEO (@thulite/seo)
|
||||
[seo]
|
||||
[seo.title]
|
||||
separator = " | "
|
||||
suffix = ""
|
||||
[seo.favicons]
|
||||
sizes = []
|
||||
icon = "favicon.png" # favicon.png (default)
|
||||
svgIcon = "favicon.svg" # favicon.svg (default)
|
||||
maskIcon = "mask-icon.svg" # mask-icon.svg (default)
|
||||
maskIconColor = "white" # white (default)
|
||||
[seo.schemas]
|
||||
type = "Organization" # Organization (default) or Person
|
||||
logo = "favicon-512x512.png" # Logo of Organization — favicon-512x512.png (default)
|
||||
name = "Thulite" # Name of Organization or Person
|
||||
sameAs = [] # E.g. ["https://github.com/thuliteio/thulite", "https://fosstodon.org/@thulite"]
|
||||
images = ["cover.png"] # ["cover.png"] (default)
|
||||
article = [] # Article sections
|
||||
newsArticle = [] # NewsArticle sections
|
||||
blogPosting = ["blog"] # BlogPosting sections
|
||||
product = [] # Product sections
|
||||
17
web/config/babel.config.js
Normal file
17
web/config/babel.config.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
module.exports = {
|
||||
presets: [
|
||||
[
|
||||
'@babel/preset-env',
|
||||
{
|
||||
targets: {
|
||||
browsers: [
|
||||
// Best practice: https://github.com/babel/babel/issues/7789
|
||||
'>=1%',
|
||||
'not ie 11',
|
||||
'not op_mini all'
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
};
|
||||
2
web/config/next/hugo.toml
Normal file
2
web/config/next/hugo.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Overrides for next environment
|
||||
baseurl = "/"
|
||||
64
web/config/postcss.config.js
Normal file
64
web/config/postcss.config.js
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
const autoprefixer = require('autoprefixer');
|
||||
const purgecss = require('@fullhuman/postcss-purgecss');
|
||||
const whitelister = require('purgecss-whitelister');
|
||||
|
||||
module.exports = {
|
||||
plugins: [
|
||||
autoprefixer(),
|
||||
purgecss({
|
||||
content: ['./hugo_stats.json'],
|
||||
extractors: [
|
||||
{
|
||||
extractor: (content) => {
|
||||
const els = JSON.parse(content).htmlElements;
|
||||
return els.tags.concat(els.classes, els.ids);
|
||||
},
|
||||
extensions: ['json']
|
||||
}
|
||||
],
|
||||
dynamicAttributes: [
|
||||
'aria-expanded',
|
||||
'data-bs-popper',
|
||||
'data-bs-target',
|
||||
'data-bs-theme',
|
||||
'data-dark-mode',
|
||||
'data-global-alert',
|
||||
'data-pane', // tabs.js
|
||||
'data-popper-placement',
|
||||
'data-sizes',
|
||||
'data-toggle-tab', // tabs.js
|
||||
'id',
|
||||
'size',
|
||||
'type'
|
||||
],
|
||||
safelist: [
|
||||
'active',
|
||||
'btn-clipboard', // clipboards.js
|
||||
'clipboard', // clipboards.js
|
||||
'disabled',
|
||||
'hidden',
|
||||
'modal-backdrop', // search-modal.js
|
||||
'selected', // search-modal.js
|
||||
'show',
|
||||
'img-fluid',
|
||||
'blur-up',
|
||||
'lazyload',
|
||||
'lazyloaded',
|
||||
'alert-link',
|
||||
'container-fw ',
|
||||
'container-lg',
|
||||
'container-fluid',
|
||||
'offcanvas-backdrop',
|
||||
'figcaption',
|
||||
'dt',
|
||||
'dd',
|
||||
'showing',
|
||||
'hiding',
|
||||
'page-item',
|
||||
'page-link',
|
||||
'not-content',
|
||||
...whitelister(['./assets/scss/**/*.scss', './node_modules/@thulite/doks-core/assets/scss/components/_code.scss', './node_modules/@thulite/doks-core/assets/scss/components/_expressive-code.scss', './node_modules/@thulite/doks-core/assets/scss/common/_syntax.scss'])
|
||||
]
|
||||
})
|
||||
]
|
||||
};
|
||||
2
web/config/production/hugo.toml
Normal file
2
web/config/production/hugo.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Overrides for production environment
|
||||
baseurl = "/"
|
||||
Loading…
Add table
Add a link
Reference in a new issue