From 01eb2b2b5cc3dec92bfbbe077dc16f4e1a8b05a1 Mon Sep 17 00:00:00 2001 From: Angad Behl <77907286+slashtechno@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:51:17 +0000 Subject: [PATCH] Configure Hugo --- .github/workflows/blank.yml | 39 + .gitignore | 2 + .gitmodules | 3 + archetypes/default.md | 5 + content/blog/_index.md | 6 + hugo.yaml | 20 + .../.github/ISSUE_TEMPLATE/bug_report.md | 50 + .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/ISSUE_TEMPLATE/proposal.md | 7 + .../PaperMod/.github/PULL_REQUEST_TEMPLATE.md | 44 + .../PaperMod/.github/workflows/gh-pages.yml | 77 ++ themes/PaperMod/LICENSE | 22 + themes/PaperMod/README.md | 106 ++ themes/PaperMod/assets/css/common/404.css | 11 + themes/PaperMod/assets/css/common/archive.css | 44 + themes/PaperMod/assets/css/common/footer.css | 60 ++ themes/PaperMod/assets/css/common/header.css | 93 ++ themes/PaperMod/assets/css/common/main.css | 66 ++ .../PaperMod/assets/css/common/post-entry.css | 108 ++ .../assets/css/common/post-single.css | 409 ++++++++ .../assets/css/common/profile-mode.css | 43 + themes/PaperMod/assets/css/common/search.css | 45 + themes/PaperMod/assets/css/common/terms.css | 18 + themes/PaperMod/assets/css/core/license.css | 6 + themes/PaperMod/assets/css/core/reset.css | 118 +++ .../PaperMod/assets/css/core/theme-vars.css | 38 + 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 ++ .../assets/css/includes/scroll-bar.css | 63 ++ themes/PaperMod/assets/js/fastsearch.js | 152 +++ 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 | 19 + 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/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 + .../_default/_markup/render-image.html | 1 + .../PaperMod/layouts/_default/archives.html | 83 ++ themes/PaperMod/layouts/_default/baseof.html | 27 + themes/PaperMod/layouts/_default/index.json | 7 + themes/PaperMod/layouts/_default/list.html | 121 +++ themes/PaperMod/layouts/_default/rss.xml | 83 ++ themes/PaperMod/layouts/_default/search.html | 29 + themes/PaperMod/layouts/_default/single.html | 65 ++ themes/PaperMod/layouts/_default/terms.html | 27 + .../layouts/partials/anchored_headings.html | 2 + themes/PaperMod/layouts/partials/author.html | 9 + .../layouts/partials/breadcrumbs.html | 19 + .../PaperMod/layouts/partials/comments.html | 3 + themes/PaperMod/layouts/partials/cover.html | 43 + .../PaperMod/layouts/partials/edit_post.html | 8 + .../layouts/partials/extend_footer.html | 3 + .../layouts/partials/extend_head.html | 4 + themes/PaperMod/layouts/partials/footer.html | 144 +++ themes/PaperMod/layouts/partials/head.html | 157 +++ themes/PaperMod/layouts/partials/header.html | 149 +++ .../PaperMod/layouts/partials/home_info.html | 13 + .../layouts/partials/index_profile.html | 58 ++ .../layouts/partials/post_canonical.html | 9 + .../PaperMod/layouts/partials/post_meta.html | 23 + .../layouts/partials/post_nav_links.html | 19 + .../layouts/partials/share_icons.html | 95 ++ .../layouts/partials/social_icons.html | 8 + themes/PaperMod/layouts/partials/svg.html | 940 ++++++++++++++++++ .../templates/_funcs/get-page-images.html | 47 + .../layouts/partials/templates/opengraph.html | 59 ++ .../partials/templates/schema_json.html | 124 +++ .../partials/templates/twitter_cards.html | 38 + themes/PaperMod/layouts/partials/toc.html | 97 ++ .../layouts/partials/translation_list.html | 19 + themes/PaperMod/layouts/robots.txt | 7 + .../PaperMod/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 + themes/PaperMod/theme.toml | 51 + 125 files changed, 5875 insertions(+) create mode 100644 .github/workflows/blank.yml create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 archetypes/default.md create mode 100644 content/blog/_index.md create mode 100644 hugo.yaml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/proposal.md create mode 100644 themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md 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/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/css/includes/scroll-bar.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/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/_default/_markup/render-image.html create mode 100644 themes/PaperMod/layouts/_default/archives.html create mode 100644 themes/PaperMod/layouts/_default/baseof.html create mode 100644 themes/PaperMod/layouts/_default/index.json create mode 100644 themes/PaperMod/layouts/_default/list.html create mode 100644 themes/PaperMod/layouts/_default/rss.xml create mode 100644 themes/PaperMod/layouts/_default/search.html create mode 100644 themes/PaperMod/layouts/_default/single.html create mode 100644 themes/PaperMod/layouts/_default/terms.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/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/robots.txt 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/theme.toml diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml new file mode 100644 index 0000000..7f721f8 --- /dev/null +++ b/.github/workflows/blank.yml @@ -0,0 +1,39 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + # Runs a single command using the runners shell + - name: Run a one-line script + run: echo Hello, world! + + # Runs a set of commands using the runners shell + - name: Run a multi-line script + run: | + echo Add other actions to build, + echo test, and deploy your project. + - name: Test + run: | + echo $GITHUB_WORKSPACE diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4af45ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +public/ +.hugo_build.lock \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..89af1b0 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/PaperMod"] + path = themes/PaperMod + url = https://github.com/adityatelange/hugo-PaperMod.git diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..c6f3fce --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +title = '{{ replace .File.ContentBaseName "-" " " | title }}' +date = {{ .Date }} +draft = true ++++ diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..864bbf0 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,6 @@ +--- +title: Blog +description: "Thoughts, stories and ideas." +--- + + \ No newline at end of file diff --git a/hugo.yaml b/hugo.yaml new file mode 100644 index 0000000..94fed4e --- /dev/null +++ b/hugo.yaml @@ -0,0 +1,20 @@ +baseURL: 'https://example.com/' +languageCode: en-us +# This title is used as the website title (navbar and meta title) +title: Cross Blogger Showcase +theme: PaperMod + +params: + title: Hi, this is a test! + description: "This is a showcase of Cross Blogger, a headless CMS for Hugo." + env: production # Enables enhanced SEO + profileMode: + enabled: true + buttons: + - name: Blog + url: "/blog/" + - name: GitHub + url: "https://github.com/slashtechno/cross-blogger" + socialIcons: # Show the respective social icon linked to the corresponding URL + - name: github + url: "https://github.com/slashtechno/cross-blogger" \ No newline at end of file diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/bug_report.md b/themes/PaperMod/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..d88b750 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,50 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: bug +assignees: '' + +--- + + + +**Describe the bug** + + + - Device/Os: [e.g. Android 10] + - Type: [e.g. Desktop/Mobile] + - Browser and version [e.g. Chrome 86.0]: + - Hugo Version [ >=0.112.4 expected]: + - Theme Version [e.g. v4.0, master, or commit-id ]: + +**Steps to reproduce the behavior:** + + +**Expected behavior**: + + +**Repo/Source where this issue can be reproduced**: + + +**Screenshots** + + +**Additional context** + 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/proposal.md b/themes/PaperMod/.github/ISSUE_TEMPLATE/proposal.md new file mode 100644 index 0000000..c7e35e1 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/proposal.md @@ -0,0 +1,7 @@ +--- +name: Proposal +about: Propose a new feature or change to a feature for Hugo-PaperMod. +title: "" +labels: "enhancement" +assignees: "" +--- diff --git a/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md b/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..00b856c --- /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/gh-pages.yml b/themes/PaperMod/.github/workflows/gh-pages.yml new file mode 100644 index 0000000..6a43bcd --- /dev/null +++ b/themes/PaperMod/.github/workflows/gh-pages.yml @@ -0,0 +1,77 @@ +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: "0.112.4" + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +# Default to bash +defaults: + run: + shell: bash + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: ${{ github.event.inputs.hugoVersion || '0.112.4' }} + 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@v3 + with: + ref: exampleSite + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + - 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@v2 + with: + path: ./public + # Deployment job + deploy: + 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@v2 diff --git a/themes/PaperMod/LICENSE b/themes/PaperMod/LICENSE new file mode 100644 index 0000000..07edff3 --- /dev/null +++ b/themes/PaperMod/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2020 nanxiaobei and adityatelange +Copyright (c) 2021-2024 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..0637bf9 --- /dev/null +++ b/themes/PaperMod/README.md @@ -0,0 +1,106 @@ +

