diff --git a/config.yaml b/config.yaml index 99807bf..5d56627 100644 --- a/config.yaml +++ b/config.yaml @@ -1,10 +1,8 @@ baseURL: 'https://redstrate.com/' copyright: 'This content is licensed under a Creative Commons Attribution-ShareAlike 4.0.' -defaultContentLanguage: 'en' disableHugoGeneratorInject: true enableGitInfo: true enableRobotsTXT: true -languageCode: 'en-us' summarylength: 15 disableKinds: - taxonomy @@ -60,32 +58,32 @@ menu: - name: 'Home' params: - img: 'icons/home.svg' - url: '/' + url: '' weight: -1 - name: 'Blog' params: - img: 'icons/blog.svg' - url: '/blog' + url: 'blog' weight: 1 - name: 'Art' params: - img: 'icons/art.svg' - url: '/art' + url: 'art' weight: 2 - name: 'Music' params: - img: 'icons/music.svg' - url: '/music' + url: 'music' weight: 3 - name: 'Software' params: - img: 'icons/software.svg' - url: '/software' + url: 'software' weight: 4 - name: 'Talks' params: - img: 'icons/talks.svg' - url: '/talks' + url: 'talks' weight: 5 - name: 'Games' params: @@ -100,37 +98,37 @@ menu: - name: 'Shrines' params: - img: 'icons/shrines.svg' - url: '/shrines' + url: 'shrines' weight: 8 - name: 'Links' params: - img: 'icons/links.svg' - url: '/links' + url: 'links' weight: 9 - name: 'Guestbook' params: - img: 'icons/guestbook.svg' - url: '/guestbook' + url: 'guestbook' weight: 10 - name: 'Contact' params: - img: 'icons/contact.svg' - url: '/contact' + url: 'contact' weight: 11 - name: 'About' params: - img: 'icons/about.svg' - url: '/about' + url: 'about' weight: 12 footer: - name: 'Feeds' - url: '/feeds' + url: 'feeds' weight: -1 - name: 'Imprint' - url: '/imprint' + url: 'imprint' weight: 2 - name: 'Accessibility' - url: '/accessibility' + url: 'accessibility' weight: 3 badges: - name: 'CC NC SA' @@ -190,3 +188,39 @@ menu: - img: 'kofi.webp' url: 'https://ko-fi.com/redstrate' weight: 4 + +defaultContentLanguage: 'en' +languageCode: 'en-us' +defaultContentLanguageInSubdir: false + +languages: + en: + languageName: English + tok: + contentDir: content/tok + languageName: Toki Pona + disabled: true + de: + contentDir: content/de + languageName: German + disabled: true + jp: + languageName: Japanese + menus: + main: + - name: 'トップ' + params: + - img: 'icons/home.svg' + url: '' + weight: -1 + - name: '芸術' + params: + - img: 'icons/art.svg' + url: 'art' + weight: 2 + socials: + - name: 'pixiv' + params: + - img: 'pixiv.webp' + url: 'https://www.pixiv.net/en/users/58118005' + weight: 2 diff --git a/content/_index.jp.md b/content/_index.jp.md new file mode 100644 index 0000000..897c38a --- /dev/null +++ b/content/_index.jp.md @@ -0,0 +1,5 @@ +--- +title: "Home" +--- + +進行中... diff --git a/content/art/_content.jp.gotmpl b/content/art/_content.jp.gotmpl new file mode 100644 index 0000000..646ac27 --- /dev/null +++ b/content/art/_content.jp.gotmpl @@ -0,0 +1,103 @@ +{{ $sizes := unmarshal (readFile "/data/sizes.json") }} + +{{ range readDir "/data/art" }} + {{ if .IsDir }} + {{ $year := .Name }} + {{ range readDir ( printf "/data/art/%s" .Name ) }} + {{ if eq (path.Ext .Name) ".json" }} + {{ $file := readFile ( printf "/data/art/%s/%s" $year .Name ) }} + {{ $data := unmarshal $file }} + {{ $basename := strings.TrimSuffix (path.Ext .Name) .Name }} + + {{ $content := dict + "mediaType" "text/markdown" + "value" $data.description + }} + + {{ $split := split $data.date "-" }} + {{ $split_len := $split | len }} + {{ $dates := dict "date" (time.Now) }} + {{ $exclude_feed := false }} + {{ if gt $split_len 1 }} + {{ $dates = dict "date" (time.AsTime $data.date) }} + {{ else }} + {{ $dates = dict "date" (time.AsTime (printf "%s-01-01" $data.date)) }} + {{ $exclude_feed = true }} + {{ end }} + + {{ $title := "Untitled Artwork" }} + {{ with $data.title }} + {{ $title = . }} + {{ end }} + + {{ $params := dict + "slug" $basename + "alt_text" $data.alt_text + "artist" $data.artist + "excludefeed" $exclude_feed + "arttags" $data.tags + "characters" $data.characters + "nsfw" $data.nsfw + "mastodon_url" $data.mastodon_url + "pixiv_url" $data.pixiv_url + "newgrounds_url" $data.newgrounds_url + "program" $data.program + "guest" (eq $year "guest") + "threed" (eq $data.type "3D") + "animation" (eq $data.type "Animation") + "orbit" (index $data "camera-orbit") + "target" (index $data "camera-target") + "fov" (index $data "camera-fov") + "comic" (eq $data.type "Comic") + "pages" $data.pages + "width" (index $sizes.full $basename).width + "height" (index $sizes.full $basename).height + "thumb_width" (index $sizes.thumb $basename).width + "thumb_height" (index $sizes.thumb $basename).height + }} + + {{ $path := $basename }} + {{ if eq $year "guest" }} + {{ $path = (printf "guest/%s" $basename) }} + {{ end }} + + {{ $languages := $data.languages }} + {{ range $key, $val := $languages }} + {{/* This is needed because art is placed under a different URL based on permalinks, and those aren't localized. */}} + {{ $month := "1" }} + {{ $year := "1" }} + + {{ if $data.date }} + {{ $split := split $data.date "-" }} + {{ $month = index $split 1 }} + {{ $year = index $split 0 }} + {{ end }} + + {{ $langPage := dict + "slug" $basename + "content" $content + "dates" $dates + "kind" "page" + "path" $path + "title" $val.title + "params" $params + "layout" "art-detail" + }} + {{ warnf $langPage.path }} + {{ $.AddPage $langPage }} + {{ end }} + {{ end }} + {{ end }} + + {{ if not (eq $year "guest") }} + {{ $page := dict + "slug" $year + "kind" "section" + "path" $year + "title" $year + "layout" "year-gallery" + }} + {{ $.AddPage $page }} + {{ end }} + {{ end }} +{{ end }} diff --git a/content/art/_index.jp.md b/content/art/_index.jp.md new file mode 100644 index 0000000..0cbf23a --- /dev/null +++ b/content/art/_index.jp.md @@ -0,0 +1,5 @@ +--- +title: "芸術" +--- + +進行中... diff --git a/content/art/guest/_content.jp.gotmpl b/content/art/guest/_content.jp.gotmpl new file mode 100644 index 0000000..e69de29 diff --git a/content/de/index.md b/content/de/index.md new file mode 100644 index 0000000..549bf34 --- /dev/null +++ b/content/de/index.md @@ -0,0 +1,7 @@ +--- +title: "Haus" +--- + +Hallo! Das ist mein Website, und meine name ist **redstrate**. Ich bin nicht gut in übersetzen Englisch, Entschuldigung! + +TODO... diff --git a/content/tok/index.md b/content/tok/index.md new file mode 100644 index 0000000..431e411 --- /dev/null +++ b/content/tok/index.md @@ -0,0 +1,9 @@ +--- +title: "tomo" +--- + +{{< insert-pic "pic-home.webp" "Drawing of a landscape bathed in sunlight. There's a small cottage in the middle of green hills." >}} + +mi jo e ma. nimi mi li **redstrate**. mi pali e toki pona. mi pali e ma. + +TODO... diff --git a/data/art/2024/another-thursday.json b/data/art/2024/another-thursday.json index b163aaf..b61c2ce 100644 --- a/data/art/2024/another-thursday.json +++ b/data/art/2024/another-thursday.json @@ -8,5 +8,10 @@ "characters": [ "Merume" ], - "title": "Another Thursday" + "title": "Another Thursday", + "languages": { + "jp": { + "title": "めるめ外出!" + } + } } diff --git a/i18n/en.yaml b/i18n/en.yaml new file mode 100644 index 0000000..b348578 --- /dev/null +++ b/i18n/en.yaml @@ -0,0 +1,5 @@ +navigation: Navigation +social_media: Accounts +date: Date +characters: Characters +program: Program diff --git a/i18n/jp.yaml b/i18n/jp.yaml new file mode 100644 index 0000000..a6aca33 --- /dev/null +++ b/i18n/jp.yaml @@ -0,0 +1,5 @@ +navigation: グロナビ +social_media: ソーシャルメディア +date: 期 +characters: 作中人物 +program: ソフトウェア diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png deleted file mode 100644 index 4d39700..0000000 Binary files a/static/favicon-16x16.png and /dev/null differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png deleted file mode 100644 index bf9a0ea..0000000 Binary files a/static/favicon-32x32.png and /dev/null differ diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index f766c4e..0000000 Binary files a/static/favicon.ico and /dev/null differ diff --git a/themes/red/layouts/_default/art-detail.html b/themes/red/layouts/_default/art-detail.html index 8bb37c1..e5abe13 100644 --- a/themes/red/layouts/_default/art-detail.html +++ b/themes/red/layouts/_default/art-detail.html @@ -53,7 +53,7 @@ - + - + - +
Date{{ i18n "date" }}
Tags{{ i18n "tags" }} {{ $len := (len .) }} {{ range $index, $element := . }} @@ -75,7 +75,7 @@ {{ with .Params.characters }}
Characters{{ i18n "characters" }} {{ $len := (len .) }} {{ range $index, $element := . }} diff --git a/themes/red/layouts/partials/art-gallery.html b/themes/red/layouts/partials/art-gallery.html index f00fc79..dce2a72 100644 --- a/themes/red/layouts/partials/art-gallery.html +++ b/themes/red/layouts/partials/art-gallery.html @@ -1,6 +1,6 @@ {{/* Partial used to display a grid of artwork. */}} -{{ $paginator := .Paginate (where .RegularPagesRecursive "Type" "art") }} +{{ $paginator := .Paginate (where $.Site.Pages "Type" "art") }} {{ template "_internal/pagination.html" . }} {{ $on_guest := eq .Title "Guest Art" }} diff --git a/themes/red/layouts/partials/art-years.html b/themes/red/layouts/partials/art-years.html index fec09ac..4967d04 100644 --- a/themes/red/layouts/partials/art-years.html +++ b/themes/red/layouts/partials/art-years.html @@ -3,7 +3,7 @@
{{ range (where .Site.RegularPages "Type" "in" "art").GroupByDate "2006" }} {{ with .Key }} - + {{ $thumbp := printf "%s/year-thumbs/%s.webp" $.Site.Params.image_host . }} A thumbnail of {{ . }}'s art with the text in the center. diff --git a/themes/red/layouts/partials/sidebar.html b/themes/red/layouts/partials/sidebar.html index 3a2a8aa..f6aea7f 100644 --- a/themes/red/layouts/partials/sidebar.html +++ b/themes/red/layouts/partials/sidebar.html @@ -2,7 +2,7 @@
{{ end }}
- Accounts + {{ lang.Translate "social_media" }} {{ range .Site.Menus.socials }} {{ end }} + + {{ if .IsTranslated }} +
+ Available Languages +
+ {{ $currentPage := . }} + {{ range .Translations }} + {{ $specificLang := .Lang }} + {{ range $currentPage.Translations }} + {{ if (eq .Lang $specificLang) }} + {{ .Language.LanguageName }} + {{ end }} + {{ end }} + {{ end }} +
+ {{ end }}