From 1d9b5a814f07c9935440bed4bedfdbae49fc7e1e Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Tue, 12 May 2026 05:06:12 -0500 Subject: [PATCH] fix: vendor PaperMod as regular files --- .gitmodules | 0 themes/PaperMod | 1 - .../PaperMod/.github/ISSUE_TEMPLATE/bug.yaml | 112 ++ .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/ISSUE_TEMPLATE/enhancement.yaml | 32 + .../PaperMod/.github/PULL_REQUEST_TEMPLATE.md | 44 + .../.github/workflows/build-check.yml | 56 + .../PaperMod/.github/workflows/gh-pages.yml | 82 ++ themes/PaperMod/LICENSE | 22 + themes/PaperMod/README.md | 99 ++ themes/PaperMod/assets/css/common/404.css | 11 + themes/PaperMod/assets/css/common/archive.css | 44 + themes/PaperMod/assets/css/common/footer.css | 56 + themes/PaperMod/assets/css/common/header.css | 101 ++ themes/PaperMod/assets/css/common/main.css | 66 ++ .../PaperMod/assets/css/common/md-content.css | 253 ++++ .../PaperMod/assets/css/common/post-entry.css | 129 +++ .../assets/css/common/post-single.css | 215 ++++ .../assets/css/common/profile-mode.css | 34 + themes/PaperMod/assets/css/common/search.css | 41 + themes/PaperMod/assets/css/common/terms.css | 19 + themes/PaperMod/assets/css/core/license.css | 6 + themes/PaperMod/assets/css/core/reset.css | 118 ++ .../PaperMod/assets/css/core/theme-vars.css | 40 + themes/PaperMod/assets/css/core/zmedia.css | 55 + themes/PaperMod/assets/css/extended/blank.css | 5 + .../assets/css/includes/chroma-mod.css | 24 + .../assets/css/includes/chroma-styles.css | 86 ++ themes/PaperMod/assets/js/fastsearch.js | 194 ++++ themes/PaperMod/assets/js/fuse.basic.min.js | 9 + themes/PaperMod/assets/js/license.js | 6 + themes/PaperMod/go.mod | 3 + themes/PaperMod/i18n/ar.yaml | 28 + themes/PaperMod/i18n/be.yaml | 39 + themes/PaperMod/i18n/bg.yaml | 16 + themes/PaperMod/i18n/bn.yaml | 33 + themes/PaperMod/i18n/ca.yaml | 33 + themes/PaperMod/i18n/ckb.yaml | 25 + themes/PaperMod/i18n/cs.yaml | 33 + themes/PaperMod/i18n/da.yaml | 28 + themes/PaperMod/i18n/de.yaml | 33 + themes/PaperMod/i18n/el.yaml | 33 + themes/PaperMod/i18n/en.yaml | 33 + themes/PaperMod/i18n/eo.yaml | 25 + themes/PaperMod/i18n/es.yaml | 33 + themes/PaperMod/i18n/fa.yaml | 28 + themes/PaperMod/i18n/fi.yaml | 33 + themes/PaperMod/i18n/fr.yaml | 33 + themes/PaperMod/i18n/he.yaml | 33 + themes/PaperMod/i18n/hi.yaml | 19 + themes/PaperMod/i18n/hr.yaml | 33 + themes/PaperMod/i18n/hu.yaml | 16 + themes/PaperMod/i18n/id.yaml | 33 + themes/PaperMod/i18n/it.yaml | 33 + themes/PaperMod/i18n/ja.yaml | 33 + themes/PaperMod/i18n/ko.yaml | 33 + themes/PaperMod/i18n/ku.yaml | 25 + themes/PaperMod/i18n/mn.yaml | 25 + themes/PaperMod/i18n/ms.yaml | 28 + themes/PaperMod/i18n/nl.yaml | 33 + themes/PaperMod/i18n/no.yaml | 33 + themes/PaperMod/i18n/oc.yaml | 33 + themes/PaperMod/i18n/pa.yaml | 33 + themes/PaperMod/i18n/pl.yaml | 33 + themes/PaperMod/i18n/pnb.yaml | 33 + themes/PaperMod/i18n/pt.yaml | 33 + themes/PaperMod/i18n/ro.yaml | 33 + themes/PaperMod/i18n/ru.yaml | 39 + themes/PaperMod/i18n/sk.yaml | 33 + themes/PaperMod/i18n/sv.yaml | 28 + themes/PaperMod/i18n/sw.yaml | 33 + themes/PaperMod/i18n/th.yaml | 33 + themes/PaperMod/i18n/tr.yaml | 33 + themes/PaperMod/i18n/uk.yaml | 25 + themes/PaperMod/i18n/uz.yaml | 20 + themes/PaperMod/i18n/vi.yaml | 33 + themes/PaperMod/i18n/zh-tw.yaml | 33 + themes/PaperMod/i18n/zh.yaml | 33 + themes/PaperMod/images/screenshot.png | Bin 0 -> 141511 bytes themes/PaperMod/images/tn.png | Bin 0 -> 15898 bytes themes/PaperMod/layouts/404.html | 3 + .../layouts/_markup/render-image.html | 22 + .../layouts/_partials/anchored_headings.html | 6 + themes/PaperMod/layouts/_partials/author.html | 10 + .../layouts/_partials/breadcrumbs.html | 20 + .../PaperMod/layouts/_partials/comments.html | 3 + themes/PaperMod/layouts/_partials/cover.html | 65 ++ .../PaperMod/layouts/_partials/edit_post.html | 20 + .../layouts/_partials/extend_footer.html | 3 + .../layouts/_partials/extend_head.html | 4 + .../_partials/extend_post_content.html | 4 + themes/PaperMod/layouts/_partials/footer.html | 158 +++ themes/PaperMod/layouts/_partials/head.html | 194 ++++ themes/PaperMod/layouts/_partials/header.html | 114 ++ .../PaperMod/layouts/_partials/home_info.html | 14 + .../layouts/_partials/index_profile.html | 58 + .../layouts/_partials/post_canonical.html | 9 + .../PaperMod/layouts/_partials/post_meta.html | 25 + .../layouts/_partials/post_nav_links.html | 17 + .../layouts/_partials/share_icons.html | 95 ++ .../layouts/_partials/social_icons.html | 8 + themes/PaperMod/layouts/_partials/svg.html | 1017 +++++++++++++++++ .../templates/_funcs/get-page-images.html | 47 + .../_partials/templates/opengraph.html | 86 ++ .../_partials/templates/schema_json.html | 128 +++ .../_partials/templates/twitter_cards.html | 37 + themes/PaperMod/layouts/_partials/toc.html | 95 ++ .../layouts/_partials/translation_list.html | 21 + .../PaperMod/layouts/_shortcodes/audio.html | 2 + .../layouts/_shortcodes/collapse.html | 8 + .../PaperMod/layouts/_shortcodes/figure.html | 31 + .../layouts/_shortcodes/inTextImg.html | 5 + themes/PaperMod/layouts/_shortcodes/ltr.html | 15 + .../PaperMod/layouts/_shortcodes/rawhtml.html | 2 + themes/PaperMod/layouts/_shortcodes/rtl.html | 15 + .../PaperMod/layouts/_shortcodes/video.html | 2 + themes/PaperMod/layouts/archives.html | 83 ++ themes/PaperMod/layouts/baseof.html | 31 + themes/PaperMod/layouts/index.json | 7 + themes/PaperMod/layouts/list.html | 121 ++ themes/PaperMod/layouts/llms.txt | 41 + themes/PaperMod/layouts/robots.txt | 7 + themes/PaperMod/layouts/rss.xml | 72 ++ themes/PaperMod/layouts/search.html | 29 + themes/PaperMod/layouts/single.html | 67 ++ themes/PaperMod/layouts/taxonomy.html | 27 + themes/PaperMod/theme.toml | 68 ++ 127 files changed, 6287 insertions(+), 1 deletion(-) delete mode 100644 .gitmodules delete mode 160000 themes/PaperMod create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml create mode 100644 themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 themes/PaperMod/.github/workflows/build-check.yml create mode 100644 themes/PaperMod/.github/workflows/gh-pages.yml create mode 100644 themes/PaperMod/LICENSE create mode 100644 themes/PaperMod/README.md create mode 100644 themes/PaperMod/assets/css/common/404.css create mode 100644 themes/PaperMod/assets/css/common/archive.css create mode 100644 themes/PaperMod/assets/css/common/footer.css create mode 100644 themes/PaperMod/assets/css/common/header.css create mode 100644 themes/PaperMod/assets/css/common/main.css create mode 100644 themes/PaperMod/assets/css/common/md-content.css create mode 100644 themes/PaperMod/assets/css/common/post-entry.css create mode 100644 themes/PaperMod/assets/css/common/post-single.css create mode 100644 themes/PaperMod/assets/css/common/profile-mode.css create mode 100644 themes/PaperMod/assets/css/common/search.css create mode 100644 themes/PaperMod/assets/css/common/terms.css create mode 100644 themes/PaperMod/assets/css/core/license.css create mode 100644 themes/PaperMod/assets/css/core/reset.css create mode 100644 themes/PaperMod/assets/css/core/theme-vars.css create mode 100644 themes/PaperMod/assets/css/core/zmedia.css create mode 100644 themes/PaperMod/assets/css/extended/blank.css create mode 100644 themes/PaperMod/assets/css/includes/chroma-mod.css create mode 100644 themes/PaperMod/assets/css/includes/chroma-styles.css create mode 100644 themes/PaperMod/assets/js/fastsearch.js create mode 100644 themes/PaperMod/assets/js/fuse.basic.min.js create mode 100644 themes/PaperMod/assets/js/license.js create mode 100644 themes/PaperMod/go.mod create mode 100644 themes/PaperMod/i18n/ar.yaml create mode 100644 themes/PaperMod/i18n/be.yaml create mode 100644 themes/PaperMod/i18n/bg.yaml create mode 100644 themes/PaperMod/i18n/bn.yaml create mode 100644 themes/PaperMod/i18n/ca.yaml create mode 100644 themes/PaperMod/i18n/ckb.yaml create mode 100644 themes/PaperMod/i18n/cs.yaml create mode 100644 themes/PaperMod/i18n/da.yaml create mode 100644 themes/PaperMod/i18n/de.yaml create mode 100644 themes/PaperMod/i18n/el.yaml create mode 100644 themes/PaperMod/i18n/en.yaml create mode 100644 themes/PaperMod/i18n/eo.yaml create mode 100644 themes/PaperMod/i18n/es.yaml create mode 100644 themes/PaperMod/i18n/fa.yaml create mode 100644 themes/PaperMod/i18n/fi.yaml create mode 100644 themes/PaperMod/i18n/fr.yaml create mode 100644 themes/PaperMod/i18n/he.yaml create mode 100644 themes/PaperMod/i18n/hi.yaml create mode 100644 themes/PaperMod/i18n/hr.yaml create mode 100644 themes/PaperMod/i18n/hu.yaml create mode 100644 themes/PaperMod/i18n/id.yaml create mode 100644 themes/PaperMod/i18n/it.yaml create mode 100644 themes/PaperMod/i18n/ja.yaml create mode 100644 themes/PaperMod/i18n/ko.yaml create mode 100644 themes/PaperMod/i18n/ku.yaml create mode 100644 themes/PaperMod/i18n/mn.yaml create mode 100644 themes/PaperMod/i18n/ms.yaml create mode 100644 themes/PaperMod/i18n/nl.yaml create mode 100644 themes/PaperMod/i18n/no.yaml create mode 100644 themes/PaperMod/i18n/oc.yaml create mode 100644 themes/PaperMod/i18n/pa.yaml create mode 100644 themes/PaperMod/i18n/pl.yaml create mode 100644 themes/PaperMod/i18n/pnb.yaml create mode 100644 themes/PaperMod/i18n/pt.yaml create mode 100644 themes/PaperMod/i18n/ro.yaml create mode 100644 themes/PaperMod/i18n/ru.yaml create mode 100644 themes/PaperMod/i18n/sk.yaml create mode 100644 themes/PaperMod/i18n/sv.yaml create mode 100644 themes/PaperMod/i18n/sw.yaml create mode 100644 themes/PaperMod/i18n/th.yaml create mode 100644 themes/PaperMod/i18n/tr.yaml create mode 100644 themes/PaperMod/i18n/uk.yaml create mode 100644 themes/PaperMod/i18n/uz.yaml create mode 100644 themes/PaperMod/i18n/vi.yaml create mode 100644 themes/PaperMod/i18n/zh-tw.yaml create mode 100644 themes/PaperMod/i18n/zh.yaml create mode 100644 themes/PaperMod/images/screenshot.png create mode 100644 themes/PaperMod/images/tn.png create mode 100644 themes/PaperMod/layouts/404.html create mode 100644 themes/PaperMod/layouts/_markup/render-image.html create mode 100644 themes/PaperMod/layouts/_partials/anchored_headings.html create mode 100644 themes/PaperMod/layouts/_partials/author.html create mode 100644 themes/PaperMod/layouts/_partials/breadcrumbs.html create mode 100644 themes/PaperMod/layouts/_partials/comments.html create mode 100644 themes/PaperMod/layouts/_partials/cover.html create mode 100644 themes/PaperMod/layouts/_partials/edit_post.html create mode 100644 themes/PaperMod/layouts/_partials/extend_footer.html create mode 100644 themes/PaperMod/layouts/_partials/extend_head.html create mode 100644 themes/PaperMod/layouts/_partials/extend_post_content.html create mode 100644 themes/PaperMod/layouts/_partials/footer.html create mode 100644 themes/PaperMod/layouts/_partials/head.html create mode 100644 themes/PaperMod/layouts/_partials/header.html create mode 100644 themes/PaperMod/layouts/_partials/home_info.html create mode 100644 themes/PaperMod/layouts/_partials/index_profile.html create mode 100644 themes/PaperMod/layouts/_partials/post_canonical.html create mode 100644 themes/PaperMod/layouts/_partials/post_meta.html create mode 100644 themes/PaperMod/layouts/_partials/post_nav_links.html create mode 100644 themes/PaperMod/layouts/_partials/share_icons.html create mode 100644 themes/PaperMod/layouts/_partials/social_icons.html create mode 100644 themes/PaperMod/layouts/_partials/svg.html create mode 100644 themes/PaperMod/layouts/_partials/templates/_funcs/get-page-images.html create mode 100644 themes/PaperMod/layouts/_partials/templates/opengraph.html create mode 100644 themes/PaperMod/layouts/_partials/templates/schema_json.html create mode 100644 themes/PaperMod/layouts/_partials/templates/twitter_cards.html create mode 100644 themes/PaperMod/layouts/_partials/toc.html create mode 100644 themes/PaperMod/layouts/_partials/translation_list.html create mode 100644 themes/PaperMod/layouts/_shortcodes/audio.html create mode 100644 themes/PaperMod/layouts/_shortcodes/collapse.html create mode 100644 themes/PaperMod/layouts/_shortcodes/figure.html create mode 100644 themes/PaperMod/layouts/_shortcodes/inTextImg.html create mode 100644 themes/PaperMod/layouts/_shortcodes/ltr.html create mode 100644 themes/PaperMod/layouts/_shortcodes/rawhtml.html create mode 100644 themes/PaperMod/layouts/_shortcodes/rtl.html create mode 100644 themes/PaperMod/layouts/_shortcodes/video.html create mode 100644 themes/PaperMod/layouts/archives.html create mode 100644 themes/PaperMod/layouts/baseof.html create mode 100644 themes/PaperMod/layouts/index.json create mode 100644 themes/PaperMod/layouts/list.html create mode 100644 themes/PaperMod/layouts/llms.txt create mode 100644 themes/PaperMod/layouts/robots.txt create mode 100644 themes/PaperMod/layouts/rss.xml create mode 100644 themes/PaperMod/layouts/search.html create mode 100644 themes/PaperMod/layouts/single.html create mode 100644 themes/PaperMod/layouts/taxonomy.html create mode 100644 themes/PaperMod/theme.toml diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29..0000000 diff --git a/themes/PaperMod b/themes/PaperMod deleted file mode 160000 index 154d006..0000000 --- a/themes/PaperMod +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 154d006e0182dfc7da38008323976b02e6bfab4a diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml b/themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 0000000..d7d7656 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,112 @@ +name: Bug Report 🐞 +description: Create a report to help us improve +title: "[Bug]: " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report :) + - Kindly **DO NOT** ask for instructions. + - Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any other relevant question. + - You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users + - Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation. + - Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions. + - Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created. + - type: textarea + id: what_happened + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: A bug happened! Here are the screenshots.. Tell us what you see! + validations: + required: true + - type: textarea + id: steps_to_reproduce + attributes: + label: Steps to reproduce + description: How to reproduce this issue. Here are the steps... + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + - type: dropdown + id: hugo_version + attributes: + label: Hugo Version + description: What version of Hugo are you running? + options: + - Hugo >= 0.146.0 (Recommended - Minimum version required for PaperMod) + - Hugo < 0.146.0 (Incompatible - Not recommended to build PaperMod on lower versions) + validations: + required: true + - type: input + id: papermod_version + attributes: + label: PaperMod Version + description: What version of PaperMod are you running? + placeholder: | + PaperMod v7.0 or + Branch master or + Commit-id: 3f50861a0ced88f9b614a43662edeb4c0bc45da8 + validations: + required: true + - type: dropdown + id: browser_type + attributes: + label: What kind of devices are you seeing the problem on? + multiple: true + options: + - Mobile + - Desktop + validations: + required: false + - type: dropdown + id: browsers + attributes: + label: What browsers are you seeing the problem on? + multiple: true + options: + - Firefox + - Chrome + - Safari + - Microsoft Edge + validations: + required: false + - type: input + id: browser_version + attributes: + label: Browser Version + description: Please add browser version or enter user agent string (navigator.userAgent) + placeholder: ex. Google Chrome 86.0 + validations: + required: false + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell + validations: + required: true + - type: input + id: repo_url + attributes: + label: Repository/Source Code link where this issue can be reproduced + description: Please add url of the repository where this issue can be reproduced + placeholder: https://github.com// + validations: + required: false + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme). + options: + - label: I agree to follow this project's Code of Conduct + required: true + validations: + required: true diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml b/themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..eeb6e55 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: PaperMod Discussions + url: https://github.com/adityatelange/hugo-PaperMod/discussions + about: Please ask and answer questions/doubts here, DO NOT open an issue for questions. diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml b/themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml new file mode 100644 index 0000000..3976a80 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml @@ -0,0 +1,32 @@ +name: Enhancement 🚀 +description: Propose a new feature or change for enhancing the experience. +title: "[Enhancement]: " +labels: ["enhancement", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this enhancement form :) + - Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any other relevant question. + - You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users + - Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation. + - Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions. + - Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created. + - type: textarea + id: what_happened + attributes: + label: What you'd like to propose? + description: + placeholder: + validations: + required: true + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme). + options: + - label: I agree to follow this project's Code of Conduct + required: true + validations: + required: true \ No newline at end of file diff --git a/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md b/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..dcc52d6 --- /dev/null +++ b/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,44 @@ + + + +**What does this PR change? What problem does it solve?** + + + + +**Was the change discussed in an issue or in the Discussions before?** + + + + +## PR Checklist + +- [ ] This change adds/updates translations and I have used the [template present here](https://github.com/adityatelange/hugo-PaperMod/wiki/Translations#want-to-add-your-language-). +- [ ] I have enabled [maintainer edits for this PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork). +- [ ] I have verified that the code works as described/as intended. +- [ ] This change adds a Social Icon which has a permissive license to use it. +- [ ] This change **does not** include any CDN resources/links. +- [ ] This change **does not** include any unrelated scripts such as bash and python scripts. +- [ ] This change updates the overridden internal templates from HUGO's repository. diff --git a/themes/PaperMod/.github/workflows/build-check.yml b/themes/PaperMod/.github/workflows/build-check.yml new file mode 100644 index 0000000..3f239dd --- /dev/null +++ b/themes/PaperMod/.github/workflows/build-check.yml @@ -0,0 +1,56 @@ +name: Build Check + +on: + push: + paths-ignore: + - "images/**" + - "LICENSE" + - "README.md" + branches: + - master + - exampleSite + pull_request: + paths-ignore: + - "images/**" + - "LICENSE" + - "README.md" + branches: + - master + - exampleSite + workflow_dispatch: + # manual run + inputs: + hugoVersion: + description: "Hugo Version" + required: false + default: "0.146.0" + +defaults: + run: + shell: bash + +jobs: + build-check: + runs-on: ubuntu-latest + env: + # min_version from theme.toml + HUGO_VERSION: ${{ github.event.inputs.hugoVersion || '0.146.0' }} + steps: + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + + - name: Checkout + uses: actions/checkout@v6 + with: + ref: exampleSite + + - name: Get Theme + run: git submodule update --init --recursive + + - name: Update theme to Latest commit + run: git submodule update --remote --merge + + - name: Build with Hugo + run: hugo --buildDrafts --gc diff --git a/themes/PaperMod/.github/workflows/gh-pages.yml b/themes/PaperMod/.github/workflows/gh-pages.yml new file mode 100644 index 0000000..7f84d94 --- /dev/null +++ b/themes/PaperMod/.github/workflows/gh-pages.yml @@ -0,0 +1,82 @@ +name: Deploy Hugo PaperMod Demo to Pages + +on: + push: + paths-ignore: + - "images/**" + - "LICENSE" + - "README.md" + branches: + - master + - exampleSite + workflow_dispatch: + # manual run + inputs: + hugoVersion: + description: "Hugo Version" + required: false + default: "latest" + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + permissions: + contents: read + runs-on: ubuntu-latest + env: + HUGO_VERSION: ${{ github.event.inputs.hugoVersion || 'latest' }} + steps: + - name: Resolve Hugo version + run: | + if [ "${HUGO_VERSION}" = "latest" ]; then + HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep '"tag_name"' | sed 's/.*"v\([^"]*\)".*/\1/') + echo "HUGO_VERSION=${HUGO_VERSION}" >> $GITHUB_ENV + fi + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Checkout + uses: actions/checkout@v6 + with: + ref: exampleSite + - name: Setup Pages + id: pages + uses: actions/configure-pages@v6 + - name: Get Theme + run: git submodule update --init --recursive + - name: Update theme to Latest commit + run: git submodule update --remote --merge + - name: Build with Hugo + run: | + hugo \ + --buildDrafts --gc \ + --baseURL ${{ steps.pages.outputs.base_url }} + - name: Upload artifact + uses: actions/upload-pages-artifact@v5 + with: + path: ./public + # Deployment job + deploy: + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 diff --git a/themes/PaperMod/LICENSE b/themes/PaperMod/LICENSE new file mode 100644 index 0000000..0215fa5 --- /dev/null +++ b/themes/PaperMod/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2020 nanxiaobei and adityatelange +Copyright (c) 2021-2026 adityatelange + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/themes/PaperMod/README.md b/themes/PaperMod/README.md new file mode 100644 index 0000000..0dc04be --- /dev/null +++ b/themes/PaperMod/README.md @@ -0,0 +1,99 @@ +# Hugo PaperMod + +**A fast, clean, and responsive theme for [Hugo](https://gohugo.io/).** + +[![hugo-papermod](https://img.shields.io/badge/Hugo--Themes-@PaperMod-blue)](https://themes.gohugo.io/themes/hugo-papermod/) +[![Minimum Hugo Version](https://img.shields.io/static/v1?label=Hugo&message=v0.146.0%2B&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.146.0) +[![Discord](https://img.shields.io/discord/971046860317921340?label=Discord&logo=discord)](https://discord.gg/ahpmTvhVmp) + +> Based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper/tree/4330c8b12aa48bfdecbcad6ad66145f679a430b3), with additional features and customization options. + + + + + + + + + + + + + + + + + + + + +
Live Demoadityatelange.github.io/hugo-PaperMod
Documentation 📚Github Wiki
Example Site SourceexampleSite branch
Star History Rankko-fi
+ + +

