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 d0d013aea..578bfcef2 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 a91753aa8..6d9f3ab06 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 db391cb77..b995ab1e9 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 dc8775b12..3e30366d6 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 5fa9c7099..e0a1c63bb 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 b23ab7540..4cc090d77 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 f35202aa3..a8fbe3b41 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 d828f1205..9531be25f 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 cdb66b027..a62fa5b9d 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 72aa4e6cd..350e99b8a 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 2d29aa82b..0c3f67bb0 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 504ebc89e..13727872b 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 cbae87369..98d7bdba7 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 77398f01f..a23edc28b 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 dee02207d..7b751d606 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 e0a1c63bb..a9d0adf58 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 d7cb61785..e96ab7c3d 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 1982d81b2..21aaca324 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 6d9f3ab06..265387d26 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 b995ab1e9..db391cb77 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 3e30366d6..dbe4dee86 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 a9d0adf58..b7bf147c1 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 4cc090d77..7fda1f506 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 a8fbe3b41..87a48811d 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 9531be25f..d828f1205 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 a62fa5b9d..e4962bb39 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 350e99b8a..d193fd85b 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 0c3f67bb0..84c6e9d95 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 13727872b..2792ae590 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 e96ab7c3d..90ccf79e6 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 98d7bdba7..27f580377 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 a23edc28b..a9063d43a 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 7b751d606..1681f5f92 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 000000000..ec43bfcd3 --- /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 d828f1205..af12c3dea 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 cbae87369..6a0c35fe6 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 21aaca324..23cb47237 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 22febbc22..ef5e1b901 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 9bc25efb3..47a6d7a25 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 27dd14799..9e019f6fa 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 fa7ea4322..c33694d00 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 d828f1205..6ddecf7cf 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 000000000..65d089d12 --- /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 c33694d00..232835133 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 7f694a625..1f14ca14f 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 91cd4f066..c17926ac0 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 7ee8661d1..be939f2b0 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 80cc51900..95550b6d8 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 2c8527d65..325b36332 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 db391cb77..f2d3fcfba 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 d828f1205..2b3fa1533 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 0c623c13b..578116488 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 60641cd53..96e423745 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 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 literal 0 HcmV?d00001 diff --git a/exampleSite/content/docs/partials/index.md b/exampleSite/content/docs/partials/index.md index 17f2987fe..7f081f4aa 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 64a2e350a..134ee0080 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 017e74a95..cf8ac92e6 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 593279b64..9c6666f18 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 141f8020e..00f1874a5 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 82d1fadd2..fef0cc927 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 17236ede5..2606b8b3b 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 371753967..15dcfb6da 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 ee1191687..185bdedc4 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 3d8e88eca..f0246fa3c 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 726dac87e..2a4935d47 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 }}
-