From e70c968e567b2673baafc3bac6524220c9e76f38 Mon Sep 17 00:00:00 2001 From: stereobooster Date: Tue, 31 Oct 2023 16:54:45 +0100 Subject: [PATCH 001/119] Print warning if system can't resolve link to a markdown file --- layouts/_default/_markup/render-link.html | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index d0d013ae..578bfcef 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -2,10 +2,16 @@ {{ $isRemote := strings.HasPrefix $link "http" }} {{- if not $isRemote }} {{ $url := urls.Parse .Destination }} - {{ if $url.Path }} + {{- if $url.Path }} {{ $fragment := "" }} {{- with $url.Fragment }}{{ $fragment = printf "#%s" . }}{{ end -}} - {{- with .Page.GetPage $url.Path }}{{ $link = printf "%s%s" .RelPermalink $fragment }}{{ end -}} - {{ end }} + {{- with .Page.GetPage $url.Path }} + {{ $link = printf "%s%s" .RelPermalink $fragment }} + {{ else }} + {{- if hasSuffix $url.Path ".md" }} + {{ warnf "Can't resolve: %s" .Destination }} + {{ end -}} + {{ end -}} + {{ end -}} {{ end -}} {{- .Text | safeHTML -}} \ No newline at end of file From 2dd90e3d20be57c6410f29cc8568eee51c5dc680 Mon Sep 17 00:00:00 2001 From: Wen Junhua Date: Sun, 12 Nov 2023 18:52:28 +0800 Subject: [PATCH 002/119] feat: move author field to params.toml --- config/_default/languages.en.toml | 49 ------------------- config/_default/params.toml | 49 +++++++++++++++++++ exampleSite/config/_default/languages.de.toml | 11 ----- exampleSite/config/_default/languages.en.toml | 11 ----- exampleSite/config/_default/languages.es.toml | 12 ----- exampleSite/config/_default/languages.ja.toml | 12 ----- exampleSite/config/_default/params.toml | 12 +++++ .../content/docs/configuration/index.md | 10 ++-- layouts/partials/author-links.html | 2 +- layouts/partials/author.html | 8 +-- layouts/partials/footer.html | 2 +- layouts/partials/head.html | 4 +- layouts/partials/home/profile.html | 8 +-- layouts/partials/schema.html | 4 +- 14 files changed, 80 insertions(+), 114 deletions(-) diff --git a/config/_default/languages.en.toml b/config/_default/languages.en.toml index a91753aa..6d9f3ab0 100644 --- a/config/_default/languages.en.toml +++ b/config/_default/languages.en.toml @@ -11,52 +11,3 @@ title = "Congo" # mainSections = ["section1", "section2"] # description = "My awesome website" - -[author] - # name = "Your name here" - # image = "img/author.jpg" - # headline = "I'm only human" - # bio = "A little bit about you" - # links = [ - # { email = "mailto:hello@your_domain.com" }, - # { link = "https://link-to-some-website.com/" }, - # { amazon = "https://www.amazon.com/hz/wishlist/ls/wishlist-id" }, - # { apple = "https://www.apple.com" }, - # { blogger = "https://username.blogspot.com/" }, - # { codepen = "https://codepen.io/username" }, - # { dev = "https://dev.to/username" }, - # { discord = "https://discord.gg/invitecode" }, - # { dribbble = "https://dribbble.com/username" }, - # { facebook = "https://facebook.com/username" }, - # { flickr = "https://www.flickr.com/photos/username/" }, - # { foursquare = "https://foursquare.com/username" }, - # { github = "https://github.com/username" }, - # { gitlab = "https://gitlab.com/username" }, - # { google = "https://www.google.com/" }, - # { hashnode = "https://username.hashnode.dev" }, - # { instagram = "https://instagram.com/username" }, - # { keybase = "https://keybase.io/username" }, - # { kickstarter = "https://www.kickstarter.com/profile/username" }, - # { lastfm = "https://lastfm.com/user/username" }, - # { linkedin = "https://linkedin.com/in/username" }, - # { mastodon = "https://mastodon.instance/@username" }, - # { medium = "https://medium.com/username" }, - # { microsoft = "https://www.microsoft.com/" }, - # { orcid = "https://orcid.org/userid" }, - # { patreon = "https://www.patreon.com/username" }, - # { pinterest = "https://pinterest.com/username" }, - # { reddit = "https://reddit.com/user/username" }, - # { researchgate = "https://www.researchgate.net/profile/username" }, - # { slack = "https://workspace.url/team/userid" }, - # { snapchat = "https://snapchat.com/add/username" }, - # { soundcloud = "https://soundcloud.com/username" }, - # { stack-overflow = "https://stackoverflow.com/users/userid/username" }, - # { steam = "https://steamcommunity.com/profiles/userid" }, - # { telegram = "https://t.me/username" }, - # { tiktok = "https://tiktok.com/@username" }, - # { tumblr = "https://username.tumblr.com" }, - # { twitch = "https://twitch.tv/username" }, - # { whatsapp = "https://wa.me/phone-number" }, - # { x-twitter = "https://twitter.com/username" }, - # { youtube = "https://youtube.com/username" }, - # ] diff --git a/config/_default/params.toml b/config/_default/params.toml index db391cb7..b995ab1e 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -80,3 +80,52 @@ fingerprintAlgorithm = "sha256" # bing = "" # pinterest = "" # yandex = "" + +[author] + # name = "Your name here" + # image = "img/author.jpg" + # headline = "I'm only human" + # bio = "A little bit about you" + # links = [ + # { email = "mailto:hello@your_domain.com" }, + # { link = "https://link-to-some-website.com/" }, + # { amazon = "https://www.amazon.com/hz/wishlist/ls/wishlist-id" }, + # { apple = "https://www.apple.com" }, + # { blogger = "https://username.blogspot.com/" }, + # { codepen = "https://codepen.io/username" }, + # { dev = "https://dev.to/username" }, + # { discord = "https://discord.gg/invitecode" }, + # { dribbble = "https://dribbble.com/username" }, + # { facebook = "https://facebook.com/username" }, + # { flickr = "https://www.flickr.com/photos/username/" }, + # { foursquare = "https://foursquare.com/username" }, + # { github = "https://github.com/username" }, + # { gitlab = "https://gitlab.com/username" }, + # { google = "https://www.google.com/" }, + # { hashnode = "https://username.hashnode.dev" }, + # { instagram = "https://instagram.com/username" }, + # { keybase = "https://keybase.io/username" }, + # { kickstarter = "https://www.kickstarter.com/profile/username" }, + # { lastfm = "https://lastfm.com/user/username" }, + # { linkedin = "https://linkedin.com/in/username" }, + # { mastodon = "https://mastodon.instance/@username" }, + # { medium = "https://medium.com/username" }, + # { microsoft = "https://www.microsoft.com/" }, + # { orcid = "https://orcid.org/userid" }, + # { patreon = "https://www.patreon.com/username" }, + # { pinterest = "https://pinterest.com/username" }, + # { reddit = "https://reddit.com/user/username" }, + # { researchgate = "https://www.researchgate.net/profile/username" }, + # { slack = "https://workspace.url/team/userid" }, + # { snapchat = "https://snapchat.com/add/username" }, + # { soundcloud = "https://soundcloud.com/username" }, + # { stack-overflow = "https://stackoverflow.com/users/userid/username" }, + # { steam = "https://steamcommunity.com/profiles/userid" }, + # { telegram = "https://t.me/username" }, + # { tiktok = "https://tiktok.com/@username" }, + # { tumblr = "https://username.tumblr.com" }, + # { twitch = "https://twitch.tv/username" }, + # { whatsapp = "https://wa.me/phone-number" }, + # { x-twitter = "https://twitter.com/username" }, + # { youtube = "https://youtube.com/username" }, + # ] diff --git a/exampleSite/config/_default/languages.de.toml b/exampleSite/config/_default/languages.de.toml index dc8775b1..3e30366d 100644 --- a/exampleSite/config/_default/languages.de.toml +++ b/exampleSite/config/_default/languages.de.toml @@ -12,14 +12,3 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo, das mit Tailwind CSS erstellt wurde." -[author] - name = "Congo" - image = "img/author.jpg" - headline = "Nicht dein Durschnitts-Theme!" - bio = "Dies ist ein Beispiel für eine Autorenbiografie, und obwohl hier ein Stockfoto eines Hundes zu sehen ist, wurde dieser Artikel tatsächlich von einem Menschen verfasst. :dog:" - links = [ - { x-twitter = "https://twitter.com/" }, - { facebook = "https://facebook.com/" }, - { linkedin = "https://linkedin.com/" }, - { youtube = "https://youtube.com/" }, - ] diff --git a/exampleSite/config/_default/languages.en.toml b/exampleSite/config/_default/languages.en.toml index 5fa9c709..e0a1c63b 100644 --- a/exampleSite/config/_default/languages.en.toml +++ b/exampleSite/config/_default/languages.en.toml @@ -12,14 +12,3 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "A powerful, lightweight theme for Hugo built with Tailwind CSS." -[author] - name = "Congo" - image = "img/author.jpg" - headline = "Not your ordinary theme!" - bio = "This is an example author bio, and although there's a stock photo of a dog here, this article was actually created by a human. :dog:" - links = [ - { x-twitter = "https://twitter.com/" }, - { facebook = "https://facebook.com/" }, - { linkedin = "https://linkedin.com/" }, - { youtube = "https://youtube.com/" }, - ] diff --git a/exampleSite/config/_default/languages.es.toml b/exampleSite/config/_default/languages.es.toml index b23ab754..4cc090d7 100644 --- a/exampleSite/config/_default/languages.es.toml +++ b/exampleSite/config/_default/languages.es.toml @@ -11,15 +11,3 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "Un tema poderoso y liviano para Hugo creado con Tailwind CSS." - -[author] - name = "Congo" - image = "img/author.jpg" - headline = "¡No es tu tema ordinario!" - bio = "Esta es una biografía de autor de ejemplo, y aunque aquí hay una foto de un perro, este artículo en realidad fue creado por un ser humano. :dog:" - links = [ - { x-twitter = "https://twitter.com/" }, - { facebook = "https://facebook.com/" }, - { linkedin = "https://linkedin.com/" }, - { youtube = "https://youtube.com/" }, - ] diff --git a/exampleSite/config/_default/languages.ja.toml b/exampleSite/config/_default/languages.ja.toml index f35202aa..a8fbe3b4 100644 --- a/exampleSite/config/_default/languages.ja.toml +++ b/exampleSite/config/_default/languages.ja.toml @@ -11,15 +11,3 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "Tailwind CSSをベースに開発された強力で軽量なHugo向けテーマ" - -[author] - name = "Congo" - image = "img/author.jpg" - headline = "ただならぬテーマ!" - bio = "これは著者の経歴の例で、ここには犬の画像があるが、実際には人間が作成したものである。 :dog:" - links = [ - { x-twitter = "https://twitter.com/" }, - { facebook = "https://facebook.com/" }, - { linkedin = "https://linkedin.com/" }, - { youtube = "https://youtube.com/" }, - ] diff --git a/exampleSite/config/_default/params.toml b/exampleSite/config/_default/params.toml index d828f120..9531be25 100644 --- a/exampleSite/config/_default/params.toml +++ b/exampleSite/config/_default/params.toml @@ -75,3 +75,15 @@ fingerprintAlgorithm = "sha256" # bing = "" # pinterest = "" # yandex = "" + +[author] + name = "Congo" + image = "img/author.jpg" + headline = "Not your ordinary theme!" + bio = "This is an example author bio, and although there's a stock photo of a dog here, this article was actually created by a human. :dog:" + links = [ + { x-twitter = "https://twitter.com/" }, + { facebook = "https://facebook.com/" }, + { linkedin = "https://linkedin.com/" }, + { youtube = "https://youtube.com/" }, + ] diff --git a/exampleSite/content/docs/configuration/index.md b/exampleSite/content/docs/configuration/index.md index cdb66b02..a62fa5b9 100644 --- a/exampleSite/content/docs/configuration/index.md +++ b/exampleSite/content/docs/configuration/index.md @@ -98,11 +98,6 @@ The default file can be used as a template to create additional languages, or re |`params.dateFormat`|`"2 January 2006"`|How dates are formatted in this language. Refer to the [Hugo docs](https://gohugo.io/functions/format/#gos-layout-string) for acceptable formats.| |`params.mainSections`|_Not set_|The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.| |`params.description`|_Not set_|The website description. This will be used in the site metadata.| -|`author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.| -|`author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.| -|`author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.| -|`author.bio`|_Not set_|A Markdown string containing the author's bio. It will be displayed in article footers.| -|`author.links`|_Not set_|The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`.| ### Menus @@ -175,6 +170,11 @@ Many of the article defaults here can be overridden on a per article basis by sp |`verification.bing`|_Not set_|The site verification string provided by Bing to be included in the site metadata.| |`verification.pinterest`|_Not set_|The site verification string provided by Pinterest to be included in the site metadata.| |`verification.yandex`|_Not set_|The site verification string provided by Yandex to be included in the site metadata.| +|`author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.| +|`author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.| +|`author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.| +|`author.bio`|_Not set_|A Markdown string containing the author's bio. It will be displayed in article footers.| +|`author.links`|_Not set_|The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`.| ## Other configuration files diff --git a/layouts/partials/author-links.html b/layouts/partials/author-links.html index 72aa4e6c..350e99b8 100644 --- a/layouts/partials/author-links.html +++ b/layouts/partials/author-links.html @@ -1,4 +1,4 @@ -{{ with .Site.Author.links }} +{{ with .Site.Params.Author.links }}
{{ range $links := . }} {{ range $name, $url := $links }} diff --git a/layouts/partials/author.html b/layouts/partials/author.html index 2d29aa82..0c3f67bb 100644 --- a/layouts/partials/author.html +++ b/layouts/partials/author.html @@ -1,6 +1,6 @@ {{ if .Params.showAuthor | default (.Site.Params.article.showAuthor | default true) }}
- {{ with .Site.Author.image }} + {{ with .Site.Params.Author.image }} {{ $authorImage := resources.Get . }} {{ if $authorImage }} {{ $authorImage := $authorImage.Fill "192x192 Center" }} @@ -8,7 +8,7 @@ class="!mb-0 !mt-0 me-4 h-24 w-24 rounded-full" width="96" height="96" - alt="{{ $.Site.Author.name | default "Author" }}" + alt="{{ $.Site.Params.Author.name | default "Author" }}" src="{{ $authorImage.RelPermalink }}" {{ if $.Site.Params.enableImageLazyLoading | default true }} loading="lazy" @@ -17,7 +17,7 @@ {{ end }} {{ end }}
- {{ with .Site.Author.name | markdownify | emojify }} + {{ with .Site.Params.Author.name | markdownify | emojify }}
{{ i18n "author.byline_title" | markdownify | emojify }}
@@ -25,7 +25,7 @@ {{ . }}
{{ end }} - {{ with .Site.Author.bio | markdownify | emojify }} + {{ with .Site.Params.Author.bio | markdownify | emojify }}
{{ . }}
{{ end }}
{{ partialCached "author-links.html" . }}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 504ebc89..13727872 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -86,7 +86,7 @@ {{- else }} © {{ now.Format "2006" }} - {{ .Site.Author.name | markdownify | emojify }} + {{ .Site.Params.Author.name | markdownify | emojify }} {{- end }}