+ Mockup image +

+ +--- + +## Features 💥 + +`☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive` + +- **Asset pipeline** -- Hugo's built-in asset generator with fingerprinting, bundling, and minification. +- **Three layout modes** -- [Regular](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#regular-mode-default-mode), [Home-Info](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#home-info-mode), and [Profile](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#profile-mode). +- **Light and dark themes** -- Automatic switching based on browser preference, plus a manual toggle. +- **Multilingual support** -- Includes a built-in language selector. +- **Search** -- Client-side search powered by Fuse.js. +- **SEO optimized** -- Open Graph, Twitter Cards, and Schema.org structured data out of the box. +- **Cover images** -- Per-post cover images with responsive image support. +- **Table of contents** -- Auto-generated from heading structure. +- **Multiple authors** -- Native support for multi-author sites. +- **Social icons and share buttons** -- Configurable social links and per-post sharing. +- **Breadcrumb navigation** +- **Post archives and taxonomies** +- **Code block copy buttons** -- One-click copying with Chroma syntax highlighting. +- **Related post suggestions** +- **Zero JS build dependencies** -- No webpack, Node.js, or other tooling required. + +| Topic | Description | +| ------------------------------------------------------------------------------------------------- | ----------------------------------------------- | +| **[Installation guide](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation)** | Detailed installation and update instructions | +| **[Features wiki page](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)** | In-depth explanations of all features | +| **[FAQ wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs)** | Common questions and configuration walkthroughs | +| **[Icons wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)** | Documentation for social icons and share icons | +| **[Variables wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/Variables)** | List of all available template variables | +| **[Overiding templates](https://github.com/adityatelange/hugo-PaperMod/wiki/Template_Overrides)** | Guide to customizing templates without forking | +| **[Releases](https://github.com/adityatelange/hugo-PaperMod/releases)** | Detailed history of releases | + +--- + +## Performance ☄️ + +PaperMod consistently scores near-perfect results on [Pagespeed Insights](https://pagespeed.web.dev/report?url=https://adityatelange.github.io/hugo-PaperMod/). + +image + +--- + +## Support 🫶 + +- Star this repository to show your support. +- Share PaperMod with others who might find it useful. +- Sponsor the project on [GitHub Sponsors](https://github.com/sponsors/adityatelange) or [Ko-Fi](https://ko-fi.com/adityatelange). + +--- + +## Special Thanks 🌟 + +- [Highlight.js](https://github.com/highlightjs/highlight.js) +- [Fuse.js](https://github.com/krisk/fuse) +- [Feather Icons](https://github.com/feathericons/feather) +- [Simple Icons](https://github.com/simple-icons/simple-icons) +- All contributors and supporters + +--- + +## Stargazers 📈 + +[![Stargazers over time](https://starchart.cc/adityatelange/hugo-PaperMod.svg?background=%23ffffff00&axis=%23858585&line=%236b63ff)](https://starchart.cc/adityatelange/hugo-PaperMod) diff --git a/themes/PaperMod/assets/css/common/404.css b/themes/PaperMod/assets/css/common/404.css new file mode 100644 index 0000000..8a23430 --- /dev/null +++ b/themes/PaperMod/assets/css/common/404.css @@ -0,0 +1,11 @@ +.not-found { + position: absolute; + left: 0; + right: 0; + display: flex; + align-items: center; + justify-content: center; + height: 80%; + font-size: 160px; + font-weight: 700; +} diff --git a/themes/PaperMod/assets/css/common/archive.css b/themes/PaperMod/assets/css/common/archive.css new file mode 100644 index 0000000..7e7e245 --- /dev/null +++ b/themes/PaperMod/assets/css/common/archive.css @@ -0,0 +1,44 @@ +.archive-posts { + width: 100%; + font-size: 16px; +} + +.archive-year { + margin-top: 40px; +} + +.archive-year:not(:last-of-type) { + border-bottom: 2px solid var(--border); +} + +.archive-month { + display: flex; + align-items: flex-start; + padding: 10px 0; +} + +.archive-month-header { + margin: 25px 0; + width: 200px; +} + +.archive-month:not(:last-of-type) { + border-bottom: 1px solid var(--border); +} + +.archive-entry { + position: relative; + padding: 5px; + margin: 10px 0; +} + +.archive-entry-title { + margin: 5px 0; + font-weight: 400; +} + +.archive-count, +.archive-meta { + color: var(--secondary); + font-size: 14px; +} diff --git a/themes/PaperMod/assets/css/common/footer.css b/themes/PaperMod/assets/css/common/footer.css new file mode 100644 index 0000000..240df53 --- /dev/null +++ b/themes/PaperMod/assets/css/common/footer.css @@ -0,0 +1,56 @@ +.footer, +.top-link { + font-size: 12px; + color: var(--secondary); +} + +.footer { + max-width: calc(var(--main-width) + var(--gap) * 2); + margin: auto; + padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap); + text-align: center; + line-height: 24px; +} + +.footer span { + margin-inline-start: 1px; + margin-inline-end: 1px; +} + +.footer span:last-child { + white-space: nowrap; +} + +.footer a { + color: inherit; + text-underline-offset: 0.25rem; + text-decoration: underline; +} + +.top-link { + position: fixed; + bottom: 4rem; + right: 2rem; + z-index: 99; + background: var(--tertiary); + width: 2.5rem; + height: 2.5rem; + padding: 10px; + border-radius: 64px; + transition: visibility .3s, opacity .3s cubic-bezier(0.4, 0, 1, 1); +} + +.hidden { + visibility: hidden; + opacity: 0; +} + +.top-link, +.top-link svg { + filter: drop-shadow(0px 0px 0px var(--theme)); +} + +.footer a:hover, +.top-link:hover { + color: var(--primary); +} diff --git a/themes/PaperMod/assets/css/common/header.css b/themes/PaperMod/assets/css/common/header.css new file mode 100644 index 0000000..14e36e3 --- /dev/null +++ b/themes/PaperMod/assets/css/common/header.css @@ -0,0 +1,101 @@ +.header-nav { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + max-width: calc(var(--nav-width) + var(--gap) * 2); + margin: auto; + line-height: var(--header-height); + padding: 0 var(--gap); + column-gap: var(--gap); +} + +.header-nav a { + display: block; +} + +.logo, +.menu { + display: flex; +} + +.logo { + align-items: center; + column-gap: 0.55rem; + flex-wrap: wrap; +} + +.logo a { + font-size: 24px; + font-weight: 700; + display: flex; + align-items: center; + column-gap: 0.55rem; +} + +.logo a img, +.logo a svg { + pointer-events: none; + border-radius: 6px; +} + +.theme-toggle { + padding: 0 0.4rem; +} + +[data-theme="dark"] .moon { + display: none; +} + +[data-theme="light"] .sun { + display: none; +} + +.logo-switches { + display: inline-flex; + gap: 0.4rem; + align-items: inherit; + min-height: stretch; + flex-wrap: inherit; +} + +.logo-switches>* { + min-height: inherit; + align-items: center; + display: inline-flex; +} + +.nav-sep { + color: var(--secondary); +} + +.lang-menu * { + display: inherit; + min-height: inherit; + align-items: inherit; +} + +.lang-menu a { + font-size: 1rem; + font-weight: 500; + padding: 0 0.4rem; + display: inline-flex +} + +.menu { + list-style: none; + word-break: keep-all; + overflow-x: auto; + white-space: nowrap; + column-gap: var(--gap); +} + +.menu a { + font-size: 16px; +} + +.menu .active { + font-weight: 500; + text-decoration: underline; + text-underline-offset: 0.3rem; + text-decoration-thickness: 2px; +} diff --git a/themes/PaperMod/assets/css/common/main.css b/themes/PaperMod/assets/css/common/main.css new file mode 100644 index 0000000..25ae4da --- /dev/null +++ b/themes/PaperMod/assets/css/common/main.css @@ -0,0 +1,66 @@ +.main { + position: relative; + min-height: calc(100vh - var(--header-height) - var(--footer-height)); + max-width: calc(var(--main-width) + var(--gap) * 2); + margin: auto; + padding: var(--gap); +} + +.page-header h1 { + font-size: 40px; +} + +.pagination { + display: flex; +} + +.pagination a { + color: var(--theme); + font-size: 13px; + line-height: 36px; + background: var(--primary); + border-radius: calc(36px / 2); + padding: 0 16px; +} + +.pagination .next { + margin-inline-start: auto; +} + + +.social-icons a { + display: inline-flex; + padding: 10px; +} + +.social-icons a svg { + height: 26px; + width: 26px; +} + +code { + direction: ltr; +} + +div.highlight, +pre { + position: relative; +} + +.copy-code { + display: none; + position: absolute; + top: 4px; + right: 4px; + color: rgba(255, 255, 255, 0.8); + background: rgba(78, 78, 78, 0.8); + border-radius: var(--radius); + padding: 0 5px; + font-size: 14px; + user-select: none; +} + +div.highlight:hover .copy-code, +pre:hover .copy-code { + display: block; +} diff --git a/themes/PaperMod/assets/css/common/md-content.css b/themes/PaperMod/assets/css/common/md-content.css new file mode 100644 index 0000000..bac29bb --- /dev/null +++ b/themes/PaperMod/assets/css/common/md-content.css @@ -0,0 +1,253 @@ +.md-content h3, +.md-content h4, +.md-content h5, +.md-content h6 { + margin: 24px 0 16px; +} + +.md-content h1 { + margin: 40px auto 32px; + font-size: 40px; +} + +.md-content h2 { + margin: 32px auto 24px; + font-size: 32px; +} + +.md-content h3 { + font-size: 24px; +} + +.md-content h4 { + font-size: 16px; +} + +.md-content h5 { + font-size: 14px; +} + +.md-content h6 { + font-size: 12px; +} + +.md-content a:not(.anchor) { + text-underline-offset: 0.3rem; + text-decoration: underline; +} + +.md-content del { + text-decoration: line-through; +} + +.md-content dl:not(:last-child), +.md-content ol:not(:last-child), +.md-content p:not(:last-child), +.md-content figure:not(:last-child), +.md-content ul:not(:last-child) { + margin-bottom: var(--content-gap); +} + +.md-content ol, +.md-content ul { + padding-inline-start: 1.25rem; +} + +.md-content li { + margin-top: 0.3rem; +} + +.md-content li p { + margin-bottom: 0; +} + +.md-content dl { + display: flex; + flex-wrap: wrap; + margin: 0; +} + +.md-content dt { + width: 25%; + font-weight: 700; +} + +.md-content dd { + width: 75%; + margin-inline-start: 0; + padding-inline-start: 10px; +} + +.md-content dd~dd, +.md-content dt~dt { + margin-top: 10px; +} + +.md-content table { + margin-bottom: var(--content-gap); +} + +.md-content table th, +.md-content table:not(.highlighttable, .highlight table, .gist .highlight) td { + min-width: 80px; + padding: 6px 13px; + line-height: 1.5; + border: 1px solid var(--border); +} + +.md-content table th { + text-align: start; +} + +.md-content table:not(.highlighttable) td code:only-child { + margin: auto 0; +} + +.md-content .highlight table { + border-radius: var(--radius); +} + +.md-content .highlight:not(table) { + margin-bottom: var(--content-gap); + background: var(--code-block-bg) !important; + border-radius: var(--radius); + direction: ltr; +} + +.md-content li>.highlight { + margin-inline-end: 0; +} + +.md-content ul pre { + margin-inline-start: calc(var(--gap) * -2); +} + +.md-content .highlight pre { + margin: 0; +} + +.md-content .highlighttable { + table-layout: fixed; +} + +.md-content .highlighttable td:first-child { + width: 40px; +} + +.md-content .highlighttable td .linenodiv { + padding-inline-end: 0 !important; +} + +.md-content .highlighttable td .highlight, +.md-content .highlighttable td .linenodiv pre { + margin-bottom: 0; +} + +.post-content code { + padding: 0.2rem 0.3rem; + font-size: 0.78em; + line-height: 1.5; + background: var(--code-bg); + border-radius: 0.2rem; +} + +.md-content pre code { + display: grid; + margin: auto 0; + padding: 10px; + color: rgb(213, 213, 214); + background: var(--code-block-bg) !important; + border-radius: var(--radius); + overflow-x: auto; + word-break: break-all; +} + +.md-content blockquote { + margin: 1rem 0; + padding-inline-start: 1rem; + border-inline-start: 0.3rem solid var(--content); +} + +.md-content hr { + margin: 30px 0; + height: 2px; + background: var(--tertiary); + border: 0; +} + +.md-content iframe { + max-width: 100%; +} + +.md-content img { + border-radius: var(--radius); + margin: 1rem 0; +} + +.md-content img[src*="#center"] { + margin: 1rem auto; +} + +.md-content figure.align-center { + text-align: center; +} + +.md-content figure>figcaption { + color: var(--primary); + font-size: 16px; + font-weight: bold; + margin: 8px 0 16px; +} + +.md-content figure>figcaption>p { + color: var(--secondary); + font-size: 14px; + font-weight: normal; +} + +.md-content h1:hover .anchor, +.md-content h2:hover .anchor, +.md-content h3:hover .anchor, +.md-content h4:hover .anchor, +.md-content h5:hover .anchor, +.md-content h6:hover .anchor { + display: inline-flex; + color: var(--secondary); + margin-inline-start: 0.5em; + font-weight: 500; + user-select: none; +} + +.anchor:hover { + color: var(--content) !important; +} + +.md-content img.in-text { + display: inline; + margin: auto; +} + +mark { + border-radius: 2px; + padding: 0 2px; +} + +audio { + display: block; + width: 100%; + border: 1px solid var(--border); + border-radius: var(--radius); + overflow: hidden; + height: 2.5rem; + margin-bottom: var(--content-gap); +} + +audio::-webkit-media-controls-enclosure { + border-radius: 0; +} + +video { + border: 1px solid var(--code-bg); + border-radius: var(--radius); + max-width: 100%; +} diff --git a/themes/PaperMod/assets/css/common/post-entry.css b/themes/PaperMod/assets/css/common/post-entry.css new file mode 100644 index 0000000..8422455 --- /dev/null +++ b/themes/PaperMod/assets/css/common/post-entry.css @@ -0,0 +1,129 @@ +.first-entry { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + min-height: 320px; + margin: var(--gap) 0 calc(var(--gap) * 2) 0; +} + +.first-entry .entry-header { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; +} + +.first-entry .entry-header h1 { + font-size: 34px; + line-height: 1.3; +} + +.first-entry .entry-header h2 { + font-size: 40px; +} + +.first-entry .entry-content { + margin: 14px 0; + font-size: 16px; + -webkit-line-clamp: 3; +} + +.first-entry .entry-footer { + font-size: 14px; +} + +.home-info .entry-content { + --content-gap: 0.5rem; + -webkit-line-clamp: unset; + margin: 0; +} + +.home-info .social-icons a:first-of-type { + padding-inline-start: 0; +} + + +.post-entry { + position: relative; + margin-bottom: var(--gap); + padding: var(--gap); + background: var(--entry); + border-radius: var(--radius); + transition: transform 0.25s ease; + border: 1px solid var(--border); +} + +.post-entry:hover, +.post-entry:focus-within { + transform: translateY(-2px); + border-color: var(--tertiary); +} + +.tag-entry .entry-cover { + display: none; +} + +.entry-header h2 { + font-size: 24px; + line-height: 1.3; +} + +.entry-content { + margin: 8px 0; + color: var(--secondary); + font-size: 14px; + line-height: 1.6; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.home-info .entry-content p { + margin-block-start: 1em; + margin-block-end: 1em; +} + +.entry-footer { + color: var(--secondary); + font-size: 13px; +} + +.entry-link { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: var(--radius); +} + +.entry-hint { + color: var(--secondary); +} + +.entry-hint-parent { + display: flex; + justify-content: space-between; +} + +.entry-cover { + font-size: 14px; + margin-bottom: var(--gap); + text-align: center; + display: flex; + flex-direction: column; + gap: .5rem; +} + +.entry-cover img { + border-radius: var(--radius); + width: 100%; + height: auto; +} + +.entry-cover a { + text-underline-offset: 0.3rem; + text-decoration: underline; +} diff --git a/themes/PaperMod/assets/css/common/post-single.css b/themes/PaperMod/assets/css/common/post-single.css new file mode 100644 index 0000000..ca6d26c --- /dev/null +++ b/themes/PaperMod/assets/css/common/post-single.css @@ -0,0 +1,215 @@ +.page-header, +.post-header { + margin: 24px auto var(--content-gap) auto; +} + +.post-title { + font-size: 40px; +} + +.post-description { + margin-top: 10px; +} + +.post-meta { + margin-top: 5px; +} + +.post-meta, +.breadcrumbs { + color: var(--secondary); + font-size: 14px; +} + +.breadcrumbs { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.2rem; +} + +.breadcrumbs a { + font-size: 16px; +} + +.breadcrumbs svg { + height: 1em; +} + +.i18n_list { + display: inline-flex; +} + +.post-meta .i18n_list li { + list-style: none; + margin: auto 3px; +} + +.post-meta a, +.toc a:hover { + text-underline-offset: 0.3rem; + text-decoration: underline; +} + +.post-meta a { + color: var(--secondary); + text-decoration-style: dotted; +} + +details.toc { + margin-bottom: var(--content-gap); + background: var(--code-bg); + border-radius: var(--radius); + border: 1px solid var(--border); +} + +[data-theme="dark"] details.toc { + background: var(--entry); +} + +details.toc summary { + padding: 0.3rem 1.2rem; + border-radius: var(--radius); +} + +details summary { + cursor: pointer; + display: list-item; + width: 100%; + margin-inline-start: 0; + user-select: none; +} + +details .title { + display: inline; + font-weight: 500; + margin-inline-start: 0.2rem; +} + +details { + interpolate-size: allow-keywords; +} + +details::details-content { + height: 0; + opacity: 0; + overflow: clip; + transition: height 150ms ease, + opacity 150ms ease, + content-visibility 150ms allow-discrete; +} + +details[open]::details-content { + height: auto; + opacity: 1; +} + +details .inner { + margin: 0 2.4rem; + padding-bottom: 0.6rem; +} + +details li ul { + margin-inline-start: var(--gap); +} + +.post-content { + color: var(--content); + margin: 30px 0; +} + +.post-footer { + margin-top: var(--content-gap); +} + +.post-footer>* { + margin-bottom: 10px; +} + +.post-tags { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.post-tags li { + display: inline-block; +} + +.post-tags a, +.share-buttons, +.paginav { + border-radius: var(--radius); + background: var(--code-bg); + border: 1px solid var(--border); +} + +.post-tags a { + display: block; + padding: 0 14px; + color: var(--secondary); + font-size: 14px; + line-height: 34px; + background: var(--code-bg); +} + +.post-tags a:hover, +.paginav a:hover { + background: var(--border); +} + +.share-buttons { + padding: 10px; + display: flex; + justify-content: center; + overflow-x: auto; + gap: 10px; +} + +.share-buttons li, +.share-buttons a { + display: inline-flex; +} + +.share-buttons a:not(:last-of-type) { + margin-inline-end: 12px; +} + +.paginav { + display: flex; + line-height: 1.2; +} + +.paginav .title { + letter-spacing: 1px; + text-transform: uppercase; + font-size: 0.8rem; + color: var(--secondary); +} + +.paginav a { + width: 50%; + display: flex; + flex-direction: column; + gap: 0.5rem; + padding: 0.8rem; + border-radius: var(--radius); +} + +.paginav span:hover:not(.title) { + text-underline-offset: 0.2rem; + text-decoration: underline; +} + +.paginav .next { + margin-inline-start: auto; + text-align: right; +} + +[dir="rtl"] .paginav .next { + text-align: left; +} + +h1>a>svg { + display: inline; +} diff --git a/themes/PaperMod/assets/css/common/profile-mode.css b/themes/PaperMod/assets/css/common/profile-mode.css new file mode 100644 index 0000000..8f6d183 --- /dev/null +++ b/themes/PaperMod/assets/css/common/profile-mode.css @@ -0,0 +1,34 @@ +.buttons, +.main .profile { + display: flex; + justify-content: center; +} + +.main .profile { + align-items: center; + min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2)); + text-align: center; +} + +.profile .profile_inner { + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.profile img { + border-radius: 50%; +} + +.buttons { + flex-wrap: wrap; + max-width: 400px; + gap: 1rem; +} + +.button { + background: var(--tertiary); + border-radius: var(--radius); + padding: 0.4rem 0.8rem; +} diff --git a/themes/PaperMod/assets/css/common/search.css b/themes/PaperMod/assets/css/common/search.css new file mode 100644 index 0000000..b14dfc4 --- /dev/null +++ b/themes/PaperMod/assets/css/common/search.css @@ -0,0 +1,41 @@ +.searchbox input { + padding: 4px 10px; + width: 100%; + color: var(--primary); + font-weight: bold; + border: 2px solid var(--tertiary); + border-radius: var(--radius); +} + +.searchResults li { + list-style: none; + border-radius: var(--radius); + padding: 10px 15px; + position: relative; + font-weight: 500; + display: flex; + align-items: center; + justify-content: space-between; + background: var(--entry); + transition: transform .25s ease; + border: 1px solid var(--border); +} + +.searchResults { + margin: var(--content-gap) 0; + width: 100%; + display: flex; + flex-direction: column; + gap: 10px; +} + +.searchResults li:hover, +.searchResults li:focus-within { + transform: translateY(-2px); + border-color: var(--tertiary); +} + +.searchResults li .entry-link:focus { + outline: 2px solid var(--secondary); + outline-offset: -2px; +} diff --git a/themes/PaperMod/assets/css/common/terms.css b/themes/PaperMod/assets/css/common/terms.css new file mode 100644 index 0000000..017bf34 --- /dev/null +++ b/themes/PaperMod/assets/css/common/terms.css @@ -0,0 +1,19 @@ +.terms-tags { + display: flex; + flex-wrap: wrap; + gap: 1em; + margin-top: var(--content-gap); +} + +.terms-tags li { + display: inline-block; + font-weight: 500; +} + +.terms-tags a { + display: block; + padding: 4px 10px; + background: var(--tertiary); + border-radius: var(--radius); + transition: transform 0.1s; +} diff --git a/themes/PaperMod/assets/css/core/license.css b/themes/PaperMod/assets/css/core/license.css new file mode 100644 index 0000000..1bc9fbf --- /dev/null +++ b/themes/PaperMod/assets/css/core/license.css @@ -0,0 +1,6 @@ +/* + PaperMod v8+ + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2026 adityatelange +*/ diff --git a/themes/PaperMod/assets/css/core/reset.css b/themes/PaperMod/assets/css/core/reset.css new file mode 100644 index 0000000..7393d57 --- /dev/null +++ b/themes/PaperMod/assets/css/core/reset.css @@ -0,0 +1,118 @@ +*, +::after, +::before { + box-sizing: border-box; +} + +html { + -webkit-tap-highlight-color: transparent; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + text-size-adjust: 100%; +} + +a, +button, +body, +h1, +h2, +h3, +h4, +h5, +h6 { + color: var(--primary); +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + font-size: 18px; + line-height: 1.6; + word-break: break-word; + background: var(--theme); +} + +article, +aside, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +table { + display: block; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1, +h2, +h3, +h4, +h5, +h6, +p { + margin-top: 0; + margin-bottom: 0; +} + +ul { + padding: 0; +} + +a { + text-decoration: none; +} + +body, +figure, +ul { + margin: 0; +} + +table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow-x: auto; + word-break: keep-all; +} + +button, +input, +textarea { + padding: 0; + font: inherit; + background: 0 0; + border: 0; +} + +input, +textarea { + outline: 0; +} + +button, +input[type=button], +input[type=submit] { + cursor: pointer; +} + +input:-webkit-autofill, +textarea:-webkit-autofill { + box-shadow: 0 0 0 50px var(--theme) inset; +} + +img { + display: block; + max-width: 100%; +} diff --git a/themes/PaperMod/assets/css/core/theme-vars.css b/themes/PaperMod/assets/css/core/theme-vars.css new file mode 100644 index 0000000..1ce34ef --- /dev/null +++ b/themes/PaperMod/assets/css/core/theme-vars.css @@ -0,0 +1,40 @@ +:root { + --gap: 24px; + --content-gap: 20px; + --nav-width: 1024px; + --main-width: 720px; + --header-height: 60px; + --footer-height: 60px; + --radius: 8px; + --theme: rgb(255, 255, 255); + --entry: rgb(255, 255, 255); + --primary: rgb(30, 30, 30); + --secondary: rgb(108, 108, 108); + --tertiary: rgb(214, 214, 214); + --content: rgb(31, 31, 31); + --code-block-bg: rgb(28, 29, 33); + --code-bg: rgb(245, 245, 245); + --border: rgb(238, 238, 238); + color-scheme: light; +} + +:root[data-theme="dark"] { + --theme: rgb(29, 30, 32); + --entry: rgb(46, 46, 51); + --primary: rgb(218, 218, 219); + --secondary: rgb(155, 156, 157); + --tertiary: rgb(65, 66, 68); + --content: rgb(196, 196, 197); + --code-block-bg: rgb(46, 46, 51); + --code-bg: rgb(55, 56, 62); + --border: rgb(51, 51, 51); + color-scheme: dark; +} + +.list { + background: var(--code-bg); +} + +[data-theme="dark"] .list { + background: var(--theme); +} diff --git a/themes/PaperMod/assets/css/core/zmedia.css b/themes/PaperMod/assets/css/core/zmedia.css new file mode 100644 index 0000000..6a3355e --- /dev/null +++ b/themes/PaperMod/assets/css/core/zmedia.css @@ -0,0 +1,55 @@ +@media screen and (max-width: 768px) { + /* theme-vars */ + :root { + --gap: 14px; + } + + /* profile-mode */ + .profile img { + transform: scale(0.85); + } + + /* post-entry */ + .first-entry { + min-height: 260px; + } + + /* archive */ + .archive-month { + flex-direction: column; + } + + .archive-year { + margin-top: 20px; + } + + /* footer */ + .footer { + padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap); + } +} + +/* footer */ +@media screen and (max-width: 900px) { + .list .top-link { + transform: translateY(-5rem); + } +} + +@media screen and (max-width: 340px) { + .share-buttons { + justify-content: unset; + } +} + +@media (prefers-reduced-motion) { + /* terms; profile-mode; post-single; post-entry; post-entry; search; search */ + .terms-tags a:active, + .button:active, + .post-entry:active, + .top-link, + .searchResults .focus, + .searchResults li:active { + transform: none; + } +} diff --git a/themes/PaperMod/assets/css/extended/blank.css b/themes/PaperMod/assets/css/extended/blank.css new file mode 100644 index 0000000..a577295 --- /dev/null +++ b/themes/PaperMod/assets/css/extended/blank.css @@ -0,0 +1,5 @@ +/* +This is just a placeholder blank stylesheet so as to support adding custom styles budled with theme's default styles + +Read https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#bundling-custom-css-with-themes-assets for more info +*/ diff --git a/themes/PaperMod/assets/css/includes/chroma-mod.css b/themes/PaperMod/assets/css/includes/chroma-mod.css new file mode 100644 index 0000000..ad89b96 --- /dev/null +++ b/themes/PaperMod/assets/css/includes/chroma-mod.css @@ -0,0 +1,24 @@ +.chroma { + background-color: unset !important; +} + +.chroma .hl { + display: flex; +} + +.chroma .lnt { + padding: 0 0 0 12px; +} + +.highlight pre.chroma code { + padding: 8px 0; +} + +.highlight pre.chroma .line .cl, +.chroma .ln { + padding: 0 10px; +} + +.chroma .lntd:last-of-type { + width: 100%; +} diff --git a/themes/PaperMod/assets/css/includes/chroma-styles.css b/themes/PaperMod/assets/css/includes/chroma-styles.css new file mode 100644 index 0000000..63a73ab --- /dev/null +++ b/themes/PaperMod/assets/css/includes/chroma-styles.css @@ -0,0 +1,86 @@ +/* Background */ .bg { color: #cad3f5; background-color: #24273a; } +/* PreWrapper */ .chroma { color: #cad3f5; background-color: #24273a; } +/* Other */ .chroma .x { } +/* Error */ .chroma .err { color: #ed8796 } +/* CodeLine */ .chroma .cl { } +/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } +/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } +/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } +/* LineHighlight */ .chroma .hl { background-color: #474733 } +/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 } +/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 } +/* Line */ .chroma .line { display: flex; } +/* Keyword */ .chroma .k { color: #c6a0f6 } +/* KeywordConstant */ .chroma .kc { color: #f5a97f } +/* KeywordDeclaration */ .chroma .kd { color: #ed8796 } +/* KeywordNamespace */ .chroma .kn { color: #8bd5ca } +/* KeywordPseudo */ .chroma .kp { color: #c6a0f6 } +/* KeywordReserved */ .chroma .kr { color: #c6a0f6 } +/* KeywordType */ .chroma .kt { color: #ed8796 } +/* Name */ .chroma .n { } +/* NameAttribute */ .chroma .na { color: #8aadf4 } +/* NameBuiltin */ .chroma .nb { color: #91d7e3 } +/* NameBuiltinPseudo */ .chroma .bp { color: #91d7e3 } +/* NameClass */ .chroma .nc { color: #eed49f } +/* NameConstant */ .chroma .no { color: #eed49f } +/* NameDecorator */ .chroma .nd { color: #8aadf4; font-weight: bold } +/* NameEntity */ .chroma .ni { color: #8bd5ca } +/* NameException */ .chroma .ne { color: #f5a97f } +/* NameFunction */ .chroma .nf { color: #8aadf4 } +/* NameFunctionMagic */ .chroma .fm { color: #8aadf4 } +/* NameLabel */ .chroma .nl { color: #91d7e3 } +/* NameNamespace */ .chroma .nn { color: #f5a97f } +/* NameOther */ .chroma .nx { } +/* NameProperty */ .chroma .py { color: #f5a97f } +/* NameTag */ .chroma .nt { color: #c6a0f6 } +/* NameVariable */ .chroma .nv { color: #f4dbd6 } +/* NameVariableClass */ .chroma .vc { color: #f4dbd6 } +/* NameVariableGlobal */ .chroma .vg { color: #f4dbd6 } +/* NameVariableInstance */ .chroma .vi { color: #f4dbd6 } +/* NameVariableMagic */ .chroma .vm { color: #f4dbd6 } +/* Literal */ .chroma .l { } +/* LiteralDate */ .chroma .ld { } +/* LiteralString */ .chroma .s { color: #a6da95 } +/* LiteralStringAffix */ .chroma .sa { color: #ed8796 } +/* LiteralStringBacktick */ .chroma .sb { color: #a6da95 } +/* LiteralStringChar */ .chroma .sc { color: #a6da95 } +/* LiteralStringDelimiter */ .chroma .dl { color: #8aadf4 } +/* LiteralStringDoc */ .chroma .sd { color: #6e738d } +/* LiteralStringDouble */ .chroma .s2 { color: #a6da95 } +/* LiteralStringEscape */ .chroma .se { color: #8aadf4 } +/* LiteralStringHeredoc */ .chroma .sh { color: #6e738d } +/* LiteralStringInterpol */ .chroma .si { color: #a6da95 } +/* LiteralStringOther */ .chroma .sx { color: #a6da95 } +/* LiteralStringRegex */ .chroma .sr { color: #8bd5ca } +/* LiteralStringSingle */ .chroma .s1 { color: #a6da95 } +/* LiteralStringSymbol */ .chroma .ss { color: #a6da95 } +/* LiteralNumber */ .chroma .m { color: #f5a97f } +/* LiteralNumberBin */ .chroma .mb { color: #f5a97f } +/* LiteralNumberFloat */ .chroma .mf { color: #f5a97f } +/* LiteralNumberHex */ .chroma .mh { color: #f5a97f } +/* LiteralNumberInteger */ .chroma .mi { color: #f5a97f } +/* LiteralNumberIntegerLong */ .chroma .il { color: #f5a97f } +/* LiteralNumberOct */ .chroma .mo { color: #f5a97f } +/* Operator */ .chroma .o { color: #91d7e3; font-weight: bold } +/* OperatorWord */ .chroma .ow { color: #91d7e3; font-weight: bold } +/* Punctuation */ .chroma .p { } +/* Comment */ .chroma .c { color: #6e738d; font-style: italic } +/* CommentHashbang */ .chroma .ch { color: #6e738d; font-style: italic } +/* CommentMultiline */ .chroma .cm { color: #6e738d; font-style: italic } +/* CommentSingle */ .chroma .c1 { color: #6e738d; font-style: italic } +/* CommentSpecial */ .chroma .cs { color: #6e738d; font-style: italic } +/* CommentPreproc */ .chroma .cp { color: #6e738d; font-style: italic } +/* CommentPreprocFile */ .chroma .cpf { color: #6e738d; font-weight: bold; font-style: italic } +/* Generic */ .chroma .g { } +/* GenericDeleted */ .chroma .gd { color: #ed8796; background-color: #363a4f } +/* GenericEmph */ .chroma .ge { font-style: italic } +/* GenericError */ .chroma .gr { color: #ed8796 } +/* GenericHeading */ .chroma .gh { color: #f5a97f; font-weight: bold } +/* GenericInserted */ .chroma .gi { color: #a6da95; background-color: #363a4f } +/* GenericOutput */ .chroma .go { } +/* GenericPrompt */ .chroma .gp { } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #f5a97f; font-weight: bold } +/* GenericTraceback */ .chroma .gt { color: #ed8796 } +/* GenericUnderline */ .chroma .gl { text-decoration: underline } +/* TextWhitespace */ .chroma .w { } diff --git a/themes/PaperMod/assets/js/fastsearch.js b/themes/PaperMod/assets/js/fastsearch.js new file mode 100644 index 0000000..cb4eabf --- /dev/null +++ b/themes/PaperMod/assets/js/fastsearch.js @@ -0,0 +1,194 @@ +import * as params from '@params'; + +const resList = document.getElementById('searchResults'); +const sInput = document.getElementById('searchInput'); +const searchBox = document.getElementById('searchbox'); + +let fuse; +let currentElement = null; +let firstResult = null; +let lastResult = null; + +const defaultFuseOptions = { + distance: 100, + threshold: 0.4, + ignoreLocation: true, + keys: ['title', 'permalink', 'summary', 'content'] +}; + +const buildFuseOptions = () => { + if (!params.fuseOpts) { + return defaultFuseOptions; + } + + return { + isCaseSensitive: params.fuseOpts.iscasesensitive ?? false, + includeScore: params.fuseOpts.includescore ?? false, + includeMatches: params.fuseOpts.includematches ?? false, + minMatchCharLength: params.fuseOpts.minmatchcharlength ?? 1, + shouldSort: params.fuseOpts.shouldsort ?? true, + findAllMatches: params.fuseOpts.findallmatches ?? false, + keys: params.fuseOpts.keys ?? defaultFuseOptions.keys, + location: params.fuseOpts.location ?? 0, + threshold: params.fuseOpts.threshold ?? defaultFuseOptions.threshold, + distance: params.fuseOpts.distance ?? defaultFuseOptions.distance, + ignoreLocation: params.fuseOpts.ignorelocation ?? defaultFuseOptions.ignoreLocation + }; +}; + +const debounce = (fn, delay) => { + let timeout; + return (...args) => { + clearTimeout(timeout); + timeout = window.setTimeout(() => fn(...args), delay); + }; +}; + +const reset = () => { + currentElement = null; + firstResult = null; + lastResult = null; + resList.innerHTML = ''; + sInput.value = ''; + sInput.focus(); +}; + +const setActiveResult = (element) => { + document.querySelectorAll('.focus').forEach((item) => item.classList.remove('focus')); + + if (!element) { + return; + } + + element.focus(); + element.parentElement?.classList.add('focus'); + currentElement = element; +}; + +const renderResults = (results) => { + if (!Array.isArray(results) || results.length === 0) { + resList.innerHTML = ''; + firstResult = lastResult = currentElement = null; + return; + } + + const fragment = document.createDocumentFragment(); + + for (const result of results) { + const li = document.createElement('li'); + const titleText = document.createTextNode(result.item.title); + const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.setAttribute('width', '24'); + svg.setAttribute('height', '24'); + svg.setAttribute('viewBox', '0 0 24 24'); + svg.setAttribute('fill', 'none'); + svg.setAttribute('stroke', 'currentColor'); + svg.setAttribute('stroke-width', '2'); + svg.setAttribute('stroke-linecap', 'round'); + svg.setAttribute('stroke-linejoin', 'round'); + svg.classList.add('feather', 'feather-chevrons-right'); + + svg.innerHTML = ''; + + const link = document.createElement('a'); + link.className = 'entry-link'; + link.href = result.item.permalink; + link.setAttribute('aria-label', result.item.title); + + li.appendChild(titleText); + li.appendChild(svg); + li.appendChild(link); + fragment.appendChild(li); + } + + resList.innerHTML = ''; + resList.appendChild(fragment); + firstResult = resList.firstElementChild; + lastResult = resList.lastElementChild; +}; + +const performSearch = () => { + if (!fuse) { + return; + } + + const query = sInput.value.trim(); + if (!query) { + renderResults([]); + return; + } + + const searchOptions = params.fuseOpts?.limit ? { limit: params.fuseOpts.limit } : undefined; + const results = searchOptions ? fuse.search(query, searchOptions) : fuse.search(query); + renderResults(results); +}; + +const initSearch = async () => { + if (!sInput || !resList) { + return; + } + + sInput.disabled = false; + sInput.focus(); + + try { + const response = await fetch('../index.json'); + if (!response.ok) { + throw new Error(`Search index load failed: ${response.status}`); + } + + const data = await response.json(); + if (data) { + fuse = new Fuse(data, buildFuseOptions()); + } + } catch (error) { + console.error(error); + } +}; + +window.addEventListener('load', initSearch); + +sInput?.addEventListener('input', debounce(performSearch, 150)); + +sInput?.addEventListener('search', () => { + if (!sInput.value) { + reset(); + } +}); + +document.addEventListener('keydown', (event) => { + const { key } = event; + const active = document.activeElement; + const isInSearchBox = searchBox?.contains(active); + + if (key === 'Escape') { + reset(); + return; + } + + if (!firstResult || !isInSearchBox) { + return; + } + + if (key === 'ArrowDown') { + event.preventDefault(); + + if (active === sInput) { + setActiveResult(firstResult.querySelector('.entry-link')); + } else if (active?.parentElement !== lastResult) { + setActiveResult(active?.parentElement?.nextElementSibling?.querySelector('.entry-link')); + } + } else if (key === 'ArrowUp') { + event.preventDefault(); + + if (active?.parentElement === firstResult) { + setActiveResult(sInput); + } else if (active !== sInput) { + setActiveResult(active?.parentElement?.previousElementSibling?.querySelector('.entry-link')); + } + } else if (key === 'ArrowRight') { + if (active?.matches?.('.entry-link')) { + active.click(); + } + } +}); diff --git a/themes/PaperMod/assets/js/fuse.basic.min.js b/themes/PaperMod/assets/js/fuse.basic.min.js new file mode 100644 index 0000000..7457721 --- /dev/null +++ b/themes/PaperMod/assets/js/fuse.basic.min.js @@ -0,0 +1,9 @@ +/** + * Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2023 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?O.getFn:n,o=t.fieldNormWeight,a=void 0===o?O.fieldNormWeight:o;r(this,e),this.norm=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(j).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),a=parseFloat(Math.round(o*r)/r);return n.set(i,a),a},clear:function(){n.clear()}}}(a,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,f(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();f(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?O.getFn:r,o=n.fieldNormWeight,a=void 0===o?O.fieldNormWeight:o,c=new A({getFn:i,fieldNormWeight:a});return c.setKeys(e.map(x)),c.setSources(t),c.create(),c}function I(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,a=t.expectedLocation,c=void 0===a?0:a,s=t.distance,h=void 0===s?O.distance:s,u=t.ignoreLocation,l=void 0===u?O.ignoreLocation:u,d=r/e.length;if(l)return d;var f=Math.abs(c-o);return h?d+f/h:f?1:d}var F=32;function C(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?O.location:i,a=r.distance,c=void 0===a?O.distance:a,s=r.threshold,h=void 0===s?O.threshold:s,u=r.findAllMatches,l=void 0===u?O.findAllMatches:u,d=r.minMatchCharLength,f=void 0===d?O.minMatchCharLength:d,v=r.includeMatches,g=void 0===v?O.includeMatches:v,y=r.ignoreLocation,p=void 0===y?O.ignoreLocation:y;if(t.length>F)throw new Error("Pattern length exceeds max of ".concat(F,"."));for(var m,b=t.length,k=e.length,M=Math.max(0,Math.min(o,k)),w=h,x=M,L=f>1||g,S=L?Array(k):[];(m=e.indexOf(t,x))>-1;){var _=I(t,{currentLocation:m,expectedLocation:M,distance:c,ignoreLocation:p});if(w=Math.min(_,w),x=m+b,L)for(var j=0;j=$;z-=1){var J=z-1,R=n[e.charAt(J)];if(L&&(S[J]=+!!R),K[z]=(K[z+1]<<1|1)&R,P&&(K[z]|=(A[z+1]|A[z])<<1|1|A[z+1]),K[z]&N&&(E=I(t,{errors:P,currentLocation:J,expectedLocation:M,distance:c,ignoreLocation:p}))<=w){if(w=E,(x=J)<=M)break;$=Math.max(1,2*M-x)}}if(I(t,{errors:P+1,currentLocation:M,expectedLocation:M,distance:c,ignoreLocation:p})>w)break;A=K}var U={isMatch:x>=0,score:Math.max(.001,E)};if(L){var B=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.minMatchCharLength,n=[],r=-1,i=-1,o=0,a=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}(S,f);B.length?g&&(U.indices=B):U.isMatch=!1}return U}function N(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,a=void 0===o?O.location:o,c=i.threshold,s=void 0===c?O.threshold:c,h=i.distance,u=void 0===h?O.distance:h,l=i.includeMatches,d=void 0===l?O.includeMatches:l,f=i.findAllMatches,v=void 0===f?O.findAllMatches:f,g=i.minMatchCharLength,y=void 0===g?O.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?O.isCaseSensitive:p,b=i.ignoreLocation,k=void 0===b?O.ignoreLocation:b;if(r(this,e),this.options={location:a,threshold:s,distance:u,includeMatches:d,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:k},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var M=function(e,t){n.chunks.push({pattern:e,alphabet:N(e),startIndex:t})},w=this.pattern.length;if(w>F){for(var x=0,L=w%F,S=w-L;x-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function D(e,t){t.score=e.score}var K=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if(r(this,e),this.options=t(t({},O),i),this.options.useExtendedSearch)throw new Error("Extended search is not available");this._keyStore=new w(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof A))throw new Error("Incorrect 'index' type");this._myIndex=t||E(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){y(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{}).limit,n=void 0===t?-1:t,r=this.options,i=r.includeMatches,o=r.includeScore,a=r.shouldSort,c=r.sortFn,s=r.ignoreFieldNorm,h=f(e)?f(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return function(e,t){var n=t.ignoreFieldNorm,r=void 0===n?O.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,o=e.score,a=n?n.weight:null;t*=Math.pow(0===o&&a?Number.EPSILON:o,(a||1)*(r?1:i))})),e.score=t}))}(h,{ignoreFieldNorm:s}),a&&h.sort(c),v(n)&&n>-1&&(h=h.slice(0,n)),function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?O.includeMatches:r,o=n.includeScore,a=void 0===o?O.includeScore:o,c=[];return i&&c.push($),a&&c.push(D),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return c.length&&c.forEach((function(t){t(e,r)})),r}))}(h,this._docs,{includeMatches:i,includeScore:o})}},{key:"_searchStringList",value:function(e){var t=T(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(y(n)){var a=t.searchIn(n),c=a.isMatch,s=a.score,h=a.indices;c&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:h}]})}})),r}},{key:"_searchLogical",value:function(e){throw new Error("Logical search is not available")}},{key:"_searchObjectList",value:function(e){var t=this,n=T(e,this.options),r=this._myIndex,i=r.keys,o=r.records,a=[];return o.forEach((function(e){var r=e.$,o=e.i;if(y(r)){var s=[];i.forEach((function(e,i){s.push.apply(s,c(t._findMatches({key:e,value:r[i],searcher:n})))})),s.length&&a.push({idx:o,item:r,matches:s})}})),a}},{key:"_findMatches",value:function(e){var t=e.key,n=e.value,r=e.searcher;if(!y(n))return[];var i=[];if(u(n))n.forEach((function(e){var n=e.v,o=e.i,a=e.n;if(y(n)){var c=r.searchIn(n),s=c.isMatch,h=c.score,u=c.indices;s&&i.push({score:h,key:t,value:n,idx:o,norm:a,indices:u})}}));else{var o=n.v,a=n.n,c=r.searchIn(o),s=c.isMatch,h=c.score,l=c.indices;s&&i.push({score:h,key:t,value:o,norm:a,indices:l})}return i}}]),e}();return K.version="7.0.0",K.createIndex=E,K.parseIndex=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?O.getFn:n,i=t.fieldNormWeight,o=void 0===i?O.fieldNormWeight:i,a=e.keys,c=e.records,s=new A({getFn:r,fieldNormWeight:o});return s.setKeys(a),s.setIndexRecords(c),s},K.config=O,K},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); \ No newline at end of file diff --git a/themes/PaperMod/assets/js/license.js b/themes/PaperMod/assets/js/license.js new file mode 100644 index 0000000..1bc9fbf --- /dev/null +++ b/themes/PaperMod/assets/js/license.js @@ -0,0 +1,6 @@ +/* + PaperMod v8+ + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2026 adityatelange +*/ diff --git a/themes/PaperMod/go.mod b/themes/PaperMod/go.mod new file mode 100644 index 0000000..4a79471 --- /dev/null +++ b/themes/PaperMod/go.mod @@ -0,0 +1,3 @@ +module github.com/adityatelange/hugo-PaperMod + +go 1.16 diff --git a/themes/PaperMod/i18n/ar.yaml b/themes/PaperMod/i18n/ar.yaml new file mode 100644 index 0000000..52990c2 --- /dev/null +++ b/themes/PaperMod/i18n/ar.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "السابق" + +- id: next_page + translation: "التالي" + +- id: read_time + translation: + one: "دقيقة واحدة" + two: "دقيقتان" + few: "بضع ثوان" + zero: "الآن" + other: "دقائق {{ .Count }}" + +- id: toc + translation: "فهرس المحتوى" + +- id: translations + translation: "ترجمات أخرى" + +- id: home + translation: "الصفحة الرئيسية" + +- id: code_copied + translation: "تم النسخ!" + +- id: code_copy + translation: "نسخ الكود" diff --git a/themes/PaperMod/i18n/be.yaml b/themes/PaperMod/i18n/be.yaml new file mode 100644 index 0000000..22902ab --- /dev/null +++ b/themes/PaperMod/i18n/be.yaml @@ -0,0 +1,39 @@ +- id: prev_page + translation: "Папярэдняя" + +- id: next_page + translation: "Наступная" + +- id: read_time + translation: + zero: "0 хвілін" + one: "1 хвіліна" + few: "{{ .Count }} хвіліны" + many: "{{ .Count }} хвілін" + other: "{{ .Count }} хвілін" + +- id: words + translation: + zero: "няма слоў" + one: "1 слова" + few: "{{ .Count }} слова" + many: "{{ .Count }} слоў" + other: "{{ .Count }} слова" + +- id: toc + translation: "Змест" + +- id: translations + translation: "Пераклады" + +- id: home + translation: "Галоўная" + +- id: edit_post + translation: "Рэдагаваць" + +- id: code_copy + translation: "капіяваць" + +- id: code_copied + translation: "скапіявана!" diff --git a/themes/PaperMod/i18n/bg.yaml b/themes/PaperMod/i18n/bg.yaml new file mode 100644 index 0000000..1e314af --- /dev/null +++ b/themes/PaperMod/i18n/bg.yaml @@ -0,0 +1,16 @@ +- id: prev_page + translation: "Предишна страница" + +- id: next_page + translation: "Следваща страница" + +- id: read_time + translation: + one : "1 мин" + other: "{{ .Count }} мин" + +- id: toc + translation: "Съдържание" + +- id: translations + translation: "Преводи" diff --git a/themes/PaperMod/i18n/bn.yaml b/themes/PaperMod/i18n/bn.yaml new file mode 100644 index 0000000..f42780f --- /dev/null +++ b/themes/PaperMod/i18n/bn.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "পূর্ববর্তী" + +- id: next_page + translation: "পরবর্তী" + +- id: read_time + translation: + one : "১ মিনিট" + other: "{{ .Count }} মিনিট" + +- id: words + translation: + one : "১ টি শব্দ" + other: "{{ .Count }} টি শব্দ" + +- id: toc + translation: "সূচিপত্র" + +- id: translations + translation: "অনুবাদসমূহ" + +- id: home + translation: "হোম" + +- id: edit_post + translation: "সম্পাদনা করুন" + +- id: code_copy + translation: "কপি করুন" + +- id: code_copied + translation: "কপি হয়েছে!" diff --git a/themes/PaperMod/i18n/ca.yaml b/themes/PaperMod/i18n/ca.yaml new file mode 100644 index 0000000..f2b2e35 --- /dev/null +++ b/themes/PaperMod/i18n/ca.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Pàgina anterior" + +- id: next_page + translation: "Pàgina següent" + +- id: read_time + translation: + one : "1 minut" + other: "{{ .Count }} minuts" + +- id: words + translation: + one : "paraula" + other: "{{ .Count }} paraules" + +- id: toc + translation: "Taula de Continguts" + +- id: translations + translation: "Traduccions" + +- id: home + translation: "Inici" + +- id: edit_post + translation: "Editar" + +- id: code_copy + translation: "copiar" + +- id: code_copied + translation: "copiat!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/ckb.yaml b/themes/PaperMod/i18n/ckb.yaml new file mode 100644 index 0000000..25789d1 --- /dev/null +++ b/themes/PaperMod/i18n/ckb.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "پەڕەی پێشتر" + +- id: next_page + translation: "پەڕەی دواتر" + +- id: read_time + translation: + one : "1 خولەک" + other: "{{ .Count }} خولەک" + +- id: toc + translation: "پێڕست" + +- id: translations + translation: "وەرگێڕانەکان" + +- id: home + translation: "ماڵەوە" + +- id: code_copy + translation: "لەبەری بگرەوە" + +- id: code_copied + translation: "لەبەر گیرایەوە!" diff --git a/themes/PaperMod/i18n/cs.yaml b/themes/PaperMod/i18n/cs.yaml new file mode 100644 index 0000000..058c3a1 --- /dev/null +++ b/themes/PaperMod/i18n/cs.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Předchozí" + +- id: next_page + translation: "Další" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "slovo" + other: "{{ .Count }} slov" + +- id: toc + translation: "Obsah" + +- id: translations + translation: "Překlady" + +- id: home + translation: "Domů" + +- id: edit_post + translation: "Upravit" + +- id: code_copy + translation: "kopírovat" + +- id: code_copied + translation: "zkopírováno!" diff --git a/themes/PaperMod/i18n/da.yaml b/themes/PaperMod/i18n/da.yaml new file mode 100644 index 0000000..03b0abe --- /dev/null +++ b/themes/PaperMod/i18n/da.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "Forrige Side" + +- id: next_page + translation: "Næste Side" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: toc + translation: "Indholdsfortegnelse" + +- id: translations + translation: "Oversættelser" + +- id: home + translation: "Start" + +- id: edit_post + translation: "Rediger" + +- id: code_copy + translation: "kopier" + +- id: code_copied + translation: "kopieret!" diff --git a/themes/PaperMod/i18n/de.yaml b/themes/PaperMod/i18n/de.yaml new file mode 100644 index 0000000..f64aad9 --- /dev/null +++ b/themes/PaperMod/i18n/de.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Vorherige" + +- id: next_page + translation: "Nächste" + +- id: read_time + translation: + one: "1 Minute" + other: "{{ .Count }} Minuten" + +- id: words + translation: + one : "Wort" + other: "{{ .Count }} Wörter" + +- id: toc + translation: "Inhaltsverzeichnis" + +- id: translations + translation: "Übersetzungen" + +- id: home + translation: "Home" + +- id: edit_post + translation: "Bearbeiten" + +- id: code_copy + translation: "Kopieren" + +- id: code_copied + translation: "Kopiert!" diff --git a/themes/PaperMod/i18n/el.yaml b/themes/PaperMod/i18n/el.yaml new file mode 100644 index 0000000..4257bac --- /dev/null +++ b/themes/PaperMod/i18n/el.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Προηγούμενο" + +- id: next_page + translation: "Επόμενο" + +- id: read_time + translation: + one: "1 λεπτό" + other: "{{ .Count }} λεπτά" + +- id: words + translation: + one: "λέξη" + other: "{{ .Count }} λέξεις" + +- id: toc + translation: "Πίνακας Περιεχομένων" + +- id: translations + translation: "Μεταφράσεις" + +- id: home + translation: "Αρχική" + +- id: edit_post + translation: "Επεξεργασία" + +- id: code_copy + translation: "αντιγραφή" + +- id: code_copied + translation: "αντιγράφηκε!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/en.yaml b/themes/PaperMod/i18n/en.yaml new file mode 100644 index 0000000..3a1e215 --- /dev/null +++ b/themes/PaperMod/i18n/en.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Prev" + +- id: next_page + translation: "Next" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "word" + other: "{{ .Count }} words" + +- id: toc + translation: "Table of Contents" + +- id: translations + translation: "Translations" + +- id: home + translation: "Home" + +- id: edit_post + translation: "Edit" + +- id: code_copy + translation: "copy" + +- id: code_copied + translation: "copied!" diff --git a/themes/PaperMod/i18n/eo.yaml b/themes/PaperMod/i18n/eo.yaml new file mode 100644 index 0000000..de5d744 --- /dev/null +++ b/themes/PaperMod/i18n/eo.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "antaŭa paĝo" + +- id: next_page + translation: "sekva paĝo" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: toc + translation: "Enhavo" + +- id: translations + translation: "tradukoj" + +- id: home + translation: "ĉefpaĝo" + +- id: code_copy + translation: "kopii" + +- id: code_copied + translation: "kopiite!" diff --git a/themes/PaperMod/i18n/es.yaml b/themes/PaperMod/i18n/es.yaml new file mode 100644 index 0000000..52a559c --- /dev/null +++ b/themes/PaperMod/i18n/es.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Anterior" + +- id: next_page + translation: "Siguiente" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "palabra" + other: "{{ .Count }} palabras" + +- id: toc + translation: "Tabla de Contenidos" + +- id: translations + translation: "Traducciones" + +- id: home + translation: "Inicio" + +- id: edit_post + translation: "Editar" + +- id: code_copy + translation: "copiar" + +- id: code_copied + translation: "¡copiado!" diff --git a/themes/PaperMod/i18n/fa.yaml b/themes/PaperMod/i18n/fa.yaml new file mode 100644 index 0000000..3fd5927 --- /dev/null +++ b/themes/PaperMod/i18n/fa.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "صفحه قبلی" + +- id: next_page + translation: "صفحه بعدی" + +- id: read_time + translation: + one: "۱ دقیقه" + other: "{{ .Count }} دقیقه" + +- id: toc + translation: "فهرست مطالب" + +- id: translations + translation: "ترجمه ها" + +- id: home + translation: "خانه" + +- id: edit_post + translation: "ویرایش" + +- id: code_copy + translation: "کپی" + +- id: code_copied + translation: "کپی شد!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/fi.yaml b/themes/PaperMod/i18n/fi.yaml new file mode 100644 index 0000000..cbbf3c4 --- /dev/null +++ b/themes/PaperMod/i18n/fi.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Edellinen" + +- id: next_page + translation: "Seuraava" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} minuuttia" + +- id: words + translation: + one : "sana" + other: "{{ .Count }} sanaa" + +- id: toc + translation: "Sisällysluettelo" + +- id: translations + translation: "Käännökset" + +- id: home + translation: "Etusivu" + +- id: edit_post + translation: "Muokkaa" + +- id: code_copy + translation: "Kopioi" + +- id: code_copied + translation: "Kopioitu!" diff --git a/themes/PaperMod/i18n/fr.yaml b/themes/PaperMod/i18n/fr.yaml new file mode 100644 index 0000000..e48d8e9 --- /dev/null +++ b/themes/PaperMod/i18n/fr.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Précédent" + +- id: next_page + translation: "Suivant" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "mot" + other: "{{ .Count }} mots" + +- id: toc + translation: "Table des matières" + +- id: translations + translation: "Traductions" + +- id: home + translation: "Accueil" + +- id: edit_post + translation: "Modifier" + +- id: code_copy + translation: "Copier" + +- id: code_copied + translation: "Copié !" diff --git a/themes/PaperMod/i18n/he.yaml b/themes/PaperMod/i18n/he.yaml new file mode 100644 index 0000000..30c3e74 --- /dev/null +++ b/themes/PaperMod/i18n/he.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "הקודם" + +- id: next_page + translation: "הבא" + +- id: read_time + translation: + one: "דקה אחת" + other: "{{ .Count }} דקות" + +- id: words + translation: + one: "מילה אחת" + other: "{{ .Count }} מילים" + +- id: toc + translation: "תוכן עניינים" + +- id: translations + translation: "תרגומים" + +- id: home + translation: "בית" + +- id: edit_post + translation: "ערוך" + +- id: code_copy + translation: "העתק" + +- id: code_copied + translation: "הועתק!" diff --git a/themes/PaperMod/i18n/hi.yaml b/themes/PaperMod/i18n/hi.yaml new file mode 100644 index 0000000..681efdc --- /dev/null +++ b/themes/PaperMod/i18n/hi.yaml @@ -0,0 +1,19 @@ +- id: prev_page + translation: "पिछला" + +- id: next_page + translation: "अगला" + +- id: read_time + translation: + one : "एक मिनट" + other: "{{ .Count }} मिनट" + +- id: edit_post + translation: "सुधारें" + +- id: toc + translation: "विषय - सूची" + +- id: translations + translation: "अनुवाद" diff --git a/themes/PaperMod/i18n/hr.yaml b/themes/PaperMod/i18n/hr.yaml new file mode 100644 index 0000000..2f2d228 --- /dev/null +++ b/themes/PaperMod/i18n/hr.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Prethodna stranica" + +- id: next_page + translation: "Sljedeća stranica" + +- id: read_time + translation: + one : "1 minuta" + other: "{{ .Count }} minute" + +- id: words + translation: + one : "riječ" + other: "{{ .Count }} riječi" + +- id: toc + translation: "Tablica Sadržaja" + +- id: translations + translation: "Prijevodi" + +- id: home + translation: "Početna stranica" + +- id: edit_post + translation: "Promjeni" + +- id: code_copy + translation: "kopiraj" + +- id: code_copied + translation: "kopirano!" diff --git a/themes/PaperMod/i18n/hu.yaml b/themes/PaperMod/i18n/hu.yaml new file mode 100644 index 0000000..a039dda --- /dev/null +++ b/themes/PaperMod/i18n/hu.yaml @@ -0,0 +1,16 @@ +- id: prev_page + translation: "Előző oldal" + +- id: next_page + translation: "Következő oldal" + +- id: read_time + translation: + one: "1 perc" + other: "{{ .Count }} perc" + +- id: toc + translation: "Tartalomjegyzék" + +- id: translations + translation: "Fordítások" diff --git a/themes/PaperMod/i18n/id.yaml b/themes/PaperMod/i18n/id.yaml new file mode 100644 index 0000000..93d34f5 --- /dev/null +++ b/themes/PaperMod/i18n/id.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Sebelumnya" + +- id: next_page + translation: "Selanjutnya" + +- id: read_time + translation: + one : "1 menit" + other: "{{ .Count }} menit" + +- id: words + translation: + one : "kata" + other: "{{ .Count }} kata" + +- id: toc + translation: "Daftar isi" + +- id: translations + translation: "Terjemahan" + +- id: home + translation: "Beranda" + +- id: edit_post + translation: "Sunting" + +- id: code_copy + translation: "salin" + +- id: code_copied + translation: "disalin!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/it.yaml b/themes/PaperMod/i18n/it.yaml new file mode 100644 index 0000000..c87c95d --- /dev/null +++ b/themes/PaperMod/i18n/it.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Precedente" + +- id: next_page + translation: "Successivo" + +- id: read_time + translation: + one: "1 minuto" + other: "{{ .Count }} minuti" + +- id: words + translation: + one : "parola" + other: "{{ .Count }} parole" + +- id: toc + translation: "Indice contenuti" + +- id: translations + translation: "Traduzioni" + +- id: home + translation: "Home" + +- id: edit_post + translation: "Modifica" + +- id: code_copy + translation: "copia" + +- id: code_copied + translation: "copiato!" diff --git a/themes/PaperMod/i18n/ja.yaml b/themes/PaperMod/i18n/ja.yaml new file mode 100644 index 0000000..93948d3 --- /dev/null +++ b/themes/PaperMod/i18n/ja.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "前へ" + +- id: next_page + translation: "次へ" + +- id: read_time + translation: + one : "1 分" + other: "{{ .Count }} 分" + +- id: words + translation: + one: "文字" + other: "{{ .Count }} 文字" + +- id: toc + translation: "目次" + +- id: translations + translation: "言語" + +- id: home + translation: "ホーム" + +- id: edit_post + translation: "編集" + +- id: code_copy + translation: "コピー" + +- id: code_copied + translation: "コピーされました!" diff --git a/themes/PaperMod/i18n/ko.yaml b/themes/PaperMod/i18n/ko.yaml new file mode 100644 index 0000000..777dd93 --- /dev/null +++ b/themes/PaperMod/i18n/ko.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "이전 페이지" + +- id: next_page + translation: "다음 페이지" + +- id: read_time + translation: + one : "1 분" + other: "{{ .Count }} 분" + +- id: words + translation: + one : "단어" + other: "{{ .Count }} 단어" + +- id: toc + translation: "목차" + +- id: translations + translation: "번역" + +- id: home + translation: "홈" + +- id: edit_post + translation: "편집" + +- id: code_copy + translation: "복사" + +- id: code_copied + translation: "복사 완료!" diff --git a/themes/PaperMod/i18n/ku.yaml b/themes/PaperMod/i18n/ku.yaml new file mode 100644 index 0000000..d1d30a5 --- /dev/null +++ b/themes/PaperMod/i18n/ku.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "Rûpela Paş" + +- id: next_page + translation: "Rûpela Pêş" + +- id: read_time + translation: + one : "1 xulek" + other: "{{ .Count }} xulek" + +- id: toc + translation: "Pêrist" + +- id: translations + translation: "Wergeran" + +- id: home + translation: "Xanî" + +- id: code_copy + translation: "Jê bigire" + +- id: code_copied + translation: "Hat jêgirtin!" diff --git a/themes/PaperMod/i18n/mn.yaml b/themes/PaperMod/i18n/mn.yaml new file mode 100644 index 0000000..dbce2ce --- /dev/null +++ b/themes/PaperMod/i18n/mn.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "Ѳмнѳх" + +- id: next_page + translation: "Дараах" + +- id: read_time + translation: + one : "1 МИН" + other: "{{ .Count }} МИН" + +- id: toc + translation: "Агуулга" + +- id: translations + translation: "Орчуулга" + +- id: home + translation: "Нүүр" + +- id: code_copy + translation: "хуулах" + +- id: code_copied + translation: "хуулсан!" diff --git a/themes/PaperMod/i18n/ms.yaml b/themes/PaperMod/i18n/ms.yaml new file mode 100644 index 0000000..d8a9eff --- /dev/null +++ b/themes/PaperMod/i18n/ms.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "Halaman Sebelumnya" + +- id: next_page + translation: "Halaman Seterusnya" + +- id: read_time + translation: + one: "1 minit" + other: "{{ .Count }} minit" + +- id: toc + translation: "Isi Kandungan" + +- id: translations + translation: "Terjemahan" + +- id: home + translation: "Home" + +- id: edit_post + translation: "Sunting" + +- id: code_copy + translation: "Salin" + +- id: code_copied + translation: "Disalin!" diff --git a/themes/PaperMod/i18n/nl.yaml b/themes/PaperMod/i18n/nl.yaml new file mode 100644 index 0000000..e9d06fa --- /dev/null +++ b/themes/PaperMod/i18n/nl.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Vorige" + +- id: next_page + translation: "Volgende" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "woord" + other: "{{ .Count }} woorden" + +- id: toc + translation: "Inhoudsopgave" + +- id: translations + translation: "Vertalingen" + +- id: home + translation: "Startpagina" + +- id: edit_post + translation: "Bewerk" + +- id: code_copy + translation: "kopieer" + +- id: code_copied + translation: "gekopieerd!" diff --git a/themes/PaperMod/i18n/no.yaml b/themes/PaperMod/i18n/no.yaml new file mode 100644 index 0000000..2400348 --- /dev/null +++ b/themes/PaperMod/i18n/no.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Forrige Side" + +- id: next_page + translation: "Neste Side" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one: "ord" + other: "{{ .Count }} ord" + +- id: toc + translation: "Innholdsfortegnelse" + +- id: translations + translation: "Oversettelser" + +- id: home + translation: "Hjem" + +- id: edit_post + translation: "Rediger" + +- id: code_copy + translation: "Kopier" + +- id: code_copied + translation: "Kopiert!" diff --git a/themes/PaperMod/i18n/oc.yaml b/themes/PaperMod/i18n/oc.yaml new file mode 100644 index 0000000..9292fd8 --- /dev/null +++ b/themes/PaperMod/i18n/oc.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Prec." + +- id: next_page + translation: "Seg." + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "mot" + other: "{{ .Count }} motss" + +- id: toc + translation: "Taula de contengut" + +- id: translations + translation: "Traduccions" + +- id: home + translation: "Acuèlh" + +- id: edit_post + translation: "Modificar" + +- id: code_copy + translation: "copiar" + +- id: code_copied + translation: "copiat !" diff --git a/themes/PaperMod/i18n/pa.yaml b/themes/PaperMod/i18n/pa.yaml new file mode 100644 index 0000000..32192c5 --- /dev/null +++ b/themes/PaperMod/i18n/pa.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "ਪਿਛਲਾ" + +- id: next_page + translation: "ਅਗਲਾ" + +- id: read_time + translation: + one: "1 ਮਿੰਟ" + other: "{{ .Count }} ਮਿੰਟ" + +- id: words + translation: + one: "ਸ਼ਬਦ" + other: "{{ .Count }} ਸ਼ਬਦ" + +- id: toc + translation: "ਤਤਕਰਾ" + +- id: translations + translation: "ਅਨੁਵਾਦ" + +- id: home + translation: "ਘਰ" + +- id: edit_post + translation: "ਸੋਧ" + +- id: code_copy + translation: "ਕਾਪੀ" + +- id: code_copied + translation: "ਕਾਪੀ ਕੀਤੀ ਗਈ!!" diff --git a/themes/PaperMod/i18n/pl.yaml b/themes/PaperMod/i18n/pl.yaml new file mode 100644 index 0000000..81b0e77 --- /dev/null +++ b/themes/PaperMod/i18n/pl.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Poprzednia" + +- id: next_page + translation: "Następna" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "słowo" + other: "{{ .Count }} słów" + +- id: toc + translation: "Spis treści" + +- id: translations + translation: "Tłumaczenia" + +- id: home + translation: "Strona Główna" + +- id: edit_post + translation: "Edytuj" + +- id: code_copy + translation: "Kopiuj" + +- id: code_copied + translation: "Skopiowano!" diff --git a/themes/PaperMod/i18n/pnb.yaml b/themes/PaperMod/i18n/pnb.yaml new file mode 100644 index 0000000..fa2f8a8 --- /dev/null +++ b/themes/PaperMod/i18n/pnb.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "پِچھلا" + +- id: next_page + translation: "اگلا" + +- id: read_time + translation: + one: "ایک منٹ" + other: "مِنٹ {{ .Count }}" + +- id: words + translation: + one: "لفظ" + other: "لفظ {{ .Count }}" + +- id: toc + translation: "تتکرا" + +- id: translations + translation: "انوواد" + +- id: home + translation: "گھر" + +- id: edit_post + translation: "سودھ" + +- id: code_copy + translation: "کاپی" + +- id: code_copied + translation: "کاپی کیتی گئی!" diff --git a/themes/PaperMod/i18n/pt.yaml b/themes/PaperMod/i18n/pt.yaml new file mode 100644 index 0000000..ab06429 --- /dev/null +++ b/themes/PaperMod/i18n/pt.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Página Anterior" + +- id: next_page + translation: "Próxima Página" + +- id: read_time + translation: + one: "1 minuto" + other: "{{ .Count }} minutos" + +- id: words + translation: + one : "palavra" + other: "{{ .Count }} palavras" + +- id: toc + translation: "Conteúdo" + +- id: translations + translation: "Traduções" + +- id: home + translation: "Início" + +- id: edit_post + translation: "Editar" + +- id: code_copy + translation: "copiar" + +- id: code_copied + translation: "copiado!" diff --git a/themes/PaperMod/i18n/ro.yaml b/themes/PaperMod/i18n/ro.yaml new file mode 100644 index 0000000..694f20b --- /dev/null +++ b/themes/PaperMod/i18n/ro.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Înapoi" + +- id: next_page + translation: "Înainte" + +- id: read_time + translation: + one : "1 minut" + other: "{{ .Count }} minute" + +- id: words + translation: + one : "cuvânt" + other: "{{ .Count }} cuvinte" + +- id: toc + translation: "Sumar" + +- id: translations + translation: "Traduceri" + +- id: home + translation: "Acasă" + +- id: edit_post + translation: "Editează" + +- id: code_copy + translation: "copiază" + +- id: code_copied + translation: "copiat!" diff --git a/themes/PaperMod/i18n/ru.yaml b/themes/PaperMod/i18n/ru.yaml new file mode 100644 index 0000000..a5dbb5c --- /dev/null +++ b/themes/PaperMod/i18n/ru.yaml @@ -0,0 +1,39 @@ +- id: prev_page + translation: "Предыдущая" + +- id: next_page + translation: "Следующая" + +- id: read_time + translation: + zero: "0 минут" + one: "1 минута" + few: "{{ .Count }} минуты" + many: "{{ .Count }} минут" + other: "{{ .Count }} минута" + +- id: words + translation: + zero: "0 слов" + one: "1 слово" + few: "{{ .Count }} слова" + many: "{{ .Count }} слов" + other: "{{ .Count }} слово" + +- id: toc + translation: "Оглавление" + +- id: translations + translation: "Переводы" + +- id: home + translation: "Главная" + +- id: edit_post + translation: "Редактировать" + +- id: code_copy + translation: "копировать" + +- id: code_copied + translation: "скопировано!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/sk.yaml b/themes/PaperMod/i18n/sk.yaml new file mode 100644 index 0000000..f129d37 --- /dev/null +++ b/themes/PaperMod/i18n/sk.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Predch" + +- id: next_page + translation: "Ďaľší" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "slovo" + other: "{{ .Count }} slov" + +- id: toc + translation: "Obsah" + +- id: translations + translation: "Preklady" + +- id: home + translation: "Domov" + +- id: edit_post + translation: "Upraviť" + +- id: code_copy + translation: "kopírovať" + +- id: code_copied + translation: "skopírované!" diff --git a/themes/PaperMod/i18n/sv.yaml b/themes/PaperMod/i18n/sv.yaml new file mode 100644 index 0000000..65ce422 --- /dev/null +++ b/themes/PaperMod/i18n/sv.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "Förra Sidan" + +- id: next_page + translation: "Nästa Sida" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: toc + translation: "Innehållsförteckning" + +- id: translations + translation: "Översättningar" + +- id: home + translation: "Hem" + +- id: edit_post + translation: "Redigera" + +- id: code_copy + translation: "kopiera" + +- id: code_copied + translation: "kopierad!" diff --git a/themes/PaperMod/i18n/sw.yaml b/themes/PaperMod/i18n/sw.yaml new file mode 100644 index 0000000..5fceb1a --- /dev/null +++ b/themes/PaperMod/i18n/sw.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Uliopita" + +- id: next_page + translation: "Ujao" + +- id: read_time + translation: + one : "dakika 1" + other: "dakika {{ .Count }}" + +- id: words + translation: + one : "neno" + other: "maneno {{ .Count }}" + +- id: toc + translation: "Jedwali la Yaliyomo" + +- id: translations + translation: "Tafsiri" + +- id: home + translation: "Mwanzo" + +- id: edit_post + translation: "Hariri" + +- id: code_copy + translation: "nakili" + +- id: code_copied + translation: "nakiliwa!" diff --git a/themes/PaperMod/i18n/th.yaml b/themes/PaperMod/i18n/th.yaml new file mode 100644 index 0000000..d8036ae --- /dev/null +++ b/themes/PaperMod/i18n/th.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "ก่อนหน้า" + +- id: next_page + translation: "ถัดไป" + +- id: read_time + translation: + one : "1 นาที" + other: "{{ .Count }} นาที" + +- id: words + translation: + one : "คำ" + other: "{{ .Count }} คำ" + +- id: toc + translation: "สารบัญ" + +- id: translations + translation: "การแปล" + +- id: home + translation: "หน้าหลัก" + +- id: edit_post + translation: "แก้ไข" + +- id: code_copy + translation: "คัดลอก" + +- id: code_copied + translation: "คัดลอกแล้ว!" diff --git a/themes/PaperMod/i18n/tr.yaml b/themes/PaperMod/i18n/tr.yaml new file mode 100644 index 0000000..b014a15 --- /dev/null +++ b/themes/PaperMod/i18n/tr.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Önceki" + +- id: next_page + translation: "Sonraki" + +- id: read_time + translation: + one : "1 dk" + other: "{{ .Count }} dk" + +- id: words + translation: + one : "sözcük" + other: "{{ .Count }} sözcük" + +- id: toc + translation: "İçindekiler" + +- id: translations + translation: "Çeviriler" + +- id: home + translation: "Ana Sayfa" + +- id: edit_post + translation: "Düzenle" + +- id: code_copy + translation: "Kopyala" + +- id: code_copied + translation: "Kopyalandı!" diff --git a/themes/PaperMod/i18n/uk.yaml b/themes/PaperMod/i18n/uk.yaml new file mode 100644 index 0000000..41be964 --- /dev/null +++ b/themes/PaperMod/i18n/uk.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "Попередня" + +- id: next_page + translation: "Наступна" + +- id: read_time + translation: + one : "1 хвилина" + other: "{{ .Count }} хвилин" + +- id: toc + translation: "Зміст" + +- id: translations + translation: "Переклади" + +- id: home + translation: "Головна" + +- id: code_copy + translation: "копіювати" + +- id: code_copied + translation: "скопійовано!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/uz.yaml b/themes/PaperMod/i18n/uz.yaml new file mode 100644 index 0000000..c9f2375 --- /dev/null +++ b/themes/PaperMod/i18n/uz.yaml @@ -0,0 +1,20 @@ +- id: prev_page + translation: "Oldingi sahifa" + +- id: next_page + translation: "Keyingi sahifa" + +- id: read_time + translation: + one : "Bir daqiqa" + other: "{{ .Count }} daqiqa" + +- id: toc + translation: "Mundarija" + +- id: translations + translation: "Tarjimalar" + +- id: home + translation: "Bosh sahifa" + diff --git a/themes/PaperMod/i18n/vi.yaml b/themes/PaperMod/i18n/vi.yaml new file mode 100644 index 0000000..2eb05d0 --- /dev/null +++ b/themes/PaperMod/i18n/vi.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Trang trước" + +- id: next_page + translation: "Trang tiếp theo" + +- id: read_time + translation: + one: "1 phút" + other: "{{ .Count }} phút" + +- id: words + translation: + one: "từ" + other: "{{ .Count }} từ" + +- id: toc + translation: "Mục lục" + +- id: translations + translation: "Bản dịch" + +- id: home + translation: "Trang chủ" + +- id: edit_post + translation: "Chỉnh sửa" + +- id: code_copy + translation: "Sao chép" + +- id: code_copied + translation: "Đã sao chép!" diff --git a/themes/PaperMod/i18n/zh-tw.yaml b/themes/PaperMod/i18n/zh-tw.yaml new file mode 100644 index 0000000..48b84d2 --- /dev/null +++ b/themes/PaperMod/i18n/zh-tw.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "上一頁" + +- id: next_page + translation: "下一頁" + +- id: read_time + translation: + one : "1 分鐘" + other: "{{ .Count }} 分鐘" + +- id: words + translation: + one: "字" + other: "{{ .Count }} 字" + +- id: toc + translation: "目錄" + +- id: translations + translation: "語言" + +- id: home + translation: "首頁" + +- id: edit_post + translation: "編輯" + +- id: code_copy + translation: "複製" + +- id: code_copied + translation: "已複製!" diff --git a/themes/PaperMod/i18n/zh.yaml b/themes/PaperMod/i18n/zh.yaml new file mode 100644 index 0000000..0280425 --- /dev/null +++ b/themes/PaperMod/i18n/zh.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "上一页" + +- id: next_page + translation: "下一页" + +- id: read_time + translation: + one : "1 分钟" + other: "{{ .Count }} 分钟" + +- id: words + translation: + one: "字" + other: "{{ .Count }} 字" + +- id: toc + translation: "目录" + +- id: translations + translation: "语言" + +- id: home + translation: "主页" + +- id: edit_post + translation: "编辑" + +- id: code_copy + translation: "复制" + +- id: code_copied + translation: "已复制!" diff --git a/themes/PaperMod/images/screenshot.png b/themes/PaperMod/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..a37c485abef2bfce648503d110b7b580da91325c GIT binary patch literal 141511 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 SaWs{<2jwqAA`-!=U&yzL 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%0AE_#}$`j!6qjR9< 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 +{{- end }}{{/* end main */ -}} diff --git a/themes/PaperMod/layouts/_markup/render-image.html b/themes/PaperMod/layouts/_markup/render-image.html new file mode 100644 index 0000000..f368ff8 --- /dev/null +++ b/themes/PaperMod/layouts/_markup/render-image.html @@ -0,0 +1,22 @@ +{{- $u := urls.Parse .Destination -}} +{{- $src := $u.String -}} +{{- if not $u.IsAbs -}} + {{- $path := strings.TrimPrefix "./" $u.Path }} + {{- with or (.PageInner.Resources.Get $path) (resources.Get $path) -}} + {{- $src = .RelPermalink -}} + {{- with $u.RawQuery -}} + {{- $src = printf "%s?%s" $src . -}} + {{- end -}} + {{- with $u.Fragment -}} + {{- $src = printf "%s#%s" $src . -}} + {{- end -}} + {{- end -}} +{{- end -}} +{{- $attributes := merge .Attributes (dict "alt" .Text "src" $src "title" (.Title | transform.HTMLEscape) "loading" "lazy") -}} + +{{- /**/ -}} diff --git a/themes/PaperMod/layouts/_partials/anchored_headings.html b/themes/PaperMod/layouts/_partials/anchored_headings.html new file mode 100644 index 0000000..a4b0c63 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/anchored_headings.html @@ -0,0 +1,6 @@ +{{- /* formats .Content headings by adding an anchor */ -}} +{{ . | replaceRE + "()" + "${1}${3}" + | safeHTML +}} diff --git a/themes/PaperMod/layouts/_partials/author.html b/themes/PaperMod/layouts/_partials/author.html new file mode 100644 index 0000000..e3a8617 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/author.html @@ -0,0 +1,10 @@ +{{- if or .Params.author site.Params.author }} + {{- $author := (.Params.author | default site.Params.author) }} + {{- $author_type := (printf "%T" $author) }} + + {{- if (or (eq $author_type "[]string") (eq $author_type "[]interface {}")) }} + {{- (delimit $author ", " ) }} + {{- else }} + {{- $author }} + {{- end }} +{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/breadcrumbs.html b/themes/PaperMod/layouts/_partials/breadcrumbs.html new file mode 100644 index 0000000..bae40c9 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/breadcrumbs.html @@ -0,0 +1,20 @@ +{{- if (.Param "ShowBreadCrumbs") -}} +

