From 08ce2643de5047dd116180795940373bb42789a2 Mon Sep 17 00:00:00 2001 From: PeaceNira Date: Sat, 1 Feb 2025 19:05:41 +0000 Subject: [PATCH] uploading hugo files --- .gitmodules | 3 + .hugo_build.lock | 0 LICENSE | 9 - README.md | 27 - archetypes/default.md | 5 + content/posts/post-2025-01-01:1.md | 18 + content/search.md | 8 + hugo.yaml | 124 +++ 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 + resources/Secrets.png | 3 - src/index.html | 12 - .../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 + 151 files changed, 6322 insertions(+), 51 deletions(-) create mode 100644 .gitmodules create mode 100644 .hugo_build.lock delete mode 100644 LICENSE delete mode 100644 README.md 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 delete mode 100644 resources/Secrets.png delete mode 100644 src/index.html 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/.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/LICENSE b/LICENSE deleted file mode 100644 index 3283b25..0000000 --- a/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2024 Skynet - -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. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index bf025da..0000000 --- a/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Deploying to Skynet -This is a repo that is used as a template to deploy to Skynet - - -## Create SSH Key -Details to do this can be found here: [wiki](https://wiki.skynet.ie/tutorials/skynet/create_ssh/) -It is recommended to create a new key for just Forgejo Actions. - -### Add key to kynet account -Add the contents of ``$USERNAME.pub`` (public key) to [your skynet account](https://account.skynet.ie/modify_ssh) - -## Secrets -One secret must be added to make this work. - -Secrets are found in your repo under ``Settings > Actions > Secrets`` - -* SSH_KEY - * This is your private key that was generated above - -End result should look like this: -![Secrets](resources/Secrets.png) - - -## Make changes to ``src`` -Make changes to the files in ``src``. -Commit and push. -If everything was set up fine then your site will soon be live on ``https://$USERNAME.users.skynet.ie`` \ No newline at end of file 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..9fcb30a --- /dev/null +++ b/content/posts/post-2025-01-01:1.md @@ -0,0 +1,18 @@ +--- +title: "A introduction to my blog!" +date: 2025-02-01 +draft: false +description: “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/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..171bf1b --- /dev/null +++ b/hugo.yaml @@ -0,0 +1,124 @@ +baseURL: "https://shaypower.org/" +title: Shay's Blog +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: Shay's Blog + description: "A blog documenting my journey as a software developer" + 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 + + # home-info mode + homeInfoParams: + Title: "Hi there \U0001F44B" + Content: Welcome to my blog + + socialIcons: + - name: github + url: "https://github.com/shaypower" + - name: LinkedIn + url: "https://www.linkedin.com/in/shay-power-8100272a0/" + - name: Email + url: "mailto:shaythomaspower@gmail.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 + + # 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: search + name: search + url: /search + 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 + +outputs: + home: + - HTML + - RSS + - JSON # necessary for search \ 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/resources/Secrets.png b/resources/Secrets.png deleted file mode 100644 index d555fb2..0000000 --- a/resources/Secrets.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bedff41d5e804577020539b26da95c2034b5f768b08590611975c9f2a6795faf -size 42331 diff --git a/src/index.html b/src/index.html deleted file mode 100644 index c181274..0000000 --- a/src/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - -
        -

        Hello World!

        -

        All hail Skynet!! now it should work

        -
        - - 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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 + +{{- $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 }} + +

        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 SaWs{<2jwqAA`-!=U&yzL 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%0AE_#}$`j!6qjR9< zx#YP6Krcdfch`+Se)F(=A1Og$@5F}_ChhV{-;10nZf;$9h8tR5)}B1T4`nHf7dX*`yTW6)39OpcQ1ic=Lhqsz7^q@AxRivo2ULLlt&$%@Bo}V zwPGyeug9TR7|Qn?v+prZz`iMF{@iAEdE8 z8Ps6q0lBezdp;t0_r^9sR1)g1Q6AVBjKm1-98B;ZCb8QR3uB= zX6e)Gora+&OFriHX}hd(thCx2tFa-?A;!9M0H5{-Cx|*3Df71K6hl)ec*REKjgHW? z63daIA`M%fi_+GS+YveC8lj(+voqJ~P-n{S#%-9|AK2X|d;ddUx3z`!m{6=Nwh+&w zpVTPkz=o8otMbSRZ2M7o8y`d8h5O@te-ckl@@CouTpW0GlbczVGs8G5SC9(5&+2mM zQWX+?DSK0}Cu;scJvNsaZA6IrXry>Lank=ZSysc{&3|{z-UgFf5fkG4$7x_S+L)Z< zl~hpaQvhJDR`&=CXC&IN`Mnxx9X7K3W&5s&T3tNWB~)Z(1DJRxfoMB>jdire9Ov2I zIYnUxnOJIXPE}qM?6u5)PAHgc^ZD;)Wg%12m4LYZ71%B4To85PTB#*Asz&y+cMdYt z6pj1=5@UZAR&bZch4;wLm3)^dBsnNffF!?fu?)dq41({qa?o<7CGCy0-LFzZ(!>QV z$D!c$ehw;HIQcX(X@Ov-feCn0S*d%m_ey1e#J?bd!Ye@sGGntJ?9P(b-eqea?L=&* z1n$_xLq&|{(m9!Do^JRkYwiW$KK$7zicWW2jV%TT=cn}e^SF6$hTx%wnf?sPVz%*n zO7(Qh_@vw(#o%GKWR8%iBE+4}kaeTPa5w0AiTzMT1W{0pK=|JFTNxA8#^?w`scx*M z=gj=G*F(8d&<>7Hm08}4ujW63hmVCgq?yj6+d*cgA0Q0{(@ytVs`as!&s_aIpUJNv z^}1Si3ATCAN^GF*ulHQsA7%y zy&d2}aoWp`l8his;y1V^j=%6wfyr~vGbThbxU#lAqenn>TWl1bRWi1GI3cTB24^yG=DSId`UaXs5IZgJiR4O(qO zuH5!ak6x8p#6Vf5Lu1D^Z%G%=L~pA3Lm*{BgX(g+lI-~ z$EdhVn8h06i^rSApf|4{XYMWvS6^ndzwzpoWc9r(H^2gRikZ>ZNngN_x?Z2#PJ_*Q z6240eXaj4`l?J7r{sez-3vgUFOezzVG-n+edW(wuP}IkeLDoiDF-XlL+Gp$fAatL{ z@z+xl(dx9*C4H0IlU6}kY?}ic6dRCobYY~cqrqw8r}FL5rDu}}`ErZPwOwuS@?KM~ zNp5LdEm@$fA_A2iMM7)j^5GnOXBE3@r}|4-$bN4!PswM9PANh&^L!WxCon zUc674UogV6s*oX8(ck#Syx;OG0|*2@^;zX|BtN;T9wxSSSfyYypyE16 zcQz$gyAbF~yM|=& zeobtp)cMPn`|nGk#1eO@B|%h@W_jOpWAhjS%A{wxzo#gSXsHS*XajQvczTg{c2|p_1i0?KE{PxdlQJD?wZ_p*tPLxjyNpAenyS_z%?o`mZ$NkinKE}ImmAP-aYOuyUP1#jp zS+uvctKV0LKzz{&V}wyFEgQdQ7%wHcilgbdR`rJh4mcdh);2yTZ!)^e;w7_QubgIo zAjegqS*AUpg9oIrI0g-hc%H70Bh%poqXT!&p$<1~KT(DC_ANhCHU3$PtAZbh}lhD#Io;IOPXN*o(`Hi;K%O zQb!^I27E(MiRcPcY#dH=px=zIhI7WO+q}{?V2Ducy?n2~%XmQVz&CC-E%d5XI5+gV8BG?xi?aY% z*WVs^wpqv?U%S*LU55KoYb{evlWgVpEnQ23Z9XKQ{oAm?{=deK~RKiXmdUH6t;5_PRLwD2g%ryJ-E8)l8>#CJ_ne)S^MetK3W(3+%BFs;jIuzOB3a{#9eIP_e}oH&oX-|2t?zmDv;;iGEG;tSu8Td9ld}?y zq|}xkzO|Byg{lZR9rQnZf6;pqn)3pes`dqh! zLAkIA3I7Fr+V-WMSpj?JikkD+7^d#<<|*>&i`Nv8L=N(Hg^*9Y4ozPZ*r`Q6{}I;B z$RHE)I{726RpA+y{XtTLCoS&MpfO-8CTK+6I}x1!$}P^FS{vXqVajq&!M70y_Pw{J z8>69nPgniRNRefyo%@EJzHTZo{kOfj5rQEOnNGY8+<d<;o;aDY zmQ@GP@6(i(OTUNbrW~Y#OO$7}}t}65yXN zd+bkdc=bbzq8*@yYDGnElgmO%|JbTS@fMs6NLx zv`K7WZZaE+Q!Q(IS4Bv|3NL1^;7SR#_GBE`#gFTV}^Iy;BWoe_bR z1;R~y2+z!|TqPEND&YvmvP-%>@ScXrS)nHPBSH^DZ?9GQUXLETCh@hv_eyNLf|)|@ zHAz)STvDYC9{hsNv8bWXFxebh@Y4z{`j8iUiz6If!^Ev#8K3w*$5gnC+ccEo&1R;| zmXv@=+8>kx+qw9jy@+Nbp8NP{`1!;)uYSxlM6NF26?TRO@J>J8nRI_+g?G0^YpGPT zZEt6)Dcq&vM;0gqAO1?3gwJPw91q#F$+mYFcX=Dz*;#DU2MuYWp??FJwoa zg~sXD41w4mb6$MOFV8M)?Bx|-$qUT zKXy6j7dFV}sVcV`7RY^$m%!|#0SyH3P*WKf+1b;Q!jy`rmkB|5g2;@n8S{%e5>)NhUS@itg2yG*IhTb$R*) zamuB-8!pcPFbY7WNigwly&5_3pUaXTmp*rq?<7fRL|i@~Kn70f67zo$g#<-1zs32% zCTY|4Y|0wK_iRPVXWTR%l+wFG(jb4+?lbDP6x2du_-r@5Zi=vF-;kG`riaJHlaU(i z(5p%T<}#IV+Wq7-qbMxnmjKvn2z|d4%bKIe-D>zC;_r?aTWcjtuA;F8n}O5ByIihh zOI{j3DWK%s+88)~fP6rpVPePRaScyHP?cpkJym<@lfcCAMmO{7Y(t*6^sZ0HIOrN@ zr5nqN#v$0~7&<3LJozoa9Lkk>?$>2r;Xy*ur&1yTbzwly_6n={`Lh=u$QXn7X`k$I zzR!z1`pHd^})S0u@zSSLR9Ahw{jO+C`aF-8H8S_A@r!E=9t;};I?0r zqM{}Gd|g7bxTJ{beaY-Z?+V|bp?oV0R&1b@AwI6)<*%*p9l5ulCFu?SRis{oyUy(S z5LUq}nY@agdjD#*HuGWXqvMgZrn*j1-q<0%2K-ZrMrvIqn(b21a*ObBi&ayt{(Qf$ zpcVs$10pfOYUhsWDq309w07P;O9!P)2xxB5#YQ#2<*Wsis6A!?%)R~tCX|i1^}3<2 z^JkgZ%!o4L+1X&OA(mO;OS!Rt*E<>SNiK=~3J9I9$0LiegFK%pa7yF0?rv;S*YCAq zj$=d-k0hN9xL`6W0J0p=tgn)5oD-5fq7|Qm3NmQ+S@X^t)^}Qa*)ivTud& zN8GKd66d@j@Ro3+wNz7Zl_P#O^rH75z}T_Rh(6W@)Lq>*67Ywy-$(VE^<|aZ{5{Oc zHurh^^MO+CA4p@v#hB`&-@;V0UG?d$n<3+M_*n=M5}-c?tE@m-!U;-*3@=5ol@@oM zn-Hd$N+EmLq-}#6HSKb_aWEFI&<7`aTJ7kkw0PoX$HaSXwx0C~eERl%S)a)q4*v=i zRn5-mh%=hZ;*iud?KDd05GYN(5?M2*hZewB0NCg`ZPq0QHoua}wS(9?6T@0JPi{xi zdX(|E==pD)fApWm-5%78{!MWfAEvHIH(P^0)lJKm@Wnx7T{CZ1bl8eujoIRxrQ6<8 zbYb##^v^-7F3b>|C_)ltMH{{748^jVgn{jnQmJEoafBA?FF=+OnxS?f<1_)P9dFiv zLACv#^P^>3xRE>Y5LVL9lp&q+Qcx<3?cwz4E`zl{jzEP7VR7Oms(>qFx?1H)5GxK{Dnyi7$Ln9rkV z*9Ur-*NrT{YKo`g{|Wkcyn*13k*a?&wd>9Yy%GqQDvYKIPdCfZ{UVBWD z@t>AH(8C>Xjs4U=X3HdnX})0(M$aLj+GLRTzhfWPMcg=0kuH7l= zn!|XMm}Hpg>}g3imiP?5#(7oJl1SOLhlZfZ^4VR-$D!_Yl>s-zEBvgXe`L?+u<&P` zXR2SRs^h1ctO8ChJ|p#8NhnW`>4B5@*fFw}3bPK7iD;Xe6p>6>m1A)ZK9gSl>T$dU zOazJc81jYfsgwchj~eOMz45t=(t)ZEMoQt`2$d$z)8Du>9-{w&thdPBw>*y9#o_U@ zW0xuBEoD2D%OWe3a!Kq|;-|}f=f0u`jI?C^;C528sLD|0bA>-e8n2W@&bYF^>D3Q9 z`KFH29K4T$X3c7nhKz5a@nF7!(m2^?$Jx1P(Xsh9Zd)Hu_r*PFGh_@2kK&W70FyX_ z#YWHNdT=I1`T}_BIxb2s087Apk~2^z@ zCpqVR6qei@dYZA$ND)>j`YRuhZ-}*~ZT@Bw`26Ra(2aNx>n0ibq!32l?voTbFIh*S zj}jxf*09TGcW$TM-KV3S)4wq#qt=s{&KGGNUlL9UoxYKobH^=UYC(o+0{;ECt`utk z7gyA2m{&&Sg8V#4w@JsaQDYgaF2iK}kx6Ik1HXPA|7?kp%QC){9o3qdi?6da*)e^b z!qeEmo>QA19$$E#wa=>0qU*SKWY*P}Ujq11EW`<51(A6c1f6sR6b8*RjLJXsdL<1QyxrmOE>uhs*xxQE7xO>0^=4;#>k{BG4ede_OezB}8l zx4gs6Kq=zEWa#&IJCJG_P!aiI>Mk_RiE4JtLf+=5KF1$bs^1GFw&@Z7S|U+hSR)tq zrlSG3OP(7qDF|NN^ zkE5_&b{8&lcfiJYiDGX!)x7YP5-C$7%0TeF(~sahfY8M@NRp|kmtF^d0qZTCi;D;4 zgGdq%Jb$BysAygi=UBEl&FNJ;WQ5Eb+neHyuGokMylO+BMGc5YE6EQHvf_EX$;>_2 zJQF1BjR-(?c`I3r?vNc)TgBe=Ku6Mf%&rC<7JGH^HSix-P~TCn$$0%091YSr1K|eL zFf)Injj`L-mVmCHOJANbIeEqG9{Sa~kzo7sJ3j9(nLz6DMt!8CapCQLadOU!cFMC3 zlJ}mBI#mx{x55%oc4^iq2!-gHN=k89m}2~_j zyJkp11c<7v^m!u|jUS;XQk~&iHyCSGI^@LVIiM}{8tSZ(JWUOF5PjFl4}jEFWVWyV zdL@0`@Hd(!_f}OyL&Ki!^^ZF?bTt70az!{wc&GC2KXnTBpYbC4F|x|6_Oiqj7i!R>DDm3DLJm8j}Y z9Fi|~AP+Zw{^UAg+gHcaMW}C$+Tm@6wJb;PS5?z*cj{{$v(*+)Ru0s*yQc+B1wM%D z0hSde!6O!T0jRkrfO@V+}dS3>?adM)^JcAR5^gR28^WS|h98`H2q2#SM z)A;}bRhIjnKL^jHQ7cK$xFLeS5I~zJ>LXeBjGV<@ zKgQT~ex4T#sWjfz;kRq(H!y4Adg$=K3)%7R>6DnH;!kTEQCKmz`()JWUDNl=qwm-) zwx+VCuXOVpycH+b#@oXrY2$Ny_%vHg5LBLIy6)kMzw~FoyH`n969)6kY441!JlZ@n zhdPHF5{5JOx4h`+=pB59ET4K7c4NNO?!k>$Km{k}bb3la4<+{7Pp^N^xd)`oYMcio zh7+3+m~t*Uso?ZcE8K7$mm}F-QQtfHL}su2BYmBx>~^;~5FfI6VZ9?Uh?EoE(Ae3*=jb!QOLb`gfj9T0#dp zU9wzjQ?d$q&cX)s1JGGu=heHqDOiRmR}zBP1$Ff6ci*~i>Ne(;&!z{z!kx;+ViMI6 z4mMR}g0St(Pl3KA#E^$s4D-?3PpmC-Q|%XL8F98gW*u~o%T0a=QUwPB9mwPTB9tr` zXA2Jo$#za5EJ|Ms=-20|WfCZ?%x!r5inCKg@jB5jSBo9dl;5ud%#v~V%hJs*H}LW? z1mYZ0DJs7u(9WZ@jr8A4!<;LaCpL>Y43c_jmh1!f+IKqo-b`|bxycWqV#a;ouPEzu zemCQYs(4&?}MV$#IOLcW>;rIReL6&mb>{ka>h7?98Q9I92!SF4bhGr1~r7c z=RJ?hpgqF-Wy+d(ap!;-!33LE2{P6)ogPHPf4AIWytqA<^W6BsxSlg{61D1ckA(QL z`N{8n53Gh9YmArbXe_Ili$;F58x)TH+J3ZrgZQlqEPB1zAl+7Xdo$p1X&5EPo^>GD z+4c)RYi?S<#=_$@zZ`87ygmA-f*o=3wDO5U=o4JiXXgkmjypN1TI{-$wEIF&6^ zv`Oza-9J;0oO(*MxBBeM!+C}6d3&siTjf2I<7>}-W=hbyUWnyK#{-N|uW-b|ULb9J zE$95>-(F;2Inp~v8s9r_=Bw@G3kc{99)k@}mIv@P+J8Ht4;@Rbz}^kjXDjUKqQa3( z?gVRpzAdjl6=Xj_R0KX=8C<=q!6OMAnfOPbJ6#THhdoQy+?2$E3=i&}J)fa}oRnMV zMtK~~K7Abp4?$Vlh{c2V=`z!0(3N(g9$4C3v!cNY|NR;v9 z1}rEo)2IEr-7E5CXkmxa|R9`7RQt?;hC;jt7Ktwu%(0d_tyubux1Bp^ZKy>AP1hkK5-3UO$ko zr?a8i@Yl3&_{hJ9?^`z?ZaV3Xod|E$n6`Wh)>3ngwyTE7$w#1m+6U9tUGx8@ZEdV5 zn0lZI_3%q$Gzj@LuURI_qrpxMGo@el{%vn|jGe`tR;ASJo^Rb4wC(AsS%p>*#n9A4QdDU!!IaXx1%$~eaW z276?^7M-R40w!`1{Vw5U(8OIi1n5IBMnFw8ce-~yKDb+7?E5U3>2+@J;=5wT>v=W} z@r7~I(@W9KQ#henA$H*j86)D2bkQ@{>m31mU>h$RY*k$B(;d!2_Rp@D_V#?_s7bPA zo;)&N8k^`fF8BE_YJsUw6DlsmpQg#`v1VxO66)!Z&KKm4cWASB+m@ToEu4RkvqU5Y3)WSl8hl3IMkcP%@&RJ_ z?GJZqy=PP6xY+gX>i8%%ZMcq5Sczm?ZJ!%5q(OSCnGF~q*FzL=mLD6yXzrCSj_e&y@8YFcO3dVO#cy>E#4z@FWCTV?zUS&01vc1FSrw{9X zcN=5xm0xF`v37Q4RF}~@ z)Mg%MyNJ}w-EqX%IWxE{U5a8B#Oy9%=*baQt~Oya%Ye@EqG6Kg~hA9fiU zT1S<&kwl*KM#;zHEXBv5d1=I{;c63;Dwe8!v-08bWb8GdK6vk{^IbB}m;GgLLQK%s zomi{Z@xg&~%IdsgF&lfeW^%eL)2kr0fb&E=FqoPh`FI%GrFMxPQ0%tfGgN=7B1$Yk zI&3`vRqv2W>p|?kp}Ai%e3o!MoWY(rmbOwBhh)^fB*k2M38=>@Q^QH6n4X#HVtlt5 zO&2+pdHGISp!j3X1mAce$bsUJa51w?Es5zy{85hUL&pHQkx1%zQ_Vd=4TC9Vz+K2m z?mMP_n4tar81NY@aWC^AqIA_sV`a zeUwx8{$dZgMf%?#`|P0WHc%b+<$ap{JI78ziTtV?UB;RcQhwFlxSxjYwHGTt8}QxZ z>fU1^7>O>7AD@Zu?eTtu9?CLt*m{3__k832K4XX4>la!Vbbd}6pY+UdO6CXv4JX+h zPCev3XY0Fj+{+)9`P$kx^gEi$pAA3DA?a*tDrI1z{u=uMl;KzNSi3e0+5Ix~f!{lW zo%X5t`W`RZE0Hw4P-~@^dl;B|RQdM*>8ZwY7Th0UYArGT1Rdx|DyCxLT9W!vmOJlHhjsml&78&no%ZnlCUYWZzrHjwOUe z;{mWR*>+H%)y?hx>B7cCQV5{X`Ht~a!KS&sGI>S3w6 zC=?r!U)1{2m7G_pN%z4x3KTc#gQTa`qHBMQ9`$vsV}4W5rn%$?#j0_tX(jdPc#u!< z7vym6ppn!?%fzHe=gQIQrsex`)dX2f8)gmmv?gZfBo?lUOffLGRMVJyfW~@Rv%Y@A zXhu`QZ7hHV?3p}&NQh81-98-J;aCN1`=XW?5PM-2EgR(~Ey>KROrp%9+$;Qjv6pdv1;b&fyF0?0(UyTUH;DlO4_&W!4$iMAxonLj ztvA1jKmLgvObqArw~nTz_I%Xz(q23R`&_?}wk!yYzPLQ3P8H20AD;q`yD(#Kjj9_S zKX6`^a_;s9Ls>NEUSFPPe);$nYvCi5ef^!J86l?)sGvvC_o)w?kx;L{Ymi%OAEtw@ zKUmB+b8ft1heK6lUEHJRmins22s%g@;Leq^OdP(k+CPdDVCW}b)r&gp86u|88Qsah ztMy7+Vv+G|TuSj($|J9?`Kh#QLDcTs+U)jY_4hfpbpJCNk00n1o|xnxZkCO5j*GeF z!tsK0y|+}_e%s!g0rg%dlN-KfnVi0@elzzJGBt=A!|+e1HM)+Ybx*#RGrwtAed{MI zSJXJ~+rMydP^xU^e$n5WChi-dI`|r?=YITYXW?zwrmKI2DHetQhRG<|4K_WEzL4mC5biQZdJGXXDRUz*1d3Hxw|Y&yfCLlQKz`HNT!QN_$23o`{1eYkhm%tf4x7 zwaG~%48VZx9u@nT=H#y|B2?UXZc^bOCJd0JzZN zw;71l3d8mBJ!naqKJce9W$s>w9!??Ln?a9W;2_b?(rK$F#=TC;IxWi3L8qfBJZiDq z;Jc05AS_5+uy{D<`$O8*_vX-rK`W{W!FKQC#s;HFws-G-1utD_J*TmJf?i8_YR)+U zVH|fn_LfA2cPDWH*Q`^P#t-7hK$nIPM_*`Ib3wp9qMq~Kie@O0LX_N_%0Byg&x%q^u1OZ)(74@D%JkMmzCs0?_vQlPTB-dL0jqU@pZMcO2=>Xe-OMJoIfHlrIFksTW|vw9;AskM=B~-%N90%sCLjZpS&~-vj(tOz^*YfbXc4t zPD16CRh8xCppNK+G4Hjow+nYc;g;+w7ZeneY_`ob8zp~`49~#&1@e!I#3I#?N0q-n z#J%th$e6tvQI|Qpc4q7bsJPmEGc-C2`O4p;gmHC+Bo%>;X>5^D$w9FSJX_Oh)Z2uF zm0TUBAtQu*5=5@|qL`7CXQRAn*`NOfv+qeH0gE#y8M@1QqW*)(zQ7NzJ3E^Bet^`3 zyv8QC?OK@~HP$pC@2em~4%g4JuD&-uOGJEO{^Ashc*gF1KBxnZDX}|0m)X(G3YO|4 zXOom%k<%&ls?kPz#xlchn?%)2E*mFo8cXzO{Wt~Z)tQIin1AjSVV{ifRO-bN+6rjk6P zMDGJF|FZp=nOX4oKML~X799zuIh-)#4oH69;qd=1gZ)1fyZb**kN>aE|0^lu|NJt= z|5RG8U%bm*;c%W~HR(ba3ok)FgjA|v<^AMY-YmMFx#|&1=Mh=n42`m}R0AcP48-^PEsP3#6smi-i$Ar8kJug-_L*Sbk#ti0$&*3Pqt7z`k zaoY)T7b%IA@ZjIyqjQy0hjTA9Btx$Y*B&BEnCTe`xVhjQZ{YE{it4K#>mBZ6GDW&Z z?I{Kmz1lTxNz;yl0nWrJtdX3V2WL8j_PTr?cWT+aHg0+QdFY3+1NFq&?n-mc zP)M>ZpA1!qex^C~+X45DTrV~9RvD$?UW<0!A3+nEq(sP!?NoM^I%|i!1WtMYCiT+1 z`F+EHUrKvYVP`el`gG6^ap`*+=~m{zMN>QD#-@RgmB!L8*R1wqc%tvYr*m!kvB=Zh zlW0m*PWD+y&2i~PLtLk+?0zAs@rDCa#q0KPEW=%iloipd;0a>{HwMv=RPSZ zq-V~ntPC>){NW>!91Of>B+hvyBhLdnf8F!U~9&Xcc-Q zicJ~J!@CP)@!Jp8)iE(k; z^pwuK!9r!&N_>Z63VVB$KETd?y6~-07VX|Fe?;{)x5K&x4fRBeifh%x7L4)-rgMDo z(P}v_l_ zz&n<L7_sk(50v&WT4BIo`eMmCp0{pX)5VoCL=R2%F zw<#)*27W}~BCks(3=Hb`fk0SJmHo=>Ger)Ua>9BH+R^RR$gmRry=hmu{t2(|d;#E< zhx`4rkP;XhzjA&y2rrvkiKe>2db;nfXzoBHd%;b^v|);mVBftI^(EK-GLjK2sU~6+ zXA#iC$4IZ3dcUE5o_s&Ert5*HyOU5hO2`+~pgrd(u0D5Sp1l}j&+@YM{)=&FKp(vs zb=Bv+UN%F%``GMI<((3#;~D2h%R+dPcH2?ZHLC-OeO~XwiaxCfu}fhT%%uGgTK~o0 z$4M{$#@sTJZ@bhNw1gu$5;l4AX3h6Qq72=%v!fC1`5~!{wD;nyZ&rML z9$kF70(ZR2Z~6HbA(fzuv%sM~s6h4W{Xk#oD&T-}h0El4taelF!{)Ym@sj7)Nhq5+ zl>BkN_EI{K+5Zs^LZQ=3lW#6?d&v2Fj}84{&ImR|_c>itxcmCwKEAQ`k+Im!BxM8n zvP)vXA_K?>Y*nY#d?Y`~eZN~Cm*}i~{^Ytd>X4{PA#kYvc(vxtd0|n~fVze+0J8h_ zEQo|~MwXtpm$GEZug2UWL%{jo718m%84=5?E(s+++Noe!cjzJ-tecsxMTUSNDos~k z{iSPVy)I%F8j;E)VY~OP?_CP{S=inJ>Mr_!*dw5b*-|Nfr*;ipFzEP*Xb!ZFbTc2@ zuyK&CI2u0?u0zOf!OR0e%zf3fMYc}QXdItP&kOl*u!H+DNy5}j3BXYqP{x$dN}%4z zs;QxK8v(szY|0fi0N#s=Sl`|ys_T_LpEL2MV3d`={#hB@FNJhJig)PYclOj%>A59B zUJ6&tls6BZzcf^wwK`)!eSItC9PdPDlW&|-5Xr>6b*t*?Fi{Cnlc^ij zBl2v$8h7>|fGzRP*vAqinBpf$_dMlp@TSpfzE!`^L@D>x>*^eY%u%mu6c_Q?H(&ws zT}pWwDJI`~X7V2{8EaF3RNGzTlI{DLm&CH}>CEFff4_7=WrITZr+K4qHdh<$#yEs+ zr=7)$HRh6(X5Zku*;%y7=DGM)RSNpZ#Z?(}BnDTgR8q<^)8+Ds3^dx9g4STZx1y<2 z>=pgR3tlGaHM4E0vtRszGNREbamZZPu?)q?!CY)jJz5dBLNV2}&$XlK*GsbVT+zi^ zJw{VbVr8Q^ttLpv$lXu@3*$SYZ0w;bHW|HnJM9mAa!Y@qakWV7Em%bCA@ur6$Hjz% z=&h!*2EVM#&gr1`nmV8}YT?JpN!L17?!ph24DE4>un=R&q@SOihnF&-Y`)pm-7%h> zJ$^DGoh*AUIZ}?}tVfupYeT!%QulgWn?I#ZJCtP+mS?LN74o{>j7}SnxVv$w|8vth zG(=3tl**X(0z~I{UjMC^gm9!DH?@l$4Ujd%J~Y)##ZY_|N1;bf8XC7QLIYRxxi%u~ z;*iDK({B$qE>R{crY;ONYAGsx>}P>hYpFUZ{|cohkM}R8*M3BR(Sntz4JBkt$NZ*)2V0j4Q6Lt{(i% z7r#?HynV~EW>OY9E$*%1f?J?t<1gWVx?#>H2y0+6^?N!;B3jOAKs`CLsJiJ;Yn|<{ z!PFA8i%lKBpJA9%)eBeH+Q44hW2pP&6e-~-EUso%y)vCB!on-!TUAv5$2D)Dv_crv z|E_KFo!Eeup$p&K=9Vt`2q=ZDXVK4GN0gnH?{Ry7x>K^2Y)Ns3NUWSI+5U3d$4n(K zwEiWo`Zl~wbm4h1%ICCt!NCbBi$Jrnx z$aT8C*!kGkOFPsn0zkr=tYbRxHVV{6Zr<@L3JGXMTotUk z$kEDbNsD}`-O=^bTQNT8var<8>wJG@ve=XL;6^aPW>cr>LKrm{gk?&rQN!jTMQCP5 zzDVa`ID&Zl;a~%Feu+P4X`$y!+o?kjTE9i-I~CM$d5)RHH^8=z*PcVJ$R? z<$dCp;HwI(|NSlD|EXd7|Hz3#Jy!L_UtCKKXreDr(|gG1d03ixSP5CUS)m^oT%25- zY@C8@T)bMGJVKlwgm}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" }} + +

      • + {{- 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/"