{{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html index cbae8736..98d7bdba 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -117,8 +117,8 @@ {{/* Schema */}} {{ partial "schema.html" . }} {{/* Me */}} - {{ with .Site.Author.name }}{{ end }} - {{ with .Site.Author.links }} + {{ with .Site.Params.Author.name }}{{ end }} + {{ with .Site.Params.Author.links }} {{ range $links := . }} {{ range $name, $url := $links }}{{ end }} {{ end }} diff --git a/layouts/partials/home/profile.html b/layouts/partials/home/profile.html index 77398f01..a23edc28 100644 --- a/layouts/partials/home/profile.html +++ b/layouts/partials/home/profile.html @@ -4,7 +4,7 @@ {{ end }} flex flex-col items-center justify-center text-center" >
- {{ with .Site.Author.image }} + {{ with .Site.Params.Author.image }} {{ $authorImage := resources.Get . }} {{ if $authorImage }} {{ $authorImage := $authorImage.Fill "288x288 Center" }} @@ -12,15 +12,15 @@ class="mb-2 h-36 w-36 rounded-full" width="144" height="144" - alt="{{ $.Site.Author.name | default "Author" }}" + alt="{{ $.Site.Params.Author.name | default "Author" }}" src="{{ $authorImage.RelPermalink }}" /> {{ end }} {{ end }}

- {{ .Site.Author.name | default .Site.Title }} + {{ .Site.Params.Author.name | default .Site.Title }}

- {{ with .Site.Author.headline }} + {{ with .Site.Params.Author.headline }}

{{ . | markdownify | emojify }}

diff --git a/layouts/partials/schema.html b/layouts/partials/schema.html index dee02207..7b751d60 100644 --- a/layouts/partials/schema.html +++ b/layouts/partials/schema.html @@ -11,7 +11,7 @@ {{ with .Site.Params.keywords }}"keywords": {{ . }},{{ end }} "publisher" : { "@type": "Person", - "name": "{{ .Site.Author.name | safeJS }}" + "name": "{{ .Site.Params.Author.name | safeJS }}" } } @@ -30,7 +30,7 @@ "url" : "{{ .Permalink }}", "author" : { "@type": "Person", - "name": "{{ .Site.Author.name | safeJS }}" + "name": "{{ .Site.Params.Author.name | safeJS }}" }, {{ with .PublishDate }}"copyrightYear": "{{ .Format "2006" }}",{{ end }} {{ with .Date }}"dateCreated": "{{ .Format $iso8601 }}",{{ end }} From 394a018e087a9b12b74fea4f9e114a06eeefc822 Mon Sep 17 00:00:00 2001 From: Wen Junhua Date: Sun, 12 Nov 2023 19:09:16 +0800 Subject: [PATCH 003/119] feat: add warning when config is incorrect --- exampleSite/config/_default/languages.en.toml | 1 - layouts/partials/functions/warnings.html | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/exampleSite/config/_default/languages.en.toml b/exampleSite/config/_default/languages.en.toml index e0a1c63b..a9d0adf5 100644 --- a/exampleSite/config/_default/languages.en.toml +++ b/exampleSite/config/_default/languages.en.toml @@ -11,4 +11,3 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "A powerful, lightweight theme for Hugo built with Tailwind CSS." - diff --git a/layouts/partials/functions/warnings.html b/layouts/partials/functions/warnings.html index d7cb6178..e96ab7c3 100644 --- a/layouts/partials/functions/warnings.html +++ b/layouts/partials/functions/warnings.html @@ -7,3 +7,6 @@ {{ if ne .Params.logo nil }} {{ warnf "[CONGO] Theme parameter `logo` has been renamed to `header.logo`. Please update your site configuration." }} {{ end }} +{{ if .Author }} + {{ warnf "[CONGO] Theme parameter `.Site.author` in `languages.xx.toml` has been renamed to `.Site.Params.author` in `params.toml`. Please update your site configuration." }} +{{ end }} From a785bb0dbf6597e24689cd010f18244046ffae55 Mon Sep 17 00:00:00 2001 From: Wen Junhua Date: Sun, 12 Nov 2023 19:45:05 +0800 Subject: [PATCH 004/119] fix: close menu button on click --- layouts/partials/header/hamburger.html | 1 + 1 file changed, 1 insertion(+) diff --git a/layouts/partials/header/hamburger.html b/layouts/partials/header/hamburger.html index 1982d81b..21aaca32 100644 --- a/layouts/partials/header/hamburger.html +++ b/layouts/partials/header/hamburger.html @@ -93,6 +93,7 @@ {{ with .Params.icon }} Date: Sat, 25 Nov 2023 12:29:10 +0800 Subject: [PATCH 005/119] fix: move param under languages.xx.toml params.author --- config/_default/languages.en.toml | 49 +++++++++++++++++++ config/_default/params.toml | 49 ------------------- exampleSite/config/_default/languages.de.toml | 11 +++++ exampleSite/config/_default/languages.en.toml | 12 +++++ exampleSite/config/_default/languages.es.toml | 12 +++++ exampleSite/config/_default/languages.ja.toml | 12 +++++ exampleSite/config/_default/params.toml | 12 ----- .../content/docs/configuration/index.md | 10 ++-- layouts/partials/author-links.html | 2 +- layouts/partials/author.html | 8 +-- layouts/partials/footer.html | 2 +- layouts/partials/functions/warnings.html | 2 +- layouts/partials/head.html | 4 +- layouts/partials/home/profile.html | 8 +-- layouts/partials/schema.html | 4 +- 15 files changed, 116 insertions(+), 81 deletions(-) diff --git a/config/_default/languages.en.toml b/config/_default/languages.en.toml index 6d9f3ab0..265387d2 100644 --- a/config/_default/languages.en.toml +++ b/config/_default/languages.en.toml @@ -11,3 +11,52 @@ title = "Congo" # mainSections = ["section1", "section2"] # description = "My awesome website" + +[params.author] + # name = "Your name here" + # image = "img/author.jpg" + # headline = "I'm only human" + # bio = "A little bit about you" + # links = [ + # { email = "mailto:hello@your_domain.com" }, + # { link = "https://link-to-some-website.com/" }, + # { amazon = "https://www.amazon.com/hz/wishlist/ls/wishlist-id" }, + # { apple = "https://www.apple.com" }, + # { blogger = "https://username.blogspot.com/" }, + # { codepen = "https://codepen.io/username" }, + # { dev = "https://dev.to/username" }, + # { discord = "https://discord.gg/invitecode" }, + # { dribbble = "https://dribbble.com/username" }, + # { facebook = "https://facebook.com/username" }, + # { flickr = "https://www.flickr.com/photos/username/" }, + # { foursquare = "https://foursquare.com/username" }, + # { github = "https://github.com/username" }, + # { gitlab = "https://gitlab.com/username" }, + # { google = "https://www.google.com/" }, + # { hashnode = "https://username.hashnode.dev" }, + # { instagram = "https://instagram.com/username" }, + # { keybase = "https://keybase.io/username" }, + # { kickstarter = "https://www.kickstarter.com/profile/username" }, + # { lastfm = "https://lastfm.com/user/username" }, + # { linkedin = "https://linkedin.com/in/username" }, + # { mastodon = "https://mastodon.instance/@username" }, + # { medium = "https://medium.com/username" }, + # { microsoft = "https://www.microsoft.com/" }, + # { orcid = "https://orcid.org/userid" }, + # { patreon = "https://www.patreon.com/username" }, + # { pinterest = "https://pinterest.com/username" }, + # { reddit = "https://reddit.com/user/username" }, + # { researchgate = "https://www.researchgate.net/profile/username" }, + # { slack = "https://workspace.url/team/userid" }, + # { snapchat = "https://snapchat.com/add/username" }, + # { soundcloud = "https://soundcloud.com/username" }, + # { stack-overflow = "https://stackoverflow.com/users/userid/username" }, + # { steam = "https://steamcommunity.com/profiles/userid" }, + # { telegram = "https://t.me/username" }, + # { tiktok = "https://tiktok.com/@username" }, + # { tumblr = "https://username.tumblr.com" }, + # { twitch = "https://twitch.tv/username" }, + # { whatsapp = "https://wa.me/phone-number" }, + # { x-twitter = "https://twitter.com/username" }, + # { youtube = "https://youtube.com/username" }, + # ] diff --git a/config/_default/params.toml b/config/_default/params.toml index b995ab1e..db391cb7 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -80,52 +80,3 @@ fingerprintAlgorithm = "sha256" # bing = "" # pinterest = "" # yandex = "" - -[author] - # name = "Your name here" - # image = "img/author.jpg" - # headline = "I'm only human" - # bio = "A little bit about you" - # links = [ - # { email = "mailto:hello@your_domain.com" }, - # { link = "https://link-to-some-website.com/" }, - # { amazon = "https://www.amazon.com/hz/wishlist/ls/wishlist-id" }, - # { apple = "https://www.apple.com" }, - # { blogger = "https://username.blogspot.com/" }, - # { codepen = "https://codepen.io/username" }, - # { dev = "https://dev.to/username" }, - # { discord = "https://discord.gg/invitecode" }, - # { dribbble = "https://dribbble.com/username" }, - # { facebook = "https://facebook.com/username" }, - # { flickr = "https://www.flickr.com/photos/username/" }, - # { foursquare = "https://foursquare.com/username" }, - # { github = "https://github.com/username" }, - # { gitlab = "https://gitlab.com/username" }, - # { google = "https://www.google.com/" }, - # { hashnode = "https://username.hashnode.dev" }, - # { instagram = "https://instagram.com/username" }, - # { keybase = "https://keybase.io/username" }, - # { kickstarter = "https://www.kickstarter.com/profile/username" }, - # { lastfm = "https://lastfm.com/user/username" }, - # { linkedin = "https://linkedin.com/in/username" }, - # { mastodon = "https://mastodon.instance/@username" }, - # { medium = "https://medium.com/username" }, - # { microsoft = "https://www.microsoft.com/" }, - # { orcid = "https://orcid.org/userid" }, - # { patreon = "https://www.patreon.com/username" }, - # { pinterest = "https://pinterest.com/username" }, - # { reddit = "https://reddit.com/user/username" }, - # { researchgate = "https://www.researchgate.net/profile/username" }, - # { slack = "https://workspace.url/team/userid" }, - # { snapchat = "https://snapchat.com/add/username" }, - # { soundcloud = "https://soundcloud.com/username" }, - # { stack-overflow = "https://stackoverflow.com/users/userid/username" }, - # { steam = "https://steamcommunity.com/profiles/userid" }, - # { telegram = "https://t.me/username" }, - # { tiktok = "https://tiktok.com/@username" }, - # { tumblr = "https://username.tumblr.com" }, - # { twitch = "https://twitch.tv/username" }, - # { whatsapp = "https://wa.me/phone-number" }, - # { x-twitter = "https://twitter.com/username" }, - # { youtube = "https://youtube.com/username" }, - # ] diff --git a/exampleSite/config/_default/languages.de.toml b/exampleSite/config/_default/languages.de.toml index 3e30366d..dbe4dee8 100644 --- a/exampleSite/config/_default/languages.de.toml +++ b/exampleSite/config/_default/languages.de.toml @@ -12,3 +12,14 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "Ein leistungsstarkes, leichtgewichtiges Theme für Hugo, das mit Tailwind CSS erstellt wurde." +[params.author] + name = "Congo" + image = "img/author.jpg" + headline = "Nicht dein Durschnitts-Theme!" + bio = "Dies ist ein Beispiel für eine Autorenbiografie, und obwohl hier ein Stockfoto eines Hundes zu sehen ist, wurde dieser Artikel tatsächlich von einem Menschen verfasst. :dog:" + links = [ + { x-twitter = "https://twitter.com/" }, + { facebook = "https://facebook.com/" }, + { linkedin = "https://linkedin.com/" }, + { youtube = "https://youtube.com/" }, + ] \ No newline at end of file diff --git a/exampleSite/config/_default/languages.en.toml b/exampleSite/config/_default/languages.en.toml index a9d0adf5..b7bf147c 100644 --- a/exampleSite/config/_default/languages.en.toml +++ b/exampleSite/config/_default/languages.en.toml @@ -11,3 +11,15 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "A powerful, lightweight theme for Hugo built with Tailwind CSS." + +[params.author] + name = "Congo" + image = "img/author.jpg" + headline = "Not your ordinary theme!" + bio = "This is an example author bio, and although there's a stock photo of a dog here, this article was actually created by a human. :dog:" + links = [ + { x-twitter = "https://twitter.com/" }, + { facebook = "https://facebook.com/" }, + { linkedin = "https://linkedin.com/" }, + { youtube = "https://youtube.com/" }, + ] \ No newline at end of file diff --git a/exampleSite/config/_default/languages.es.toml b/exampleSite/config/_default/languages.es.toml index 4cc090d7..7fda1f50 100644 --- a/exampleSite/config/_default/languages.es.toml +++ b/exampleSite/config/_default/languages.es.toml @@ -11,3 +11,15 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "Un tema poderoso y liviano para Hugo creado con Tailwind CSS." + +[params.author] + name = "Congo" + image = "img/author.jpg" + headline = "¡No es tu tema ordinario!" + bio = "Esta es una biografía de autor de ejemplo, y aunque aquí hay una foto de un perro, este artículo en realidad fue creado por un ser humano. :dog:" + links = [ + { x-twitter = "https://twitter.com/" }, + { facebook = "https://facebook.com/" }, + { linkedin = "https://linkedin.com/" }, + { youtube = "https://youtube.com/" }, + ] \ No newline at end of file diff --git a/exampleSite/config/_default/languages.ja.toml b/exampleSite/config/_default/languages.ja.toml index a8fbe3b4..87a48811 100644 --- a/exampleSite/config/_default/languages.ja.toml +++ b/exampleSite/config/_default/languages.ja.toml @@ -11,3 +11,15 @@ copyright = "© 2023 Congo contributors" mainSections = ["samples"] description = "Tailwind CSSをベースに開発された強力で軽量なHugo向けテーマ" + +[params.author] + name = "Congo" + image = "img/author.jpg" + headline = "ただならぬテーマ!" + bio = "これは著者の経歴の例で、ここには犬の画像があるが、実際には人間が作成したものである。 :dog:" + links = [ + { x-twitter = "https://twitter.com/" }, + { facebook = "https://facebook.com/" }, + { linkedin = "https://linkedin.com/" }, + { youtube = "https://youtube.com/" }, + ] diff --git a/exampleSite/config/_default/params.toml b/exampleSite/config/_default/params.toml index 9531be25..d828f120 100644 --- a/exampleSite/config/_default/params.toml +++ b/exampleSite/config/_default/params.toml @@ -75,15 +75,3 @@ fingerprintAlgorithm = "sha256" # bing = "" # pinterest = "" # yandex = "" - -[author] - name = "Congo" - image = "img/author.jpg" - headline = "Not your ordinary theme!" - bio = "This is an example author bio, and although there's a stock photo of a dog here, this article was actually created by a human. :dog:" - links = [ - { x-twitter = "https://twitter.com/" }, - { facebook = "https://facebook.com/" }, - { linkedin = "https://linkedin.com/" }, - { youtube = "https://youtube.com/" }, - ] diff --git a/exampleSite/content/docs/configuration/index.md b/exampleSite/content/docs/configuration/index.md index a62fa5b9..e4962bb3 100644 --- a/exampleSite/content/docs/configuration/index.md +++ b/exampleSite/content/docs/configuration/index.md @@ -98,6 +98,11 @@ The default file can be used as a template to create additional languages, or re |`params.dateFormat`|`"2 January 2006"`|How dates are formatted in this language. Refer to the [Hugo docs](https://gohugo.io/functions/format/#gos-layout-string) for acceptable formats.| |`params.mainSections`|_Not set_|The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.| |`params.description`|_Not set_|The website description. This will be used in the site metadata.| +|`params.author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.| +|`params.author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.| +|`params.author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.| +|`params.author.bio`|_Not set_|A Markdown string containing the author's bio. It will be displayed in article footers.| +|`params.author.links`|_Not set_|The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`.| ### Menus @@ -170,11 +175,6 @@ Many of the article defaults here can be overridden on a per article basis by sp |`verification.bing`|_Not set_|The site verification string provided by Bing to be included in the site metadata.| |`verification.pinterest`|_Not set_|The site verification string provided by Pinterest to be included in the site metadata.| |`verification.yandex`|_Not set_|The site verification string provided by Yandex to be included in the site metadata.| -|`author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.| -|`author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.| -|`author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.| -|`author.bio`|_Not set_|A Markdown string containing the author's bio. It will be displayed in article footers.| -|`author.links`|_Not set_|The links to display alongside the author's details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in `assets/icons/`.| ## Other configuration files diff --git a/layouts/partials/author-links.html b/layouts/partials/author-links.html index 350e99b8..d193fd85 100644 --- a/layouts/partials/author-links.html +++ b/layouts/partials/author-links.html @@ -1,4 +1,4 @@ -{{ with .Site.Params.Author.links }} +{{ with .Site.Language.Params.Author.links }}
{{ range $links := . }} {{ range $name, $url := $links }} diff --git a/layouts/partials/author.html b/layouts/partials/author.html index 0c3f67bb..84c6e9d9 100644 --- a/layouts/partials/author.html +++ b/layouts/partials/author.html @@ -1,6 +1,6 @@ {{ if .Params.showAuthor | default (.Site.Params.article.showAuthor | default true) }}
- {{ with .Site.Params.Author.image }} + {{ with .Site.Language.Params.Author.image }} {{ $authorImage := resources.Get . }} {{ if $authorImage }} {{ $authorImage := $authorImage.Fill "192x192 Center" }} @@ -8,7 +8,7 @@ class="!mb-0 !mt-0 me-4 h-24 w-24 rounded-full" width="96" height="96" - alt="{{ $.Site.Params.Author.name | default "Author" }}" + alt="{{ $.Site.Language.Params.Author.name | default "Author" }}" src="{{ $authorImage.RelPermalink }}" {{ if $.Site.Params.enableImageLazyLoading | default true }} loading="lazy" @@ -17,7 +17,7 @@ {{ end }} {{ end }}
- {{ with .Site.Params.Author.name | markdownify | emojify }} + {{ with .Site.Language.Params.Author.name | markdownify | emojify }}
{{ i18n "author.byline_title" | markdownify | emojify }}
@@ -25,7 +25,7 @@ {{ . }}
{{ end }} - {{ with .Site.Params.Author.bio | markdownify | emojify }} + {{ with .Site.Language.Params.Author.bio | markdownify | emojify }}
{{ . }}
{{ end }}
{{ partialCached "author-links.html" . }}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 13727872..2792ae59 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -86,7 +86,7 @@ {{- else }} © {{ now.Format "2006" }} - {{ .Site.Params.Author.name | markdownify | emojify }} + {{ .Site.Language.Params.Author.name | markdownify | emojify }} {{- end }}

{{ end }} diff --git a/layouts/partials/functions/warnings.html b/layouts/partials/functions/warnings.html index e96ab7c3..90ccf79e 100644 --- a/layouts/partials/functions/warnings.html +++ b/layouts/partials/functions/warnings.html @@ -8,5 +8,5 @@ {{ warnf "[CONGO] Theme parameter `logo` has been renamed to `header.logo`. Please update your site configuration." }} {{ end }} {{ if .Author }} - {{ warnf "[CONGO] Theme parameter `.Site.author` in `languages.xx.toml` has been renamed to `.Site.Params.author` in `params.toml`. Please update your site configuration." }} + {{ warnf "[CONGO] Theme parameter `.Site.author` in `languages.xx.toml` has been renamed to `.Site.Language.Params.Author` in `params.toml`. Please update your site configuration." }} {{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 98d7bdba..27f58037 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -117,8 +117,8 @@ {{/* Schema */}} {{ partial "schema.html" . }} {{/* Me */}} - {{ with .Site.Params.Author.name }}{{ end }} - {{ with .Site.Params.Author.links }} + {{ with .Site.Language.Params.Author.name }}{{ end }} + {{ with .Site.Language.Params.Author.links }} {{ range $links := . }} {{ range $name, $url := $links }}{{ end }} {{ end }} diff --git a/layouts/partials/home/profile.html b/layouts/partials/home/profile.html index a23edc28..a9063d43 100644 --- a/layouts/partials/home/profile.html +++ b/layouts/partials/home/profile.html @@ -4,7 +4,7 @@ {{ end }} flex flex-col items-center justify-center text-center" >
- {{ with .Site.Params.Author.image }} + {{ with .Site.Language.Params.Author.image }} {{ $authorImage := resources.Get . }} {{ if $authorImage }} {{ $authorImage := $authorImage.Fill "288x288 Center" }} @@ -12,15 +12,15 @@ class="mb-2 h-36 w-36 rounded-full" width="144" height="144" - alt="{{ $.Site.Params.Author.name | default "Author" }}" + alt="{{ $.Site.Language.Params.Author.name | default "Author" }}" src="{{ $authorImage.RelPermalink }}" /> {{ end }} {{ end }}

- {{ .Site.Params.Author.name | default .Site.Title }} + {{ .Site.Language.Params.Author.name | default .Site.Title }}

- {{ with .Site.Params.Author.headline }} + {{ with .Site.Language.Params.Author.headline }}

{{ . | markdownify | emojify }}

diff --git a/layouts/partials/schema.html b/layouts/partials/schema.html index 7b751d60..1681f5f9 100644 --- a/layouts/partials/schema.html +++ b/layouts/partials/schema.html @@ -11,7 +11,7 @@ {{ with .Site.Params.keywords }}"keywords": {{ . }},{{ end }} "publisher" : { "@type": "Person", - "name": "{{ .Site.Params.Author.name | safeJS }}" + "name": "{{ .Site.Language.Params.Author.name | safeJS }}" } } @@ -30,7 +30,7 @@ "url" : "{{ .Permalink }}", "author" : { "@type": "Person", - "name": "{{ .Site.Params.Author.name | safeJS }}" + "name": "{{ .Site.Language.Params.Author.name | safeJS }}" }, {{ with .PublishDate }}"copyrightYear": "{{ .Format "2006" }}",{{ end }} {{ with .Date }}"dateCreated": "{{ .Format $iso8601 }}",{{ end }} From 8ae115e95c182777895d383ffa31b88953387ace Mon Sep 17 00:00:00 2001 From: Wen Junhua Date: Sat, 25 Nov 2023 12:46:52 +0800 Subject: [PATCH 006/119] fix; move function to another file --- assets/js/menu.js | 6 ++++++ exampleSite/config/_default/params.toml | 2 +- layouts/partials/head.html | 4 ++++ layouts/partials/header/hamburger.html | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 assets/js/menu.js diff --git a/assets/js/menu.js b/assets/js/menu.js new file mode 100644 index 00000000..ec43bfcd --- /dev/null +++ b/assets/js/menu.js @@ -0,0 +1,6 @@ +/* + Closes the hamburger menu when a link is clicked. +*/ +function close_menu() { + document.getElementById('menu-controller').checked=false +} \ No newline at end of file diff --git a/exampleSite/config/_default/params.toml b/exampleSite/config/_default/params.toml index d828f120..af12c3de 100644 --- a/exampleSite/config/_default/params.toml +++ b/exampleSite/config/_default/params.toml @@ -17,7 +17,7 @@ enableImageLazyLoading = true fingerprintAlgorithm = "sha256" [header] - layout = "basic" # valid options: basic, hamburger, hybrid, custom + layout = "hamburger" # valid options: basic, hamburger, hybrid, custom # logo = "img/logo.jpg" # logoDark = "img/dark-logo.jpg" showTitle = true diff --git a/layouts/partials/head.html b/layouts/partials/head.html index cbae8736..6a0c35fe 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -47,6 +47,10 @@ {{ $jsCode := resources.Get "js/code.js" }} {{ $assets.Add "js" (slice $jsCode) }} {{ end }} + {{ if eq .Site.Params.header.layout "hamburger" }} + {{ $jsMenu := resources.Get "js/menu.js" }} + {{ $assets.Add "js" (slice $jsMenu) }} + {{ end }} {{ if eq (site.Language.LanguageDirection | default "ltr") "rtl" }} {{ $jsRTL := resources.Get "js/rtl.js" }} {{ $assets.Add "js" (slice $jsRTL) }} diff --git a/layouts/partials/header/hamburger.html b/layouts/partials/header/hamburger.html index 21aaca32..23cb4723 100644 --- a/layouts/partials/header/hamburger.html +++ b/layouts/partials/header/hamburger.html @@ -93,7 +93,7 @@
{{ with .Params.icon }} Date: Sat, 25 Nov 2023 12:51:22 +0800 Subject: [PATCH 007/119] docs: update author docs --- exampleSite/content/docs/configuration/index.ja.md | 10 +++++----- exampleSite/content/docs/getting-started/index.ja.md | 4 ++-- exampleSite/content/docs/getting-started/index.md | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/exampleSite/content/docs/configuration/index.ja.md b/exampleSite/content/docs/configuration/index.ja.md index 22febbc2..ef5e1b90 100644 --- a/exampleSite/content/docs/configuration/index.ja.md +++ b/exampleSite/content/docs/configuration/index.ja.md @@ -98,11 +98,11 @@ Congoは現在、以下の言語に対応しています: |`params.dateFormat`|`"2 January 2006"`|日付の書式。許容される書式については、[Hugo docs](https://gohugo.io/functions/format/#gos-layout-string)を参照してください。| |`params.mainSections`|_Not set_|最近の記事リストに表示するセクション。指定されていない場合は、記事の数が最も多いセクションが使われます。| |`params.description`|_Not set_|ウェブサイトの説明。これはサイトのメタデータに使用されます。| -|`author.name`|_Not set_|著者の名前。これは記事のフッターと、プロフィールレイアウトが使用されている場合にホームページに表示されます。| -|`author.image`|_Not set_|著者の画像ファイルへのパス。画像は縦横比1:1で、 `assets/` に置くこと。| -|`author.headline`|_Not set_|著者の見出しを含むMarkdown文字列。プロフィールのトップページで著者の名前の下に表示されます。| -|`author.bio`|_Not set_|著者の経歴を含むMarkdown文字列。記事のフッターに表示されます。| -|`author.links`|_Not set_|著者の詳細とともに表示するリンク。設定ファイルにはリンクの例が含まれており、コメントを外すだけで有効にすることができます。リンクが表示される順番は、配列に表示される順番によって決まります。 `assets/icons/` に対応するSVGアイコンを用意することで、カスタムリンクを追加することもできます。| +|`params.author.name`|_Not set_|著者の名前。これは記事のフッターと、プロフィールレイアウトが使用されている場合にホームページに表示されます。| +|`params.author.image`|_Not set_|著者の画像ファイルへのパス。画像は縦横比1:1で、 `assets/` に置くこと。| +|`params.author.headline`|_Not set_|著者の見出しを含むMarkdown文字列。プロフィールのトップページで著者の名前の下に表示されます。| +|`params.author.bio`|_Not set_|著者の経歴を含むMarkdown文字列。記事のフッターに表示されます。| +|`params.author.links`|_Not set_|著者の詳細とともに表示するリンク。設定ファイルにはリンクの例が含まれており、コメントを外すだけで有効にすることができます。リンクが表示される順番は、配列に表示される順番によって決まります。 `assets/icons/` に対応するSVGアイコンを用意することで、カスタムリンクを追加することもできます。| ### メニュー diff --git a/exampleSite/content/docs/getting-started/index.ja.md b/exampleSite/content/docs/getting-started/index.ja.md index 9bc25efb..47a6d7a2 100644 --- a/exampleSite/content/docs/getting-started/index.ja.md +++ b/exampleSite/content/docs/getting-started/index.ja.md @@ -38,7 +38,7 @@ languageCode = "en" title = "My awesome website" -[author] +[params.author] name = "My name" image = "img/author.jpg" headline = "A generally awesome human" @@ -48,7 +48,7 @@ links = [ ] ``` -`[author]` はウェブサイト上でどのように著者情報を表示するかを決定します。画像はサイトの `assets/` に置きましょう。リンクはリストの記述順に沿って表示されます。 +`[params.author]` はウェブサイト上でどのように著者情報を表示するかを決定します。画像はサイトの `assets/` に置きましょう。リンクはリストの記述順に沿って表示されます。 各設定に関する詳細情報は、[設定]({{< ref "configuration" >}})セクションで説明されています。 diff --git a/exampleSite/content/docs/getting-started/index.md b/exampleSite/content/docs/getting-started/index.md index 27dd1479..9e019f6f 100644 --- a/exampleSite/content/docs/getting-started/index.md +++ b/exampleSite/content/docs/getting-started/index.md @@ -38,7 +38,7 @@ The language code in the language config filename should match the `languageCode title = "My awesome website" -[author] +[params.author] name = "My name" image = "img/author.jpg" headline = "A generally awesome human" @@ -48,7 +48,7 @@ links = [ ] ``` -The `[author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed. +The `[params.author]` configuration determines how the author information is displayed on the website. The image should be placed in the site's `assets/` folder. Links will be displayed in the order they are listed. If you need extra detail, further information about each of these configuration options, is covered in the [Configuration]({{< ref "configuration" >}}) section. From dc1ea3dfaadaf5f93dfe09544a78d52129e8b635 Mon Sep 17 00:00:00 2001 From: Wen Junhua Date: Sat, 25 Nov 2023 13:14:06 +0800 Subject: [PATCH 008/119] feat: add sharing to telegram --- data/sharing.json | 5 +++++ exampleSite/config/_default/params.toml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/sharing.json b/data/sharing.json index fa7ea432..c33694d0 100644 --- a/data/sharing.json +++ b/data/sharing.json @@ -33,5 +33,10 @@ "icon": "twitter", "title": "sharing.twitter", "url": "https://twitter.com/intent/tweet/?url=%s&text=%s" + }, + "telegram": { + "icon": "telegram", + "title": "sharing.telegram", + "url": "https://telegram.me/share/url?text=%s&url=%s" } } diff --git a/exampleSite/config/_default/params.toml b/exampleSite/config/_default/params.toml index d828f120..6ddecf7c 100644 --- a/exampleSite/config/_default/params.toml +++ b/exampleSite/config/_default/params.toml @@ -50,7 +50,7 @@ fingerprintAlgorithm = "sha256" showTaxonomies = false showWordCount = false showComments = false - # sharingLinks = ["facebook", "twitter", "mastodon", "pinterest", "reddit", "linkedin", "email"] + # sharingLinks = ["facebook", "twitter", "mastodon", "pinterest", "reddit", "linkedin", "email", "telegram", "line"] [list] showBreadcrumbs = true From 10c4226fce85d935193c1e2464f76ef2a0a0062d Mon Sep 17 00:00:00 2001 From: Wen Junhua Date: Sat, 25 Nov 2023 13:14:47 +0800 Subject: [PATCH 009/119] feat: add sharing to line No changes to color is allowed based on their official website https://line.me/en/logo --- assets/icons/line.svg | 2 ++ data/sharing.json | 5 +++++ exampleSite/content/samples/icons/index.de.md | 1 + exampleSite/content/samples/icons/index.es.md | 1 + exampleSite/content/samples/icons/index.ja.md | 1 + exampleSite/content/samples/icons/index.md | 1 + 6 files changed, 11 insertions(+) create mode 100644 assets/icons/line.svg diff --git a/assets/icons/line.svg b/assets/icons/line.svg new file mode 100644 index 00000000..65d089d1 --- /dev/null +++ b/assets/icons/line.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/data/sharing.json b/data/sharing.json index c33694d0..23283513 100644 --- a/data/sharing.json +++ b/data/sharing.json @@ -38,5 +38,10 @@ "icon": "telegram", "title": "sharing.telegram", "url": "https://telegram.me/share/url?text=%s&url=%s" + }, + "line": { + "icon": "line", + "title": "sharing.line", + "url": "https://line.me/R/share?text=%s%s" } } diff --git a/exampleSite/content/samples/icons/index.de.md b/exampleSite/content/samples/icons/index.de.md index 7f694a62..1f14ca14 100644 --- a/exampleSite/content/samples/icons/index.de.md +++ b/exampleSite/content/samples/icons/index.de.md @@ -46,6 +46,7 @@ Die vollständige Liste der integrierten Icons und ihre entsprechenden Namen fin | kickstarter | {{< icon kickstarter >}} | | lastfm | {{< icon lastfm >}} | | lightbulb | {{< icon lightbulb >}} | +| line | {{< icon line >}} | | link | {{< icon link >}} | | linkedin | {{< icon linkedin >}} | | list | {{< icon list >}} | diff --git a/exampleSite/content/samples/icons/index.es.md b/exampleSite/content/samples/icons/index.es.md index 91cd4f06..c17926ac 100644 --- a/exampleSite/content/samples/icons/index.es.md +++ b/exampleSite/content/samples/icons/index.es.md @@ -46,6 +46,7 @@ La lista completa de íconos incorporados y sus nombres correspondientes se pued | kickstarter | {{< icon kickstarter >}} | | lastfm | {{< icon lastfm >}} | | lightbulb | {{< icon lightbulb >}} | +| line | {{< icon line >}} | | link | {{< icon link >}} | | linkedin | {{< icon linkedin >}} | | list | {{< icon list >}} | diff --git a/exampleSite/content/samples/icons/index.ja.md b/exampleSite/content/samples/icons/index.ja.md index 7ee8661d..be939f2b 100644 --- a/exampleSite/content/samples/icons/index.ja.md +++ b/exampleSite/content/samples/icons/index.ja.md @@ -46,6 +46,7 @@ Congo は[FontAwesome 6](https://fontawesome.com/icons)のアイコンをサポ | kickstarter | {{< icon kickstarter >}} | | lastfm | {{< icon lastfm >}} | | lightbulb | {{< icon lightbulb >}} | +| line | {{< icon line >}} | | link | {{< icon link >}} | | linkedin | {{< icon linkedin >}} | | list | {{< icon list >}} | diff --git a/exampleSite/content/samples/icons/index.md b/exampleSite/content/samples/icons/index.md index 80cc5190..95550b6d 100644 --- a/exampleSite/content/samples/icons/index.md +++ b/exampleSite/content/samples/icons/index.md @@ -46,6 +46,7 @@ The full list of built-in icons and their corresponding names can referenced bel | kickstarter | {{< icon kickstarter >}} | | lastfm | {{< icon lastfm >}} | | lightbulb | {{< icon lightbulb >}} | +| line | {{< icon line >}} | | link | {{< icon link >}} | | linkedin | {{< icon linkedin >}} | | list | {{< icon list >}} | From a9f79b749514fee40b8b982f30ecb31b58e46d67 Mon Sep 17 00:00:00 2001 From: James Panther <4462786+jpanther@users.noreply.github.com> Date: Sun, 26 Nov 2023 16:20:04 +1100 Subject: [PATCH 010/119] =?UTF-8?q?=F0=9F=94=A5=20Remove=20Fathom=20Analyt?= =?UTF-8?q?ics=20custom=20domain=20parameter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ config/_default/params.toml | 1 - exampleSite/config/_default/params.toml | 1 - .../content/docs/configuration/index.ja.md | 1 - exampleSite/content/docs/configuration/index.md | 1 - .../content/docs/partials/fathom-analytics.jpg | Bin 0 -> 49300 bytes exampleSite/content/docs/partials/index.md | 9 ++++++--- layouts/partials/analytics.html | 6 +----- 8 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 exampleSite/content/docs/partials/fathom-analytics.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c8527d6..325b3633 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Removed + +- Fathom Analytics custom domain parameter as this is no longer supported by Fathom + ## [2.7.6] - 2023-11-26 ### Fixed diff --git a/config/_default/params.toml b/config/_default/params.toml index db391cb7..f2d3fcfb 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -68,7 +68,6 @@ fingerprintAlgorithm = "sha256" [fathomAnalytics] # site = "ABC12345" - # domain = "llama.yoursite.com" [plausibleAnalytics] # domain = "blog.yoursite.com" diff --git a/exampleSite/config/_default/params.toml b/exampleSite/config/_default/params.toml index d828f120..2b3fa153 100644 --- a/exampleSite/config/_default/params.toml +++ b/exampleSite/config/_default/params.toml @@ -68,7 +68,6 @@ fingerprintAlgorithm = "sha256" [fathomAnalytics] # site = "ABC12345" - # domain = "llama.yoursite.com" [verification] # google = "" diff --git a/exampleSite/content/docs/configuration/index.ja.md b/exampleSite/content/docs/configuration/index.ja.md index 0c623c13..57811648 100644 --- a/exampleSite/content/docs/configuration/index.ja.md +++ b/exampleSite/content/docs/configuration/index.ja.md @@ -169,7 +169,6 @@ Congoはテーマの機能を制御する多数の設定パラメーターを提 |`sitemap.excludedKinds`|`["taxonomy", "term"]`|生成される `/sitemap.xml` から除外されるべきコンテンツの種類。許容される値については[Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds)を参照してください。| |`taxonomy.showTermCount`|`true`|TaxonomiesのリストにTermごとの記事数を表示するかどうか。| |`fathomAnalytics.site`|_Not set_|Fathom Analyticsによって生成されたウェブサイトのサイトコード。詳細は[アナリティクス]({{< ref "partials#アナリティクス" >}})を参照してください。| -|`fathomAnalytics.domain`|_Not set_|Fathom Analyticsでカスタムドメインを使用している場合、カスタムドメインから`script.js`を提供するためにここに指定します。| |`verification.google`|_Not set_|サイトのメタデータに含めるGoogleが提供するサイト検証文字列。| |`verification.bing`|_Not set_|サイトのメタデータに含めるBingが提供するサイト検証文字列。| |`verification.pinterest`|_Not set_|サイトのメタデータに含めるPinterestが提供するサイト検証文字列。| diff --git a/exampleSite/content/docs/configuration/index.md b/exampleSite/content/docs/configuration/index.md index 60641cd5..96e42374 100644 --- a/exampleSite/content/docs/configuration/index.md +++ b/exampleSite/content/docs/configuration/index.md @@ -169,7 +169,6 @@ Many of the article defaults here can be overridden on a per article basis by sp |`sitemap.excludedKinds`|`["taxonomy", "term"]`|Kinds of content that should be excluded from the generated `/sitemap.xml` file. Refer to the [Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds) for acceptable values.| |`taxonomy.showTermCount`|`true`|Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing.| |`fathomAnalytics.site`|_Not set_|The site code generated by Fathom Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.| -|`fathomAnalytics.domain`|_Not set_|If using a custom domain with Fathom Analytics, provide it here to serve `script.js` from the custom domain.| |`plausibleAnalytics.domain`|_Not set_|Enter the domain of the website you want to track. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.| |`plausibleAnalytics.event`|_Not set_|Plausible api event proxied URL. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.| |`plausibleAnalytics.script`|_Not set_|Plausible analysis script proxied URL. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details.| diff --git a/exampleSite/content/docs/partials/fathom-analytics.jpg b/exampleSite/content/docs/partials/fathom-analytics.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed862c6a780a6e88d158d4b1ec455806dc746c98 GIT binary patch literal 49300 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
l&OdB{?{rULDVn=nv6yzK_O6i3-}YI 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%0AlmvJS_p4U z-#66&lgbB*4in$Mc8QJ4m>p~RNNR8xNOw<*UI2{IlO9`ts)tYAq_n!9Noz|o#ljps z zHv9U<_xxGWYng$Z2+lA0V)KeEO<#f)-}^JG(8)@2_Gx`}CvqI>ezRf8?Cg`dcQ^17 z9eHb#w|1ocvw03uc=m`)^g5Fc-PdF%hU$hJxhIXu&dcMH_i2K8UnPd8TvzIn5zKmJ zlg7L+#N20_8h@$BUdS@jhg05det^=<#7gRNc#0qGxL#XEY7oLZvqq^~CN)ncN$`cP zd52zDfa0Oeqa~^KXB(mR^BE^s^GyXE{TJTTL2nNj<19Hb19T}SwCHPXas8FkZgmVY z<25ISt6w|rrCh!2C?j7L+Bp8OR_}SM5hBR6^L2@p4}DjY$f>r3zyrIpx~M<9jI$qO zD84D@IA@0THJB|;><|8Vl~KABZ~=&@1xwzWu-o!%yVU-!DP$T)NSE29_3>v%hj+hjRYwOPU% z(+2yhLd!1BnQ@ozn&hr8>)qycIalTaebrStf!a>ZcOx7+eVN~{?~3vGN@ue@sg?EJ zppX-x8}INU8S^R9*t0P&@tl9{F(`sR2DKA4RIGtaxpga=R^J-8o^#5~>oh!a2ePDB zPF4;6Sd_>5iHznQa}ZOTGjO;{uVef;TxO&joAr;taS}}d5iv&!Dc5|TK>43Xm8#0A z-DB#Z#SrJKcK-%Gj~lX+lJH7fCV6p3jy|6_JHGh(p;kpZk9nDR_S|;}#pfcU35@#4 z9-m7l;_BABi^dF&h5bqQC`wXnq!vMs*C}#pedq~SJC37XLsNDlwGwmk3-)~bwSKt2 zyR`f$zmTEH_Q6Og%Ycz_S4w7evGL8>l~s&bTstOG68Xx2wo+3kiu#G`+9c7*rRZ`Z zu|>UDi#g-_Ufbt#qSw~v7N@y3)aXn^CE~l5g?ip}tE4jLx7Ul5@6SJW=zdTIl@7v0 za~WCE9)9R4+d5Rsu8-=zGx{fAnnZ+NW=X3Rn^>!vwUhOhj=q z8lA8t-6W$H(3Z}*D=Iq8Q#yH5sJA@Fz_wZI2Dbd(Xfe~}2au0;S^5TWt#?n&?6PZ% z>O*pry|*uE8;`E#CrG@1nBppGpTOWc+9&=PAxdq?PetHeeYtwQx(T`H^ve}WaqA$u zX_vI^<>j|OhGeQw-f8QQ9!68DGyf3hm~b98u}e|A3yAw0^2xpZyl@J+T8bQPW1@fH z(>8>vWh5&x$(EnurKU(2nX@t!fjP^fErd}*!oFbWKqCdz%qFV7Os=v@lCBwFvIl|u z)?==C>X^QIWLJl@R;>SC^hZxMf&=-Z)?lbnhb!87$71E6G|qi;=~2w^jp9ybdfUIV zD=u8|wl3}Xm(hjcTLv*6f0OcI2%{9)7h#&aeQo^&XJP%h8K%8;uLe6lz8k}8S>>bJ z((CH(ML{Yy)$E?n3U56bxd2KXG-!pwOR~ZpiE<7OOABwVovVx2Od82KT#KdCHmP!$ zc)^b8lW|{uP?gK`_;r$W#>?`#zfNMaHj5;0P~~-yT4oTNIZUFPT?{4aejhF8TYI-<@?hE?mJKAdb%mTfL(_(WVwvWpa9o- z{gWt-GQcOvf)ZX~GqN=yheA|67ceJlTF6ZlK5!$S$ANw^6XSkdoG% z;Tl~&(RTL@i%_9^6iRV$+UMEQnF-mH)wQ~iVR zAI@32Hgl}$;F3yrfeU~&Y=LE|zxtV_@ujb)L)}Fd68iHyZE-FcH{|7Lg%ijfmA-go zE~{1f4*M^Br$RHwL8o-8xwRq-u_fo{9=|o|U-U5YpAk;f0Q5dV(@B{P^_DaF!LtyKdtu;BVLhR01u?5av%D(SqtKPxn*I?HyGj+i}* zBH@I$@jrDf$|D=>kp`kOMBd=Xm zd;3z%R15eg22+w4$RFNPt$mGkcRq|9#+bpz+}aoh&Yum4sp;7QJ2}`-&&Xi6JoDw*qINyy=y-{mhUTb>Ur+BmH_Gms$C~tgPtD^cg zXaAq|l-OE7TK$8^ZA<T=;(9zzO@99>RqLmZ zmt!vrL7Oh^;z-BUKlK_FTW>_xNafQ&)0m#$4qfIF?XCV^^D~p?7U=os)QIP@Yenxy zl~YP}ysQ3pT>xJN`|v6ES|~JzvLsLU3MK8+j4ivAPD5CYlUCR4#ST*MsRtL{FvPnY z4KF*09PeGtY5P8SAb4d$F!P){=C7kgZG7P1CMkRIyRKI<(ajs5S{9c*UV46VAZVd) z`%@!9sW0sE@^{@MQTId_&h_8T7Ld(Qj`Ix73Zr$I9B$HZu_r0U458RGL?bFP1 z#X`?LtnXpA|I;6E>_;uVaS(-2%)SU6wfSK*rbEYT%$d1T_C9FQ1RD?)UXV4_ zkF371T)U3stAzYhtAOQ^(C{KR8x9Lu|CV07!=<1hYMA$E!y( zBlzb85oTqjnyNmk(G#sv!qDnnlW{4|CJTbZHd6f z5NY@J3m}_O_h9dS#VX2>ysjiW$Zu&$EY_j6Bj~*F&hqo=+RK0c-um4Ly8ze=t)WkK zkV;|fD50svi#zuH5=f8^=epS1L1x6E4ko!CKvB#8)X8v7>O zu!4R`$`+sO|G0(e56Q&c$BhBo9yaGqY46+}CZu<<#!BHF^K(nzHP{Y6sBwD^`;#p9 z6o2k{0oS&fQ?kol-UYMACY4?GTV3_Va?x?N#|xG(X6|WB(wc{R z_eqO6a&`uLDyRRBop{dpQJgCvyTZIX=$+Fj=g+^t!rrO*oX;K|YmaJd@a4P{|My4b z#;)g(Do%BU{rFO$32(jj>Ue)=Ut#NFUO02VoatFcm|5`huLb;bUE`D>+mRJ>bJe9l z{F%|c-<78)KL^f}N|sT%lIWtGW1m861KKRZBLr{O|LE#;r6tq6FkLBiU7jH6Ibsm7 z|7qMjq7N>`Nmm*1P4P2R4?chGVgAi1SDuV1cYbsDa{Gx@Mh(-SOVFAQZ8mmA`%`(j zKO^sbIeG0gW_lUYMsAG1VcO#Um&{|&146j}2=WwkDxDc#0DZ>hS`)=WHhsCSQJ&qk z$iU2_qCwv2DeJKVi-Sj_5AKD@9 zpQK^;cMbyWL$Ll@xG30m!;j22tTXAr$x4(BDjBL|Zfz6yWI|KnQbBQf|4Ymk#BfXq zRXXnUont@b`Q)W@Pq$BxGi2z?2L#86rp4BRlztf(YbUl}oHZ&RIz*4Vtq@#m z=8T)k-fR||6mvPf=cp4MvNkh#YbVXF-}=g@cWuSO@TNTsArn{g!o>nB0TR4?{mM}| z8x?;V^4isMWK5_cO7ul2bLX)gclq@7S>?t#e^$NT5;bne;gs|Ex559<&O~y#%SU_s zv#+-CxT=tp*2jgb5DLD=iG$eoKaow(wSYNk2C1l%Y7jhGE8@$d>BCmxvpr;I)cJZki8p8t z^^bMN!#18p3Nsi(U;i~sRtcGsNi({q{jFiVtOCc}Xts1&XGzq8+|}^2=iv433*hnP z%!S*1KK+5Z#u53jZpGI@=U?Bcayn48cg*_w)e~x@zsRZh_KJKUOr3R2 zmQlxHF%X&f+AM$DqfSMC({yi8TXC+8_#)5OEbV!{QJs`tn`(Ke^l%pTdy=l4cITfN zqGaZp&y6#P@&x6J5nCIPvs+`@mv6p8o%$37UD8gvDpk?dl0J>=&GJ*dS^aZU{GNy# zN2no7NZ0(Yl^UtU5Z$p^I$dL{!1qm+&8iG5USj8X`}JCNpH+z-uV~}VeBMEGrNy%y zyC*WyrJn-2j5BM5^_5cdYTQ2*$LUh}@Q1$f4Aw}}Z;4;7H1E*9`oXLPnAyKVq50z3 zY;B$QVk^cw;FXeLpv_HhP61mPpTIF*)N0b_k7u-=8ITezlTnRA%NwgG(!z z55DR?94kUJ4l?>-V{fAP-@J_DE;e0Ah$2H;R@PS4NNZ4sMnngvLbUf@DyE+_*#pMr#e_}q$`Rva6$Z{U0GHmzY+vzoi z%+Ev@ME}be&-+|(jsyhO&o}4Bp4qi;UE&7p2-+bXRVkJX<)DlfA>{emDah|ZOCIs4dm$nJ>ompd}e;#2@i%mTV-MsJJyP9o$Lx_DsVSa&gPgP6Kh~$o4)4WB7AY z*-|hwD3)5ivROqn6$d^hV5UG6WC&tl9tgOIp|cYY-XpC<^dXk%7ftCrbmMcdXL0xK z-sTzOBHin7UYfx2`XIn?rn{$?iA>-jN`=Oxf8whi@cV>V z7=OOM;V+>12;F9Fw$a)=j%sCH-L+4F86$yw5%7SuYe-PUeR{=0OIZXrmh2DaAc2la zqWi^)EQ`8!8smRIu;P8Yh0(|`J8)gRiPlvMo>Eo>7h~<4F5wCf54%8mPhmGdP^Yh{ zf38PPNzJSaU9G<7sj6he9M{66->9mqJwLTU(^BW$qE2nNrQaxS778%^nuzvpuanBf zbTs+aHUcR^NyLK3zBU?cX|{sb@)8E9yNJJf4v0*)#VDql3|_U2k%-(XF2yl`Z`B}3 zY0h40)yA>#dGXCmBds#9$xX%7WOhfAvsmV~9za%~~35@D*n zK@pndIs-E`YeEKVM(OtOBM#aeBNh@e{fij7RH#GlEc$a*f$}fxY4&f)2ov!!#9d=f z!(FRn81_|!WYDFcxwRNaolMwYHdQv5(A(z{1c2R0YwlER1B%G$L_@)3M$dST@TT_>W#*;{i<*P5X9204ir3!{U1aj(`_B@7K@wRyeN)woLJ>+{20xTJ}uiEvcSm&82gvi@ zv6+`3;TZ`Zj{JoPQZJTiVO!;s#WFpp+JQlSJt8}R_>8Q-TeYpm?R=oJ0S473`7M$t zS+7xXnPkydH|6W?*BfyyygTF`l8EOD9)-_Mx)<8$!;RsEKK!}Nc0{vzU}3Cjy2^+D zWf1ZXo5off(&b{neF?!{olryPUuH=%i9R0yTS>^tt(8v~C7iOr` zlMeifDF`7k|4>*cnYnn7aXuB^BYuK6n&#ZOLc;K zHL@qrmu~TAy6?5U(C_lw)yXl>DUWkuYRQ<#dT{j^2?<}FR%KmdHmBUD!x_nT%KO#y zHaG%b`3_3z3`?=c#_B{skB8Fpv}*HapNciIp)fk6wNzDwzInS9 zJXMHUJ?Wh)1DpRQt#;9siSrv z;)kPB&iW5+CU?3(fI*|VoNVIcz8g3<9_YGTCzA% zR*2oFMl+tKAzPUY6uLqH znGdbqpJ^o>UlBP`i~h`t{En9v0LW&ufU)yz9B%(JhrOb%#-h7mre3XCG6&b`zT;C3 zwOM?#t{A{!Vt$R1SC=3Q^V#Xnb_w*AdZsSATLWg%I?cv5ixcTIb&T@#4?n(7LF{Sf znT|P}%%1ehR|bR?NnVPh| zY49;EEt?DtRC!V~;j^nVN}(=BH+}|VRjic_OTB6! z{05MgRF)UKw<;J{S2#H;Ah|`Hvl5d_X=Jo78EsM#G}g?{)5Zxg2dAth`LAm^JGf{X z`o4W?VqR&eV=mrs9}t@qL1iJUf#o1mYt<$Ue)h<(L_~|Rb>$9g)YvVv1Y1(q;2^j9 z8tp1&hH$nmOMr$}3yrs{%V#^`2AKdmywrTNqb8Z>u&mZp|K}9-0yNtP7fnt3#F30C z^Xze+%by~tG^lC~A`*WgfF$IJqL|ZGs`cfnL?y`WmRag$pWrQ821^;|&2oV8i6z&2 zxe`TBLENppH+C9j4b3j_Q|36GHo`ef5J`w5zhZ7 zZ2uo&tN#d#{u5sNe-_>>e6?!-H!@h*>SK-3w^QS&*L*fTBO*>S^hFj1<#t%^HRmcA%G5fAs@K7K7k^X!bN?f&6~fP`gWnJmcFnts~( znaIcn*}HLq-YZ$!Vklw0ZRWXUH=U@ry=qm!EjU{VB4xlSy?Mp^0|L zsezP`bm}UX`Nd;y2z|a@!d_$1uky%(OrNT1L_>ZT#5Y0!MFmQ(_D9d`xf3j+fwZ6C z+4@ioEaXz0AnyGITlx`3tgog1I`o-QcNo^WCG~$@eb3$LHSGC~y%X*Tc2z@57HR zM&GyJ>qFClS^s2j|NoQ)UDkR$p~JF1%)2~L5j7r&{)H$}00-d%{zAOTU%r?APv3NK zwT=?FS_c9O3I+-0Gc^3aVjXb3Fa#7j206Ik7gJani-J`|#n{;;D8Ige(j+*ckBrU8 zHLFzCmlGu%9G*lP)7*>9h?a16StOkV5An0ru5aU%r=2k&8xFKylTj)LX9n^ z-eHhr$ABKQD}!QDvb1aK-OqF_#|;XxZXFn$RpwL*^7?V^@906fr`D_Q!WCbw8QnUW z=E7N{8>G{0UaKPu#gfFTIxc^joN|dcB^<1p*Wv}lpQEN6n3 z&ZIg{>;4M?BeQ zK>0Gg9Vh=NkD(mH895W@#&A>0a9|r*2h<$Lv7^mtO9#1}5MGD0J4Z0b@OhiM1hC*x zc~i=AU{*83peLGXtoYnD`EF+>eIRHf7PQ!{666_~o+A5S4FQ#zuj_+C3b84h#8R8- zGa|e^e#orOvDj#uQNzs4{7@FM;HZG-&al(yIo`+R^q&c3tz##PF~JN5@Yra8xq}$0 z5;;XpF6=QcL&q@OCUO_CtA65Tj@xHMz{m%FATZ|Fo5q>(>T1fdjW$}BXvUPOz*e-5 zrU#vIR79S40P@Z2JnU=7vKaJenw@MPL}f6sO0d4fMVuAC?JsXv2e8mFtHqU2%k@jwptFl9wCt4K&M0T8MTs);V zTd=U2))7K-l+JFR-Q6_dQ>9g9?d)XyfUpOAk(LfLQ)OSZP<1Qb8{w3t%3AY321-qB zBG6%4u(iq(^!2H!r60)(FuQkP<3E1+Nfy(e>lxlxg;v`1Yp4nXu5;fOW2TvZc9sx8 zF8Vve@s4(4;HU5BkueN&+~&OP6RH)G88)mmNoo4=zBP)JdKLr%H=+STc-?;9=Ag)q zRe`;mhXM@#>xt&8pdoi!-&-&dM82y+5MoqUni8K>OyWXos5{f6&~8Tx|6d5Q?In1) zrjd%UE;17o`;8B=m}RD40|=G$5oEEpd6BE>VaR;0K`K<_uA4+Rq&Fc+O85;KF!soG z&qVj?$|};LPC-Cc@bf-x8|_XApy!KPmU+Mu{xB~)gQA-&m65ZaHvjV!Lh$TGNVD}G zp*}nb7{HJOjQ@RT{5w#g%vX53KnUh&sebjF<1%}=6LxfhhG-lh6v z?D(D~{(h?8ybgVJuIYQ6^qZ#Xk!X(4B8aLD&S5;#SuWBy@X{12I^AlY+mFIJ$=6M zjeJ>_``q)b4%oj~We3<=0kmX*n1^F)?6C+n;Dg-~J8J#;DE}>Zw%w@e)@Ho7yrq7gW0mgGiD%Or4Rb4fKRf))}FltukAZ;d6@QI>4xs6P+Tw zi6Q!lNdQHNJ&Io?)20GkQRWW{k5?-qlPH#~p=p z;J$QyL*TPk(_tt#XDE3*$&fN!!XvYfm%u*GG=>*!B6eqd?)dLCgiuSbEley4&eF|= zthtYt@h4idenR)46w+X(`*0F&Yo5?st;7Sk~kRXcO4 z=KqDDU%r;O2&9lWP1`o5l_}L{x&qFv60TtZ+3*Qhf%DjK9PSTdMQXwm1qlfZ@sbR+ zRvTRw)X`*Ss-u);M!SgV8;#$@tN`9d&F$S{UB7;bm3-AkMw;V!kfhNI!RJTr(IFk9 zl4UE-iD3le&xzn?AfU6d`86r=f>E_({%RofM;mLEmAbnS9c@1e2M9KFK{Bx(jl(QNE; zsN&h4b!&f2m7T&E9N&)%rlww-WL9Hw+SAQ8=SnYc#J%Qy%HRlS$IQy9o|q!lr&o~<^Os_~{6 z>j_6!Oub#}2XY&WAa93|-spsE*ia_1YYAMF)R!4gI0=eVgHU+E+3qcB8FM(}1^=r^ zY)R%0Rx@qN3EwGe>wL$X)*f_fKnC48x?;3+;zYNN{_oGpvL5`%dVR_Xt1(i>#ID4y zaGw|k!^p_0J=bjs6BXmd&e9F1LXUD%cnrRO8k{K6iM_?Eq~+?u(^qY66j-n)NeJX# zme(iS!Kc+l9uw|YCEyVNu*2~K4W#@sXC8Duv551orNN)#o#JsrOcJAF9(E0vV7sd3 z79ZZLya-`I7(tU4YI7yfFwPzTOZ$>_6ev^*G~` z>Er!{NMC!Ufk$Lx$%Bw&h>ZzgX#tsTnb_c1v^mF)el$K&{?~=b)1bL^PkJBybH21b z&Q0;|@_c6#b6u9LEZy@Ed>TsZjD3sXJjmFk6lNR8WVMMiE^v_Nz%5P<;bkc4Vt|uX zp(?lF)wbA~F|{eD;BIILWq)uVp;boVJAqIerx-^WfOaI+;he?TOz2RXKhB(joUV9X zy5K3MuSyNld;y%`wICo(qb zJ1E7hFCOU8nt{A7D-fWDQ^^AX+8wbJZ$#a%SD`2p!aEe>s%F)d0QGRW- zL+pq7CAQB>6;ooqg-+qC=6;Dzb(eTLyjHK{w+ckI&l!p`D66r~P+Kwx{w+=-vwm7V z`5RwYo9^6ngKY{R>+9ut2r~Qba~WXK;Z_(@dqiX{?^6iH8y|V&Na3*0AG!KsPNwSl$5*!j)8Wr|HsUI2_mvWBI zj$O0lO;XuW^7orWGp%Pj$cxU!KpmFsn%|OYpdf{}H-GXR$+HDoltqM&B>$#RjgTPt z5zC&+UVhJch*!`4iPaN+x-6-IVeIywsm_I>yw7tEdKwD7{Q*AI$3-h>dXgR7Pw>O( zhjWj!Y$hGJ2qf?0`Uu1V{-{K8rq6bf$8h(R6jhuR%s zzKeI^#=kS)HQ>Ui3k-xB22ZJwvuJ2NPpq?OY<0?eg1eDdlO~Xb;2;%FX_TU^Nwtd!qQlx5_6@X0+o-3`aQkm7n}*;^)VQUGryF&X>6#r&o_3+^Fnq}!IV9`Y zcT~id3U6)M`v_Puddgr|U3@%I)ldwKveU#FCQ-H8q@qQ8sl_jqmo{Bv55uaImJqlh zm(os5v5M|vFrxg(5&SCGeo&GEH7ikl#{`2eQda#0Z-A1j<)dj1cD=zYm!cx50QOrG zz4tEzHOa*|JgT@-TMx0`wus)KQ+0=GCuSD>%zKddaBlk|ltDD+C0E}%jS*_Psk%e3 z6LWZU)mPzAP(>w+J;EA6G(ehXF;S)*My237hd@c67OvQ~g({Tx=75$2Z51_9+QTEU zYA8dvTESw64rO-XZbWd;GbAOWY~cq^cB6j8X=%Sm>_WV>m%N1E5lNk=_ z_}3O2#$m|kIi>)!SiMWBk>7+!#W9L>ArH(Ux2|w7BkTgo3|jUuh5uAxJyf)R>OygQ z9uurG#MNky_=O}WTG}zkaO<8jjm0hI(&{L+E^RU)CaBrFkyHL_sx|FkVh1Q3gg!Q| zOVN^U0}SNj%^AoQ?8;^jeck)BMAPjp61CPQ)I}`UDPhs=V(hBA%$sLB8|;7hMDdf8 z?()0f(}b--K66PZv6w$JsASP6Nl*(EIc;c3ayE}C_ZQ;Oa3|x?TD8F9g;iVbW8P6r zCiOr5Vgs;dYc46%Lgh@9s`3=mEww5V`84H8Y{}^%bqOoX*G;U^E9Toua!dLfubi`I z%kLiUA&r3_>G=uab;}|6dYzUvj8>qviTJ>-^;L}I#`*G$8KPpq?5ELSM3p+K_kn{LtrWm935L)Ck76o9ZqEE6+Xl7 z)7MG9RALI)xai^CNCC^#lW&KQXQ}z+htV9fQrA}QhUi55(w5!|6AE;Mx3Rb7-lFAo zNGDu>Br(@YfnmkMOyig~RI=5~OWvU_(D_n{LYX0mPyMg}w0J;W)AaNtlGO#yI5q!j zsdhG;A<5I-Z=YEjdp1d&3gT&bhgjwY^iKN0S>-_?PzfzfE_1me=evEZsEm%M2trr2m`f@|Gu1QG=TsRDIAzp~ zrKQ*45bL;$iF$?8-4+XKs^PNau=G1|&w^2pa{zUnv}>|9c`QV%7ey#u3jd-{a|hRd z`S8F7vBM)au2~*g9X~9|FJs{G`GIB3HM98NW&m zWb!3igT56SElqep@c1D@e_QJf+MY9KqY~B^Ojblr!-KW(dbp}=^Z-t&mZrFC2AS%sG0uycCmw( zk-I>s&tF1Mo5z2n1iSch;iX7}&H@quGUX@5@7IZAy|t`=A^xu_iCKJ72$X-U#yNbW zbQvc#Q$dh7bY~j}W#{f76ulPyFUI+Qs{t`Z8qlUUz~b)Ml=l`sy7klE#0(h8tEIY+ zl&Bss@tM*8kR9W#zFl?jaE2-KKL*Wz$CSVU#A=cZzxKg$+e?;q3skQn-K1^PnfE`3 zs9#=Baj<&^V4o~K5qRZSQ$3`WBv z>;L)Xju1EJ-Z1e&#M-Wm)@1J_!13=`lyk6r`~!3>QK;1OpY2axCw2nQ#fl4pV{qPP z;2PIVF1sSkc`YFLz~#roydRs{SOacj*zZicl;$N|Ec+a_^BBx#WBe zoDm~-QTYpTufdvWEw}kz&~XV&ZZ@aUF-&((ej1@E{=F$B-te6v9u5S!8&WimX(8O6 zamK)z_AU>$kzUSmO5qCVev$+yCo@rKzG%I>7KCA^a)`&bA|N15wP>-fL5nSXeJ~H| zwsRd5iqbY|(t=0R#=^pV11D8ZMJ6*vk%T+o9zm*?STPmRirztCRd7PMNb}ZKtZUl? zb2DniR<<{=h}^oD!<;LDhas;;Tht!ln@5qmN1#k>iT*ITmwmWNl%aAvUP`UlIzx&K zym0xL@>)9>@f1s1eGcD)U|_fk{zAkW4`nkv?h$K#SaBC6nD!E#hUDkRG-5u}4=;)+ zzC_zJIS@lZen7l{_jW7a&Ig7}Ymbc5n#n9#JLk!8$@E9B0!&%Tt6HoE-6d`y)PYgY zEfhwRkALQ02sm!q$n?`<|HYuly8IUgn?$Ug?!Ch?uE@CIlSAOIt{(f!>{SEO&jo$n zeeRl&P&mq-J#g4VNDA0#;yaKvgovUfKk!m;QC5bdX|het^!SW+tW0O22r1#Yb@1+l zhDQfVP;kOoI_yq3=IXy{m?B}h4we_Rs!Qu0n~D?+&#LxB+ZC*_pM?Y&JD7sVj)gQ-VZ{!gFD7;RY;|-cDIq?SrbJ&Hh5Px4On!VUC%K;xoS3CEC*% zSfwPd4u^-2J`I+8%*9x7P$(!{yv86WTmxC}A{lfvOI(A?%43yrMU5(GO_RlEh{$Q_ zdUy+zDxdBhgYQvolCi*%#wMY4tzx^H(G+GM7bep{KTIKLB>8NL zl!i`9`*hj0sWNNzpYrzvxS^%!H#xy&N6bQV6H6mElS$hH`1aR?#(0&;q54@OhoE&g z_DQ_-8V8OdQzqL_3}P*`>zlUDL|4*~H2z{ZO{=1aL)WqzngkZ+P1r5sbbTXvLW@{s zTYIy(F~m%rc%tUXyYRqD8*K;XX@F5`L#1%#bH2UqZ;eH#N3n&HH{gQoe@qk}hQ1Qro|UxO-(^s@B{UjExzcR@ z1VBp}=uN+O0GbOiZrrI10)ledHO11to&$`0%B$p3eDe#HkmxWD*Q7%=E?hD9tpQkD ziB_eWax!Bw)+p>)s2oFhLO?%Lj73?XCC!C|RX!HqN5u@H_lMlq?+;^Ot zUs;kSR2jA&@Fb2I9IOjAOl(dpr#`OEf|nx8^Qs)wZrK&a=pBI7CXqDmW!_Xpkjd6~ zyun_x0+~FA7f%y6vR;8*Os1<#6!otwglUgu9pvC-nLr+*#9~Y<7J+vN0Z~+e`uA%@F&)W zv1g|O!?x^XXyEj5U>orR{S}LUk!(&(;M=vSG|V$ zvZFf}{jvkYNgCdZTJmZcXKqQh10HLC1sFrKV#7{aB%NVyzU(dBB!WdHTwT!V6n6rn z;ktm$KbsVT;LH8kr=;y>vDXNnxIJzi)qjF3ma+2*hLgK3@^-LNZI*_Jp&5V+_yWt( zGc)1hG@-Ogy@}zFeqaR;bV(tkWnss@^#J5i!yh*Sx3vvYjwg4b~MN5DATEs^P5AlVoRc>hvwX9*2^oeRbJN zsvA~F&TNrtbXw1%#G#r{r^k0%)K8$fi{lw$Absb#@u(^vV}R0PvawJ*kvN9_ZX%kR z#3Nq&K1?mw%Io^6&2GRNe~7bnO8PLP|H?db1t znO*CWVo+*sd_jo^{@a5+% zCps?dC@hqSRY3ifwaD5f(?~#3udUMoHBK-<%a^KbYtsE_Y$c-N@a#sCmq6%}z>}G^wOAovS2GLQGOH&k2CIl7= zN?X2=!~eSLF$`!InZ=$a)vv8}A0qD`WhKLj<#(xb>{KuyN@kMi$Go)+kjUx&rYpxX zY@jeuG_RqEXk|8(rX80f4rf(=UhY_2SjJaTS&Ky}`?8Kwq~sfMT@7Te4Yl{6_XVSt z&n0Mm3r!~&_TCfyI+5*&c*-OnIK`ZcM@KLI{8i=m zxcBdoPU(H@Ff(PBF;&(#gb?ya`v``yd=SH*DT=TMO7~+dj=Ax4po9(3i{ymHXO<6> zA4n?1-+Svp-L$#J{TDC(?Xx{IwP$8im`FWJ#r(T4%sN{63(gmzb%{U@mk0U%vm&{4 z^&A0foG!qCnmKmi=r^dk9SrIe?IdP#>`Ue`Pns?mMZ;YBC=aKa4zX-%b1rLM3bAoi z(_rsmmSSw&^*N>AGtl35V;jOBCK*39MHje~$kWJ=x6B?!7x(LeR+dyrL(T5yrp9=5 zq0I($SYwp?_TW)EjJzcM=vRa1aFii3Wz6?n2Y|ev*;~!noKNw^QoNJ04iD5c2(;aD z$R1{fPaRh}upi$A#Abh*T&{pJtczhw5IiWJ5#SW7odw{p z88;MYtfiD4)}E=z=C1h*Ji)zDMunBc_w+(JOxY|Lg2Amw)D6C^7tcjxx;3{V4Hv#S`b0;h;NGk2z? z=ew4_jvp@(^Nz^jKdu+%UDL@Op6%7rh)v;a^aLJ53zMACUNJ95C^FB6Hwp~x{Q2Um z;XI$cTt5Xfe0HY!rhBDub-ui;ylgk#*uw>NiK(!;{1)aXT*kFIU+1Z%SlaG%h|vkn z8w zmWTG9V1jPnM==ho!8@@6vMRb49|)J=W*!Lix%(4WJ&&a>nHq4$W$*|(z~MG`rSJ8$ zy=o7$D#B?zQwUw$87g?=bH^6I*vj}W9mxo)$@cr{uQ*{Eia73tfJf;UcmIdWI@46B zRVQvyaS|0<0iU#C<)E{o?5)>L*`v5T%+Vias7F z%mZOzqLn7oYLi3TY2Lh*{WiX7%-^E%i2LA&(E{_I$Vw(1i7HLRGjwIrRMyL6{jRbl zIv)FK78K~>-&0%9M$EkA^g(mqE1*Bd$%6A;T=K zKmijVoF6H!I_f*gCD#u$yyVTZ0f_&5M{Aps}5=J+$M?4NI3n zKCLM$yC@_FZ@#|&Q*XGS#JQ)|V}QS-+5u z-xUS+Ruyj7sNU!XwiuIW!wJUj*+XD`)2-Au?6@k9u}RLh+Aq75iadbXq`MbR8jog$aw*@mf6EqXW*!;-oRJS+%j&`!Ld zE>vimT-9df0{D#mJAS2(AFqxhT@&+GY8jdwOz|S2fGT5GFb=Er11cnZPn~KPZpq{K z481~YHr=;~6#e-oc9u&O%b2@;Z77iN74d6{E2=u=`Y;IyD~%ZbgbeZ|7t8+mjzF0R z;MrxQ$wClq&R`QMg7`x(m`@I|0BE$=ct*Nx&Z8t8{xz;nN3!{Nit~D8<%aRXNX$s% z@QA*@F1n+_I~Id$omHh1lz8n8a~j?WobL=o1pXmm8Ap+>Q6PM@E!bHh**StO%iLOh zSi4os3Ap6}HedgRSd2ZGcE4)JxQ5OCrf)QYpz>hykq2(d02{=nfAjoif2AdW8RuA; z-Ghhk3(WjQ*v597-s+xU}J{ClhW!#u8i}Y{^abhEh%>{mEHpq_)l4|G+Qs&W^cw>lNg@p}RXeNfq zKnA$!u*Vps=$Zw$ODJ_3?}EzPXZ&XF4!)Z(eS9E9BM@reNi_Me+`%EuvC%T+V-fzJ_tFaZmgnnZd|&p|1GQ zM)ZEBl}wN@`F>$+d!qW4b~wPU_biHjR_`3qO%y&$;rXB9 z<7wY_Mr?JB?APB+!La*DlMuCD&u8dTtS&&CW{=&=CYXbALhw~~n5d`g*Xgr_!3W;t z^W5vHYd6oAZ)+|Bnp|*y$Ok#l7g9KTOs3kRX_-$MTU?i86PsNEAPKT%!sbMZix8R# zGlhP_VD7=98U_m*F9d+B?cOET`{Co`cc=U1+veu4{J){Cma$BJAMMkd<^fssj8<#{ zif#LSP{soX;NY+1(08}Q4uSn54IiRN0PNC=>4p&|VXfD*&0hVFYUV5Z$?upxv zc6 zLiA{UhgiV*7z>#dnclzUH2g=R-wbmUrsS#7;rUFUu_asjbWgrDRLT#SB3zOozE9C@{mOgrK1i zhttbOLCYnZ1PS@YS2BoKe6c(J2as<|OEcA-e=rq`p-213fyS$e*DGx6Qn36NX~?{v znlw^Bcko73K^O^ry~(QsgVLsFDFn9|l>+IGhg-!>wbgPji7)YzkubS{@BZw__yuYG z33yUSItjoBMg(vs>)Qm=Rnm23Kc2ti$*9hyw> zMkS=KN7967V*5l~$^|z8OYleX^?);OhJR6muB+K4CKS6n^(CX=@j2V_aSJ71-%9YgL=+eHYC z4wvhKAdIYHO}X9%QjH&vE%&uF=V(FJ5OU^eyxx1Fc`Zw%cscuK{R5I5+?+$gswb+C zLo;0)q+h3H90E4xeIh}Hxj=mP;{e(-c3TCn`DVADwnf3U7f+HygV{2J_O!~S4B)XS zhYqrG6|A-&+ct^tVl3p5eLg?4uF)w8K98xx_3pR~#Xi7W>2o-tKbM`rUIK91ut{)G z&z-SoDpjV`)TF4{^j=3LZsBQsSo?K-e~W!b@0(itPK@W1qx5aCCc_dH9fq{Qyv~qd z194;&%uYFJcJM(-eQr+Vs@c)FHa+Ra3N~!z$2i!&`^j=mx95-OE_LK^~W8KDGt5~ExfwW-}?(O@omJrME`>2H^Ol> zOSwP3r@yDm#ckGK2oUk(Pu9+R$r-IHE6I9he|wJCiqa+|=Ox_(*E{J|&D8lZ*ey7^WIai zuXHqVhs3=j)RZS~`6&>3J9jV^(7f^$#(!a`v^!UIMFiKIu0SkiAV^KZE;u`orxfr| zy;>u)hC`S^SfTH4OjN7j(fSWyh1n%Vf5n3hu!UBgDLwuaux|C7j>^GIRnY-W|GD_J zPX^w9Chnp<)s1(&kTDmfL{l8R+r3{U7Yb6FY%e4lnXJ+Oc+jKb!)=jHyRnA-TTEs( z)b7t7P^9h9;^@RgG&c~O;Z~GhRL42hd<1%n84^qAOnB?U{iCuBp6`*d=1a=$zzheQ z7uFg&61>>wFq>^mZ3QiJwyZ}`j;6Rw3fJkJnO`pSFgyyUQ zI~Lj|c?MOYeoPJ7ELEOc^wBP&=o#cMitBZQHgrF(;YW_QbYrPi#$`OwQfs+R#*D4;FiVbJm9; z90DZ&xZSVHqG|U+Fm!2WqGp^=3oS3Ys3iZbMHFk|DuY)A4$jx4o_7(?2XgxGZ^t5} zO{AqF6i=WpXB+uJjB0D0El)ofdR?U)Hogf)BR1WwIL-`p`&X~t?FmsSBKgtSbYd~? z*-a$?t36RMYH@_yHA(U6w?d<5uR?(&=9Yaw|M=x;U}?o4U?Dc+HQ+XM2W-ysNoEb` zJXK8$F{Zz3s%&4&6Q*PO^9d^8?M{tu>9}xi>OfdIRSuk}2gUr1Fsz*Wp)s$>5~a;> zC^(zncpBn*7w%oT=1-XwJLOIBy+GqF4A+#Vpzq%hBQ9jd#^8y@LS-NKldbpoo__!b zisRzp(OF0>{i{pq2vi}L1$q$>f9 zj?l7V1UEoth3duAi-x7`R(JQ~6m!U7;#WInGLtobKGv<4d^noEvb6d;B!ci*|4J=~uN@67e zO_9=UdI8VqZESo3!O?0$TFXy;q#YQuXDJ$_pQmYaz*)sDXt@=M8{g-IXVHf(e6rM< z)gKm`8jiB@@gLvzRP`C~y`880L>@}qc(@d+ z2bU+WAQ*v~7p)xqr){*3YGC3inQY6EUiHFnCTjd;g%!*kV}e&t=4&n8ROdib~R&} z!1e~8 z*CZCf0tbIG=bU8EqX8<`?_Bza^;g_MSL68HAR4SS5(C?9^9JMxWvVVJl{V%jcWnZf6CPxF>O<6Aw3(_?J5=XwH#H{x(c%NO(&!x!*O($f%NCDMGY9*28&Z%2}w&{>TXS z243{ug4Cm@mJcaE1xmfh}!ZIG@&X73UtEw?qP{2ESrxZ0w$^mQ#c`O}PF#IF+8 zprF(4{&Rk;%*@7riy!qf6afT_784 z3Pw(=4^|DP1JvzF6}g-OUstt`{TQP+m?T9CwM=PjfNG+cna$Cc?)q?Pj zh7F>!>8q`7r{q`arlYB=BtTqzEaM5jrhK#YRtDN-Te8B#DX+FfB>7@GBok}jsLZah*kU0YWR!K|?)CAKP}Yg?haDVu zS2tl|Bf*v2`0eRblMyB$9_@&@HJ+lX0cz(c;r#-Q@Qd!w23%fc06}dqqWJW@jIKTU z2#(Yqj29BdI54zF6-lsK3$`RC!}ZvFVsMsM=Sw)x<2x*!R;_CFn+l3l;I1I(mC>sG zZSoz73Z)9YcOZB&Kh$9kTaqDc)-m^Z%r2AVkM;rEM?7e<|K(?10bzFi$H?kQLdUx@ zRcJB;3~_U?@f#2XutI;MZ(d7#Ps-A7es}We);wN(6EM=>cI~-H)uL;kJiq-bdPZtA2cpc|%TI)(B+2UhlsvE`M8SF&$PyhXt=x z7-5UOU%T4`YLd%ylks~pZFp*#U2pA;TLiEmcN|XNm<&jsstUb~vmg|#RM`at+#CLK z!bfiU{nj;P(wtum8*$r8pw=XqDP6p|W$`~~T(|uGVO^{JiUgbEXsGO6g?6(6=9A;m zrN$fxJ~Uv<)aYwMf5xKhUZ=xV{@uTgTX?(MTf9A{RNm9FCFJoBU2qRElDJ-!oKJj3 zkZ(1*Ky`k*IcvnQn@A9+k<&11dPgZ#N;1suA~)K$d9}2|;^17LB@xQ~WnhAK0Q#NV z1|;0(L3W9pB!vywMTAE`h0qPvycZ#Q4Xnwsdegm{u2wCuKYwbmP3%qidCh9m z^jP*1>i}NPClLZ$4}gNW^Rs_@zoc+Y{9F&43i#`YNdE_wN+Up@fp0wYQAM1?jEJtTMFO1I1BU^;?HctpE_3R*vPxxccBErwQLc z;>D-!<(JT_nYA0A$m;Oc3YL0OKB&6AvHZF>YUJioubvr(bvFgPJ)RzY?ncjV>*dhF zojeFFfRiK6ep#U7I;RT(*tPIH*;~IG1lg+z)e=c=+E3-l%efF%)9WBavZosuNEKjaZxBq+M4PYIJ zyHOxon^^S z2s|OeCJm%Sz|aiV$qBJFNc8&HpKhNEs^w%XtayRt`7`%B*APG8NlVEp{x77h>QM)N2##6DEhwrXdgN;7Zv&ouO1(JbS;U zdhnWkpAHNDDBPxwYoaBtK5>|cQ9IE4(gE$G3h>=<#=>xSFDj%&eOd#vDM9%`Qn)aJ@Ju{v((ye59z`UI6JRECZArSMXZ zi^7Xd;;8ay`h%(rjSXLd;L86vVZpn@pH4t{>s$C9c@p#lg|K}?cpN2=IHxr2M`vyq zemL+0;nc`_;g$BI&p9-Aj0ytHIg5${F2awrfX*BP&F6paXumXDeV2N^IJ9Fgf_&F=t7~ga1udlW})+b z?@3*AjViIRa+N$>nk`2dZHK{B+8MxnCp=;t1^lMOl|<8-M`l9kA-+)H7|dloxB zM;gl_V4z@eIQ(>SC>|1vWUr>8wnVHh()WF{g-m%^ut!J|+ui4o zhS25Dz^T-1<+xiclQ@8bLK=afKdBc4(GK2HrOlU{(I9P~5t1UktWOsKg1G=YH3&Ue zXrstsnMU5EPwVx_m9=#`BZ)2u7zRKA*f9QrnH^Fc&ykd*j)^Mj3}(HL_><*Re=_|a zKx$!+_{_qOLY#GK?Yf)Kb1oh*t*%2v^i#57wUCQ{v5rdKICNcrJ)lT(plzam_p&YL zjeW?mv!^2=-~m>E4Z`cat3|tqA6Gy$$t31OVfxtw0FU$(iN4nNY`mOvPCZp}>$% zR|S|JPK3=n*&F_VBcGFdn&$Orw$j>r`NhU#a+y(pcR(iYZkUz9X&Z4N9lt-~Sp`PAq2OU=1Uq@{e!$%dAk zOpc)omITaKwdC-romY@+ccQvcKyzKCNjc$sxlz=xv8M*AQd0%x>p`Tf$9Q}@b6Zy$ zXUjovX&QPX1q7%1xj{)&SNsZ=4({}&)vQ+7=rlFycS70hm51PC6Ks~EdWWpAnZ$El zdF|wLrP4vC<*z&>Fa@c1ZQ0RNuDZg-va`6vjq;{*Vg%-bpUe&6bxO;#ci+W!94?Kh zKbMQp(m8w<3RG_GiUqSmn9@bvMH5q(n4NVT5k0@rF+@?XW*A3IH{*&RVbQ=QjbmcG zK*=n%2UbEkqn`c5d7~C5wPCt{k%e~?{fQGUrE(p=L{WC`>}Q{{%e98BSOJ0>=Z*7s7vFfAZ;h&W*ZTTp%`XIRkdVZ-ZGH^ z7|+Br?O)c}_*|`7 z+eD_gP5z#5Br>7`NZdVGSlOX&-DIZ{k3VyKwVL9XBjcM^&GDo%52mcjoBP#AsEQcm z)C16tjFYCz71a4)5Hu>KL=&#mf>*uWI8%#>PfG-orj8;0_)6YCyM@F+D3zZA0ye{C z$U(grA56s;1_Mv|c$qmbGdC*hd#kY(+Pp)P#?MUW%29e0d!n=wTyKS~8t- z#|ynuZr_qUUfMY)WvXVrR!GrGNRuIrtQWDE!*oO6Qpx4*%;J`ITiJ+)e@R9EO2Y-w ztW5?9!RERs2N`st=L0R7fZc6e&}YF zNAo*gE)BOE`h3<0EZIBllr4rZ$7zn))|`bAnvMwwCN^qt zP=6=l;G5bi-r#_ijmggNQF{*dmkEP`1`qgZH6QRvtmP(l-d%y+Su0fomhG}e5d|Ln zWIYjfvcD7xDY9b;!7O>M=N4j~sTO1L@i1qmwjj&nDE$lkFxd+%6nu&;9?Y~D6MZC! z>W}MCLUR#PxE-7qD~(?ckLW9UNAm3%6z0UW!!&Q)KOe4*dx#Ag_1q$zM(n(+xunv{ z5e_2M!$n>74PdKILwtkJVecTfm+C5O^y>?ZjGJREXdkRDXh>{CdU8YO>3g|{s+3Sc zs0x@_u>G(DmaLy9Go+9 zoZ!dEiR6mgJH5#?O^XYXMfHSH8R|MX#Lh)(B(C3wV6x1x>)bCf-hLa<)Hg=B$RjJR8C2YYwkGt_uI5znV%_J@$5_K@IXN zZA76EcegOqNuRvR_!hU`@yS+|CV`gTFey5+D8&Xkv+~D zV)RhOv}69{30XMSvl>mPbDJ>AdIU+jGblBmQO_w$==qP*ln9&5Gb|V?G+i0PA&<4u ztwoLq&~iM@d;U%wqZT(l5@gDK%VxuB^A#hjcI#c|-}YhP!r0`+o>ZD4L@{+$Md8s? z5en{U+{qP=SNVeX7 z+-ySm8qyRH_vU$NyL`^ohWTmACaB=VYbh^ZgrF@ifUu~lkgi6dbryd}5sFZIyQ1%Q z?XD?r+CnF|-+W#>?7qa)KC0*D$~=kN;FTkg@3to56K}R)&yneQ!&#)zl#rBh<{sbe z=quNWyg>+~;PV=0Htt*(1bQPRnWM1VMl4Mgz{+GN6Zi-Ior!Hurq`H>n0uDArtW zKUmqE1$LI>HbVM+ViBr$kXyk5I(@M zjQkSok;a}Difk|}Ut*kXSyAh3(WHmqtLVSoi7$z297l|{!a3hUp^x{BJ34KBPLg%g z$WKF$3|0%e@&xARol?Fbe1`nLjpDpB$~WoHp7U-EZv4+2<;3^i z>u4eWEF(~fMIfXGUPC-CBaXkxo{22#@fyGOgKdahA^1bzIYR$(f7m;0d>4A~@-N`# zhq_k$SdEc9K#kk6^Nq@311Hb4(QedpQca~NZcnjXf*+b`k&x-uNV|wFlTjhTpt~1n z3x`UP5zOG|zui!Ckc3dmH%$ZD^UE&Xg&*V-Kj1e%X~O?zn;$y7?(m8}i7y0m=O~fs zG}z}j7cWPrQVF2(A_;a%{tWYRha3#*YSQu?B3X-%#+hs!4*njDoMtYOjr@=a>4$W= z15LQHI0&VBZGgQ|o!jHXa+B+93FI|y6%SWnn(eJ-YS9~uaLWFzZ@W2LPYm6Mu=})X zF~LQcF3&J_5f`0Nqr~60W>Y&vf|OLe&T+rq0NQKXu{+WSs7y)TMD=JAX5ByNYP? zIw%E+Fk93q=*t}F^ALh8X}(x_K8)Nz8Fan<4M_e}`zn=123v)g_bMo^9)f|By#PFa z97=WL9&ub}rg#iq&gvvEO0nS>z;?L*Fcu^w%C=0TmpHg1IL4rm4B=J-8AKkIZuJ0kfd>*S6o zUH$R;v%_uIrbH$SsDbjJDe+>9km)utC@t=8Xmabrp!PNt4_)w6zP{T3*@0Ug6sW2* z;d8k=DyXxdKA^|^xV{Q8>X6gHdg*hzh;*6f%r+XZvsUaHdr~F(V0v7&_k+l(P?yz| z^}II1JieR94-PNeoNC57{9@>9)$R$>pwy$CVl{i(Vj#w38#P*1&nrlaziO7X&f$Ce z*b(89#u75g?J`X*3`I^E6Q(jwwr12#7w zgVTv_5mKx57`$#A30wyKN*#DU3T^p~Z`!>ypy5BrO0JhGv^2E%d5w%7FQTF90`dq= zY4E3xd5@IH4(dk0jWAREl;IwD z;|%|u+C{VrA&=AAq)T{1QY}`G!hIvvv6n@NM#JFwb2NQxUaUC5Jgbk?Nd z+)jgUh9BFEcGN4szm1s3pUFFsUj%`GntbNqgjvid7EOgVt;A@H@0g$5JNQ_#^aQKX zgR_!_%PsDM%0HSSp77fyh>NILgLWWo&^IAVAk&_-xM`Aiq!7##&}Ah zD#nd1z1j5~+H)tVl9asiKByqbj<&y9e`!UM5tOqKAcTwUDSHSy88`U)yhQ4wHj%I-YKV`hk8!`Y9Ey`Nx}yp z=a11MG!dd=ZTJJ>P$%~IY#*V=zQh>RvNEFJ$5WzS)Pb;|yR%VYqOc6~u?0-8OX>U_*-e%{OK>mK{b;r16nUAlzn=qhcV zNw1%8PQD}O8x96;v4Q)7>*a~!n3R9j5HUwaA;l>Z`EiK-9q(&f=*}*1`I_dWpvd=B z#__Z1VtnImjxqS?!kgdEXP|#cOci`5JZY?Eq)4~GoM1bn41j%u#z=IPr;~D8pyG?J z<$aTd*^z?Ul_ht4udUf~6$@gKw-rHHVxDDdlz2~DdM0>atwe4D@SkACC%nhww;i|S zZ7UAZS~S*_PeL4JK@*_6P$fc;@7G!)KvyTD2szZ`x!e~=SPPTHT0+)Vt5`o~4xE5s zgZdz|w3dDsD|vs>vkgZuF%3_WK7@Y=k}CLGW73FbZ#sJ=b$cg0W%N;T0wxBooOsLm z&74QUp}W)~WIXJowf;-C%xOlH$`6$rlPm|wp*H7*Mt_T_G$)oa?@6Z4JQ^p0yw zeWgrVB=4JF<+#;!X|&OK$FOof11+{6akAr-6o`i&- zvmy{~4n3^7oJ}=x8rM?YGq`!9wl!5UpIoH8l391CjW0Z`NgO5Vb!qgK`NVEileTPa zCQI3(2rpfH!`VZT)bkAZveSljwDC(!$dN+hv739IKWTMkt_mTkWlq4AIz0K+mjf(C|umd4js8hL%s&=C>6p1px@^Rp>-DYGKrzSUb z+~>iWH+%U?L(J$#Z-Rak(K5+=_D}W5l$84_u8@twr1wF}6J;rT^BhG&x?Z03 zq-;e>D}BP@mDTyngknj%Ajv6>@lUK?Lc6-I)~DHHT5HQe;&x{P zv|oZZl%EsHGmmQ^&Rn~_1xRe+eZVwt)O=1G75RK;S4Uzs8PU;Sc|}LBBoKvbki`Ca zRp1~)0NIOHnbeQes?_Dnb+|? za5Q}{Lc%^+K(aCg*x0+Jvw^g`dC0|U&OJ~`@eVADIbXcT_U%|O{>$DN7|A(AYwdsY zp;7nw;qG)Fkb`RP{y8^X_tucr1%6p%5xc1SC4CUXVvnzUWV^uqDpFlLJkg>CXF%dp zk;>DU3ymR-VVzDkYLFsi1faDVEj-K}1uTd8>sPuu(q3qy%UTNRqu;Y8di%x+EM;cM z6jt#6YO2vk$Px~bz``@AmzxIiq^5MlFaM~8w!zP_d)H)fzlY>Ho5fVLmr2pu%Eb1| z&L$c_Gna2B&t(P1q8Rd^^YQZRwe`D{5k%OU1;QG}CzY%}qoj`a%g*yW+k2 zc$Sy9WZ#iU2n~ChU9)4UULg#{^TjXr8F`>a7hRYn^Bt%pDb2EnB~vGO@1u3pI#PCk zg@n}O!@@7-vqOP0>w<$n_pzG;P8fYY-K`OF2Y%y5`^DeIw05RX>HuG|6Ft#wj*o5g ztH;COpa@tMU*rOD{{cv}7;Xnnt*k`Caz{EQ+nNo2NJo7pX)A>1(u*7BIpX2=qI^17nzN27WN<1^CNm)M?IEvpo6 zMAG&`@2_|%HqzvFIVy3Y&?{4|UV~!?ctHT4I;j~a);TpI5~9Q?R1tu02V^-nz@nML zHQzFq2NiyphV%v=&Z&?J01Ft#Mj3+Af{Y;}NQHhMT{G9%&!1C{H8M>zf`~;{0yqIQ zAhxUkTmb4cU67Kk%mJPRt<(q;^F*nnB&bU zP4QtlMNEi`(5$eSX>w4W*BM4WH+=rH&kygPohPlSr1@kZ?%H3_R@eQa5bvV|*4lco z8qh@ZvVO-m<#Wu{wE=zajC9JTdNJ+4Q(~Z*pb0`)&~n@~H8emfoG~#QJ6}?xpk}9c z^?#Me(m?9+c{x;h`@E>gnQB^AlJ-bboHt{0lLdB^Wg0~n8z=J8teiQBo~a<_>@834 z>!iZS;v8w>dh89DwJyoPf=2dit@P=NDiDP=-~?$Jy41Du=Uk*gH|#a08_1VV(ADyU zHAJ2wYbRMD`?TQ`L9$%^=g%F{vEP?h;T-TP3a5_ z6x}VK37Yjc+@>GQN0bN|sCHB_s04&z3$bqTAi+SV1aYOP*juG0CS^R|R{6d- z;7dH3_7QD(N-Z^UU^%nB>yS7#u%epn*WBc{@kpq@;&pWDDrF_MRNp?UUReq0GdE#! z#skYe(z*(Mc|#-Lly2Nb3=9pq&d}@}^QJ9DMxuMg@XCD4JTNDrCTVpitONg(A=hbP zckGGeNUwb~43#VR-VYw$1y*7PDPSH|9eR2ZmfJvF*LFXG9K}zyh?T#bJl6Vy;78d9Q8O51dhdVOQ*d zBQ#W!JEEda*qsL{E=;19;{0kUG-8?-S72?deWw!HG0nxN{8RAYS6Ulz90e*Q^J~@y zh6MeAQxLQH_^ZZj1R1mnaHI=NO6KtzYMlw&V=L`KT$RWz@qM?MWZHE%x}KzdRm-Yl zY_{|$EZTxWqSeRaNxQjvn};2Eu%?tEJ1(v3`Q%+JJh)^2JM@>!&xJ7 zC~@EdFM_#Nfjd5~hFUG2B+!@qqjF*b1Ccl1!a3)F3%2&j^)Y5;ytCO7$lh$8_`}5E zD}-az5)Qf~5CyNv)SLIhN|(NAlw3D7u#o1{pkrr3bSPrhUu(U8@AL*};hd85=#Dt* zF;8(cHrmO)$I-#&E*eR+u^v{k$>3E1cO=2k^C|UWlh(AIbql_6pR`ed-5L@O&)>pa z$Z+G8S3J}CU=E_C@*`wf43ZR));`3Nv7&>*`TA1@w>LQma6mAvx7JT?U&vGoD-4C* zWX@w5m9v3_SRYK8hssjfKFYJfF;|SYz*LMe&|=@rB5}_H%To_gQv&TY7Qwy%bcAdP z#cgRe9g5BSQI)vE@QWfjAW^{(Vk?&g=d*q4snyf{ynRv=gRT# zua6Fn4&t>QPDgBWnn_0-)JLUa7t-3gmGuGW73Y**U`;_)O^iL)N{nv;O@vq$yBjxb zOY_7CSMa!Adeso~hE~NvgrNST<+GLmhGuURaWoG{;I87UicI|#j>q0NrvPv4q}UU8 zDe;*(JkF4F)@{{Ks^0B{hpIzHTPgyf*@YIh3FxFRAqoXI6~|hnmZp6U&spo`vI>7g zSOhFu6z>jS1eJ9auWRlQ*9|=auZhPrR{y^E#u@rAO#UWLL;A7T)PgCY$CDI;FR-!C zo=jne%obi3urk%M=18X3dovr|2TQ)TeuPa|io&AG*X(Kk#kVuIUbbR-om;Zqt9h+j(OXIxH-#CW_%9b+TCtX?Pc;QESzlcNSD6% zdsal=cX#bI`i7NJwY*dHqpWSJ-ICSdf~GpjlxmolRuwz2>VX5f1UvP(jvi(KfC}=$ zYi#al{mC#W0YBpNEt*0?5(N9xVryiyG7)1p6dbk`8krN^KaYTFNHp=9zvB@Y4mlHhlm+Y~oz?OdOd(~)4_Q|fsU9*x{Tx=zHONd?Aeyl1}P`f*t zw>D?vq>xxF3xt}9)%SmBIKeCSfADbMyB7`V#W`y4V0z;ge z5L|AV2s;!mJ(bp5RWMe#pfb73uNHuE)?+uvHUl%Z-uih8hI_#B`KvO1d5wdj-FjsS3!+Xk@Y&G8^qki4iM+4oz)@u*WJP zHR5v4JnD}tf8rlhmwP0 z3_Tx6p43U=!2c^LnT3U_1AyQJvF9px+D6ysnYF|k8#_l58=9mdMXHymAO%2Our8q` zDr__D*A6OmH{3DeoyHX^_#VWaqM}G(1FY{Kq1Iv=BT0}Y#H4eUrOG8$|EW@cu&vQ; z_KfruC^iFU^o$xs&|EuCR2cBT^-+Pt}eHBnmy-nCWn5$%!CbMP2P=Ys& z#nI6}9?g;$j1JzYg9NZjNvG5S+u4MI=Os(Yx&rA&1;GofLu!{u17ZwPPD5dQ%$j(` zET2<1vDWu2ik;i~$_{PKX1OIoV^_mGru}+Dx=@n?hqnc>$jHcU;5=o5ZG&bgWU5x} zDEhf@N=iQ6o+P(IMiLmHTn1+HOr^S)!?ZiRCCTU^yhz;6TN`2smR3#-)($Rj@QLbU zrZ%a>WPu2Cmt}B;sw@rky_lA2k%l6pI}Gg-TYVFwY8jqus48p>msuQJ3!C+fCns7# zZ4t)EcQS^g*gAVXq1vw#xL=pPY{uSH6^jRrBqlq#o$2lWa9`Br)Yy>dI@d|Zij~0P z8f1oM$Y-5Wl`xo>4ugdzfZ2_`FP}(-Q7S)_;HPuLhKqs?0vMqQlVF4jL9_w*=G0-L z@HeCX2&;Qh5gDiHDo8lF@T>9d&=QXwyi$25frT1H#fkaJLQv6c?+V+}h@kF0hdR8$ z%bhNJv__x1YJusCk-2xuI(*T~+%Cs|ySfC%FGgII2jc#zUc`L z??@ELo$tADSBs(z)F0@|*(~4VIDd1lSt~ubCpH$Q%XglwlT?^*HW~36aeW_reBjTq zn7Uy59`?xz{Vj_HcFm{ z{X)vbV(d(&;uM^OCF1g50T$}t0_@g1JM}F<%SKcWf6q&a(98k#2%IRlMYRh1gjejP zmVhWi&%3X7VFnpRHV~d)2!C5(r6iI&cWZ5>Bx&Wv6{KtpI+B6&*{(Sahqi!$jJV?Z z8fk>3yPnt6fFwqbS*KD0RVQhRjb18($SO<~B{rsuuAuCe|BV-Gzgf`-a}i-gj&u+q z!o5v7>tmrrCP&Mnx8a*X3l@ebjQ4Z{yOG8>f-kBKk_4+Vu4WZp@~l0OgKX8VzkeDF zV?l?9aMnauj294~lT(^xQ{09|3E_go(9Nw=`y_)E{4iMIy`&)Sw@!t|@b8tlOCS*` zaFS7xq@idul3_Jcfx-(W7*0rX_Mqm0#dp%%(0&CHu`u{(gIiCEHf~IS!Jo^ly-Uu_ z8727mLz$qcFvl=Jn6uIsXRS1-b|dAtBme?Jp|VxjVw5}}^_C2}577%ywzm`zQJOA( z%DJB?MhSBH%eIKx>1{8`4Ns~p%uN6Zgbt{l9yYpMYbUOISHQ&@Z1@7fW}?dcnR2Uk zE13Er;<+$8kcdZ44-gCcRx9Qw;k(-D=q`9fa*@?cz^~Q?FL>Y!y6%t7GTK?;u;lAwbmnZRIC1 znr`xid_rW+xO?U3;L2ggvgz+C7k!(C+sAf>Us^9VTNygle(Yd?h5#NIP(_Ra2B;@Q zfC06mgBph&tN#IP8*Z1ufHg26jnRh1T@tqYm-XK^K6>0cY64cLZ)H>Q+bi!JLr8?nZy?Xz!zzr+@sR_nPBRVX@3zgNb@ zVG7iH(DG-^T(C}iD5H8+>toQnT0l?l8bOw5#L?xSvsEZraj4)K`6;+Ugvg9H|9ERj zep>uioj3|`%n3@wW)_*ff`Xxkkd+g^hi;LhVQ5%#P+;{vl&0`uElQ6iL+H33zTeEFK3sAe$7{}c2ii9$`#-$PZbUMBo5!A&r+i?{ z)Q$R_H*Kh6=1x`qy(a7~Yd0933r73YhK%$52Zu@a`VWpoe)}IBNBV!m=~DiK%aR{% tprV?`XU8JoDSuvwve|^P9pjDNqVq)Uk{!VaV8iL+pSve@3;whIzW^L<$9ez& literal 0 HcmV?d00001 diff --git a/exampleSite/content/docs/partials/index.md b/exampleSite/content/docs/partials/index.md index 17f2987f..7f081f4a 100644 --- a/exampleSite/content/docs/partials/index.md +++ b/exampleSite/content/docs/partials/index.md @@ -10,18 +10,21 @@ tags: ["partials", "analytics", "privacy", "comments", "favicons", "icon", "docs ## Analytics -Congo provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. If you're interested you can use this affiliate link to [receive $10 credit](https://usefathom.com/ref/RLAJSV) and try the service. +Congo provides support for various analytics providers out of the box, as well as the ability to include custom code for any provider of your choice. If you don't currently have an analytics provider, check out Fathom Analytics. ### Fathom Analytics -To enable Fathom Analytics support, simply provide your Fathom site code in the `config/_default/params.toml` file. If you also use the custom domain feature of Fathom and would like to serve their script from your domain, you can also additionally provide the `domain` configuration value. If you don't provide a `domain` value, the script will load directly from Fathom DNS. +Fathom Analytics is a privacy-first service that is a great alternative to Google Analytics. It allows you to get all the visitor information you need, without spying on them. As a Congo user, you can use this affiliate link to [receive $10 credit](https://usefathom.com/ref/RLAJSV) and try the service. + +[![Fathom Analytics. Website analytics without compromise. Zero cookies, GDPR compliant, and privacy-first. Start a free trial.](fathom-analytics.jpg)](https://usefathom.com/ref/RLAJSV) + +To enable Fathom Analytics support, simply provide your Fathom site code in the `config/_default/params.toml` file. The script will load in your site directly from the Fathom Analytics CDN. ```toml # config/_default/params.toml [fathomAnalytics] site = "ABC12345" - domain = "llama.yoursite.com" ``` ### Plausible Analytics diff --git a/layouts/partials/analytics.html b/layouts/partials/analytics.html index 64a2e350..134ee008 100644 --- a/layouts/partials/analytics.html +++ b/layouts/partials/analytics.html @@ -1,10 +1,6 @@ {{ if hugo.IsProduction }} {{ with .Site.Params.fathomAnalytics.site }} - {{ if isset $.Site.Params.fathomanalytics "domain" }} - - {{ else }} - - {{ end }} + {{ end }} {{ with site.Params.plausibleAnalytics.domain }} + diff --git a/i18n/cs.yaml b/i18n/cs.yaml index 017e74a9..cf8ac92e 100644 --- a/i18n/cs.yaml +++ b/i18n/cs.yaml @@ -53,7 +53,7 @@ sharing: twitter: "Tweet na Twitter" telegram: "Sdílejte na Telegram" line: "Sdílejte na LINE" - line: "Sdílejte na Weibo" + weibo: "Sdílejte na Weibo" shortcode: recent_articles: "Nedávné" diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index 593279b6..9c6666f1 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -6,8 +6,8 @@ {{ $file := $url.Path }} {{ $img := .Page.Resources.GetMatch $file }} {{- if and (not $img) .Page.File }} - {{ $path := path.Join .Page.File.Dir $file }} - {{ $img = resources.Get $path }} + {{ $path := path.Join .Page.File.Dir $file }} + {{ $img = resources.Get $path }} {{ end -}} {{/* https://github.com/gohugoio/hugo/pull/10666 */}} @@ -15,14 +15,14 @@ {{- $x2Param := $params.Get "2x" -}} {{- $x2 := false -}} {{- if eq $x2Param "true" -}} - {{- $x2 = true -}} + {{- $x2 = true -}} {{- end -}}
{{- with $img -}} {{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "x2" $x2) }} {{- else -}} - {{ $altText }} + {{ $altText }} {{- end -}} {{ with $caption }}
{{ . | markdownify }}
{{ end }}
diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index 141f8020..00f1874a 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -14,4 +14,5 @@ {{ end -}} {{ end -}} {{ end -}} +
{{- .Text | safeHTML -}} \ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 82d1fadd..fef0cc92 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,6 +1,6 @@ {{- partial "partials/functions/warnings.html" .Site -}} {{- partial "partials/functions/init.html" . -}} - + {{ end }} {{ with site.Params.plausibleAnalytics.domain }} - + src="{{ default "https://plausible.io/js/script.js" site.Params.plausibleAnalytics.script }}" + > {{ end }} {{ template "_internal/google_analytics.html" . }} -{{ end }} \ No newline at end of file +{{ end }} diff --git a/layouts/partials/article-link.html b/layouts/partials/article-link.html index 17236ede..2606b8b3 100644 --- a/layouts/partials/article-link.html +++ b/layouts/partials/article-link.html @@ -1,4 +1,4 @@ -
+
{{- $images := $.Resources.ByType "image" }} {{- $thumbnail := $images.GetMatch (.Params.thumbnail | default "*thumb*") }} {{- $feature := $images.GetMatch (.Params.feature | default "*feature*") | default $thumbnail }} @@ -21,9 +21,7 @@ class="w-24 rounded-md sm:w-40" srcset=" {{- (.Fill "160x120 smart").RelPermalink }} 160w, {{- (.Fill "320x240 smart").RelPermalink }} 2x" - src="{{ (.Fill "160x120 smart").RelPermalink }}" - width="160" - height="120" + src="{{ (.Fill "160x120 smart").RelPermalink }}" width="160" height="120" {{ end }} {{ if $.Site.Params.enableImageLazyLoading | default true }} loading="lazy" @@ -44,7 +42,7 @@ >{{ $.Title | emojify }} @@ -71,7 +69,7 @@ {{ partial "article-meta.html" . }}
{{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }} -
+
{{ .Summary | emojify }}
{{ end }} diff --git a/layouts/partials/article-meta.html b/layouts/partials/article-meta.html index 37175396..15dcfb6d 100644 --- a/layouts/partials/article-meta.html +++ b/layouts/partials/article-meta.html @@ -50,7 +50,7 @@ (and (ne $scope "single") (.Params.showTaxonomies | default (.Site.Params.list.showTaxonomies | default (.Site.Params.article.showTaxonomies | default false)))) (and (eq $scope "single") (.Params.showTaxonomies | default (.Site.Params.article.showTaxonomies | default false))) }} -
+
{{ range $taxonomy, $terms := .Site.Taxonomies }} {{ if (gt (len ($context.GetTerms $taxonomy)) 0) }} {{ range $context.GetTerms $taxonomy }} diff --git a/layouts/partials/logo.html b/layouts/partials/logo.html index ee119168..185bdedc 100644 --- a/layouts/partials/logo.html +++ b/layouts/partials/logo.html @@ -7,18 +7,19 @@ src="{{ $logo.RelPermalink }}" width="{{ div $logo.Width 2 }}" height="{{ div $logo.Height 2 }}" - class="max-h-[10rem] max-w-[10rem] object-scale-down object-left{{ if $logo_dark }} hidden dark:flex{{ end }}" + class="max-h-[10rem] max-w-[10rem] object-scale-down object-left + {{ if $logo_dark }}hidden dark:flex{{ end }}" alt="{{ .Site.Title }}" /> {{- if $logo_dark }} - {{ .Site.Title }} - {{- end}} + {{ .Site.Title }} + {{- end }} {{- end }} {{- end }} diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html index 3d8e88ec..f0246fa3 100644 --- a/layouts/partials/pagination.html +++ b/layouts/partials/pagination.html @@ -4,7 +4,6 @@ {{- if gt .TotalPages 1 }} {{- $start := math.Max 1 (sub .PageNumber $width) }} {{- $end := math.Min .TotalPages (add $start (mul $width 2)) }} -
-
+
{{ .Content | emojify }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 726dac87..2a4935d4 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -10,21 +10,22 @@

{{ .Title | emojify }}

-
+
{{ partial "article-meta.html" (dict "context" . "scope" "single") }}
+ ß {{ with $feature }}
{{ $altText := $.Params.featureAlt | default $.Params.coverAlt | default "" }} {{ $class := "mb-6 -mt-4 rounded-md" }} {{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "lazy" false) }} {{ with $.Params.coverCaption }} -
{{ . | markdownify }}
+
{{ . | markdownify }}
{{ end }}
{{ end }} -
+
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in .TableOfContents "
@@ -32,11 +33,11 @@
{{ end }} -
+
{{ .Content | emojify }}
-