+{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/comments.html b/themes/PaperMod/layouts/_partials/comments.html new file mode 100644 index 0000000..918451a --- /dev/null +++ b/themes/PaperMod/layouts/_partials/comments.html @@ -0,0 +1,3 @@ +{{- /* Comments area start */ -}} +{{- /* to add comments read => https://gohugo.io/content-management/comments/ */ -}} +{{- /* Comments area end */ -}} diff --git a/themes/PaperMod/layouts/_partials/cover.html b/themes/PaperMod/layouts/_partials/cover.html new file mode 100644 index 0000000..9c1f9ea --- /dev/null +++ b/themes/PaperMod/layouts/_partials/cover.html @@ -0,0 +1,65 @@ +{{- with .cxt}} {{/* Apply proper context from dict */}} +{{- if (and .Params.cover.image (not $.isHidden)) }} +
+ {{- $loading := cond $.IsSingle "eager" "lazy" }} + {{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }} + {{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }} + {{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }} + {{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }} + + {{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }} + {{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }} + {{- $cover := (or $pageBundleCover $globalResourcesCover)}} + {{- /* We are not using the .Param.cover.relative to decide the location of image */}} + {{- /* If we have the image in pageBundle or globalResources we can process the image */}} + + {{- $sizes := (slice "360" "480" "720" "1080" "1500") }} + {{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}} + {{- if hugo.IsExtended -}} + {{- $processableFormats = $processableFormats | append "webp" -}} + {{- end -}} + + {{- $imgdl := (.Params.cover.image) | absURL }} + {{- if $cover -}} + {{- $imgdl = $cover.Permalink }} + {{- end -}} + + {{- if $addLink }} + + {{- end }} + + {{- if $cover -}} + {{/* i.e it is present in page bundle */}} + {{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }} + {{ $alt }} + {{- else }}{{/* Unprocessable image or responsive images disabled */}} + {{ $alt }} + {{- end }} + {{- else }} + {{- /* For absolute urls and external links, no img processing here */}} + {{ $alt }} + {{- end }} + + {{- if $addLink }} + + {{- end -}} + + {{- /* Display Caption */}} + {{- if $.IsSingle }} + {{ with .Params.cover.caption -}} +
{{ . | markdownify }}
+ {{- end }} + {{- end }} +
+{{- end }}{{/* End image */}} +{{- end -}}{{/* End context */ -}} diff --git a/themes/PaperMod/layouts/_partials/edit_post.html b/themes/PaperMod/layouts/_partials/edit_post.html new file mode 100644 index 0000000..b4bf44f --- /dev/null +++ b/themes/PaperMod/layouts/_partials/edit_post.html @@ -0,0 +1,20 @@ +{{- if and (.Param "editPost.URL") (not (.Param "editPost.disabled")) -}} + {{- if or (.Param "author") (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} + {{- printf " | " | safeHTML -}} + {{- end -}} + + {{- $editURL := .Param "editPost.URL" }} + {{- $appendFilePath := .Param "editPost.appendFilePath" | default false }} + {{- $editText := .Param "editPost.Text" | default (i18n "edit_post" ) -}} + + {{- if $appendFilePath -}} + {{- $fileUrlPath := path.Join .File.Path }} + {{- $editURL = printf "%s/%s" $editURL $fileUrlPath -}} + {{- end -}} + + + + {{- $editText -}} + + +{{- end }} diff --git a/themes/PaperMod/layouts/_partials/extend_footer.html b/themes/PaperMod/layouts/_partials/extend_footer.html new file mode 100644 index 0000000..0519748 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/extend_footer.html @@ -0,0 +1,3 @@ +{{- /* Footer custom content area start */ -}} +{{- /* Insert any custom code web-analytics, resources, etc. here */ -}} +{{- /* Footer custom content area end */ -}} diff --git a/themes/PaperMod/layouts/_partials/extend_head.html b/themes/PaperMod/layouts/_partials/extend_head.html new file mode 100644 index 0000000..150cbef --- /dev/null +++ b/themes/PaperMod/layouts/_partials/extend_head.html @@ -0,0 +1,4 @@ +{{- /* Head custom content area start */ -}} +{{- /* Insert any custom code (web-analytics, resources, etc.) - it will appear in the section of every page. */ -}} +{{- /* Can be overwritten by partial with the same name in the global layouts. */ -}} +{{- /* Head custom content area end */ -}} diff --git a/themes/PaperMod/layouts/_partials/extend_post_content.html b/themes/PaperMod/layouts/_partials/extend_post_content.html new file mode 100644 index 0000000..34a8a07 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/extend_post_content.html @@ -0,0 +1,4 @@ +{{- /* Post content custom area start */ -}} +{{- /* Insert any custom code after post content - it will appear after the post body, before the footer. */ -}} +{{- /* Can be overwritten by partial with the same name in the global layouts. */ -}} +{{- /* Post content custom area end */ -}} diff --git a/themes/PaperMod/layouts/_partials/footer.html b/themes/PaperMod/layouts/_partials/footer.html new file mode 100644 index 0000000..6378b10 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/footer.html @@ -0,0 +1,158 @@ +{{- if not (.Param "hideFooter") }} +
+ {{- if not site.Params.footer.hideCopyright }} + {{- if site.Copyright }} + {{ site.Copyright | markdownify }} + {{- else }} + © {{ now.Year }} {{ site.Title }} + {{- end }} + {{- print " · "}} + {{- end }} + + {{- with site.Params.footer.text }} + {{ . | markdownify }} + {{- print " · "}} + {{- end }} + + {{/* + - The "Powered by Hugo" text is intentionally left at the end of the footer to give it more prominence. + - We kindly encourage you to keep this line. Keeping this credit helps open source projects like PaperMod and Hugo reach more people, supports the open source ecosystem, and shows appreciation for the work that goes into these tools. + - If you choose to remove it, please consider adding a link to the PaperMod GitHub repository somewhere on your site to give credit to the project and its contributors. + - Support us by sponsoring the project on GitHub Sponsors: https://github.com/sponsors/adityatelange + */}} + + + Powered by + Hugo & + PaperMod + +
+{{- end }} + +{{- if (not site.Params.disableScrollToTop) }} + +{{- end }} + +{{- partial "extend_footer.html" . }} + + + +{{- if (not site.Params.disableScrollToTop) }} + +{{- end }} + +{{- if (not site.Params.disableThemeToggle) }} + +{{- end }} + +{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }} + +{{- end }} diff --git a/themes/PaperMod/layouts/_partials/head.html b/themes/PaperMod/layouts/_partials/head.html new file mode 100644 index 0000000..9edc894 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/head.html @@ -0,0 +1,194 @@ + + + +{{- if hugo.IsProduction | or (eq site.Params.env "production") | and (ne .Params.robotsNoIndex true) }} + +{{- else }} + +{{- end }} + +{{- /* Title */}} +{{ if .IsHome }}{{ else }}{{ if .Title }}{{ .Title }} | {{ end }}{{ end }}{{ site.Title }} + +{{- /* Meta */}} +{{- if .IsHome }} +{{ with site.Params.keywords -}}{{ end }} +{{- else }} + +{{- end }} + + + +{{- if site.Params.analytics.google.SiteVerificationTag }} + +{{- end }} +{{- if site.Params.analytics.yandex.SiteVerificationTag }} + +{{- end }} +{{- if site.Params.analytics.bing.SiteVerificationTag }} + +{{- end }} +{{- if site.Params.analytics.naver.SiteVerificationTag }} + +{{- end }} + +{{- /* Styles */}} + +{{- /* includes */}} +{{- $includes := slice }} +{{- $includes = $includes | append (" " | resources.FromString "assets/css/includes-blank.css")}} + +{{- $includes_all := $includes | resources.Concat "assets/css/includes.css" }} + +{{- $theme_vars := (resources.Get "css/core/theme-vars.css") }} +{{- $reset := (resources.Get "css/core/reset.css") }} +{{- $media := (resources.Get "css/core/zmedia.css") }} +{{- $license_css := (resources.Get "css/core/license.css") }} +{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }} + +{{- /* markup.highlight.noClasses should be set to `false` */}} +{{- $chroma_styles := (resources.Get "css/includes/chroma-styles.css") }} +{{- $chroma_mod := (resources.Get "css/includes/chroma-mod.css") }} + +{{- /* order is important */}} +{{- $core := (slice $theme_vars $reset $common $chroma_styles $chroma_mod $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }} +{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" | resources.Minify }} + +{{- /* bundle all required css */}} +{{- /* Add extended css after theme style */ -}} +{{- $stylesheet := (slice $license_css $core $extended) | resources.Concat "assets/css/stylesheet.css" }} + +{{- if not site.Params.assets.disableFingerprinting }} +{{- $stylesheet := $stylesheet | fingerprint }} + +{{- else }} + +{{- end }} + +{{- /* Search */}} +{{- if (eq .Layout `search`) -}} + +{{- $fastsearch := resources.Get "js/fastsearch.js" | js.Build (dict "params" (dict "fuseOpts" site.Params.fuseOpts)) | resources.Minify }} +{{- $fusejs := resources.Get "js/fuse.basic.min.js" }} +{{- $license_js := resources.Get "js/license.js" }} +{{- if not site.Params.assets.disableFingerprinting }} +{{- $search := (slice $fusejs $license_js $fastsearch ) | resources.Concat "assets/js/search.js" | fingerprint }} + +{{- else }} +{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" }} + +{{- end }} +{{- end -}} + +{{- /* Favicons */}} + + + + + + + + +{{- /* RSS */}} +{{ range .AlternativeOutputFormats -}} + +{{ end -}} +{{- range .AllTranslations -}} + +{{ end -}} + + + +{{- /* theme-toggle is enabled */}} +{{- if (not site.Params.disableThemeToggle) }} +{{- /* theme is light */}} +{{- if (eq site.Params.defaultTheme "light") }} + +{{- /* theme is dark */}} +{{- else if (eq site.Params.defaultTheme "dark") }} + +{{- else }} +{{- /* theme is auto */}} + +{{- end }} +{{- /* theme-toggle is disabled and theme is auto */}} +{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}} + +{{- end }} + +{{- partial "extend_head.html" . -}} + +{{- /* Misc */}} +{{- if hugo.IsProduction | or (eq site.Params.env "production") }} +{{- partial "google_analytics.html" . }} +{{- partial "templates/opengraph.html" . }} +{{- partial "templates/twitter_cards.html" . }} +{{- partial "templates/schema_json.html" . }} +{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/header.html b/themes/PaperMod/layouts/_partials/header.html new file mode 100644 index 0000000..1abc9f5 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/header.html @@ -0,0 +1,114 @@ +
+ +
diff --git a/themes/PaperMod/layouts/_partials/home_info.html b/themes/PaperMod/layouts/_partials/home_info.html new file mode 100644 index 0000000..9d29961 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/home_info.html @@ -0,0 +1,14 @@ +{{- with site.Params.homeInfoParams }} +
+
+

{{ .Title | markdownify }}

+
+
+ {{ $opts := dict "display" "block" }} + {{ .Content | $.Page.RenderString $opts }} +
+
+ {{ partial "social_icons.html" (dict "align" site.Params.homeInfoParams.AlignSocialIconsTo) }} +
+
+{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/index_profile.html b/themes/PaperMod/layouts/_partials/index_profile.html new file mode 100644 index 0000000..6882f39 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/index_profile.html @@ -0,0 +1,58 @@ +
+ {{- with site.Params.profileMode }} +
+ {{- if .imageUrl -}} + {{- $img := "" }} + {{- if not (urls.Parse .imageUrl).IsAbs }} + {{- $img = resources.Get .imageUrl }} + {{- end }} + {{- if $img }} + {{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}} + {{- if hugo.IsExtended -}} + {{- $processableFormats = $processableFormats | append "webp" -}} + {{- end -}} + {{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }} + {{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}} + {{- if (not (and (not .imageHeight) (not .imageWidth))) }} + {{- $img = $img.Resize (printf "%dx%d" .imageWidth .imageHeight) }} + {{- else if .imageHeight }} + {{- $img = $img.Resize (printf "x%d" .imageHeight) }} + {{ else if .imageWidth }} + {{- $img = $img.Resize (printf "%dx" .imageWidth) }} + {{ else }} + {{- $img = $img.Resize "150x150" }} + {{- end }} + {{- end }} + {{ .imageTitle | default + {{- else }} + {{ .imageTitle | default + {{- end }} + {{- end }} +

{{ .title | default site.Title | markdownify }}

+ {{ .subtitle | markdownify }} + {{- partial "social_icons.html" -}} + + {{- with .buttons }} + + {{- end }} +
+ {{- end}} +
diff --git a/themes/PaperMod/layouts/_partials/post_canonical.html b/themes/PaperMod/layouts/_partials/post_canonical.html new file mode 100644 index 0000000..abfc1e3 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/post_canonical.html @@ -0,0 +1,9 @@ +{{ if and (.Params.canonicalURL) (.Params.ShowCanonicalLink ) -}} +{{ $url := urls.Parse .Params.canonicalURL }} + +{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated (or .Params.editPost.URL site.Params.editPost.URL) }} | {{- end -}} + + {{- (site.Params.CanonicalLinkText | default .Params.CanonicalLinkText) | default "Originally published at" -}} +  {{ $url.Host }} + +{{- end }} diff --git a/themes/PaperMod/layouts/_partials/post_meta.html b/themes/PaperMod/layouts/_partials/post_meta.html new file mode 100644 index 0000000..c7c2635 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/post_meta.html @@ -0,0 +1,25 @@ +{{- $scratch := newScratch }} + +{{- if not .Date.IsZero -}} + {{- $scratch.Add "meta" (slice (printf "%s" (.Date) (.Date | time.Format (default ":date_long" site.Params.DateFormat)))) }} +{{- end }} + +{{- if (.Param "ShowReadingTime") -}} + {{- $scratch.Add "meta" (slice (printf "%s" (i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime)))) }} +{{- end }} + +{{- if (.Param "ShowWordCount") -}} + {{- $scratch.Add "meta" (slice (printf "%s" (i18n "words" .WordCount | default (printf "%d words" .WordCount)))) }} +{{- end }} + +{{- if not (.Param "hideAuthor") -}} + {{- with (partial "author.html" .) }} + {{- $scratch.Add "meta" (slice (printf "%s" .)) }} + {{- end }} +{{- end }} + +{{/* Combine all meta information into a single string with separators and render it as HTML.*/}} + +{{- with ($scratch.Get "meta") }} + {{- delimit . " · " | safeHTML -}} +{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/post_nav_links.html b/themes/PaperMod/layouts/_partials/post_nav_links.html new file mode 100644 index 0000000..c2a4862 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/post_nav_links.html @@ -0,0 +1,17 @@ +{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }} +{{- if and (gt (len $pages) 1) (in $pages . ) }} + +{{- end }} diff --git a/themes/PaperMod/layouts/_partials/share_icons.html b/themes/PaperMod/layouts/_partials/share_icons.html new file mode 100644 index 0000000..910ba7f --- /dev/null +++ b/themes/PaperMod/layouts/_partials/share_icons.html @@ -0,0 +1,95 @@ +{{- $pageurl := .Permalink }} +{{- $title := .Title }} + +{{- $.Scratch.Set "tags" ""}} + +{{- with .Params.Tags }} +{{- $hashtags := newScratch}} +{{- range . }}{{ $hashtags.Add "tags" (slice (replaceRE "(\\s)" "" . ))}}{{end}} +{{- $.Scratch.Set "tags" (delimit ($hashtags.Get "tags") ",") }} +{{- end -}} + +{{- $custom := false }} +{{- $ShareButtons := (.Param "ShareButtons")}} +{{- with $ShareButtons }}{{ $custom = true }}{{ end }} + + diff --git a/themes/PaperMod/layouts/_partials/social_icons.html b/themes/PaperMod/layouts/_partials/social_icons.html new file mode 100644 index 0000000..ce76a30 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/social_icons.html @@ -0,0 +1,8 @@ + diff --git a/themes/PaperMod/layouts/_partials/svg.html b/themes/PaperMod/layouts/_partials/svg.html new file mode 100644 index 0000000..d2ccbb9 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/svg.html @@ -0,0 +1,1017 @@ +{{- $icon_name := ( trim .name " " | lower )}} +{{- if (eq $icon_name "123rf") -}} + + + + +{{- else if (eq $icon_name "500px") -}} + + + +{{- else if (eq $icon_name "adobestock") -}} + + + + +{{- else if (eq $icon_name "anilist") -}} + + + +{{- else if or (eq $icon_name "ao3") (eq $icon_name "archiveofourown") -}} + + + + + + +{{- else if (eq $icon_name "applemusic") -}} + + + +{{- else if (eq $icon_name "applepodcasts") -}} + + + +{{- else if (eq $icon_name "bandcamp") -}} + + + +{{- else if (eq $icon_name "behance") -}} + + + +{{- else if (eq $icon_name "bilibili") -}} + + + + + + + +{{- else if (eq $icon_name "bitcoin") -}} + + + +{{- else if (eq $icon_name "bluesky") -}} + + + +{{- else if (eq $icon_name "bookwyrm") -}} + + + +{{- else if (eq $icon_name "bugcrowd") -}} + + + +{{- else if (eq $icon_name "buttondown") -}} + + + + + + + + + + +{{- else if (eq $icon_name "buymeacoffee") -}} + + + + + + + + + + + + + + + + +{{- else if (eq $icon_name "codeberg") -}} + + + +{{- else if (eq $icon_name "codeforces") -}} + + + +{{- else if (eq $icon_name "codepen") -}} + + + + + + + +{{- else if (eq $icon_name "credly") -}} + + + +{{- else if (eq $icon_name "cryptohack") -}} + + + + + + +{{- else if (eq $icon_name "ctftime") -}} + + + + + + +{{- else if (eq $icon_name "cv") -}} + + + + + + +{{- else if (eq $icon_name "deezer") -}} + + + +{{- else if (eq $icon_name "dev") -}} + + + +{{- else if (eq $icon_name "deviantart") -}} + + + +{{- else if (eq $icon_name "discogs") -}} + + + +{{- else if (eq $icon_name "discord") -}} + + + +{{- else if (eq $icon_name "douban") -}} + + + + + +{{- else if (eq $icon_name "dreamstime") -}} + + + +{{- else if (eq $icon_name "dribbble") -}} + + + + + +{{- else if (eq $icon_name "dzen") -}} + + + +{{- else if (eq $icon_name "ebird") -}} + + + +{{- else if (eq $icon_name "email") -}} + + + + +{{- else if (eq $icon_name "ethereum") -}} + + + +{{- else if (eq $icon_name "exercism") -}} + + + + +{{- else if (eq $icon_name "facebook") -}} + + + +{{- else if (eq $icon_name "farcaster") -}} + + + + + +{{- else if (eq $icon_name "fediverse") -}} + + + + + + + + + + +{{- else if (eq $icon_name "firefish") -}} + + + +{{- else if (eq $icon_name "flickr") -}} + + + +{{- else if (eq $icon_name "forgejo") -}} + + + +{{- else if (eq $icon_name "freepik") -}} + + + + + + +{{- else if (eq $icon_name "git") -}} + + + +{{- else if (eq $icon_name "gitea") -}} + + + +{{- else if (eq $icon_name "github") -}} + + + + +{{- else if (eq $icon_name "gitlab") -}} + + + + +{{- else if (eq $icon_name "goodreads") -}} + + + +{{- else if (eq $icon_name "googleplaystore") -}} + + + +{{- else if (eq $icon_name "googlepodcasts") -}} + + + +{{- else if (eq $icon_name "googlescholar") -}} + + + +{{- else if (eq $icon_name "gurushots") -}} + + + + + + + + + + + + +{{- else if (eq $icon_name "hackerone") -}} + + + +{{- else if (eq $icon_name "hackerrank") -}} + + + + + + +{{- else if (eq $icon_name "hackthebox") -}} + + + + + + +{{- else if (eq $icon_name "imdb") -}} + + + +{{- else if (eq $icon_name "instagram") -}} + + + + + +{{- else if (eq $icon_name "intigriti") -}} + + + +{{- else if (eq $icon_name "itchio") -}} + + + +{{- else if (eq $icon_name "juejin") -}} + + + +{{- else if (eq $icon_name "kaggle") -}} + + + +{{- else if (eq $icon_name "kakaotalk") -}} + + + + + + + +{{- else if (eq $icon_name "keybase") -}} + + + +{{- else if (eq $icon_name "keyoxide") -}} + + + + +{{- else if (eq $icon_name "kofi") -}} + + + +{{- else if (eq $icon_name "komoot") -}} + + + +{{- else if (eq $icon_name "lastfm") -}} + + + +{{- else if (eq $icon_name "leetcode") -}} + + + +{{- else if (eq $icon_name "letterboxd") -}} + + + +{{- else if (eq $icon_name "liberapay") -}} + + + + + + +{{- else if (eq $icon_name "lichess" ) -}} + + + +{{- else if (eq $icon_name "linkedin") -}} + + + + + +{{- else if (eq $icon_name "linktree") -}} + + + +{{- else if (eq $icon_name "mastodon") -}} + + + + +{{- else if (eq $icon_name "matrix") -}} + + + +{{- else if (eq $icon_name "medium") -}} + + + + + +{{- else if (eq $icon_name "microblog") -}} + + + + + + +{{- else if (eq $icon_name "mixcloud") -}} + + + +{{- else if (eq $icon_name "monero") -}} + + + +{{- else if (eq $icon_name "neteasecloudmusic") -}} + + + +{{- else if (eq $icon_name "nextcloud") -}} + + + +{{- else if (eq $icon_name "nostr") -}} + + + +{{- else if (eq $icon_name "nuget") -}} + + + + + + + + +{{- else if (eq $icon_name "orcid") -}} + + + +{{- else if (eq $icon_name "osu!") -}} + + + + + + +{{- else if (eq $icon_name "overcast") -}} + + + +{{- else if (eq $icon_name "patreon") -}} + + + + + + +{{- else if (eq $icon_name "paypal") -}} + + + +{{- else if (eq $icon_name "peertube") -}} + + + +{{- else if or (eq $icon_name "pgpkey") (eq $icon_name "key") -}} + + + + +{{- else if (eq $icon_name "phone") -}} + + + + + +{{- else if (eq $icon_name "pinterest") -}} + + + +{{- else if (eq $icon_name "pixelfed") -}} + + + +{{- else if (eq $icon_name "pleroma") -}} + + + +{{- else if (eq $icon_name "pocketcasts") -}} + + + +{{- else if (eq $icon_name "printables") -}} + + + +{{- else if (eq $icon_name "qq") -}} + + + + +{{- else if (eq $icon_name "reddit") -}} + + + +{{- else if (eq $icon_name "raycast") -}} + + + +{{- else if (eq $icon_name "researchgate") -}} + + + +{{- else if (eq $icon_name "rootme") -}} + + + + + + + + +{{- else if (eq $icon_name "rss") -}} + + + + + +{{- else if (eq $icon_name "serverfault") -}} + + + +{{- else if (eq $icon_name "sessionmessenger") -}} + + + + +{{- else if (eq $icon_name "shutterstock") -}} + + + + +{{- else if (eq $icon_name "signal") -}} + + + +{{- else if (eq $icon_name "sketchfab") -}} + + + +{{- else if (eq $icon_name "slack") -}} + + + + + + + +{{- else if (eq $icon_name "snapchat") -}} + + + +{{- else if (eq $icon_name "soundcloud") -}} + + + +{{- else if (eq $icon_name "sourcehut") -}} + + + + +{{- else if (eq $icon_name "spacehey") -}} + + + + + +{{- else if (eq $icon_name "spotify") -}} + + + +{{- else if (eq $icon_name "stackoverflow") -}} + + + +{{- else if (eq $icon_name "steam") -}} + + + + + + + + + +{{- else if (eq $icon_name "strava") -}} + + + +{{- else if (eq $icon_name "substack") -}} + + + +{{- else if (eq $icon_name "tableau") -}} + + + + + + + + + + +{{- else if (eq $icon_name "telegram") -}} + + + +{{- else if (eq $icon_name "thingiverse") -}} + + + +{{- else if (eq $icon_name "threads") -}} + + + + +{{- else if (eq $icon_name "threema") -}} + + + + +{{- else if (eq $icon_name "tidal") -}} + + + +{{- else if (eq $icon_name "tiktok") -}} + + + +{{- else if (eq $icon_name "tryhackme") -}} + + + +{{- else if (eq $icon_name "tumblr") -}} + + + +{{- else if (eq $icon_name "twitch") -}} + + + +{{- else if (eq $icon_name "twitter") -}} + + + + +{{- else if (eq $icon_name "unity") -}} + + + +{{- else if (eq $icon_name "unsplash") -}} + + + + +{{- else if (eq $icon_name "vimeo") -}} + + + +{{- else if or (eq $icon_name "vk") (eq $icon_name "vkontakte") -}} + + + +{{- else if (eq $icon_name "wantedly") -}} + + + +{{- else if (eq $icon_name "wechat") -}} + + + + +{{- else if (eq $icon_name "whatsapp") -}} + + + + +{{- else if or (eq $icon_name "wikipedia") (eq $icon_name "wiki") -}} + + + + +{{- else if (eq $icon_name "wordpress") -}} + + + +{{- else if (eq $icon_name "x") -}} + + + + +{{- else if (eq $icon_name "xda") -}} + + + +{{- else if (eq $icon_name "xing") -}} + + + + +{{- else if (eq $icon_name "xmpp") -}} + + + + +{{- else if (eq $icon_name "ycombinator") -}} + + + +{{- else if (eq $icon_name "yeswehack") -}} + + + + +{{- else if (eq $icon_name "youtube") -}} + + + + + +{{- else if (eq $icon_name "zcal") -}} + + + +{{- else if (eq $icon_name "zhihu") -}} + + + +{{- else if (eq $icon_name "jamendo") -}} + + + + + + + +{{- else if $icon_name -}} + + + + +{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/templates/_funcs/get-page-images.html b/themes/PaperMod/layouts/_partials/templates/_funcs/get-page-images.html new file mode 100644 index 0000000..268ceb4 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/templates/_funcs/get-page-images.html @@ -0,0 +1,47 @@ +{{- $imgs := slice }} +{{- $imgParams := .Params.images }} +{{- $resources := .Resources.ByType "image" -}} +{{/* Find featured image resources if the images parameter is empty. */}} +{{- if not $imgParams }} + {{- $featured := $resources.GetMatch "*feature*" -}} + {{- if not $featured }}{{ $featured = $resources.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} + {{- with $featured }} + {{- $imgs = $imgs | append (dict + "Image" . + "RelPermalink" .RelPermalink + "Permalink" .Permalink) }} + {{- end }} +{{- end }} +{{/* Use the first one of site images as the fallback. */}} +{{- if and (not $imgParams) (not $imgs) }} + {{- with site.Params.images }} + {{- $imgParams = first 1 . }} + {{- end }} +{{- end }} +{{/* Parse page's images parameter. */}} +{{- range $imgParams }} + {{- $img := . }} + {{- $url := urls.Parse $img }} + {{- if eq $url.Scheme "" }} + {{/* Internal image. */}} + {{- with $resources.GetMatch $img -}} + {{/* Image resource. */}} + {{- $imgs = $imgs | append (dict + "Image" . + "RelPermalink" .RelPermalink + "Permalink" .Permalink) }} + {{- else }} + {{- $imgs = $imgs | append (dict + "RelPermalink" (relURL $img) + "Permalink" (absURL $img) + ) }} + {{- end }} + {{- else }} + {{/* External image */}} + {{- $imgs = $imgs | append (dict + "RelPermalink" $img + "Permalink" $img + ) }} + {{- end }} +{{- end }} +{{- return $imgs }} diff --git a/themes/PaperMod/layouts/_partials/templates/opengraph.html b/themes/PaperMod/layouts/_partials/templates/opengraph.html new file mode 100644 index 0000000..8c765d1 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/templates/opengraph.html @@ -0,0 +1,86 @@ + + +{{- with or site.Title site.Params.title | plainify }} + +{{- end }} + +{{- with or .Title site.Title site.Params.title | plainify }} + +{{- end }} + +{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }} + +{{- end }} + +{{- with or .Params.locale site.Language.LanguageCode }} + +{{- end }} + +{{- if .IsPage }} + + {{- with .Section }} + + {{- end }} + {{- $ISO8601 := "2006-01-02T15:04:05-07:00" }} + {{- with .PublishDate }} + + {{- end }} + {{- with .Lastmod }} + + {{- end }} + {{- range .GetTerms "tags" | first 6 }} + + {{- end }} +{{- else }} + +{{- end }} + +{{- if .Params.cover.image -}} + {{- if (ne .Params.cover.relative true) }} + + {{- else}} + + {{- end}} +{{- else }} + {{- with partial "_funcs/get-page-images" . }} + {{- range . | first 6 }} + + {{- end }} + {{- end }} +{{- end }} + +{{- with .Params.audio }} + {{- range . | first 6 }} + + {{- end }} +{{- end }} + +{{- with .Params.videos }} + {{- range . | first 6 }} + + {{- end }} +{{- end }} + +{{- range .GetTerms "series" }} + {{- range .Pages | first 7 }} + {{- if ne $ . }} + + {{- end }} + {{- end }} +{{- end }} + +{{- with site.Params.social }} + {{- if reflect.IsMap . }} + {{- with .facebook_app_id }} + + {{- else }} + {{- with .facebook_admin }} + + {{- end }} + {{- end }} + {{- end }} +{{- end }} + +{{- with (.Param "social.fediverse_creator") }} + +{{- end }} diff --git a/themes/PaperMod/layouts/_partials/templates/schema_json.html b/themes/PaperMod/layouts/_partials/templates/schema_json.html new file mode 100644 index 0000000..8a4efb4 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/templates/schema_json.html @@ -0,0 +1,128 @@ +{{ if .IsHome }} + +{{- else if (or .IsPage .IsSection) }} +{{/* BreadcrumbList */}} +{{- $url := replace .Parent.Permalink ( printf "%s" site.Home.Permalink) "" }} +{{- $lang_url := strings.TrimPrefix ( printf "%s/" .Lang) $url }} +{{- $bc_list := (split $lang_url "/")}} + +{{- $scratch := newScratch }} + +{{- if .IsPage }} + +{{- end }}{{/* .IsPage end */}} + +{{- end -}} diff --git a/themes/PaperMod/layouts/_partials/templates/twitter_cards.html b/themes/PaperMod/layouts/_partials/templates/twitter_cards.html new file mode 100644 index 0000000..bcbc435 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/templates/twitter_cards.html @@ -0,0 +1,37 @@ +{{- if .Params.cover.image -}} + +{{- if (ne $.Params.cover.relative true) }} + +{{- else }} + +{{- end}} +{{- else }} +{{- $images := partial "templates/_funcs/get-page-images" . }} +{{- with index $images 0 }} + + +{{- else }} + +{{- end }} +{{- end }} + +{{- with or .Title site.Title site.Params.title | plainify }} + +{{- end }} + +{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }} + +{{- end }} + +{{- $twitterSite := "" }} +{{- with site.Params.social }} + {{- if reflect.IsMap . }} + {{- with .twitter }} + {{- $content := . }} + {{- if not (strings.HasPrefix . "@") }} + {{- $content = printf "@%v" . }} + {{- end }} + + {{- end }} + {{- end }} +{{- end }} diff --git a/themes/PaperMod/layouts/_partials/toc.html b/themes/PaperMod/layouts/_partials/toc.html new file mode 100644 index 0000000..a4decf7 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/toc.html @@ -0,0 +1,95 @@ +{{- $headers := findRE "(.|\n])+?" .Content -}} +{{- $has_headers := ge (len $headers) 1 -}} +{{- if $has_headers -}} +
+ + {{- i18n "toc" | default "Table of Contents" }} + + +
+ {{- if (.Param "UseHugoToc") }} + {{- .TableOfContents -}} + {{- else }} + {{- $largest := 6 -}} + {{- range $headers -}} + {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}} + {{- $headerLevel := len (seq $headerLevel) -}} + {{- if lt $headerLevel $largest -}} + {{- $largest = $headerLevel -}} + {{- end -}} + {{- end -}} + + {{- $firstHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers 0) 1) 0)) -}} + + {{- $.Scratch.Set "bareul" slice -}} +
    + {{- range seq (sub $firstHeaderLevel $largest) -}} +
      + {{- $.Scratch.Add "bareul" (sub (add $largest .) 1) -}} + {{- end -}} + {{- range $i, $header := $headers -}} + {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}} + {{- $headerLevel := len (seq $headerLevel) -}} + + {{/* get id="xyz" */}} + {{- $id := index (findRE "(id=\"(.*?)\")" $header 9) 0 }} + + {{- /* strip id="" to leave xyz, no way to get regex capturing groups in hugo */ -}} + {{- $cleanedID := replace (replace $id "id=\"" "") "\"" "" }} + {{- $header := replaceRE "((.|\n])+?)" "$1" $header -}} + + {{- if ne $i 0 -}} + {{- $prevHeaderLevel := index (findRE "[1-6]" (index $headers (sub $i 1)) 1) 0 -}} + {{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}} + {{- if gt $headerLevel $prevHeaderLevel -}} + {{- range seq $prevHeaderLevel (sub $headerLevel 1) -}} +
        + {{/* the first should not be recorded */}} + {{- if ne $prevHeaderLevel . -}} + {{- $.Scratch.Add "bareul" . -}} + {{- end -}} + {{- end -}} + {{- else -}} + + {{- if lt $headerLevel $prevHeaderLevel -}} + {{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}} + {{- if in ($.Scratch.Get "bareul") . -}} +
      + {{/* manually do pop item */}} + {{- $tmp := $.Scratch.Get "bareul" -}} + {{- $.Scratch.Delete "bareul" -}} + {{- $.Scratch.Set "bareul" slice}} + {{- range seq (sub (len $tmp) 1) -}} + {{- $.Scratch.Add "bareul" (index $tmp (sub . 1)) -}} + {{- end -}} + {{- else -}} +
    + + {{- end -}} + {{- end -}} + {{- end -}} + {{- end }} +
  • + {{- $header | plainify | safeHTML -}} + {{- else }} +
  • + {{- $header | plainify | safeHTML -}} + {{- end -}} + {{- end -}} + + {{- $firstHeaderLevel := $largest }} + {{- $lastHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers (sub (len $headers) 1)) 1) 0)) }} +
  • + {{- range seq (sub $lastHeaderLevel $firstHeaderLevel) -}} + {{- if in ($.Scratch.Get "bareul") (add . $firstHeaderLevel) }} +
