diff --git a/.github/labeller.yml b/.github/labeller.yml index 0d55a67..eb89017 100644 --- a/.github/labeller.yml +++ b/.github/labeller.yml @@ -1,6 +1,7 @@ i18n: - - i18n/* + - changed-files: + - any-glob-to-any-file: i18n/* documentation: - - "*.md" - - exampleSite/content/* + - changed-files: + - any-glob-to-any-file: ["*.md", "exampleSite/content/*"] diff --git a/.github/workflows/build-theme.yml b/.github/workflows/build-theme.yml index e4ed330..0d1786d 100644 --- a/.github/workflows/build-theme.yml +++ b/.github/workflows/build-theme.yml @@ -12,11 +12,11 @@ jobs: with: ref: "${{ github.head_ref }}" - name: Install dependencies and Build Theme - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 - run: npm install - run: npm run build - name: Commit CSS changes - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@v5 with: branch: "${{ github.head_ref }}" push_options: "--dry-run" diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 7f2b4d8..89eb091 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -19,7 +19,7 @@ jobs: fetch-depth: 0 - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 + uses: peaceiris/actions-hugo@v3 with: hugo-version: "latest" @@ -28,7 +28,7 @@ jobs: run: hugo --minify --themesDir ../.. --baseURL https://jpanther.github.io/lynx/ - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 if: ${{ github.ref == 'refs/heads/stable' }} with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index 8fb77bf..c52986c 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Label - uses: actions/labeler@v4 + uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: .github/labeller.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 2771424..efbadb2 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: days-before-stale: 30 days-before-close: 14 diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index f91cd41..5230f64 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -16,7 +16,7 @@ jobs: fetch-depth: 0 - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 + uses: peaceiris/actions-hugo@v3 with: hugo-version: "latest" diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..668f50e --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +/assets/css/compiled/ + +/layouts/_default/_markup/*.html diff --git a/.prettierrc b/.prettierrc index d884083..5d02cb3 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,9 +1,11 @@ { + "plugins": ["prettier-plugin-go-template", "prettier-plugin-tailwindcss"], "goTemplateBracketSpacing": true, "htmlWhitespaceSensitivity": "css", "printWidth": 100, "singleQuote": false, "tabWidth": 2, + "useTabs": false, "trailingComma": "es5", "overrides": [ { diff --git a/CHANGELOG.md b/CHANGELOG.md index 78236e8..f4ce5b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,25 @@ # Changelog -All notable changes to this project will be documented in this file. +All notable changes to Lynx will be documented in this file. Things that need particular attention when upgrading from a prior version are marked ⚠️. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [1.4.0] - 2024-05-01 + +### Added + +- Support for Bandcamp, Blueksy, Spotify and Threads +- Support for X (Twitter) ([#107](https://github.com/jpanther/lynx/pull/107)) + +### Changed + +- ⚠️ Author param block in site config moved to `params.author` to align with recent deprecations in the Hugo project +- Upgrade to Tailwind v3.4.3 ([#138](https://github.com/jpanther/lynx/pull/138)) +- Upgrade to Typography v0.5.11 ([#137](https://github.com/jpanther/lynx/pull/137)) + ## [1.3.1] - 2023-09-10 ### Changed @@ -100,7 +113,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fathom Analytics and Google Analytics support - Favicons support -[Unreleased]: https://github.com/jpanther/lynx/compare/v1.3.1...HEAD +[Unreleased]: https://github.com/jpanther/lynx/compare/v1.4.0...HEAD +[1.4.0]: https://github.com/jpanther/lynx/compare/v1.3.1...v1.4.0 [1.3.1]: https://github.com/jpanther/lynx/compare/v1.3.0...v1.3.1 [1.3.0]: https://github.com/jpanther/lynx/compare/v1.2.4...v1.3.0 [1.2.4]: https://github.com/jpanther/lynx/compare/v1.2.3...v1.2.4 diff --git a/README.md b/README.md index 81695f5..08b0d94 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ Lynx is designed to be a simple links page powered by [Hugo](https://gohugo.io). It's built using Tailwind CSS and inspired by services like LinkTree. -🌏 [Demo site](https://jpanther.github.io/lynx/) -🐛 [Bug reports & issues](https://github.com/jpanther/lynx/issues) +🌏 [Demo site](https://jpanther.github.io/lynx/) +🐛 [Bug reports & issues](https://github.com/jpanther/lynx/issues) 💡 [Questions & feature requests](https://github.com/jpanther/lynx/discussions) ![Screenshot](https://raw.githubusercontent.com/jpanther/lynx/stable/images/screenshot.png) @@ -71,7 +71,7 @@ Acceptable link parameters are: - `title` = the HTML title of the link ```toml -[author] +[params.author] links = { # Simple link { github = "https://github.com/jpanther/lynx" } diff --git a/assets/css/compiled/main.css b/assets/css/compiled/main.css index 7823e7c..b5edfbd 100644 --- a/assets/css/compiled/main.css +++ b/assets/css/compiled/main.css @@ -1,6 +1,6 @@ -/*! Lynx v1.3.0 | MIT License | https://github.com/jpanther/lynx */ +/*! Lynx v1.4.0 | MIT License | https://github.com/jpanther/lynx */ -/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com */ +/*! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com */ /* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) @@ -32,9 +32,11 @@ 4. Use the user's configured `sans` font-family by default. 5. Use the user's configured `sans` font-feature-settings by default. 6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS */ -html { +html, +:host { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; @@ -44,12 +46,14 @@ html { -o-tab-size: 4; tab-size: 4; /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ font-feature-settings: normal; /* 5 */ font-variation-settings: normal; /* 6 */ + -webkit-tap-highlight-color: transparent; + /* 7 */ } /* @@ -121,8 +125,10 @@ strong { } /* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. */ code, @@ -131,8 +137,12 @@ samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ - font-size: 1em; + font-feature-settings: normal; /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ } /* @@ -201,6 +211,8 @@ textarea { /* 1 */ line-height: inherit; /* 1 */ + letter-spacing: inherit; + /* 1 */ color: inherit; /* 1 */ margin: 0; @@ -224,9 +236,9 @@ select { */ button, -[type='button'], -[type='reset'], -[type='submit'] { +input:where([type='button']), +input:where([type='reset']), +input:where([type='submit']) { -webkit-appearance: button; /* 1 */ background-color: transparent; @@ -482,6 +494,10 @@ video { --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; } ::backdrop { @@ -532,6 +548,10 @@ video { --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; } .prose { @@ -586,7 +606,7 @@ video { list-style-type: decimal; margin-top: 1.25em; margin-bottom: 1.25em; - padding-left: 1.625em; + padding-inline-start: 1.625em; } .prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -629,7 +649,7 @@ video { list-style-type: disc; margin-top: 1.25em; margin-bottom: 1.25em; - padding-left: 1.625em; + padding-inline-start: 1.625em; } .prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { @@ -658,12 +678,12 @@ video { font-weight: 500; font-style: italic; color: var(--tw-prose-quotes); - border-left-width: 0.25rem; - border-left-color: var(--tw-prose-quote-borders); + border-inline-start-width: 0.25rem; + border-inline-start-color: var(--tw-prose-quote-borders); quotes: "\201C""\201D""\2018""\2019"; margin-top: 1.6em; margin-bottom: 1.6em; - padding-left: 1em; + padding-inline-start: 1em; } .prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { @@ -740,6 +760,11 @@ video { margin-bottom: 2em; } +.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + .prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 600; font-family: inherit; @@ -748,9 +773,9 @@ video { font-size: 0.9rem; border-radius: 0.25rem; padding-top: 0.1875em; - padding-right: 0.375em; + padding-inline-end: 0.375em; padding-bottom: 0.1875em; - padding-left: 0.375em; + padding-inline-start: 0.375em; background-color: #e5e7eb; padding: 0.1rem 0.4rem; } @@ -810,9 +835,9 @@ video { margin-bottom: 1.7142857em; border-radius: 0.375rem; padding-top: 0.8571429em; - padding-right: 1.1428571em; + padding-inline-end: 1.1428571em; padding-bottom: 0.8571429em; - padding-left: 1.1428571em; + padding-inline-start: 1.1428571em; } .prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -838,7 +863,7 @@ video { .prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { width: 100%; table-layout: auto; - text-align: left; + text-align: start; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; @@ -854,9 +879,9 @@ video { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; - padding-right: 0.5714286em; + padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; - padding-left: 0.5714286em; + padding-inline-start: 0.5714286em; } .prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -939,22 +964,17 @@ video { margin-bottom: 0; } -.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - margin-top: 2em; - margin-bottom: 2em; -} - .prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; } .prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0.375em; + padding-inline-start: 0.375em; } .prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0.375em; + padding-inline-start: 0.375em; } .prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -962,19 +982,19 @@ video { margin-bottom: 0.75em; } -.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } -.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } -.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } -.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { +.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } @@ -990,7 +1010,7 @@ video { .prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; - padding-left: 1.625em; + padding-inline-start: 1.625em; } .prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -1010,26 +1030,26 @@ video { } .prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0; + padding-inline-start: 0; } .prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-right: 0; + padding-inline-end: 0; } .prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.5714286em; - padding-right: 0.5714286em; + padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; - padding-left: 0.5714286em; + padding-inline-start: 0.5714286em; } .prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-left: 0; + padding-inline-start: 0; } .prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { - padding-right: 0; + padding-inline-end: 0; } .prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { @@ -1083,6 +1103,15 @@ video { background-color: #333; } +.link-bandcamp { + background-color: #1da0c3; +} + +.link-bluesky { + background: #0084ff; + background: linear-gradient(2.35619rad, #5a72fa 0%, #0084ff 100%); +} + .link-codepen { background-color: #1e1f26; } @@ -1193,6 +1222,10 @@ video { background: linear-gradient(120deg, #ff8800, #ff3300); } +.link-spotify { + background-color: #1db954; +} + .link-steam { background-color: #000; } @@ -1201,6 +1234,10 @@ video { background-color: #25a3e1; } +.link-threads { + background-color: #000; +} + .link-tiktok { background-color: #fe2d55; } @@ -1222,6 +1259,10 @@ video { background: linear-gradient(120deg, #12990b, #45d82c); } +.link-x { + background-color: #000; +} + .link-youtube { background-color: #ff0000; } @@ -1492,28 +1533,6 @@ video { text-decoration-color: #c084fc; } -@media (prefers-color-scheme: dark) { - .dark\:bg-neutral-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - } - - .dark\:text-neutral-400 { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); - } - - .dark\:text-neutral-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); - } - - .dark\:text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - } -} - @media (min-width: 640px) { .sm\:min-w-0 { min-width: 0px; @@ -1543,3 +1562,25 @@ video { padding-right: 8rem; } } + +@media (prefers-color-scheme: dark) { + .dark\:bg-neutral-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); + } + + .dark\:text-neutral-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); + } + + .dark\:text-neutral-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); + } + + .dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } +} diff --git a/assets/css/main.css b/assets/css/main.css index fed0390..6758c11 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -1,4 +1,4 @@ -/*! Lynx v1.3.1 | MIT License | https://github.com/jpanther/lynx */ +/*! Lynx v1.4.0 | MIT License | https://github.com/jpanther/lynx */ @tailwind base; @tailwind components; @@ -21,6 +21,13 @@ .link-apple { background-color: #333; } +.link-bandcamp { + background-color: #1da0c3; +} +.link-bluesky { + background: #0084ff; + background: linear-gradient(2.35619rad, #5a72fa 0%, #0084ff 100%); +} .link-codepen { background-color: #1e1f26; } @@ -103,12 +110,18 @@ background-color: #ff8800; background: linear-gradient(120deg, #ff8800, #ff3300); } +.link-spotify { + background-color: #1db954; +} .link-steam { background-color: #000; } .link-telegram { background-color: #25a3e1; } +.link-threads { + background-color: #000; +} .link-tiktok { background-color: #fe2d55; } @@ -125,6 +138,9 @@ background-color: #45d82c; background: linear-gradient(120deg, #12990b, #45d82c); } +.link-x { + background-color: #000; +} .link-youtube { background-color: #ff0000; } diff --git a/assets/icons/bandcamp.svg b/assets/icons/bandcamp.svg new file mode 100644 index 0000000..2e50f8f --- /dev/null +++ b/assets/icons/bandcamp.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bluesky.svg b/assets/icons/bluesky.svg new file mode 100644 index 0000000..8952dc3 --- /dev/null +++ b/assets/icons/bluesky.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/spotify.svg b/assets/icons/spotify.svg new file mode 100644 index 0000000..e1f123f --- /dev/null +++ b/assets/icons/spotify.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/threads.svg b/assets/icons/threads.svg new file mode 100644 index 0000000..aa27c5f --- /dev/null +++ b/assets/icons/threads.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/x.svg b/assets/icons/x.svg new file mode 100644 index 0000000..dc7e3d1 --- /dev/null +++ b/assets/icons/x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config.toml b/config.toml index fb93774..ba67a85 100644 --- a/config.toml +++ b/config.toml @@ -8,7 +8,7 @@ title = "Lynx" enableEmoji = true disableKinds = ["taxonomy", "term"] -[author] +[params.author] # name = "Your name here" # headline = "An awesome person" # image = "img/author.jpg" # path relative to static directory @@ -18,6 +18,8 @@ disableKinds = ["taxonomy", "term"] # { link = "https://link-to-some-website.com/" }, # { amazon = "https://www.amazon.com/hz/wishlist/ls/wishlist-id" }, # { apple = "https://www.apple.com" }, + # { bandcamp = "https://username.bandcamp.com" }, + # { bluesky = "https://bsky.app/profile/username" }, # { codepen = "https://codepen.io/username" }, # { dev = "https://dev.to/username" }, # { discord = "https://discord.gg/invitecode" }, @@ -31,7 +33,7 @@ disableKinds = ["taxonomy", "term"] # { instagram = "https://instagram.com/username" }, # { keybase = "https://keybase.io/username" }, # { kickstarter = "https://www.kickstarter.com/profile/username" }, - # { lastfm = "https://lastfm.com/user/username" }, + # { lastfm = "https://last.fm/user/username" }, # { linkedin = "https://linkedin.com/in/username" }, # { mastodon = "https://mastodon.instance/@username" }, # { medium = "https://medium.com/username" }, @@ -42,15 +44,18 @@ disableKinds = ["taxonomy", "term"] # { slack = "https://workspace.url/team/userid" }, # { snapchat = "https://snapchat.com/add/username" }, # { soundcloud = "https://soundcloud.com/username" }, + # { spotify = "https://spotify.com/user/username" }, # { stack-exchange = "https://stackexchange.com/users/userid/username" }, # { stack-overflow = "https://stackoverflow.com/users/userid/username" }, # { steam = "https://steamcommunity.com/profiles/userid" }, # { telegram = "https://t.me/username" }, + # { threads = "https://threads.com/username" }, # { tiktok = "https://tiktok.com/@username" }, # { tumblr = "https://username.tumblr.com" }, # { twitch = "https://twitch.tv/username" }, # { twitter = "https://twitter.com/username" }, # { whatsapp = "https://wa.me/phone-number" }, + # { x = "https://x.com/username" }, # { youtube = "https://youtube.com/username" }, ] diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 636cb0c..ff8ef8e 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -4,7 +4,7 @@ title = "Lynx" enableEmoji = true disableKinds = ["taxonomy", "term"] -[author] +[params.author] name = "Lynx" headline = "A simple links theme for Hugo built with Tailwind CSS" image = "author.jpg" @@ -12,7 +12,7 @@ disableKinds = ["taxonomy", "term"] { link = { href = "https://github.com/jpanther/lynx/blob/stable/README.md", text = "View the readme", icon = "github" } }, { link = { href = "styles/", text = "All the link styles", target = "_self" } }, { github = "https://github.com/jpanther/lynx" }, - { twitter = "https://twitter.com/jpanther" }, + { x = "https://x.com/jpanther" }, { font-awesome = { href = "https://fontawesome.com/", text = "FontAwesome" } }, ] diff --git a/exampleSite/content/styles.md b/exampleSite/content/styles.md index c6ee2b2..078fb57 100644 --- a/exampleSite/content/styles.md +++ b/exampleSite/content/styles.md @@ -11,6 +11,8 @@ These are all the built-in link styles available in Lynx. Don't forget that you {{< link link >}} {{< link amazon >}} {{< link apple >}} +{{< link bandcamp >}} +{{< link bluesky >}} {{< link codepen >}} {{< link dev >}} {{< link discord >}} @@ -35,13 +37,16 @@ These are all the built-in link styles available in Lynx. Don't forget that you {{< link slack >}} {{< link snapchat >}} {{< link soundcloud >}} +{{< link spotify >}} {{< link stack-exchange >}} {{< link stack-overflow >}} {{< link steam >}} {{< link telegram >}} +{{< link threads >}} {{< link tiktok >}} {{< link tumblr >}} {{< link twitch >}} {{< link twitter >}} {{< link whatsapp >}} +{{< link x >}} {{< link youtube >}} diff --git a/exampleSite/layouts/shortcodes/link.html b/exampleSite/layouts/shortcodes/link.html index 09789bd..0636009 100644 --- a/exampleSite/layouts/shortcodes/link.html +++ b/exampleSite/layouts/shortcodes/link.html @@ -1,5 +1,5 @@ diff --git a/i18n/en.yaml b/i18n/en.yaml index f492d44..002f2cb 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -1,6 +1,8 @@ link: amazon: Amazon apple: Apple + bandcamp: Bandcamp + bluesky: Bluesky codepen: CodePen dev: DEV discord: Discord @@ -29,13 +31,16 @@ link: slack: Slack snapchat: Snapchat soundcloud: Soundcloud + spotify: Spotify steam: Steam telegram: Telegram + threads: Threads tiktok: TikTok tumblr: Tumblr twitch: Twitch twitter: Twitter whatsapp: WhatsApp + x: 𝕏 youtube: YouTube stack-exchange: Stack Exchange stack-overflow: Stack Overflow diff --git a/i18n/fr.yaml b/i18n/fr.yaml index b2558b4..d0185c0 100644 --- a/i18n/fr.yaml +++ b/i18n/fr.yaml @@ -1,6 +1,8 @@ link: amazon: Amazon apple: Apple + bandcamp: Bandcamp + bluesky: Bluesky codepen: CodePen dev: DEV discord: Discord @@ -29,13 +31,16 @@ link: slack: Slack snapchat: Snapchat soundcloud: Soundcloud + spotify: Spotify steam: Steam telegram: Telegram + threads: Threads tiktok: TikTok tumblr: Tumblr twitch: Twitch twitter: Twitter whatsapp: WhatsApp + x: 𝕏 youtube: YouTube # nav: diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 1a34688..b49e7de 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,8 +1,8 @@ - + {{- partial "head.html" . -}}
{{- block "main" . }}{{- end }}
{{- partial "footer.html" . -}} diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 0a9a13f..71446d2 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -1,10 +1,10 @@ {{ define "main" }} -
+
-

+

{{ .Title | emojify }}

diff --git a/layouts/index.html b/layouts/index.html index 52e903c..a377e68 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -1,7 +1,7 @@ {{ define "main" }} -
-
- {{ with .Site.Author.image }} +
+
+ {{ with .Site.Params.Author.image }} {{ $src := . }} {{ $resource := "" }} {{ if $.Page.Resources.GetMatch $src }} @@ -13,27 +13,27 @@ {{ $src = (.Fill "288x288").RelPermalink }} {{ end }} {{ $.Site.Author.name | default {{ end }}

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

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

{{ . | markdownify | emojify }}

{{ end }} {{ with .Content }} -
{{ . | emojify }}
+
{{ . | emojify }}
{{ end }}
- {{ with .Site.Author.links }} -
+ {{ with .Site.Params.Author.links }} +
{{ range $links := . }} {{ range $type, $data := $links }} {{ $href := $data }} diff --git a/layouts/partials/analytics.html b/layouts/partials/analytics.html index f8c7c2c..08236cb 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 }} {{ template "_internal/google_analytics.html" . }} {{ end }} diff --git a/layouts/partials/icon.html b/layouts/partials/icon.html index 831697a..828a4a8 100644 --- a/layouts/partials/icon.html +++ b/layouts/partials/icon.html @@ -1,6 +1,6 @@ {{ $icon := resources.Get (print "icons/" . ".svg") }} {{ if $icon }} - + {{ $icon.Content | safeHTML }} {{ end }} diff --git a/layouts/shortcodes/icon.html b/layouts/shortcodes/icon.html index 3afb45b..a59a3c9 100644 --- a/layouts/shortcodes/icon.html +++ b/layouts/shortcodes/icon.html @@ -1,4 +1,4 @@ - + {{ $icon := resources.Get (printf "icons/%s.svg" ($.Get 0)) }} {{ if $icon }} {{ $icon.Content | safeHTML }} diff --git a/package-lock.json b/package-lock.json index c37d379..971eda7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "hugo-lynx-theme", - "version": "1.3.0", + "version": "1.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "hugo-lynx-theme", - "version": "1.3.0", + "version": "1.3.1", "license": "MIT", "devDependencies": { - "@tailwindcss/typography": "^0.5.10", - "prettier": "^3.0.3", + "@tailwindcss/typography": "^0.5.11", + "prettier": "^3.2.5", "prettier-plugin-go-template": "^0.0.15", - "prettier-plugin-tailwindcss": "^0.5.4", - "tailwindcss": "^3.3.3" + "prettier-plugin-tailwindcss": "^0.5.14", + "tailwindcss": "^3.4.3" } }, "node_modules/@alloc/quick-lru": { @@ -118,9 +118,9 @@ } }, "node_modules/@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.11.tgz", + "integrity": "sha512-ahOULqBQGCdSqL3vMNjH1R5cU2gxTh059fJIKF2enHXE8c/s3yKGDSKZ1+4poCr7BZRREJS8n5cCFmwsW4Ok3A==", "dev": true, "dependencies": { "lodash.castarray": "^4.4.0", @@ -282,9 +282,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -310,9 +310,9 @@ } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -471,9 +471,9 @@ } }, "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -807,9 +807,9 @@ "dev": true }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -837,9 +837,9 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.4.tgz", - "integrity": "sha512-QZzzB1bID6qPsKHTeA9qPo1APmmxfFrA5DD3LQ+vbTmAnY40eJI7t9Q1ocqel2EKMWNPLJqdTDWZj1hKYgqSgg==", + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz", + "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==", "dev": true, "engines": { "node": ">=14.21.3" @@ -848,15 +848,17 @@ "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", - "@shufo/prettier-plugin-blade": "*", "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig-melody": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", "prettier-plugin-style-order": "*", "prettier-plugin-svelte": "*" }, @@ -870,10 +872,10 @@ "@shopify/prettier-plugin-liquid": { "optional": true }, - "@shufo/prettier-plugin-blade": { + "@trivago/prettier-plugin-sort-imports": { "optional": true }, - "@trivago/prettier-plugin-sort-imports": { + "@zackad/prettier-plugin-twig-melody": { "optional": true }, "prettier-plugin-astro": { @@ -897,14 +899,14 @@ "prettier-plugin-organize-imports": { "optional": true }, + "prettier-plugin-sort-imports": { + "optional": true + }, "prettier-plugin-style-order": { "optional": true }, "prettier-plugin-svelte": { "optional": true - }, - "prettier-plugin-twig-melody": { - "optional": true } } }, @@ -1043,9 +1045,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -1053,10 +1055,10 @@ "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -1243,9 +1245,9 @@ } }, "@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.11.tgz", + "integrity": "sha512-ahOULqBQGCdSqL3vMNjH1R5cU2gxTh059fJIKF2enHXE8c/s3yKGDSKZ1+4poCr7BZRREJS8n5cCFmwsW4Ok3A==", "dev": true, "requires": { "lodash.castarray": "^4.4.0", @@ -1371,9 +1373,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -1395,9 +1397,9 @@ } }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -1519,9 +1521,9 @@ "dev": true }, "jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true }, "lilconfig": { @@ -1738,9 +1740,9 @@ "dev": true }, "prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true }, "prettier-plugin-go-template": { @@ -1753,9 +1755,9 @@ } }, "prettier-plugin-tailwindcss": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.4.tgz", - "integrity": "sha512-QZzzB1bID6qPsKHTeA9qPo1APmmxfFrA5DD3LQ+vbTmAnY40eJI7t9Q1ocqel2EKMWNPLJqdTDWZj1hKYgqSgg==", + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz", + "integrity": "sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==", "dev": true, "requires": {} }, @@ -1837,9 +1839,9 @@ "dev": true }, "tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", "dev": true, "requires": { "@alloc/quick-lru": "^5.2.0", @@ -1847,10 +1849,10 @@ "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", diff --git a/package.json b/package.json index 89d283d..b043f31 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hugo-lynx-theme", - "version": "1.3.1", + "version": "1.4.0", "description": "Lynx theme for Hugo", "scripts": { "dev": "NODE_ENV=development ./node_modules/tailwindcss/lib/cli.js -i ./assets/css/main.css -o ./assets/css/compiled/main.css --jit -w", @@ -25,10 +25,10 @@ }, "homepage": "https://github.com/jpanther/lynx#readme", "devDependencies": { - "@tailwindcss/typography": "^0.5.10", - "prettier": "^3.0.3", + "@tailwindcss/typography": "^0.5.11", + "prettier": "^3.2.5", "prettier-plugin-go-template": "^0.0.15", - "prettier-plugin-tailwindcss": "^0.5.4", - "tailwindcss": "^3.3.3" + "prettier-plugin-tailwindcss": "^0.5.14", + "tailwindcss": "^3.4.3" } } diff --git a/static/site.webmanifest b/static/site.webmanifest index 45dc8a2..b297bd3 100755 --- a/static/site.webmanifest +++ b/static/site.webmanifest @@ -1 +1,11 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file +{ + "name": "Lynx", + "short_name": "Lynx", + "icons": [ + { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +}