From 400718155486714385e01491d587f0343885e663 Mon Sep 17 00:00:00 2001 From: PeaceNira Date: Wed, 12 Feb 2025 17:52:42 +0000 Subject: [PATCH] added files --- .forgejo/workflows/push.yaml | 34 +- .gitmodules | 3 + .hugo_build.lock | 0 archetypes/default.md | 5 + content/posts/post-2025-01-01:1.md | 37 + content/search.md | 8 + hugo.yaml | 137 +++ public/404.html | 6 + ...13ee39406be2c0bc80d4ea3fc04555f7f4611a.css | 7 + ...3054d36df61ba713a257cbe66f257e175cb4d73.js | 19 + public/categories/index.html | 6 + public/categories/index.xml | 16 + public/index.html | 9 + public/index.json | 1 + public/index.xml | 24 + public/page/1/index.html | 2 + public/posts/example/index.html | 6 + public/posts/index.html | 8 + public/posts/index.xml | 24 + public/posts/page/1/index.html | 2 + public/posts/post-2025-01-011/index.html | 13 + public/robots.txt | 3 + public/search/index.html | 6 + public/sitemap.xml | 20 + public/tags/first/index.html | 7 + public/tags/first/index.xml | 24 + public/tags/first/page/1/index.html | 2 + public/tags/index.html | 6 + public/tags/index.xml | 16 + .../PaperMod/.github/ISSUE_TEMPLATE/bug.yaml | 112 +++ .../.github/ISSUE_TEMPLATE/config.yml | 5 + .../.github/ISSUE_TEMPLATE/enhancement.yaml | 32 + .../PaperMod/.github/PULL_REQUEST_TEMPLATE.md | 44 + .../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 | 22 + .../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 | 949 ++++++++++++++++++ .../templates/_funcs/get-page-images.html | 47 + .../layouts/partials/templates/opengraph.html | 82 ++ .../partials/templates/schema_json.html | 128 +++ .../partials/templates/twitter_cards.html | 31 + 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 + 148 files changed, 6376 insertions(+), 12 deletions(-) create mode 100644 .gitmodules create mode 100644 .hugo_build.lock create mode 100644 archetypes/default.md create mode 100644 content/posts/post-2025-01-01:1.md create mode 100644 content/search.md create mode 100644 hugo.yaml create mode 100644 public/404.html create mode 100644 public/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css create mode 100644 public/assets/js/search.b58269539d49d6ca2d32b61a53054d36df61ba713a257cbe66f257e175cb4d73.js create mode 100644 public/categories/index.html create mode 100644 public/categories/index.xml create mode 100644 public/index.html create mode 100644 public/index.json create mode 100644 public/index.xml create mode 100644 public/page/1/index.html create mode 100644 public/posts/example/index.html create mode 100644 public/posts/index.html create mode 100644 public/posts/index.xml create mode 100644 public/posts/page/1/index.html create mode 100644 public/posts/post-2025-01-011/index.html create mode 100644 public/robots.txt create mode 100644 public/search/index.html create mode 100644 public/sitemap.xml create mode 100644 public/tags/first/index.html create mode 100644 public/tags/first/index.xml create mode 100644 public/tags/first/page/1/index.html create mode 100644 public/tags/index.html create mode 100644 public/tags/index.xml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml create mode 100644 themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml create mode 100644 themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 themes/PaperMod/.github/workflows/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/.forgejo/workflows/push.yaml b/.forgejo/workflows/push.yaml index f501f6b..b182ac5 100644 --- a/.forgejo/workflows/push.yaml +++ b/.forgejo/workflows/push.yaml @@ -4,25 +4,35 @@ on: push: branches: - 'main' -# paths: -# - src/**/* jobs: build: runs-on: docker steps: - # get the repo first + # Step 1: Checkout the repository - uses: https://code.forgejo.org/actions/checkout@v4 - # Make sure all files are pulled down - - uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v6 - with: - repository: ${{ gitea.repository }} - ref_name: ${{ gitea.ref_name }} - # temp one just to get it "built" + + # Step 2: Install latest Hugo + - name: Install Hugo + run: | + HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep -Po '"tag_name": "\K[^"]+' | sed 's/^v//') + wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-amd64.deb + dpkg -i ./hugo_extended_${HUGO_VERSION}_Linux-amd64.deb + hugo version + + # Step 3: Ensure submodules or themes are initialized (only needed if your using github submodules for theme purposes) + - name: Initialize Submodules + run: git submodule update --init --recursive + + # Step 4: Build the Hugo site + - name: Build Hugo site + env: + HUGO_ENV: production + run: hugo --minify # Reduce resources by minifying content + + # Step 5: Deploy the /public directory to the server - uses: https://forgejo.skynet.ie/Skynet/actions/deploy_user@v6 with: ssh_key: ${{ secrets.SSH_KEY }} username: ${{ env.GITHUB_REPOSITORY_OWNER }} - folder: "src" - # uncomment below if you want to deploy to a subfolder - #destination: "subfolder" \ No newline at end of file + folder: "public" \ 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/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 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/posts/post-2025-01-01:1.md b/content/posts/post-2025-01-01:1.md new file mode 100644 index 0000000..4a273da --- /dev/null +++ b/content/posts/post-2025-01-01:1.md @@ -0,0 +1,37 @@ +--- +title: "My 1st post" +date: 2020-09-15T11:30:03+00:00 +# weight: 1 +# aliases: ["/first"] +tags: ["first"] +author: "Me" +# author: ["Me", "You"] # multiple authors +showToc: true +TocOpen: false +draft: false +hidemeta: false +comments: false +description: "Desc Text." +canonicalURL: "https://canonical.url/to/page" +disableHLJS: true # to disable highlightjs +disableShare: false +disableHLJS: false +hideSummary: false +searchHidden: true +ShowReadingTime: true +ShowBreadCrumbs: true +ShowPostNavLinks: true +ShowWordCount: true +ShowRssButtonInSectionTermList: true +UseHugoToc: true +cover: + image: "" # image path/url + alt: "" # alt text + caption: "" # display caption under cover + relative: false # when using page bundles set this to true + hidden: true # only hide on current single page +editPost: + URL: "https://github.com//content" + Text: "Suggest Changes" # edit text + appendFilePath: true # to append file path to Edit link +--- \ No newline at end of file diff --git a/content/search.md b/content/search.md new file mode 100644 index 0000000..0650f76 --- /dev/null +++ b/content/search.md @@ -0,0 +1,8 @@ +--- +title: "Search" # in any language you want +layout: "search" # necessary for search +# url: "/archive" +# description: "Description for Search" +summary: "search" +placeholder: "search" +--- \ No newline at end of file diff --git a/hugo.yaml b/hugo.yaml new file mode 100644 index 0000000..09f585e --- /dev/null +++ b/hugo.yaml @@ -0,0 +1,137 @@ +baseURL: "https://examplesite.com/" +title: ExampleSite +paginate: 5 +theme: PaperMod + +enableRobotsTXT: true +buildDrafts: false +buildFuture: false +buildExpired: false + +minify: + disableXML: true + minifyOutput: true + +params: + env: production # to enable google analytics, opengraph, twitter-cards and schema. + title: ExampleSite + description: "ExampleSite description" + keywords: [Blog, Portfolio, PaperMod] + author: Me + # author: ["Me", "You"] # multiple authors + images: [""] + DateFormat: "January 2, 2006" + defaultTheme: auto # dark, light + disableThemeToggle: false + + ShowReadingTime: true + ShowShareButtons: true + ShowPostNavLinks: true + ShowBreadCrumbs: true + ShowCodeCopyButtons: false + ShowWordCount: true + ShowRssButtonInSectionTermList: true + UseHugoToc: true + disableSpecial1stPost: false + disableScrollToTop: false + comments: false + hidemeta: false + hideSummary: false + showtoc: false + tocopen: false + + assets: + # disableHLJS: true # to disable highlight.js + # disableFingerprinting: true + favicon: "" + favicon16x16: "" + favicon32x32: "" + apple_touch_icon: "" + safari_pinned_tab: "" + + label: + text: "Home" + icon: /apple-touch-icon.png + iconHeight: 35 + + # profile-mode + profileMode: + enabled: false # needs to be explicitly set + title: ExampleSite + subtitle: "This is subtitle" + imageUrl: "" + imageWidth: 120 + imageHeight: 120 + imageTitle: my image + buttons: + - name: Posts + url: posts + - name: Tags + url: tags + + # home-info mode + homeInfoParams: + Title: "Hi there \U0001F44B" + Content: Welcome to my blog + + socialIcons: + - name: x + url: "https://x.com/" + - name: stackoverflow + url: "https://stackoverflow.com" + - name: github + url: "https://github.com/" + + analytics: + google: + SiteVerificationTag: "XYZabc" + bing: + SiteVerificationTag: "XYZabc" + yandex: + SiteVerificationTag: "XYZabc" + + cover: + hidden: true # hide everywhere but not in structured data + hiddenInList: true # hide on list pages and home + hiddenInSingle: true # hide on single page + + editPost: + URL: "https://github.com//content" + Text: "Suggest Changes" # edit text + appendFilePath: true # to append file path to Edit link + + # for search + # https://fusejs.io/api/options.html + fuseOpts: + isCaseSensitive: false + shouldSort: true + location: 0 + distance: 1000 + threshold: 0.4 + minMatchCharLength: 0 + limit: 10 # refer: https://www.fusejs.io/api/methods.html#search + keys: ["title", "permalink", "summary", "content"] +menu: + main: + - identifier: categories + name: categories + url: /categories/ + weight: 10 + - identifier: tags + name: tags + url: /tags/ + weight: 20 + - identifier: example + name: example.org + url: https://example.org + weight: 30 +# Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma +pygmentsUseClasses: true +markup: + highlight: + noClasses: false + # anchorLineNos: true + # codeFences: true + # guessSyntax: true + # lineNos: true + # style: monokai \ No newline at end of file diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..e919aff --- /dev/null +++ b/public/404.html @@ -0,0 +1,6 @@ +404 Page not found | Shay's Blog +
404
+ \ No newline at end of file diff --git a/public/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css b/public/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css new file mode 100644 index 0000000..e0dfc4a --- /dev/null +++ b/public/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css @@ -0,0 +1,7 @@ +/* + PaperMod v8+ + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2025 adityatelange +*/ +: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)}*,::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%}.not-found{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;height:80%;font-size:160px;font-weight:700}.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}.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 .5s,opacity .8s linear}.top-link,.top-link svg{filter:drop-shadow(0 0 0 var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.top-link:focus,#theme-toggle:focus{outline:0}.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}.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}.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,.8);background:rgba(78,78,78,.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}.first-entry{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:320px;margin:var(--gap)0 calc(var(--gap) * 2)}.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 .1s;border:1px solid var(--border)}.post-entry:active{transform:scale(.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)}.page-header,.post-header{margin:24px auto var(--content-gap)}.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;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:.78em;line-height:1.5;background:var(--code-bg);border-radius:2px}.post-content pre code{display:grid;margin:auto 0;padding:10px;color:#d5d5d6;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:700;margin:8px 0 16px}.post-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.toc{margin:0 2px 40px;border:1px solid var(--border);background:var(--code-bg);border-radius:var(--radius);padding:.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:.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}.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}.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 .1s}.button-inner{padding:0 8px}.button:active{transform:scale(.96)}#searchbox input{padding:4px 10px;width:100%;color:var(--primary);font-weight:700;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 .1s;transform:scale(.98)}#searchResults a{position:absolute;width:100%;height:100%;top:0;left:0;outline:none}#searchResults .focus{transform:scale(.98);border:2px solid var(--tertiary)}.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 .1s}.terms-tags a:active{background:var(--tertiary);transform:scale(.96)}.bg{color:#cad3f5;background-color:#24273a}.chroma{color:#cad3f5;background-color:#24273a}.chroma .x{}.chroma .err{color:#ed8796}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#474733}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp{color:#c6a0f6}.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .n{}.chroma .na{color:#8aadf4}.chroma .nb{color:#91d7e3}.chroma .bp{color:#91d7e3}.chroma .nc{color:#eed49f}.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:700}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nf{color:#8aadf4}.chroma .fm{color:#8aadf4}.chroma .nl{color:#91d7e3}.chroma .nn{color:#f5a97f}.chroma .nx{}.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nv{color:#f4dbd6}.chroma .vc{color:#f4dbd6}.chroma .vg{color:#f4dbd6}.chroma .vi{color:#f4dbd6}.chroma .vm{color:#f4dbd6}.chroma .l{}.chroma .ld{}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb{color:#a6da95}.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si{color:#a6da95}.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1{color:#a6da95}.chroma .ss{color:#a6da95}.chroma .m{color:#f5a97f}.chroma .mb{color:#f5a97f}.chroma .mf{color:#f5a97f}.chroma .mh{color:#f5a97f}.chroma .mi{color:#f5a97f}.chroma .il{color:#f5a97f}.chroma .mo{color:#f5a97f}.chroma .o{color:#91d7e3;font-weight:700}.chroma .ow{color:#91d7e3;font-weight:700}.chroma .p{}.chroma .c{color:#6e738d;font-style:italic}.chroma .ch{color:#6e738d;font-style:italic}.chroma .cm{color:#6e738d;font-style:italic}.chroma .c1{color:#6e738d;font-style:italic}.chroma .cs{color:#6e738d;font-style:italic}.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-weight:700;font-style:italic}.chroma .g{}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:700}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#f5a97f;font-weight:700}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}.chroma .w{}.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%}::-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)}.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:#717175}.post-content :not(table) ::-webkit-scrollbar-thumb:hover{background:#a3a3a5}.gist table::-webkit-scrollbar-thumb{border:2px solid #fff;background:#adadad}.gist table::-webkit-scrollbar-thumb:hover{background:#707070}.post-content table::-webkit-scrollbar-thumb{border-width:2px}@media screen and (min-width:768px){::-webkit-scrollbar{width:19px;height:11px}}@media screen and (max-width:768px){:root{--gap:14px}.profile img{transform:scale(.85)}.first-entry{min-height:260px}.archive-month{flex-direction:column}.archive-year{margin-top:20px}.footer{padding:calc((var(--footer-height) - var(--gap) - 10px)/2)var(--gap)}}@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-tags a:active,.button:active,.post-entry:active,.top-link,#searchResults .focus,#searchResults li:active{transform:none}} \ No newline at end of file diff --git a/public/assets/js/search.b58269539d49d6ca2d32b61a53054d36df61ba713a257cbe66f257e175cb4d73.js b/public/assets/js/search.b58269539d49d6ca2d32b61a53054d36df61ba713a257cbe66f257e175cb4d73.js new file mode 100644 index 0000000..eb14a59 --- /dev/null +++ b/public/assets/js/search.b58269539d49d6ca2d32b61a53054d36df61ba713a257cbe66f257e175cb4d73.js @@ -0,0 +1,19 @@ +/** + * 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(); +; +/* + PaperMod v8+ + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2025 adityatelange +*/ + +; +(()=>{var s,r,c,e={distance:1e3,iscasesensitive:!1,keys:["title","permalink","summary","content"],limit:10,location:0,minmatchcharlength:0,shouldsort:!0,threshold:.4},n=document.getElementById("searchResults"),t=document.getElementById("searchInput"),a=null,o=!1;window.onload=function(){let t=new XMLHttpRequest;t.onreadystatechange=function(){if(t.readyState===4)if(t.status===200){{let n=JSON.parse(t.responseText);if(n){let t={distance:100,threshold:.4,ignoreLocation:!0,keys:["title","permalink","summary","content"]};e&&(t={isCaseSensitive:e.iscasesensitive??!1,includeScore:e.includescore??!1,includeMatches:e.includematches??!1,minMatchCharLength:e.minmatchcharlength??1,shouldSort:e.shouldsort??!0,findAllMatches:e.findallmatches??!1,keys:e.keys??["title","permalink","summary","content"],location:e.location??0,threshold:e.threshold??.4,distance:e.distance??100,ignoreLocation:e.ignorelocation??!0}),s=new Fuse(n,t)}}}else console.log(t.responseText)},t.open("GET","../index.json"),t.send()};function i(e){document.querySelectorAll(".focus").forEach(function(e){e.classList.remove("focus")}),e?(e.focus(),document.activeElement=a=e,e.parentElement.classList.add("focus")):document.activeElement.parentElement.classList.add("focus")}function l(){o=!1,n.innerHTML=t.value="",t.focus()}t.onkeyup=function(){if(s){let t;if(e?t=s.search(this.value.trim(),{limit:e.limit}):t=s.search(this.value.trim()),t.length!==0){let e="";for(let n in t)e+=`
  • ${t[n].item.title} \xBB
  • `;n.innerHTML=e,o=!0,r=n.firstChild,c=n.lastChild}else o=!1,n.innerHTML=""}},t.addEventListener("search",function(){this.value||l()}),document.onkeydown=function(e){let d=e.key,s=document.activeElement,u=document.getElementById("searchbox").contains(s);if(s===t){let e=document.getElementsByClassName("focus");for(;e.length>0;)e[0].classList.remove("focus")}else a&&(s=a);if(d==="Escape")l();else if(!o||!u)return;else d==="ArrowDown"?(e.preventDefault(),s==t?i(n.firstChild.lastChild):s.parentElement!=c&&i(s.parentElement.nextSibling.lastChild)):d==="ArrowUp"?(e.preventDefault(),s.parentElement==r?i(t):s!=t&&i(s.parentElement.previousSibling.lastChild)):d==="ArrowRight"&&s.click()}})() \ No newline at end of file diff --git a/public/categories/index.html b/public/categories/index.html new file mode 100644 index 0000000..b99c0e8 --- /dev/null +++ b/public/categories/index.html @@ -0,0 +1,6 @@ +Categories | Shay's Blog +
      + \ No newline at end of file diff --git a/public/categories/index.xml b/public/categories/index.xml new file mode 100644 index 0000000..e065b80 --- /dev/null +++ b/public/categories/index.xml @@ -0,0 +1,16 @@ + + + + Categories on Shay's Blog + http://localhost:1313/categories/ + Recent content in Categories on Shay's Blog + + Shay's Blog + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.126.2 + en + + + diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..f447a39 --- /dev/null +++ b/public/index.html @@ -0,0 +1,9 @@ +Shay's Blog +

      Hi there 👋

      Welcome to my blog

      A introduction to my blog!

      Hi, my name is Shay Power, I have created this blog to document my journey as a software developer. Im not very good at writing, so i will be trying to keep these blog posts short. let me introduce who i am and what I do. +I started programming at the age of 14, when i built my first PC. I originally began with python and used that for the past 4 years for both personal and professional projects....

      February 1, 2025 · 1 min · 176 words · Me
      + \ No newline at end of file diff --git a/public/index.json b/public/index.json new file mode 100644 index 0000000..79c0fa3 --- /dev/null +++ b/public/index.json @@ -0,0 +1 @@ +[{"content":"Hi, my name is Shay Power, I have created this blog to document my journey as a software developer. Im not very good at writing, so i will be trying to keep these blog posts short. let me introduce who i am and what I do.\nI started programming at the age of 14, when i built my first PC. I originally began with python and used that for the past 4 years for both personal and professional projects. i have a deep knowledge of the django framework, and worked as a freelance contractor developing web applications using it. I also run a home server as a hobby, and a 3d printing farm (both FDM and M/SLA), I also am a strong advocate for FOSS (Free and open-source software).\nIn terms of academics, i was the first person to achieve a H1 in computer science in my secondary school, and have completed a QQI course in software development, with 8/8 disctinctions. I am currently enrolled in the University Of Limerick and expect to graduate in 2028.\n","permalink":"http://localhost:1313/posts/post-2025-01-011/","summary":"Hi, my name is Shay Power, I have created this blog to document my journey as a software developer. Im not very good at writing, so i will be trying to keep these blog posts short. let me introduce who i am and what I do.\nI started programming at the age of 14, when i built my first PC. I originally began with python and used that for the past 4 years for both personal and professional projects.","title":"A introduction to my blog!"}] \ No newline at end of file diff --git a/public/index.xml b/public/index.xml new file mode 100644 index 0000000..6479892 --- /dev/null +++ b/public/index.xml @@ -0,0 +1,24 @@ + + + + Shay's Blog + http://localhost:1313/ + Recent content on Shay's Blog + + Shay's Blog + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.126.2 + en + Sat, 01 Feb 2025 00:00:00 +0000 + + + A introduction to my blog! + http://localhost:1313/posts/post-2025-01-011/ + Sat, 01 Feb 2025 00:00:00 +0000 + http://localhost:1313/posts/post-2025-01-011/ + “Welcome to my Blog!” + + + diff --git a/public/page/1/index.html b/public/page/1/index.html new file mode 100644 index 0000000..c33eae2 --- /dev/null +++ b/public/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/ + \ No newline at end of file diff --git a/public/posts/example/index.html b/public/posts/example/index.html new file mode 100644 index 0000000..7576747 --- /dev/null +++ b/public/posts/example/index.html @@ -0,0 +1,6 @@ +My 1st post | Shay's Blog +

      My 1st post

      Desc Text.
      + \ No newline at end of file diff --git a/public/posts/index.html b/public/posts/index.html new file mode 100644 index 0000000..e53248d --- /dev/null +++ b/public/posts/index.html @@ -0,0 +1,8 @@ +Posts | Shay's Blog +

      A introduction to my blog!

      Hi, my name is Shay Power, I have created this blog to document my journey as a software developer. Im not very good at writing, so i will be trying to keep these blog posts short. let me introduce who i am and what I do. +I started programming at the age of 14, when i built my first PC. I originally began with python and used that for the past 4 years for both personal and professional projects....

      February 1, 2025 · 1 min · 176 words · Me
      + \ No newline at end of file diff --git a/public/posts/index.xml b/public/posts/index.xml new file mode 100644 index 0000000..cf511a6 --- /dev/null +++ b/public/posts/index.xml @@ -0,0 +1,24 @@ + + + + Posts on Shay's Blog + http://localhost:1313/posts/ + Recent content in Posts on Shay's Blog + + Shay's Blog + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.126.2 + en + Sat, 01 Feb 2025 00:00:00 +0000 + + + A introduction to my blog! + http://localhost:1313/posts/post-2025-01-011/ + Sat, 01 Feb 2025 00:00:00 +0000 + http://localhost:1313/posts/post-2025-01-011/ + “Welcome to my Blog!” + + + diff --git a/public/posts/page/1/index.html b/public/posts/page/1/index.html new file mode 100644 index 0000000..282c94f --- /dev/null +++ b/public/posts/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/posts/ + \ No newline at end of file diff --git a/public/posts/post-2025-01-011/index.html b/public/posts/post-2025-01-011/index.html new file mode 100644 index 0000000..2b96dac --- /dev/null +++ b/public/posts/post-2025-01-011/index.html @@ -0,0 +1,13 @@ +A introduction to my blog! | Shay's Blog +

      A introduction to my blog!

      “Welcome to my Blog!”

      Hi, my name is Shay Power, I have created this blog to document my journey as a software developer. +Im not very good at writing, so i will be trying to keep these blog posts short. let me introduce +who i am and what I do.

      I started programming at the age of 14, when i built my first PC. I originally began with python and +used that for the past 4 years for both personal and professional projects. i have a deep knowledge of the +django framework, and worked as a freelance contractor developing web applications using it. I also run +a home server as a hobby, and a 3d printing farm (both FDM and M/SLA), I also am a strong advocate for FOSS (Free and open-source software).

      In terms of academics, i was the first person to achieve a H1 in computer science in my secondary school, and have completed +a QQI course in software development, with 8/8 disctinctions. I am currently enrolled in the University Of Limerick and expect +to graduate in 2028.

      + \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..bf017d4 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Disallow: +Sitemap: http://localhost:1313/sitemap.xml diff --git a/public/search/index.html b/public/search/index.html new file mode 100644 index 0000000..779cfe1 --- /dev/null +++ b/public/search/index.html @@ -0,0 +1,6 @@ +Search | Shay's Blog +
      + \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..8add774 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,20 @@ + + + + http://localhost:1313/posts/post-2025-01-011/ + 2025-02-01T00:00:00+00:00 + + http://localhost:1313/posts/ + 2025-02-01T00:00:00+00:00 + + http://localhost:1313/ + 2025-02-01T00:00:00+00:00 + + http://localhost:1313/categories/ + + http://localhost:1313/search/ + + http://localhost:1313/tags/ + + diff --git a/public/tags/first/index.html b/public/tags/first/index.html new file mode 100644 index 0000000..2770aba --- /dev/null +++ b/public/tags/first/index.html @@ -0,0 +1,7 @@ +First | Shay's Blog +

      My 1st post

      September 15, 2020 · 0 min · 0 words · Me
      + \ No newline at end of file diff --git a/public/tags/first/index.xml b/public/tags/first/index.xml new file mode 100644 index 0000000..60c87c8 --- /dev/null +++ b/public/tags/first/index.xml @@ -0,0 +1,24 @@ + + + + First on Shay's Blog + http://localhost:1313/tags/first/ + Recent content in First on Shay's Blog + + Shay's Blog + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.126.2 + en + Tue, 15 Sep 2020 11:30:03 +0000 + + + My 1st post + http://localhost:1313/posts/example/ + Tue, 15 Sep 2020 11:30:03 +0000 + http://localhost:1313/posts/example/ + Desc Text. + + + diff --git a/public/tags/first/page/1/index.html b/public/tags/first/page/1/index.html new file mode 100644 index 0000000..7e8b66b --- /dev/null +++ b/public/tags/first/page/1/index.html @@ -0,0 +1,2 @@ +http://localhost:1313/tags/first/ + \ No newline at end of file diff --git a/public/tags/index.html b/public/tags/index.html new file mode 100644 index 0000000..8248bc4 --- /dev/null +++ b/public/tags/index.html @@ -0,0 +1,6 @@ +Tags | Shay's Blog +
        + \ No newline at end of file diff --git a/public/tags/index.xml b/public/tags/index.xml new file mode 100644 index 0000000..3729883 --- /dev/null +++ b/public/tags/index.xml @@ -0,0 +1,16 @@ + + + + Tags on Shay's Blog + http://localhost:1313/tags/ + Recent content in Tags on Shay's Blog + + Shay's Blog + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + http://localhost:1313/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E + + Hugo -- 0.126.2 + en + + + diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml b/themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 0000000..e7168f0 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,112 @@ +name: Bug Report 🐞 +description: Create a report to help us improve +title: "[Bug]: " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report :) + - Kindly **DO NOT** ask for instructions. + - Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any orther relevant question. + - You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users + - Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation. + - Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions. + - Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created. + - type: textarea + id: what_happened + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: A bug happened! Here are the screenshots.. Tell us what you see! + validations: + required: true + - type: textarea + id: steps_to_reproduce + attributes: + label: Steps to reproduce + description: How to reproduce this issue. Here are the steps... + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + - type: dropdown + id: hugo_version + attributes: + label: Hugo Version + description: What version of Hugo are you running? + options: + - Hugo >= 0.125.7 (Recommended - Minimum version required for PaperMod) + - Hugo < 0.125.7 (Incompatible - Not recommended to build PaperMod on lower verions) + validations: + required: true + - type: input + id: papermod_version + attributes: + label: PaperMod Version + description: What version of PaperMod are you running? + placeholder: | + PaperMod v7.0 or + Branch master or + Commit-id: 3f50861a0ced88f9b614a43662edeb4c0bc45da8 + validations: + required: true + - type: dropdown + id: browser_type + attributes: + label: What kind of devices are you seeing the problem on? + multiple: true + options: + - Mobile + - Desktop + validations: + required: false + - type: dropdown + id: browsers + attributes: + label: What browsers are you seeing the problem on? + multiple: true + options: + - Firefox + - Chrome + - Safari + - Microsoft Edge + validations: + required: false + - type: input + id: browser_version + attributes: + label: Browser Version + description: Please add browser version or enter user agent string (navigator.userAgent) + placeholder: ex. Google Chrome 86.0 + validations: + required: false + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell + validations: + required: true + - type: input + id: repo_url + attributes: + label: Repository/Source Code link where this issue can be reproduced + description: Please add url of the repository where this issue can be reproduced + placeholder: https://github.com// + validations: + required: false + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme). + options: + - label: I agree to follow this project's Code of Conduct + required: true + validations: + required: true diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml b/themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..eeb6e55 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: PaperMod Discussions + url: https://github.com/adityatelange/hugo-PaperMod/discussions + about: Please ask and answer questions/doubts here, DO NOT open an issue for questions. diff --git a/themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml b/themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml new file mode 100644 index 0000000..0eef833 --- /dev/null +++ b/themes/PaperMod/.github/ISSUE_TEMPLATE/enhancement.yaml @@ -0,0 +1,32 @@ +name: Enhancement 🚀 +description: Propose a new feature or change for enhancing the experience. +title: "[Enhancement]: " +labels: ["enhancement", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this enahancement form :) + - Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any orther relevant question. + - You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users + - Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation. + - Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions. + - Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created. + - type: textarea + id: what_happened + attributes: + label: What you'd like to propose? + description: + placeholder: + validations: + required: true + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme). + options: + - label: I agree to follow this project's Code of Conduct + required: true + validations: + required: true \ No newline at end of file diff --git a/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md b/themes/PaperMod/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..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..92b859f --- /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.125.7" + +# 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.125.7' }} + 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@v4 + with: + ref: exampleSite + - name: Setup Pages + id: pages + uses: actions/configure-pages@v5 + - 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@v3 + 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@v4 diff --git a/themes/PaperMod/LICENSE b/themes/PaperMod/LICENSE new file mode 100644 index 0000000..533adaf --- /dev/null +++ b/themes/PaperMod/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2020 nanxiaobei and adityatelange +Copyright (c) 2021-2025 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..1c00072 --- /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.125.7&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.125.7) +[![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..47b9c6f --- /dev/null +++ b/themes/PaperMod/assets/css/core/license.css @@ -0,0 +1,6 @@ +/* + PaperMod v8+ + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2025 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..47b9c6f --- /dev/null +++ b/themes/PaperMod/assets/js/license.js @@ -0,0 +1,6 @@ +/* + PaperMod v8+ + License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE + Copyright (c) 2020 nanxiaobei and adityatelange + Copyright (c) 2021-2025 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..30c3e74 --- /dev/null +++ b/themes/PaperMod/i18n/he.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "הקודם" + +- id: next_page + translation: "הבא" + +- id: read_time + translation: + one: "דקה אחת" + other: "{{ .Count }} דקות" + +- id: words + translation: + one: "מילה אחת" + other: "{{ .Count }} מילים" + +- id: toc + translation: "תוכן עניינים" + +- id: translations + translation: "תרגומים" + +- id: home + translation: "בית" + +- id: edit_post + translation: "ערוך" + +- id: code_copy + translation: "העתק" + +- id: code_copied + translation: "הועתק!" diff --git a/themes/PaperMod/i18n/hi.yaml b/themes/PaperMod/i18n/hi.yaml new file mode 100644 index 0000000..681efdc --- /dev/null +++ b/themes/PaperMod/i18n/hi.yaml @@ -0,0 +1,19 @@ +- id: prev_page + translation: "पिछला" + +- id: next_page + translation: "अगला" + +- id: read_time + translation: + one : "एक मिनट" + other: "{{ .Count }} मिनट" + +- id: edit_post + translation: "सुधारें" + +- id: toc + translation: "विषय - सूची" + +- id: translations + translation: "अनुवाद" diff --git a/themes/PaperMod/i18n/hr.yaml b/themes/PaperMod/i18n/hr.yaml new file mode 100644 index 0000000..2f2d228 --- /dev/null +++ b/themes/PaperMod/i18n/hr.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Prethodna stranica" + +- id: next_page + translation: "Sljedeća stranica" + +- id: read_time + translation: + one : "1 minuta" + other: "{{ .Count }} minute" + +- id: words + translation: + one : "riječ" + other: "{{ .Count }} riječi" + +- id: toc + translation: "Tablica Sadržaja" + +- id: translations + translation: "Prijevodi" + +- id: home + translation: "Početna stranica" + +- id: edit_post + translation: "Promjeni" + +- id: code_copy + translation: "kopiraj" + +- id: code_copied + translation: "kopirano!" diff --git a/themes/PaperMod/i18n/hu.yaml b/themes/PaperMod/i18n/hu.yaml new file mode 100644 index 0000000..a039dda --- /dev/null +++ b/themes/PaperMod/i18n/hu.yaml @@ -0,0 +1,16 @@ +- id: prev_page + translation: "Előző oldal" + +- id: next_page + translation: "Következő oldal" + +- id: read_time + translation: + one: "1 perc" + other: "{{ .Count }} perc" + +- id: toc + translation: "Tartalomjegyzék" + +- id: translations + translation: "Fordítások" diff --git a/themes/PaperMod/i18n/id.yaml b/themes/PaperMod/i18n/id.yaml new file mode 100644 index 0000000..93d34f5 --- /dev/null +++ b/themes/PaperMod/i18n/id.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Sebelumnya" + +- id: next_page + translation: "Selanjutnya" + +- id: read_time + translation: + one : "1 menit" + other: "{{ .Count }} menit" + +- id: words + translation: + one : "kata" + other: "{{ .Count }} kata" + +- id: toc + translation: "Daftar isi" + +- id: translations + translation: "Terjemahan" + +- id: home + translation: "Beranda" + +- id: edit_post + translation: "Sunting" + +- id: code_copy + translation: "salin" + +- id: code_copied + translation: "disalin!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/it.yaml b/themes/PaperMod/i18n/it.yaml new file mode 100644 index 0000000..c87c95d --- /dev/null +++ b/themes/PaperMod/i18n/it.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Precedente" + +- id: next_page + translation: "Successivo" + +- id: read_time + translation: + one: "1 minuto" + other: "{{ .Count }} minuti" + +- id: words + translation: + one : "parola" + other: "{{ .Count }} parole" + +- id: toc + translation: "Indice contenuti" + +- id: translations + translation: "Traduzioni" + +- id: home + translation: "Home" + +- id: edit_post + translation: "Modifica" + +- id: code_copy + translation: "copia" + +- id: code_copied + translation: "copiato!" diff --git a/themes/PaperMod/i18n/ja.yaml b/themes/PaperMod/i18n/ja.yaml new file mode 100644 index 0000000..93948d3 --- /dev/null +++ b/themes/PaperMod/i18n/ja.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "前へ" + +- id: next_page + translation: "次へ" + +- id: read_time + translation: + one : "1 分" + other: "{{ .Count }} 分" + +- id: words + translation: + one: "文字" + other: "{{ .Count }} 文字" + +- id: toc + translation: "目次" + +- id: translations + translation: "言語" + +- id: home + translation: "ホーム" + +- id: edit_post + translation: "編集" + +- id: code_copy + translation: "コピー" + +- id: code_copied + translation: "コピーされました!" diff --git a/themes/PaperMod/i18n/ko.yaml b/themes/PaperMod/i18n/ko.yaml new file mode 100644 index 0000000..777dd93 --- /dev/null +++ b/themes/PaperMod/i18n/ko.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "이전 페이지" + +- id: next_page + translation: "다음 페이지" + +- id: read_time + translation: + one : "1 분" + other: "{{ .Count }} 분" + +- id: words + translation: + one : "단어" + other: "{{ .Count }} 단어" + +- id: toc + translation: "목차" + +- id: translations + translation: "번역" + +- id: home + translation: "홈" + +- id: edit_post + translation: "편집" + +- id: code_copy + translation: "복사" + +- id: code_copied + translation: "복사 완료!" diff --git a/themes/PaperMod/i18n/ku.yaml b/themes/PaperMod/i18n/ku.yaml new file mode 100644 index 0000000..d1d30a5 --- /dev/null +++ b/themes/PaperMod/i18n/ku.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "Rûpela Paş" + +- id: next_page + translation: "Rûpela Pêş" + +- id: read_time + translation: + one : "1 xulek" + other: "{{ .Count }} xulek" + +- id: toc + translation: "Pêrist" + +- id: translations + translation: "Wergeran" + +- id: home + translation: "Xanî" + +- id: code_copy + translation: "Jê bigire" + +- id: code_copied + translation: "Hat jêgirtin!" diff --git a/themes/PaperMod/i18n/mn.yaml b/themes/PaperMod/i18n/mn.yaml new file mode 100644 index 0000000..dbce2ce --- /dev/null +++ b/themes/PaperMod/i18n/mn.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "Ѳмнѳх" + +- id: next_page + translation: "Дараах" + +- id: read_time + translation: + one : "1 МИН" + other: "{{ .Count }} МИН" + +- id: toc + translation: "Агуулга" + +- id: translations + translation: "Орчуулга" + +- id: home + translation: "Нүүр" + +- id: code_copy + translation: "хуулах" + +- id: code_copied + translation: "хуулсан!" diff --git a/themes/PaperMod/i18n/ms.yaml b/themes/PaperMod/i18n/ms.yaml new file mode 100644 index 0000000..d8a9eff --- /dev/null +++ b/themes/PaperMod/i18n/ms.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "Halaman Sebelumnya" + +- id: next_page + translation: "Halaman Seterusnya" + +- id: read_time + translation: + one: "1 minit" + other: "{{ .Count }} minit" + +- id: toc + translation: "Isi Kandungan" + +- id: translations + translation: "Terjemahan" + +- id: home + translation: "Home" + +- id: edit_post + translation: "Sunting" + +- id: code_copy + translation: "Salin" + +- id: code_copied + translation: "Disalin!" diff --git a/themes/PaperMod/i18n/nl.yaml b/themes/PaperMod/i18n/nl.yaml new file mode 100644 index 0000000..e9d06fa --- /dev/null +++ b/themes/PaperMod/i18n/nl.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Vorige" + +- id: next_page + translation: "Volgende" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "woord" + other: "{{ .Count }} woorden" + +- id: toc + translation: "Inhoudsopgave" + +- id: translations + translation: "Vertalingen" + +- id: home + translation: "Startpagina" + +- id: edit_post + translation: "Bewerk" + +- id: code_copy + translation: "kopieer" + +- id: code_copied + translation: "gekopieerd!" diff --git a/themes/PaperMod/i18n/no.yaml b/themes/PaperMod/i18n/no.yaml new file mode 100644 index 0000000..2400348 --- /dev/null +++ b/themes/PaperMod/i18n/no.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Forrige Side" + +- id: next_page + translation: "Neste Side" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one: "ord" + other: "{{ .Count }} ord" + +- id: toc + translation: "Innholdsfortegnelse" + +- id: translations + translation: "Oversettelser" + +- id: home + translation: "Hjem" + +- id: edit_post + translation: "Rediger" + +- id: code_copy + translation: "Kopier" + +- id: code_copied + translation: "Kopiert!" diff --git a/themes/PaperMod/i18n/oc.yaml b/themes/PaperMod/i18n/oc.yaml new file mode 100644 index 0000000..9292fd8 --- /dev/null +++ b/themes/PaperMod/i18n/oc.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Prec." + +- id: next_page + translation: "Seg." + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "mot" + other: "{{ .Count }} motss" + +- id: toc + translation: "Taula de contengut" + +- id: translations + translation: "Traduccions" + +- id: home + translation: "Acuèlh" + +- id: edit_post + translation: "Modificar" + +- id: code_copy + translation: "copiar" + +- id: code_copied + translation: "copiat !" diff --git a/themes/PaperMod/i18n/pa.yaml b/themes/PaperMod/i18n/pa.yaml new file mode 100644 index 0000000..32192c5 --- /dev/null +++ b/themes/PaperMod/i18n/pa.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "ਪਿਛਲਾ" + +- id: next_page + translation: "ਅਗਲਾ" + +- id: read_time + translation: + one: "1 ਮਿੰਟ" + other: "{{ .Count }} ਮਿੰਟ" + +- id: words + translation: + one: "ਸ਼ਬਦ" + other: "{{ .Count }} ਸ਼ਬਦ" + +- id: toc + translation: "ਤਤਕਰਾ" + +- id: translations + translation: "ਅਨੁਵਾਦ" + +- id: home + translation: "ਘਰ" + +- id: edit_post + translation: "ਸੋਧ" + +- id: code_copy + translation: "ਕਾਪੀ" + +- id: code_copied + translation: "ਕਾਪੀ ਕੀਤੀ ਗਈ!!" diff --git a/themes/PaperMod/i18n/pl.yaml b/themes/PaperMod/i18n/pl.yaml new file mode 100644 index 0000000..81b0e77 --- /dev/null +++ b/themes/PaperMod/i18n/pl.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Poprzednia" + +- id: next_page + translation: "Następna" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "słowo" + other: "{{ .Count }} słów" + +- id: toc + translation: "Spis treści" + +- id: translations + translation: "Tłumaczenia" + +- id: home + translation: "Strona Główna" + +- id: edit_post + translation: "Edytuj" + +- id: code_copy + translation: "Kopiuj" + +- id: code_copied + translation: "Skopiowano!" diff --git a/themes/PaperMod/i18n/pnb.yaml b/themes/PaperMod/i18n/pnb.yaml new file mode 100644 index 0000000..fa2f8a8 --- /dev/null +++ b/themes/PaperMod/i18n/pnb.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "پِچھلا" + +- id: next_page + translation: "اگلا" + +- id: read_time + translation: + one: "ایک منٹ" + other: "مِنٹ {{ .Count }}" + +- id: words + translation: + one: "لفظ" + other: "لفظ {{ .Count }}" + +- id: toc + translation: "تتکرا" + +- id: translations + translation: "انوواد" + +- id: home + translation: "گھر" + +- id: edit_post + translation: "سودھ" + +- id: code_copy + translation: "کاپی" + +- id: code_copied + translation: "کاپی کیتی گئی!" diff --git a/themes/PaperMod/i18n/pt.yaml b/themes/PaperMod/i18n/pt.yaml new file mode 100644 index 0000000..ab06429 --- /dev/null +++ b/themes/PaperMod/i18n/pt.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Página Anterior" + +- id: next_page + translation: "Próxima Página" + +- id: read_time + translation: + one: "1 minuto" + other: "{{ .Count }} minutos" + +- id: words + translation: + one : "palavra" + other: "{{ .Count }} palavras" + +- id: toc + translation: "Conteúdo" + +- id: translations + translation: "Traduções" + +- id: home + translation: "Início" + +- id: edit_post + translation: "Editar" + +- id: code_copy + translation: "copiar" + +- id: code_copied + translation: "copiado!" diff --git a/themes/PaperMod/i18n/ro.yaml b/themes/PaperMod/i18n/ro.yaml new file mode 100644 index 0000000..694f20b --- /dev/null +++ b/themes/PaperMod/i18n/ro.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Înapoi" + +- id: next_page + translation: "Înainte" + +- id: read_time + translation: + one : "1 minut" + other: "{{ .Count }} minute" + +- id: words + translation: + one : "cuvânt" + other: "{{ .Count }} cuvinte" + +- id: toc + translation: "Sumar" + +- id: translations + translation: "Traduceri" + +- id: home + translation: "Acasă" + +- id: edit_post + translation: "Editează" + +- id: code_copy + translation: "copiază" + +- id: code_copied + translation: "copiat!" diff --git a/themes/PaperMod/i18n/ru.yaml b/themes/PaperMod/i18n/ru.yaml new file mode 100644 index 0000000..a5dbb5c --- /dev/null +++ b/themes/PaperMod/i18n/ru.yaml @@ -0,0 +1,39 @@ +- id: prev_page + translation: "Предыдущая" + +- id: next_page + translation: "Следующая" + +- id: read_time + translation: + zero: "0 минут" + one: "1 минута" + few: "{{ .Count }} минуты" + many: "{{ .Count }} минут" + other: "{{ .Count }} минута" + +- id: words + translation: + zero: "0 слов" + one: "1 слово" + few: "{{ .Count }} слова" + many: "{{ .Count }} слов" + other: "{{ .Count }} слово" + +- id: toc + translation: "Оглавление" + +- id: translations + translation: "Переводы" + +- id: home + translation: "Главная" + +- id: edit_post + translation: "Редактировать" + +- id: code_copy + translation: "копировать" + +- id: code_copied + translation: "скопировано!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/sk.yaml b/themes/PaperMod/i18n/sk.yaml new file mode 100644 index 0000000..f129d37 --- /dev/null +++ b/themes/PaperMod/i18n/sk.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Predch" + +- id: next_page + translation: "Ďaľší" + +- id: read_time + translation: + one : "1 min" + other: "{{ .Count }} min" + +- id: words + translation: + one : "slovo" + other: "{{ .Count }} slov" + +- id: toc + translation: "Obsah" + +- id: translations + translation: "Preklady" + +- id: home + translation: "Domov" + +- id: edit_post + translation: "Upraviť" + +- id: code_copy + translation: "kopírovať" + +- id: code_copied + translation: "skopírované!" diff --git a/themes/PaperMod/i18n/sv.yaml b/themes/PaperMod/i18n/sv.yaml new file mode 100644 index 0000000..65ce422 --- /dev/null +++ b/themes/PaperMod/i18n/sv.yaml @@ -0,0 +1,28 @@ +- id: prev_page + translation: "Förra Sidan" + +- id: next_page + translation: "Nästa Sida" + +- id: read_time + translation: + one: "1 min" + other: "{{ .Count }} min" + +- id: toc + translation: "Innehållsförteckning" + +- id: translations + translation: "Översättningar" + +- id: home + translation: "Hem" + +- id: edit_post + translation: "Redigera" + +- id: code_copy + translation: "kopiera" + +- id: code_copied + translation: "kopierad!" diff --git a/themes/PaperMod/i18n/sw.yaml b/themes/PaperMod/i18n/sw.yaml new file mode 100644 index 0000000..5fceb1a --- /dev/null +++ b/themes/PaperMod/i18n/sw.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Uliopita" + +- id: next_page + translation: "Ujao" + +- id: read_time + translation: + one : "dakika 1" + other: "dakika {{ .Count }}" + +- id: words + translation: + one : "neno" + other: "maneno {{ .Count }}" + +- id: toc + translation: "Jedwali la Yaliyomo" + +- id: translations + translation: "Tafsiri" + +- id: home + translation: "Mwanzo" + +- id: edit_post + translation: "Hariri" + +- id: code_copy + translation: "nakili" + +- id: code_copied + translation: "nakiliwa!" diff --git a/themes/PaperMod/i18n/th.yaml b/themes/PaperMod/i18n/th.yaml new file mode 100644 index 0000000..d8036ae --- /dev/null +++ b/themes/PaperMod/i18n/th.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "ก่อนหน้า" + +- id: next_page + translation: "ถัดไป" + +- id: read_time + translation: + one : "1 นาที" + other: "{{ .Count }} นาที" + +- id: words + translation: + one : "คำ" + other: "{{ .Count }} คำ" + +- id: toc + translation: "สารบัญ" + +- id: translations + translation: "การแปล" + +- id: home + translation: "หน้าหลัก" + +- id: edit_post + translation: "แก้ไข" + +- id: code_copy + translation: "คัดลอก" + +- id: code_copied + translation: "คัดลอกแล้ว!" diff --git a/themes/PaperMod/i18n/tr.yaml b/themes/PaperMod/i18n/tr.yaml new file mode 100644 index 0000000..b014a15 --- /dev/null +++ b/themes/PaperMod/i18n/tr.yaml @@ -0,0 +1,33 @@ +- id: prev_page + translation: "Önceki" + +- id: next_page + translation: "Sonraki" + +- id: read_time + translation: + one : "1 dk" + other: "{{ .Count }} dk" + +- id: words + translation: + one : "sözcük" + other: "{{ .Count }} sözcük" + +- id: toc + translation: "İçindekiler" + +- id: translations + translation: "Çeviriler" + +- id: home + translation: "Ana Sayfa" + +- id: edit_post + translation: "Düzenle" + +- id: code_copy + translation: "Kopyala" + +- id: code_copied + translation: "Kopyalandı!" diff --git a/themes/PaperMod/i18n/uk.yaml b/themes/PaperMod/i18n/uk.yaml new file mode 100644 index 0000000..41be964 --- /dev/null +++ b/themes/PaperMod/i18n/uk.yaml @@ -0,0 +1,25 @@ +- id: prev_page + translation: "Попередня" + +- id: next_page + translation: "Наступна" + +- id: read_time + translation: + one : "1 хвилина" + other: "{{ .Count }} хвилин" + +- id: toc + translation: "Зміст" + +- id: translations + translation: "Переклади" + +- id: home + translation: "Головна" + +- id: code_copy + translation: "копіювати" + +- id: code_copied + translation: "скопійовано!" \ No newline at end of file diff --git a/themes/PaperMod/i18n/uz.yaml b/themes/PaperMod/i18n/uz.yaml new file mode 100644 index 0000000..6c3c44e --- /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..99cd15e --- /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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

        !)79NQLb(l^ir6@K^t-UDZ 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 literal 0 HcmV?d00001 diff --git a/themes/PaperMod/layouts/404.html b/themes/PaperMod/layouts/404.html new file mode 100644 index 0000000..a405573 --- /dev/null +++ b/themes/PaperMod/layouts/404.html @@ -0,0 +1,3 @@ +{{- define "main" }} +

        404
        +{{- 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..f368ff8 --- /dev/null +++ b/themes/PaperMod/layouts/_default/_markup/render-image.html @@ -0,0 +1,22 @@ +{{- $u := urls.Parse .Destination -}} +{{- $src := $u.String -}} +{{- if not $u.IsAbs -}} + {{- $path := strings.TrimPrefix "./" $u.Path }} + {{- with or (.PageInner.Resources.Get $path) (resources.Get $path) -}} + {{- $src = .RelPermalink -}} + {{- with $u.RawQuery -}} + {{- $src = printf "%s?%s" $src . -}} + {{- end -}} + {{- with $u.Fragment -}} + {{- $src = printf "%s#%s" $src . -}} + {{- end -}} + {{- end -}} +{{- end -}} +{{- $attributes := merge .Attributes (dict "alt" .Text "src" $src "title" (.Title | transform.HTMLEscape) "loading" "lazy") -}} + +{{- /**/ -}} diff --git a/themes/PaperMod/layouts/_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" }} + +
        + +{{- $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..94e7d58 --- /dev/null +++ b/themes/PaperMod/layouts/_default/baseof.html @@ -0,0 +1,27 @@ +{{- if lt hugo.Version "0.125.7" }} +{{- errorf "=> hugo v0.125.7 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..890b909 --- /dev/null +++ b/themes/PaperMod/layouts/partials/svg.html @@ -0,0 +1,949 @@ +{{- $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 "dzen") -}} + + + +{{- 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 or (eq $icon_name "wikipedia") (eq $icon_name "wiki") -}} + + + + +{{- else if (eq $icon_name "wordpress") -}} + + + +{{- else if (eq $icon_name "x") -}} + + + + +{{- else if (eq $icon_name "xda") -}} + + + +{{- else if (eq $icon_name "xing") -}} + + + + +{{- else if (eq $icon_name "xmpp") -}} + + + + +{{- else if (eq $icon_name "ycombinator") -}} + + + +{{- else if (eq $icon_name "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..90b91d2 --- /dev/null +++ b/themes/PaperMod/layouts/partials/templates/opengraph.html @@ -0,0 +1,82 @@ + + +{{- with or site.Title site.Params.title | plainify }} + +{{- end }} + +{{- with or .Title site.Title site.Params.title | plainify }} + +{{- end }} + +{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape | chomp }} + +{{- end }} + +{{- with or .Params.locale site.Language.LanguageCode site.Language.Lang }} + +{{- end }} + +{{- if .IsPage }} + + {{- with .Section }} + + {{- end }} + {{- $ISO8601 := "2006-01-02T15:04:05-07:00" }} + {{- with .PublishDate }} + + {{- end }} + {{- with .Lastmod }} + + {{- end }} + {{- range .GetTerms "tags" | first 6 }} + + {{- end }} +{{- else }} + +{{- end }} + +{{- if .Params.cover.image -}} + {{- if (ne .Params.cover.relative true) }} + + {{- else}} + + {{- end}} +{{- else }} + {{- with partial "_funcs/get-page-images" . }} + {{- range . | first 6 }} + + {{- end }} + {{- end }} +{{- end }} + +{{- with .Params.audio }} + {{- range . | first 6 }} + + {{- end }} +{{- end }} + +{{- with .Params.videos }} + {{- range . | first 6 }} + + {{- end }} +{{- end }} + +{{- range .GetTerms "series" }} + {{- range .Pages | first 7 }} + {{- if ne $ . }} + + {{- end }} + {{- end }} +{{- end }} + +{{- with site.Params.social }} + {{- if reflect.IsMap . }} + {{- with .facebook_app_id }} + + {{- else }} + {{- with .facebook_admin }} + + {{- end }} + {{- end }} + {{- end }} +{{- end }} 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..dc3bfd6 --- /dev/null +++ b/themes/PaperMod/layouts/partials/templates/schema_json.html @@ -0,0 +1,128 @@ +{{ if .IsHome }} + +{{- else if (or .IsPage .IsSection) }} +{{/* BreadcrumbList */}} +{{- $url := replace .Parent.Permalink ( printf "%s" site.Home.Permalink) "" }} +{{- $lang_url := strings.TrimPrefix ( printf "%s/" .Lang) $url }} +{{- $bc_list := (split $lang_url "/")}} + +{{- $scratch := newScratch }} + +{{- if .IsPage }} + +{{- end }}{{/* .IsPage end */}} + +{{- end -}} diff --git a/themes/PaperMod/layouts/partials/templates/twitter_cards.html b/themes/PaperMod/layouts/partials/templates/twitter_cards.html new file mode 100644 index 0000000..6b0d59b --- /dev/null +++ b/themes/PaperMod/layouts/partials/templates/twitter_cards.html @@ -0,0 +1,31 @@ +{{- 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 }} + + + +{{- $twitterSite := "" }} +{{- with site.Params.social }} + {{- if reflect.IsMap . }} + {{- with .twitter }} + {{- $content := . }} + {{- if not (strings.HasPrefix . "@") }} + {{- $content = printf "@%v" . }} + {{- end }} + + {{- end }} + {{- end }} +{{- end }} diff --git a/themes/PaperMod/layouts/partials/toc.html b/themes/PaperMod/layouts/partials/toc.html new file mode 100644 index 0000000..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 }} + +
      • + {{- 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..85c7b73 --- /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.125.7" + +[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/"