+ {{- else }} + + + {{- end -}} + {{- end }} + + {{- end }} +
+
+{{- end }} diff --git a/themes/PaperMod/layouts/_partials/translation_list.html b/themes/PaperMod/layouts/_partials/translation_list.html new file mode 100644 index 0000000..bccdbe9 --- /dev/null +++ b/themes/PaperMod/layouts/_partials/translation_list.html @@ -0,0 +1,21 @@ +{{- if .IsTranslated -}} + {{- if (ne .Layout "search") }} + {{- if or (.Param "author") (.Param "ShowReadingTime") (not .Date.IsZero) }} + {{- printf " | " | safeHTML -}} + {{- end -}} + {{- end -}} + {{- i18n "translations" | default "Translations" }}: + +{{- end -}} diff --git a/themes/PaperMod/layouts/_shortcodes/audio.html b/themes/PaperMod/layouts/_shortcodes/audio.html new file mode 100644 index 0000000..c98b5f3 --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/audio.html @@ -0,0 +1,2 @@ +{{ $src := (.Get "src") }} + diff --git a/themes/PaperMod/layouts/_shortcodes/collapse.html b/themes/PaperMod/layouts/_shortcodes/collapse.html new file mode 100644 index 0000000..17d8d3b --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/collapse.html @@ -0,0 +1,8 @@ +{{ if .Get "summary" }} +{{ else }} +{{ warnf "missing value for param 'summary': %s" .Position }} +{{ end }} +