Hugo PaperMod | Demo

+ +

☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive

+
+ +> Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper/tree/4330c8b12aa48bfdecbcad6ad66145f679a430b3).
+> The goal of this project is to add more features and customization to the og theme. + +**Documentation** can be found here: [**📚 Wiki**](https://github.com/adityatelange/hugo-PaperMod/wiki) + +**ExampleSite** can be found here: [**exampleSite**](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite) as source. + +[![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=min-HUGO-version&message=>=v0.112.4&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.112.4) +[![Discord](https://img.shields.io/discord/971046860317921340?label=Discord&logo=discord)](https://discord.gg/ahpmTvhVmp) +[![GitHub](https://img.shields.io/github/license/adityatelange/hugo-PaperMod)](https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE) +![code-size](https://img.shields.io/github/languages/code-size/adityatelange/hugo-PaperMod) +[![X (formerly Twitter) URL](https://img.shields.io/badge/-Share%20on%20X-gray?style=flat&logo=x)](https://x.com/intent/tweet/?text=Checkout%20Hugo%20PaperMod%20%E2%9C%A8%0AA%20fast,%20clean,%20responsive%20Hugo%20theme.&url=https://github.com/adityatelange/hugo-PaperMod&hashtags=Hugo,PaperMod) + + +--- + +

+ Mockup image +

+ +--- + +## Features/Mods 💥 + +- Uses Hugo's asset generator with pipelining, fingerprinting, bundling and minification by default. +- 3 Modes: + - [Regular Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#regular-mode-default-mode) + - [Home-Info Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#home-info-mode) + - [Profile Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#profile-mode) +- Table of Content Generation (newer implementation). +- Archive of posts. +- Social Icons (home-info and profile-mode). +- Social-Media Share buttons on posts. +- Menu location indicator. +- Multilingual support. (with language selector). +- Taxonomies. +- Cover image for each post (with Responsive image support). +- Light/Dark theme (automatic theme switch a/c to browser theme and theme-switch button). +- SEO Friendly. +- Multiple Author support. +- Search Page with Fuse.js +- Other Posts suggestion below a post +- Breadcrumb Navigation. +- Code Block Copy buttons. +- Hugo's Chroma syntax highlighter. +- No webpack, nodejs and other dependencies are required to edit the theme. + +Read Wiki For More Details => **[PaperMod - Features](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)** + +--- + +## Install/Update 📥 + +Read Wiki For More Details => **[PaperMod - Installation](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation)** + +--- + +## FAQs / How To's Guide 🙋 + +Read Wiki For More Details => **[PaperMod-FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs)** + +--- + +## Social-Icons/Share-Icons 🖼️ + +Read Wiki For More Details => **[PaperMod-Icons](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)** + +--- + +## Release Changelog 📃 + +Release ChangeLog has info about stuff added: **[Releases](https://github.com/adityatelange/hugo-PaperMod/releases)** + +--- + +## [Pagespeed Insights (100% ?)](https://pagespeed.web.dev/report?url=https://adityatelange.github.io/hugo-PaperMod/) 👀 + +--- + +## Support 🫶 + +- Star 🌟 this repository. +- Help spread the word about PaperMod by sharing it on social media and recommending it to your friends. 🗣️ +- You can also sponsor 🏅 on [Github Sponsors](https://github.com/sponsors/adityatelange) / [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 over time 📈 + +[![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..5addb1e --- /dev/null +++ b/themes/PaperMod/assets/css/common/footer.css @@ -0,0 +1,60 @@ +.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; + border-bottom: 1px solid var(--secondary); +} + +.footer a:hover { + border-bottom: 1px solid var(--primary); +} + +.top-link { + visibility: hidden; + position: fixed; + bottom: 60px; + right: 30px; + z-index: 99; + background: var(--tertiary); + width: 42px; + height: 42px; + padding: 12px; + border-radius: 64px; + transition: visibility 0.5s, opacity 0.8s linear; +} + +.top-link, +.top-link svg { + filter: drop-shadow(0px 0px 0px var(--theme)); +} + +.footer a:hover, +.top-link:hover { + color: var(--primary); +} + +.top-link:focus, +#theme-toggle:focus { + outline: 0; +} diff --git a/themes/PaperMod/assets/css/common/header.css b/themes/PaperMod/assets/css/common/header.css new file mode 100644 index 0000000..64894da --- /dev/null +++ b/themes/PaperMod/assets/css/common/header.css @@ -0,0 +1,93 @@ +.nav { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + max-width: calc(var(--nav-width) + var(--gap) * 2); + margin-inline-start: auto; + margin-inline-end: auto; + line-height: var(--header-height); +} + +.nav a { + display: block; +} + +.logo, +#menu { + display: flex; + margin: auto var(--gap); +} + +.logo { + flex-wrap: inherit; +} + +.logo a { + font-size: 24px; + font-weight: 700; +} + +.logo a img, .logo a svg { + display: inline; + vertical-align: middle; + pointer-events: none; + transform: translate(0, -10%); + border-radius: 6px; + margin-inline-end: 8px; +} + +button#theme-toggle { + font-size: 26px; + margin: auto 4px; +} + +body.dark #moon { + vertical-align: middle; + display: none; +} + +body:not(.dark) #sun { + display: none; +} + +#menu { + list-style: none; + word-break: keep-all; + overflow-x: auto; + white-space: nowrap; +} + +#menu li + li { + margin-inline-start: var(--gap); +} + +#menu a { + font-size: 16px; +} + +#menu .active { + font-weight: 500; + border-bottom: 2px solid currentColor; +} + +.lang-switch li, +.lang-switch ul, +.logo-switches { + display: inline-flex; + margin: auto 4px; +} + +.lang-switch { + display: flex; + flex-wrap: inherit; +} + +.lang-switch a { + margin: auto 3px; + font-size: 16px; + font-weight: 500; +} + +.logo-switches { + flex-wrap: inherit; +} 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/post-entry.css b/themes/PaperMod/assets/css/common/post-entry.css new file mode 100644 index 0000000..c3cba37 --- /dev/null +++ b/themes/PaperMod/assets/css/common/post-entry.css @@ -0,0 +1,108 @@ +.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-content { + margin: 14px 0; + font-size: 16px; + -webkit-line-clamp: 3; +} + +.first-entry .entry-footer { + font-size: 14px; +} + +.home-info .entry-content { + -webkit-line-clamp: unset; +} + +.post-entry { + position: relative; + margin-bottom: var(--gap); + padding: var(--gap); + background: var(--entry); + border-radius: var(--radius); + transition: transform 0.1s; + border: 1px solid var(--border); +} + +.post-entry:active { + transform: scale(0.96); +} + +.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; +} + +.entry-footer { + color: var(--secondary); + font-size: 13px; +} + +.entry-link { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.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; +} + +.entry-cover img { + border-radius: var(--radius); + pointer-events: none; + width: 100%; + height: auto; +} + +.entry-cover a { + color: var(--secondary); + box-shadow: 0 1px 0 var(--primary); +} 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..486ad36 --- /dev/null +++ b/themes/PaperMod/assets/css/common/post-single.css @@ -0,0 +1,409 @@ +.page-header, +.post-header { + margin: 24px auto var(--content-gap) auto; +} + +.post-title { + margin-bottom: 2px; + font-size: 40px; +} + +.post-description { + margin-top: 10px; + margin-bottom: 5px; +} + +.post-meta, +.breadcrumbs { + color: var(--secondary); + font-size: 14px; + display: flex; + flex-wrap: wrap; +} + +.post-meta .i18n_list li { + display: inline-flex; + list-style: none; + margin: auto 3px; + box-shadow: 0 1px 0 var(--secondary); +} + +.breadcrumbs a { + font-size: 16px; +} + +.post-content { + color: var(--content); +} + +.post-content h3, +.post-content h4, +.post-content h5, +.post-content h6 { + margin: 24px 0 16px; +} + +.post-content h1 { + margin: 40px auto 32px; + font-size: 40px; +} + +.post-content h2 { + margin: 32px auto 24px; + font-size: 32px; +} + +.post-content h3 { + font-size: 24px; +} + +.post-content h4 { + font-size: 16px; +} + +.post-content h5 { + font-size: 14px; +} + +.post-content h6 { + font-size: 12px; +} + +.post-content a, +.toc a:hover { + box-shadow: 0 1px 0; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; +} + +.post-content a code { + margin: auto 0; + border-radius: 0; + box-shadow: 0 -1px 0 var(--primary) inset; +} + +.post-content del { + text-decoration: line-through; +} + +.post-content dl, +.post-content ol, +.post-content p, +.post-content figure, +.post-content ul { + margin-bottom: var(--content-gap); +} + +.post-content ol, +.post-content ul { + padding-inline-start: 20px; +} + +.post-content li { + margin-top: 5px; +} + +.post-content li p { + margin-bottom: 0; +} + +.post-content dl { + display: flex; + flex-wrap: wrap; + margin: 0; +} + +.post-content dt { + width: 25%; + font-weight: 700; +} + +.post-content dd { + width: 75%; + margin-inline-start: 0; + padding-inline-start: 10px; +} + +.post-content dd ~ dd, +.post-content dt ~ dt { + margin-top: 10px; +} + +.post-content table { + margin-bottom: var(--content-gap); +} + +.post-content table th, +.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td { + min-width: 80px; + padding: 8px 5px; + line-height: 1.5; + border-bottom: 1px solid var(--border); +} + +.post-content table th { + text-align: start; +} + +.post-content table:not(.highlighttable) td code:only-child { + margin: auto 0; +} + +.post-content .highlight table { + border-radius: var(--radius); +} + +.post-content .highlight:not(table) { + margin: 10px auto; + background: var(--code-block-bg) !important; + border-radius: var(--radius); + direction: ltr; +} + +.post-content li > .highlight { + margin-inline-end: 0; +} + +.post-content ul pre { + margin-inline-start: calc(var(--gap) * -2); +} + +.post-content .highlight pre { + margin: 0; +} + +.post-content .highlighttable { + table-layout: fixed; +} + +.post-content .highlighttable td:first-child { + width: 40px; +} + +.post-content .highlighttable td .linenodiv { + padding-inline-end: 0 !important; +} + +.post-content .highlighttable td .highlight, +.post-content .highlighttable td .linenodiv pre { + margin-bottom: 0; +} + +.post-content code { + margin: auto 4px; + padding: 4px 6px; + font-size: 0.78em; + line-height: 1.5; + background: var(--code-bg); + border-radius: 2px; +} + +.post-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; +} + +.post-content blockquote { + margin: 20px 0; + padding: 0 14px; + border-inline-start: 3px solid var(--primary); +} + +.post-content hr { + margin: 30px 0; + height: 2px; + background: var(--tertiary); + border: 0; +} + +.post-content iframe { + max-width: 100%; +} + +.post-content img { + border-radius: 4px; + margin: 1rem 0; +} + +.post-content img[src*="#center"] { + margin: 1rem auto; +} + +.post-content figure.align-center { + text-align: center; +} + +.post-content figure > figcaption { + color: var(--primary); + font-size: 16px; + font-weight: bold; + margin: 8px 0 16px; +} + +.post-content figure > figcaption > p { + color: var(--secondary); + font-size: 14px; + font-weight: normal; +} + +.toc { + margin: 0 2px 40px 2px; + border: 1px solid var(--border); + background: var(--code-bg); + border-radius: var(--radius); + padding: 0.4em; +} + +.dark .toc { + background: var(--entry); +} + +.toc details summary { + cursor: zoom-in; + margin-inline-start: 10px; + user-select: none; +} + +.toc details[open] summary { + cursor: zoom-out; +} + +.toc .details { + display: inline; + font-weight: 500; +} + +.toc .inner { + margin: 5px 20px 0; + padding: 0 10px; + opacity: 0.9; +} + +.toc li ul { + margin-inline-start: var(--gap); +} + +.toc summary:focus { + outline: 0; +} + +.post-footer { + margin-top: 56px; +} + +.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; +} + +h1:hover .anchor, +h2:hover .anchor, +h3:hover .anchor, +h4:hover .anchor, +h5:hover .anchor, +h6:hover .anchor { + display: inline-flex; + color: var(--secondary); + margin-inline-start: 8px; + font-weight: 500; + user-select: none; +} + +.paginav { + display: flex; + line-height: 30px; +} + +.paginav a { + padding-inline-start: 14px; + padding-inline-end: 14px; + border-radius: var(--radius); +} + +.paginav .title { + letter-spacing: 1px; + text-transform: uppercase; + font-size: small; + color: var(--secondary); +} + +.paginav .prev, +.paginav .next { + width: 50%; +} + +.paginav span:hover:not(.title) { + box-shadow: 0 1px 0; +} + +.paginav .next { + margin-inline-start: auto; + text-align: right; +} + +[dir="rtl"] .paginav .next { + text-align: left; +} + +h1>a>svg { + display: inline; +} + +img.in-text { + display: inline; + margin: auto; +} 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..9e98df5 --- /dev/null +++ b/themes/PaperMod/assets/css/common/profile-mode.css @@ -0,0 +1,43 @@ +.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: 10px; +} + +.profile img { + border-radius: 50%; +} + +.buttons { + flex-wrap: wrap; + max-width: 400px; +} + +.button { + background: var(--tertiary); + border-radius: var(--radius); + margin: 8px; + padding: 6px; + transition: transform 0.1s; +} + +.button-inner { + padding: 0 8px; +} + +.button:active { + transform: scale(0.96); +} diff --git a/themes/PaperMod/assets/css/common/search.css b/themes/PaperMod/assets/css/common/search.css new file mode 100644 index 0000000..38d5b6b --- /dev/null +++ b/themes/PaperMod/assets/css/common/search.css @@ -0,0 +1,45 @@ +#searchbox input { + padding: 4px 10px; + width: 100%; + color: var(--primary); + font-weight: bold; + border: 2px solid var(--tertiary); + border-radius: var(--radius); +} + +#searchbox input:focus { + border-color: var(--secondary); +} + +#searchResults li { + list-style: none; + border-radius: var(--radius); + padding: 10px; + margin: 10px 0; + position: relative; + font-weight: 500; +} + +#searchResults { + margin: 10px 0; + width: 100%; +} + +#searchResults li:active { + transition: transform 0.1s; + transform: scale(0.98); +} + +#searchResults a { + position: absolute; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + outline: none; +} + +#searchResults .focus { + transform: scale(0.98); + border: 2px solid var(--tertiary); +} diff --git a/themes/PaperMod/assets/css/common/terms.css b/themes/PaperMod/assets/css/common/terms.css new file mode 100644 index 0000000..244614b --- /dev/null +++ b/themes/PaperMod/assets/css/common/terms.css @@ -0,0 +1,18 @@ +.terms-tags li { + display: inline-block; + margin: 10px; + font-weight: 500; +} + +.terms-tags a { + display: block; + padding: 3px 10px; + background: var(--tertiary); + border-radius: 6px; + transition: transform 0.1s; +} + +.terms-tags a:active { + background: var(--tertiary); + transform: scale(0.96); +} diff --git a/themes/PaperMod/assets/css/core/license.css b/themes/PaperMod/assets/css/core/license.css new file mode 100644 index 0000000..fb3dfec --- /dev/null +++ b/themes/PaperMod/assets/css/core/license.css @@ -0,0 +1,6 @@ +/* + PaperMod v7 + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2024 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..db1845d --- /dev/null +++ b/themes/PaperMod/assets/css/core/theme-vars.css @@ -0,0 +1,38 @@ +: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); +} + +.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); +} + +.list { + background: var(--code-bg); +} + +.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..a68fd71 --- /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/css/includes/scroll-bar.css b/themes/PaperMod/assets/css/includes/scroll-bar.css new file mode 100644 index 0000000..f6e577d --- /dev/null +++ b/themes/PaperMod/assets/css/includes/scroll-bar.css @@ -0,0 +1,63 @@ +/* from reset */ +::-webkit-scrollbar-track { + background: 0 0; +} + +.list:not(.dark)::-webkit-scrollbar-track { + background: var(--code-bg); +} + +::-webkit-scrollbar-thumb { + background: var(--tertiary); + border: 5px solid var(--theme); + border-radius: var(--radius); +} + +.list:not(.dark)::-webkit-scrollbar-thumb { + border: 5px solid var(--code-bg); +} + +::-webkit-scrollbar-thumb:hover { + background: var(--secondary); +} + +::-webkit-scrollbar:not(.highlighttable, .highlight table, .gist .highlight) { + background: var(--theme); +} + +/* from post-single */ +.post-content .highlighttable td .highlight pre code::-webkit-scrollbar { + display: none; +} + +.post-content :not(table) ::-webkit-scrollbar-thumb { + border: 2px solid var(--code-block-bg); + background: rgb(113, 113, 117); +} + +.post-content :not(table) ::-webkit-scrollbar-thumb:hover { + background: rgb(163, 163, 165); +} + +.gist table::-webkit-scrollbar-thumb { + border: 2px solid rgb(255, 255, 255); + background: rgb(173, 173, 173); +} + +.gist table::-webkit-scrollbar-thumb:hover { + background: rgb(112, 112, 112); +} + +.post-content table::-webkit-scrollbar-thumb { + border-width: 2px; +} + +/* from zmedia */ +@media screen and (min-width: 768px) { + + /* reset */ + ::-webkit-scrollbar { + width: 19px; + height: 11px; + } +} diff --git a/themes/PaperMod/assets/js/fastsearch.js b/themes/PaperMod/assets/js/fastsearch.js new file mode 100644 index 0000000..9484e75 --- /dev/null +++ b/themes/PaperMod/assets/js/fastsearch.js @@ -0,0 +1,152 @@ +import * as params from '@params'; + +let fuse; // holds our search engine +let resList = document.getElementById('searchResults'); +let sInput = document.getElementById('searchInput'); +let first, last, current_elem = null +let resultsAvailable = false; + +// load our search index +window.onload = function () { + let xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + let data = JSON.parse(xhr.responseText); + if (data) { + // fuse.js options; check fuse.js website for details + let options = { + distance: 100, + threshold: 0.4, + ignoreLocation: true, + keys: [ + 'title', + 'permalink', + 'summary', + 'content' + ] + }; + if (params.fuseOpts) { + options = { + 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 ?? ['title', 'permalink', 'summary', 'content'], + location: params.fuseOpts.location ?? 0, + threshold: params.fuseOpts.threshold ?? 0.4, + distance: params.fuseOpts.distance ?? 100, + ignoreLocation: params.fuseOpts.ignorelocation ?? true + } + } + fuse = new Fuse(data, options); // build the index from the json file + } + } else { + console.log(xhr.responseText); + } + } + }; + xhr.open('GET', "../index.json"); + xhr.send(); +} + +function activeToggle(ae) { + document.querySelectorAll('.focus').forEach(function (element) { + // rm focus class + element.classList.remove("focus") + }); + if (ae) { + ae.focus() + document.activeElement = current_elem = ae; + ae.parentElement.classList.add("focus") + } else { + document.activeElement.parentElement.classList.add("focus") + } +} + +function reset() { + resultsAvailable = false; + resList.innerHTML = sInput.value = ''; // clear inputbox and searchResults + sInput.focus(); // shift focus to input box +} + +// execute search as each character is typed +sInput.onkeyup = function (e) { + // run a search query (for "term") every time a letter is typed + // in the search box + if (fuse) { + let results; + if (params.fuseOpts) { + results = fuse.search(this.value.trim(), {limit: params.fuseOpts.limit}); // the actual query being run using fuse.js along with options + } else { + results = fuse.search(this.value.trim()); // the actual query being run using fuse.js + } + if (results.length !== 0) { + // build our html if result exists + let resultSet = ''; // our results bucket + + for (let item in results) { + resultSet += `
  • ${results[item].item.title} »
    ` + + `
  • ` + } + + resList.innerHTML = resultSet; + resultsAvailable = true; + first = resList.firstChild; + last = resList.lastChild; + } else { + resultsAvailable = false; + resList.innerHTML = ''; + } + } +} + +sInput.addEventListener('search', function (e) { + // clicked on x + if (!this.value) reset() +}) + +// kb bindings +document.onkeydown = function (e) { + let key = e.key; + let ae = document.activeElement; + + let inbox = document.getElementById("searchbox").contains(ae) + + if (ae === sInput) { + let elements = document.getElementsByClassName('focus'); + while (elements.length > 0) { + elements[0].classList.remove('focus'); + } + } else if (current_elem) ae = current_elem; + + if (key === "Escape") { + reset() + } else if (!resultsAvailable || !inbox) { + return + } else if (key === "ArrowDown") { + e.preventDefault(); + if (ae == sInput) { + // if the currently focused element is the search input, focus the of first
  • + activeToggle(resList.firstChild.lastChild); + } else if (ae.parentElement != last) { + // if the currently focused element's parent is last, do nothing + // otherwise select the next search result + activeToggle(ae.parentElement.nextSibling.lastChild); + } + } else if (key === "ArrowUp") { + e.preventDefault(); + if (ae.parentElement == first) { + // if the currently focused element is first item, go to input box + activeToggle(sInput); + } else if (ae != sInput) { + // if the currently focused element is input box, do nothing + // otherwise select the previous search result + activeToggle(ae.parentElement.previousSibling.lastChild); + } + } else if (key === "ArrowRight") { + ae.click(); // click on active link + } +} 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..fb3dfec --- /dev/null +++ b/themes/PaperMod/assets/js/license.js @@ -0,0 +1,6 @@ +/* + PaperMod v7 + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2024 adityatelange +*/ diff --git a/themes/PaperMod/go.mod b/themes/PaperMod/go.mod new file mode 100644 index 0000000..af95855 --- /dev/null +++ b/themes/PaperMod/go.mod @@ -0,0 +1,3 @@ +module github.com/adityatelange/hugo-PaperMod + +go 1.12 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..15713e1 --- /dev/null +++ b/themes/PaperMod/i18n/ca.yaml @@ -0,0 +1,19 @@ +- id: prev_page + translation: "Pàgina anterior" + +- id: next_page + translation: "Pàgina següent" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: toc + translation: "Taula de Continguts" + +- id: translations + translation: "Traduccions" + +- id: home + translation: "Inici" 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/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..3912fb8 --- /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 : "word" + 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..d11ef21 --- /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 : "kelime" + other: "{{ .Count }} kelime" + +- id: toc + translation: "İçindekiler" + +- id: translations + translation: "Çeviriler" + +- id: home + translation: "Anasayfa" + +- 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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 + +{{- $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/_default/baseof.html b/themes/PaperMod/layouts/_default/baseof.html new file mode 100644 index 0000000..df611bf --- /dev/null +++ b/themes/PaperMod/layouts/_default/baseof.html @@ -0,0 +1,27 @@ +{{- if lt hugo.Version "0.112.4" }} +{{- errorf "=> hugo v0.112.4 or greater is required for hugo-PaperMod to build " }} +{{- end -}} + + + + + + {{- partial "head.html" . }} + + + + {{- partialCached "header.html" . .Page -}} +
    + {{- block "main" . }}{{ end }} +
    + {{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}} + + + diff --git a/themes/PaperMod/layouts/_default/index.json b/themes/PaperMod/layouts/_default/index.json new file mode 100644 index 0000000..feeb437 --- /dev/null +++ b/themes/PaperMod/layouts/_default/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/_default/list.html b/themes/PaperMod/layouts/_default/list.html new file mode 100644 index 0000000..81aea6e --- /dev/null +++ b/themes/PaperMod/layouts/_default/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/_default/rss.xml b/themes/PaperMod/layouts/_default/rss.xml new file mode 100644 index 0000000..fed8ae9 --- /dev/null +++ b/themes/PaperMod/layouts/_default/rss.xml @@ -0,0 +1,83 @@ +{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}} +{{- $authorEmail := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .email }} + {{- $authorEmail = . }} + {{- end }} + {{- end }} +{{- else }} + {{- with site.Author.email }} + {{- $authorEmail = . }} + {{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }} + {{- end }} +{{- end }} + +{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}} +{{- $authorName := "" }} +{{- with site.Params.author }} + {{- if reflect.IsMap . }} + {{- with .name }} + {{- $authorName = . }} + {{- end }} + {{- else }} + {{- $authorName = . }} + {{- end }} +{{- else }} + {{- with site.Author.name }} + {{- $authorName = . }} + {{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }} + {{- end }} +{{- end }} + +{{- $pctx := . }} +{{- if .IsHome }}{{ $pctx = site }}{{ end }} +{{- $pages := slice }} +{{- if or $.IsHome $.IsSection }} +{{- $pages = $pctx.RegularPages }} +{{- else }} +{{- $pages = $pctx.Pages }} +{{- end }} +{{- $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 -- {{ hugo.Version }} + {{ 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/_default/search.html b/themes/PaperMod/layouts/_default/search.html new file mode 100644 index 0000000..bb7d436 --- /dev/null +++ b/themes/PaperMod/layouts/_default/search.html @@ -0,0 +1,29 @@ +{{- define "main" }} + + + + + +{{- end }}{{/* end main */}} diff --git a/themes/PaperMod/layouts/_default/single.html b/themes/PaperMod/layouts/_default/single.html new file mode 100644 index 0000000..19a624f --- /dev/null +++ b/themes/PaperMod/layouts/_default/single.html @@ -0,0 +1,65 @@ +{{- 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 }} + +
    + {{- $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/_default/terms.html b/themes/PaperMod/layouts/_default/terms.html new file mode 100644 index 0000000..6fd2654 --- /dev/null +++ b/themes/PaperMod/layouts/_default/terms.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) }} +
    • + {{ .Name }} {{ $count }} +
    • + {{- end }} + {{- end }} +
    + +{{- end }}{{/* end main */ -}} diff --git a/themes/PaperMod/layouts/partials/anchored_headings.html b/themes/PaperMod/layouts/partials/anchored_headings.html new file mode 100644 index 0000000..377af89 --- /dev/null +++ b/themes/PaperMod/layouts/partials/anchored_headings.html @@ -0,0 +1,2 @@ +{{- /* 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..8f2758f --- /dev/null +++ b/themes/PaperMod/layouts/partials/author.html @@ -0,0 +1,9 @@ +{{- 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..2686ca0 --- /dev/null +++ b/themes/PaperMod/layouts/partials/breadcrumbs.html @@ -0,0 +1,19 @@ +{{- 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..e92b555 --- /dev/null +++ b/themes/PaperMod/layouts/partials/cover.html @@ -0,0 +1,43 @@ +{{- with .cxt}} {{/* Apply proper context from dict */}} +{{- if (and .Params.cover.image (not $.isHidden)) }} +{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }} +{{- $loading := cond $.IsSingle "eager" "lazy" }} +
    + {{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }} + {{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }} + {{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }} + {{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }} + {{- $cover := (or $pageBundleCover $globalResourcesCover)}} + {{- if $cover -}}{{/* i.e it is present in page bundle */}} + {{- if $addLink }}{{ end -}} + {{- $sizes := (slice "360" "480" "720" "1080" "1500") }} + {{- $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 $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 */}} + {{- if $addLink }}{{ end -}} + {{ $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..4f2c4de --- /dev/null +++ b/themes/PaperMod/layouts/partials/edit_post.html @@ -0,0 +1,8 @@ +{{- if and (or .Params.editPost.URL site.Params.editPost.URL) (not (.Param "editPost.disabled")) -}} +{{- $fileUrlPath := path.Join .File.Path }} + +{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} | {{- end -}} + + {{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}} + +{{- 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/footer.html b/themes/PaperMod/layouts/partials/footer.html new file mode 100644 index 0000000..832cdba --- /dev/null +++ b/themes/PaperMod/layouts/partials/footer.html @@ -0,0 +1,144 @@ +{{- 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 }} + + + 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..3e55c67 --- /dev/null +++ b/themes/PaperMod/layouts/partials/head.html @@ -0,0 +1,157 @@ + + + +{{- 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")}} + +{{- if not (eq site.Params.assets.disableScrollBarStyle true) }} + {{- $ScrollStyle := (resources.Get "css/includes/scroll-bar.css") }} + {{- $includes = (append $ScrollStyle $includes) }} +{{- end }} + +{{- $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 -}} + + + +{{- partial "extend_head.html" . -}} + +{{- /* Misc */}} +{{- if hugo.IsProduction | or (eq site.Params.env "production") }} +{{- template "_internal/google_analytics.html" . }} +{{- template "partials/templates/opengraph.html" . }} +{{- template "partials/templates/twitter_cards.html" . }} +{{- template "partials/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..44336e1 --- /dev/null +++ b/themes/PaperMod/layouts/partials/header.html @@ -0,0 +1,149 @@ +{{- /* 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 }} + +
    + +
    diff --git a/themes/PaperMod/layouts/partials/home_info.html b/themes/PaperMod/layouts/partials/home_info.html new file mode 100644 index 0000000..199dfb7 --- /dev/null +++ b/themes/PaperMod/layouts/partials/home_info.html @@ -0,0 +1,13 @@ +{{- with site.Params.homeInfoParams }} +
    +
    +

    {{ .Title | markdownify }}

    +
    +
    + {{ .Content | markdownify }} +
    +
    + {{ 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..b0c0417 --- /dev/null +++ b/themes/PaperMod/layouts/partials/post_meta.html @@ -0,0 +1,23 @@ +{{- $scratch := newScratch }} + +{{- if not .Date.IsZero -}} +{{- $scratch.Add "meta" (slice (printf "%s" (.Date) (.Date | time.Format (default "January 2, 2006" site.Params.DateFormat)))) }} +{{- end }} + +{{- if (.Param "ShowReadingTime") -}} +{{- $scratch.Add "meta" (slice (i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime))) }} +{{- end }} + +{{- if (.Param "ShowWordCount") -}} +{{- $scratch.Add "meta" (slice (i18n "words" .WordCount | default (printf "%d words" .WordCount))) }} +{{- end }} + +{{- if not (.Param "hideAuthor") -}} +{{- with (partial "author.html" .) }} +{{- $scratch.Add "meta" (slice .) }} +{{- end }} +{{- end }} + +{{- 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..b988641 --- /dev/null +++ b/themes/PaperMod/layouts/partials/post_nav_links.html @@ -0,0 +1,19 @@ +{{- $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..755929b --- /dev/null +++ b/themes/PaperMod/layouts/partials/svg.html @@ -0,0 +1,940 @@ +{{- $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 "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 "email") -}} + + + + +{{- else if (eq $icon_name "ethereum") -}} + + + +{{- else if (eq $icon_name "exercism") -}} + + + + +{{- else if (eq $icon_name "facebook") -}} + + + +{{- else if (eq $icon_name "fediverse") -}} + + + + + + + + + + +{{- else if (eq $icon_name "firefish") -}} + + + +{{- else if (eq $icon_name "flickr") -}} + + + +{{- 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 "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 "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 "polywork") -}} + + + +{{- 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 "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 "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 "youtube") -}} + + + + + +{{- else if (eq $icon_name "zhihu") -}} + + + +{{- 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..95f037c --- /dev/null +++ b/themes/PaperMod/layouts/partials/templates/opengraph.html @@ -0,0 +1,59 @@ + + + + +{{- if .Params.cover.image -}} +{{- if (ne .Params.cover.relative true) }} + +{{- else}} + +{{- end}} +{{- else }} + +{{- $images := partial "partials/templates/_funcs/get-page-images" . -}} +{{- range first 6 $images }} + +{{ end -}} +{{- end }} + +{{- if .IsPage }} +{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}} + +{{ with .PublishDate }}{{ end }} +{{ with .Lastmod }}{{ end }} +{{- end -}} + +{{- with .Params.audio }}{{ end }} +{{- with .Params.locale }}{{ end }} +{{- with site.Params.title }}{{ end }} +{{- with .Params.videos }}{{- range . }} + +{{ end }}{{ end }} + +{{- /* If it is part of a series, link to related articles */}} +{{- $permalink := .Permalink }} +{{- $siteSeries := site.Taxonomies.series }} +{{- if $siteSeries }} +{{ with .Params.series }}{{- range $name := . }} + {{- $series := index $siteSeries ($name | urlize) }} + {{- range $page := first 6 $series.Pages }} + {{- if ne $page.Permalink $permalink }}{{ end }} + {{- end }} +{{ end }}{{ end }} +{{- end }} + +{{- /* Deprecate site.Social.facebook_admin in favor of site.Params.social.facebook_admin */}} +{{- $facebookAdmin := "" }} +{{- with site.Params.social }} + {{- if reflect.IsMap . }} + {{- $facebookAdmin = .facebook_admin }} + {{- end }} +{{- else }} + {{- with site.Social.facebook_admin }} + {{- $facebookAdmin = . }} + {{- warnf "The social key in site configuration is deprecated. Use params.social.facebook_admin instead." }} + {{- end }} +{{- end }} + +{{- /* Facebook Page Admin ID for Domain Insights */}} +{{ with $facebookAdmin }}{{ 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..ed4d689 --- /dev/null +++ b/themes/PaperMod/layouts/partials/templates/schema_json.html @@ -0,0 +1,124 @@ +{{ 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..46b0d04 --- /dev/null +++ b/themes/PaperMod/layouts/partials/templates/twitter_cards.html @@ -0,0 +1,38 @@ +{{- if .Params.cover.image -}} + +{{- if (ne $.Params.cover.relative true) }} + +{{- else }} + +{{- end}} +{{- else }} +{{- $images := partial "partials/templates/_funcs/get-page-images" . -}} +{{- with index $images 0 -}} + + +{{- else -}} + +{{- end -}} +{{- end }} + + +{{- /* Deprecate site.Social.twitter in favor of site.Params.social.twitter */}} +{{- $twitterSite := "" }} +{{- with site.Params.social }} + {{- if reflect.IsMap . }} + {{- $twitterSite = .twitter }} + {{- end }} +{{- else }} + {{- with site.Social.twitter }} + {{- $twitterSite = . }} + {{- warnf "The social key in site configuration is deprecated. Use params.social.twitter instead." }} + {{- end }} +{{- end }} + +{{- with $twitterSite }} + {{- $content := . }} + {{- if not (strings.HasPrefix . "@") }} + {{- $content = printf "@%v" $twitterSite }} + {{- end }} + +{{- end }} diff --git a/themes/PaperMod/layouts/partials/toc.html b/themes/PaperMod/layouts/partials/toc.html new file mode 100644 index 0000000..28f8694 --- /dev/null +++ b/themes/PaperMod/layouts/partials/toc.html @@ -0,0 +1,97 @@ +{{- $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 }} + +

    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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/_default/_markup/render-image.html b/themes/PaperMod/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..1acb87d --- /dev/null +++ b/themes/PaperMod/layouts/_default/_markup/render-image.html @@ -0,0 +1 @@ +{{ .Text }} diff --git a/themes/PaperMod/layouts/_default/archives.html b/themes/PaperMod/layouts/_default/archives.html new file mode 100644 index 0000000..eea3fc8 --- /dev/null +++ b/themes/PaperMod/layouts/_default/archives.html @@ -0,0 +1,83 @@ +{{- define "main" }} + +

  • + {{- 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..0028251 --- /dev/null +++ b/themes/PaperMod/layouts/partials/translation_list.html @@ -0,0 +1,19 @@ +{{- if .IsTranslated -}} +{{- if (ne .Layout "search") }} +{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) }} | {{- end -}} +{{- end }} +{{- i18n "translations" | default "Translations" }}: + +{{- 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/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/theme.toml b/themes/PaperMod/theme.toml new file mode 100644 index 0000000..f659f5c --- /dev/null +++ b/themes/PaperMod/theme.toml @@ -0,0 +1,51 @@ +# 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://adityatelange.github.io/hugo-PaperMod/" +tags = [ + "responsive", + "simple", + "clean", + "light", + "dark", + "blog", + "minimalist", + "highlight.js", + "search" +] +features = [ + "responsive", + "single-column", + "blog", + "cover-image", + "table-of-contents", + "opengraph", + "highlight.js", + "favicon", + "archive", + "share-icons", + "cover", + "multilingual", + "social-icons", + "minified-assets", + "theme-toggle", + "menu-location-indicator", + "scroll-to-top", + "search" +] +min_version = "0.112.4" + +[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/"