+ {{ .Get "summary" | markdownify }} + {{ .Inner | markdownify }} +

diff --git a/themes/PaperMod/layouts/_shortcodes/figure.html b/themes/PaperMod/layouts/_shortcodes/figure.html new file mode 100644 index 0000000..8c93eff --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/figure.html @@ -0,0 +1,31 @@ + + {{- if .Get "link" -}} + + {{- end }} + {{ with .Get + {{- if .Get "link" }}{{ end -}} + {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}} +
+ {{ with (.Get "title") -}} + {{ . }} + {{- end -}} + {{- if or (.Get "caption") (.Get "attr") -}}

+ {{- .Get "caption" | markdownify -}} + {{- with .Get "attrlink" }} + + {{- end -}} + {{- .Get "attr" | markdownify -}} + {{- if .Get "attrlink" }}{{ end }}

+ {{- end }} +
+ {{- end }} + diff --git a/themes/PaperMod/layouts/_shortcodes/inTextImg.html b/themes/PaperMod/layouts/_shortcodes/inTextImg.html new file mode 100644 index 0000000..0239fd6 --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/inTextImg.html @@ -0,0 +1,5 @@ +{{- $Img := (.Get "url") }} +{{- $height := (.Get "height") }} +{{- $alt := (.Get "alt") }} + +{{$alt}} diff --git a/themes/PaperMod/layouts/_shortcodes/ltr.html b/themes/PaperMod/layouts/_shortcodes/ltr.html new file mode 100644 index 0000000..4ad7682 --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/ltr.html @@ -0,0 +1,15 @@ +{{ $.Scratch.Set "md" false }} + +{{ if .IsNamedParams }} +{{ $.Scratch.Set "md" (.Get "md") }} +{{ else }} +{{ $.Scratch.Set "md" (.Get 0) }} +{{ end }} + +
+ {{ if eq ($.Scratch.Get "md") false }} + {{ .Inner }} + {{ else }} + {{ .Inner | markdownify }} + {{ end }} +
diff --git a/themes/PaperMod/layouts/_shortcodes/rawhtml.html b/themes/PaperMod/layouts/_shortcodes/rawhtml.html new file mode 100644 index 0000000..9350c13 --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/rawhtml.html @@ -0,0 +1,2 @@ + +{{- .Inner -}} \ No newline at end of file diff --git a/themes/PaperMod/layouts/_shortcodes/rtl.html b/themes/PaperMod/layouts/_shortcodes/rtl.html new file mode 100644 index 0000000..a69b8ce --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/rtl.html @@ -0,0 +1,15 @@ +{{ $.Scratch.Set "md" false }} + +{{ if .IsNamedParams }} +{{ $.Scratch.Set "md" (.Get "md") }} +{{ else }} +{{ $.Scratch.Set "md" (.Get 0) }} +{{ end }} + +
+ {{ if eq ($.Scratch.Get "md") false }} + {{ .Inner }} + {{ else }} + {{ .Inner | markdownify }} + {{ end }} +
diff --git a/themes/PaperMod/layouts/_shortcodes/video.html b/themes/PaperMod/layouts/_shortcodes/video.html new file mode 100644 index 0000000..adb917b --- /dev/null +++ b/themes/PaperMod/layouts/_shortcodes/video.html @@ -0,0 +1,2 @@ +{{ $src := (.Get "src") }} + diff --git a/themes/PaperMod/layouts/archives.html b/themes/PaperMod/layouts/archives.html new file mode 100644 index 0000000..eea3fc8 --- /dev/null +++ b/themes/PaperMod/layouts/archives.html @@ -0,0 +1,83 @@ +{{- define "main" }} + + + +{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }} + +{{- if site.Params.ShowAllPagesInArchive }} +{{- $pages = site.RegularPages }} +{{- end }} + +{{- range $pages.GroupByPublishDate "2006" }} +{{- if ne .Key "0001" }} +
+ {{- $year := replace .Key "0001" "" }} +

+ + {{- $year -}} + +  {{ len .Pages }} +

+ {{- range .Pages.GroupByDate "January" }} +
+

+ + {{- .Key -}} + +  {{ len .Pages }} +

+
+ {{- range .Pages }} + {{- if eq .Kind "page" }} +
+

+ {{- .Title | markdownify }} + {{- if .Draft }} + + + + + + {{- end }} +

+
+ {{- partial "post_meta.html" . -}} +
+ +
+ {{- end }} + {{- end }} +
+
+ {{- end }} +
+{{- end }} +{{- end }} + +{{- end }}{{/* end main */}} diff --git a/themes/PaperMod/layouts/baseof.html b/themes/PaperMod/layouts/baseof.html new file mode 100644 index 0000000..c577599 --- /dev/null +++ b/themes/PaperMod/layouts/baseof.html @@ -0,0 +1,31 @@ +{{- if lt hugo.Version "0.146.0" }} +{{- errorf "=> hugo v0.146.0 or greater is required for hugo-PaperMod to build " }} +{{- end -}} + + +{{- $theme := site.Params.defaultTheme | default "auto" }} +{{- if eq $theme "dark" }} + +{{- else if eq $theme "light" }} + +{{- else }} + +{{- end }} + + + {{- partial "head.html" . }} + + +{{- if (or (ne .Kind `page` ) (eq .Layout `archives`) (eq .Layout `search`)) }} + +{{- else }} + +{{- end }} + {{ partialCached "header.html" . .Page -}} +
+ {{- block "main" . }}{{ end }} +
+ {{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}} + + + diff --git a/themes/PaperMod/layouts/index.json b/themes/PaperMod/layouts/index.json new file mode 100644 index 0000000..feeb437 --- /dev/null +++ b/themes/PaperMod/layouts/index.json @@ -0,0 +1,7 @@ +{{- $.Scratch.Add "index" slice -}} +{{- range site.RegularPages -}} + {{- if and (not .Params.searchHidden) (ne .Layout `archives`) (ne .Layout `search`) }} + {{- $.Scratch.Add "index" (dict "title" .Title "content" .Plain "permalink" .Permalink "summary" .Summary) -}} + {{- end }} +{{- end -}} +{{- $.Scratch.Get "index" | jsonify -}} diff --git a/themes/PaperMod/layouts/list.html b/themes/PaperMod/layouts/list.html new file mode 100644 index 0000000..2fe171f --- /dev/null +++ b/themes/PaperMod/layouts/list.html @@ -0,0 +1,121 @@ +{{- define "main" }} + +{{- if (and site.Params.profileMode.enabled .IsHome) }} +{{- partial "index_profile.html" . }} +{{- else }} {{/* if not profileMode */}} + +{{- if not .IsHome | and .Title }} + +{{- end }} + +{{- if .Content }} +
+ {{- if not (.Param "disableAnchoredHeadings") }} + {{- partial "anchored_headings.html" .Content -}} + {{- else }}{{ .Content }}{{ end }} +
+{{- end }} + +{{- $pages := union .RegularPages .Sections }} + +{{- if .IsHome }} +{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }} +{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }} +{{- end }} + +{{- $paginator := .Paginate $pages }} + +{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }} +{{- partial "home_info.html" . }} +{{- end }} + +{{- $term := .Data.Term }} +{{- range $index, $page := $paginator.Pages }} + +{{- $class := "post-entry" }} + +{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }} +{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }} +{{- $class = "first-entry" }} +{{- else if $term }} +{{- $class = "post-entry tag-entry" }} +{{- end }} + +
+ {{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }} + {{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }} +
+

+ {{- .Title }} + {{- if .Draft }} + + + + + + {{- end }} +

+
+ {{- if (ne (.Param "hideSummary") true) }} +
+

{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}

+
+ {{- end }} + {{- if not (.Param "hideMeta") }} +
+ {{- partial "post_meta.html" . -}} +
+ {{- end }} + +
+{{- end }} + +{{- if gt $paginator.TotalPages 1 }} + +{{- end }} + +{{- end }}{{/* end profileMode */}} + +{{- end }}{{- /* end main */ -}} diff --git a/themes/PaperMod/layouts/llms.txt b/themes/PaperMod/layouts/llms.txt new file mode 100644 index 0000000..32642e7 --- /dev/null +++ b/themes/PaperMod/layouts/llms.txt @@ -0,0 +1,41 @@ +{{- /* Recursive printer for sections */ -}} +{{- define "llms_print_section" -}} +{{- $section := .section -}} +{{- $depth := .depth -}} +{{- if or (gt (len $section.RegularPages) 0) (gt (len $section.Sections) 0) -}} +{{- $hashes := strings.Repeat (add $depth 1) "#" }} + +{{ printf "%s %s" $hashes $section.Title }} + +{{- /* Pages in this section */ -}} +{{- range $p := $section.RegularPages }} + {{- if and (not $p.Params.searchHidden) (ne $p.Layout `archives`) (ne $p.Layout `search`) }} +- [{{ $p.Title }}]({{ $p.Permalink }}) + {{- end -}} +{{- end -}} + +{{- /* Recurse into subsections */ -}} +{{- range $s := $section.Sections -}} +{{- template "llms_print_section" (dict "section" $s "depth" (add $depth 1)) -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{- /* Main template starts here */ -}} +# {{ site.Title }} + +{{- /* Pages not in any section */ -}} +{{- $orphans := where site.RegularPages "Section" "" -}} +{{ if gt (len $orphans) 0 }} + +{{- range $p := $orphans -}} + {{ if and (not $p.Params.searchHidden) (ne $p.Layout `archives`) (ne $p.Layout `search`) (not $p.IsHome) }} +- [{{ $p.Title }}]({{ $p.Permalink }}) + {{- end -}} +{{- end -}} + +{{- end -}} + +{{- range site.Sections -}} +{{- template "llms_print_section" (dict "section" . "depth" 1) -}} +{{- end }} diff --git a/themes/PaperMod/layouts/robots.txt b/themes/PaperMod/layouts/robots.txt new file mode 100644 index 0000000..f26f508 --- /dev/null +++ b/themes/PaperMod/layouts/robots.txt @@ -0,0 +1,7 @@ +User-agent: * +{{- if hugo.IsProduction | or (eq site.Params.env "production") }} +Disallow: +{{- else }} +Disallow: / +{{- end }} +Sitemap: {{ "sitemap.xml" | absURL }} diff --git a/themes/PaperMod/layouts/rss.xml b/themes/PaperMod/layouts/rss.xml new file mode 100644 index 0000000..e48b24f --- /dev/null +++ b/themes/PaperMod/layouts/rss.xml @@ -0,0 +1,72 @@ +{{- $authorEmail := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .email }} + {{- $authorEmail = . }} + {{- end }} + {{- end }} +{{- end }} + +{{- $authorName := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .name }} + {{- $authorName = . }} + {{- end }} + {{- else }} + {{- $authorName = . }} + {{- end }} +{{- end }} + +{{- $pctx := . }} +{{- if .IsHome }}{{ $pctx = site }}{{ end }} +{{- $pages := slice }} +{{- if or $.IsHome $.IsSection }} +{{- $pages = $pctx.RegularPages }} +{{- else }} +{{- $pages = $pctx.Pages }} +{{- end }} +{{- $pages = where $pages "Params.hiddenInRss" "!=" true -}} +{{- $limit := site.Config.Services.RSS.Limit }} +{{- if ge $limit 1 }} +{{- $pages = $pages | first $limit }} +{{- end }} +{{- printf "" | safeHTML }} + + + {{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ site.Title }}{{ end }} + {{ .Permalink }} + Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ site.Title }} + {{- with site.Params.images }} + + {{ site.Title }} + {{ index . 0 | absURL }} + {{ index . 0 | absURL }} + + {{- end }} + Hugo + {{ site.Language.LanguageCode }}{{ with $authorEmail }} + {{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }} + {{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with site.Copyright }} + {{ . | markdownify | plainify | strings.TrimPrefix "© " }}{{ end }}{{ if not .Date.IsZero }} + {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{- with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{- end }} + {{- range $pages }} + {{- if and (ne .Layout `search`) (ne .Layout `archives`) }} + + {{ .Title }} + {{ .Permalink }} + {{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{- with $authorEmail }}{{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }} + {{ .Permalink }} + {{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}} + {{- if and site.Params.ShowFullTextinRSS .Content }} + {{ (printf "" .Content) | safeHTML }} + {{- end }} + + {{- end }} + {{- end }} + + diff --git a/themes/PaperMod/layouts/search.html b/themes/PaperMod/layouts/search.html new file mode 100644 index 0000000..06af878 --- /dev/null +++ b/themes/PaperMod/layouts/search.html @@ -0,0 +1,29 @@ +{{- define "main" }} + + + + + +{{- end }}{{/* end main */}} diff --git a/themes/PaperMod/layouts/single.html b/themes/PaperMod/layouts/single.html new file mode 100644 index 0000000..19323b2 --- /dev/null +++ b/themes/PaperMod/layouts/single.html @@ -0,0 +1,67 @@ +{{- define "main" }} + +
+
+ {{ partial "breadcrumbs.html" . }} +

+ {{ .Title }} + {{- if .Draft }} + + + + + + {{- end }} +

+ {{- if .Description }} +
+ {{ .Description }} +
+ {{- end }} + {{- if not (.Param "hideMeta") }} + + {{- end }} +
+ {{- $isHidden := (.Param "cover.hiddenInSingle") | default (.Param "cover.hidden") | default false }} + {{- partial "cover.html" (dict "cxt" . "IsSingle" true "isHidden" $isHidden) }} + {{- if (.Param "ShowToc") }} + {{- partial "toc.html" . }} + {{- end }} + + {{- if .Content }} +
+ {{- if not (.Param "disableAnchoredHeadings") }} + {{- partial "anchored_headings.html" .Content -}} + {{- else }}{{ .Content }}{{ end }} +
+ {{- end }} + + {{- partial "extend_post_content.html" . }} + +
+ {{- $tags := .Language.Params.Taxonomies.tag | default "tags" }} + + {{- if (.Param "ShowPostNavLinks") }} + {{- partial "post_nav_links.html" . }} + {{- end }} + {{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }} + {{- partial "share_icons.html" . -}} + {{- end }} +
+ + {{- if (.Param "comments") }} + {{- partial "comments.html" . }} + {{- end }} +
+ +{{- end }}{{/* end main */}} diff --git a/themes/PaperMod/layouts/taxonomy.html b/themes/PaperMod/layouts/taxonomy.html new file mode 100644 index 0000000..84fad52 --- /dev/null +++ b/themes/PaperMod/layouts/taxonomy.html @@ -0,0 +1,27 @@ +{{- define "main" }} + +{{- if .Title }} + +{{- end }} + +
    + {{- $type := .Type }} + {{- range $key, $value := .Data.Terms.Alphabetical }} + {{- $name := .Name }} + {{- $count := .Count }} + {{- with site.GetPage (printf "/%s/%s" $type $name) }} +
  • + {{ .LinkTitle }} {{ $count }} +
  • + {{- end }} + {{- end }} +
+ +{{- end }}{{/* end main */ -}} diff --git a/themes/PaperMod/theme.toml b/themes/PaperMod/theme.toml new file mode 100644 index 0000000..758f828 --- /dev/null +++ b/themes/PaperMod/theme.toml @@ -0,0 +1,68 @@ +# theme.toml template for a Hugo theme +# See https://github.com/gohugoio/hugoThemes#themetoml for an example + +name = "PaperMod" +license = "MIT" +licenselink = "https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE" +description = "A fast, clean, responsive Hugo theme" +homepage = "https://github.com/adityatelange/hugo-PaperMod/" +demosite = "https://adityatelange.github.io/hugo-PaperMod/" +tags = [ + "responsive", + "blog", + "clean", + "minimal", + "light", + "dark", + "fast", + "multilingual", + "search", + "seo", + "chroma", + "personal" +] +features = [ + "responsive", + "single-column", + "blog", + "cover-image", + "table-of-contents", + "opengraph", + "twitter-cards", + "favicon", + "archive", + "share-icons", + "cover", + "multilingual", + "social-icons", + "minified-assets", + "theme-toggle", + "menu-location-indicator", + "scroll-to-top", + "search", + "breadcrumbs", + "reading-time", + "word-count", + "code-copy", + "comments", + "edit-post", + "canonical-link", + "profile-mode", + "home-info-mode", + "related-posts", + "rss", + "multiple-authors", + "post-nav-links" +] +min_version = "0.146.0" + +[author] + name = "Aditya Telange" + homepage = "https://github.com/adityatelange" + +# If porting an existing theme +[original] + name = "Paper" + author = "nanxiaobei" + homepage = "https://github.com/nanxiaobei" + repo = "https://github.com/nanxiaobei/hugo-paper/"