Repository: adityatelange/hugo-PaperMod Branch: master Commit: 10d3dcc0e05c Files: 118 Total size: 318.3 KB Directory structure: gitextract_zp21r57h/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yaml │ │ ├── config.yml │ │ └── enhancement.yaml │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ └── gh-pages.yml ├── LICENSE ├── README.md ├── assets/ │ ├── css/ │ │ ├── common/ │ │ │ ├── 404.css │ │ │ ├── archive.css │ │ │ ├── footer.css │ │ │ ├── header.css │ │ │ ├── main.css │ │ │ ├── post-entry.css │ │ │ ├── post-single.css │ │ │ ├── profile-mode.css │ │ │ ├── search.css │ │ │ └── terms.css │ │ ├── core/ │ │ │ ├── license.css │ │ │ ├── reset.css │ │ │ ├── theme-vars.css │ │ │ └── zmedia.css │ │ ├── extended/ │ │ │ └── blank.css │ │ └── includes/ │ │ ├── chroma-mod.css │ │ ├── chroma-styles.css │ │ └── scroll-bar.css │ └── js/ │ ├── fastsearch.js │ └── license.js ├── go.mod ├── i18n/ │ ├── ar.yaml │ ├── be.yaml │ ├── bg.yaml │ ├── bn.yaml │ ├── ca.yaml │ ├── ckb.yaml │ ├── cs.yaml │ ├── da.yaml │ ├── de.yaml │ ├── el.yaml │ ├── en.yaml │ ├── eo.yaml │ ├── es.yaml │ ├── fa.yaml │ ├── fi.yaml │ ├── fr.yaml │ ├── he.yaml │ ├── hi.yaml │ ├── hr.yaml │ ├── hu.yaml │ ├── id.yaml │ ├── it.yaml │ ├── ja.yaml │ ├── ko.yaml │ ├── ku.yaml │ ├── mn.yaml │ ├── ms.yaml │ ├── nl.yaml │ ├── no.yaml │ ├── oc.yaml │ ├── pa.yaml │ ├── pl.yaml │ ├── pnb.yaml │ ├── pt.yaml │ ├── ro.yaml │ ├── ru.yaml │ ├── sk.yaml │ ├── sv.yaml │ ├── sw.yaml │ ├── th.yaml │ ├── tr.yaml │ ├── uk.yaml │ ├── uz.yaml │ ├── vi.yaml │ ├── zh-tw.yaml │ └── zh.yaml ├── layouts/ │ ├── 404.html │ ├── _default/ │ │ ├── _markup/ │ │ │ └── render-image.html │ │ ├── archives.html │ │ ├── baseof.html │ │ ├── index.json │ │ ├── list.html │ │ ├── llms.txt │ │ ├── rss.xml │ │ ├── search.html │ │ ├── single.html │ │ └── terms.html │ ├── partials/ │ │ ├── anchored_headings.html │ │ ├── author.html │ │ ├── breadcrumbs.html │ │ ├── comments.html │ │ ├── cover.html │ │ ├── edit_post.html │ │ ├── extend_footer.html │ │ ├── extend_head.html │ │ ├── footer.html │ │ ├── head.html │ │ ├── header.html │ │ ├── home_info.html │ │ ├── index_profile.html │ │ ├── post_canonical.html │ │ ├── post_meta.html │ │ ├── post_nav_links.html │ │ ├── share_icons.html │ │ ├── social_icons.html │ │ ├── svg.html │ │ ├── templates/ │ │ │ ├── _funcs/ │ │ │ │ └── get-page-images.html │ │ │ ├── opengraph.html │ │ │ ├── schema_json.html │ │ │ └── twitter_cards.html │ │ ├── toc.html │ │ └── translation_list.html │ ├── robots.txt │ └── shortcodes/ │ ├── collapse.html │ ├── figure.html │ ├── inTextImg.html │ ├── ltr.html │ ├── rawhtml.html │ └── rtl.html └── theme.toml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/ISSUE_TEMPLATE/bug.yaml ================================================ name: Bug Report 🐞 description: Create a report to help us improve title: "[Bug]: " labels: ["bug", "triage"] body: - type: markdown attributes: value: | Thanks for taking the time to fill out this bug report :) - Kindly **DO NOT** ask for instructions. - Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any other relevant question. - You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users - Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation. - Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions. - Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created. - type: textarea id: what_happened attributes: label: What happened? description: Also tell us, what did you expect to happen? placeholder: A bug happened! Here are the screenshots.. Tell us what you see! validations: required: true - type: textarea id: steps_to_reproduce attributes: label: Steps to reproduce description: How to reproduce this issue. Here are the steps... placeholder: | 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error validations: required: true - type: dropdown id: hugo_version attributes: label: Hugo Version description: What version of Hugo are you running? options: - Hugo >= 0.146.0 (Recommended - Minimum version required for PaperMod) - Hugo < 0.146.0 (Incompatible - Not recommended to build PaperMod on lower versions) validations: required: true - type: input id: papermod_version attributes: label: PaperMod Version description: What version of PaperMod are you running? placeholder: | PaperMod v7.0 or Branch master or Commit-id: 3f50861a0ced88f9b614a43662edeb4c0bc45da8 validations: required: true - type: dropdown id: browser_type attributes: label: What kind of devices are you seeing the problem on? multiple: true options: - Mobile - Desktop validations: required: false - type: dropdown id: browsers attributes: label: What browsers are you seeing the problem on? multiple: true options: - Firefox - Chrome - Safari - Microsoft Edge validations: required: false - type: input id: browser_version attributes: label: Browser Version description: Please add browser version or enter user agent string (navigator.userAgent) placeholder: ex. Google Chrome 86.0 validations: required: false - type: textarea id: logs attributes: label: Relevant log output description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. render: shell validations: required: true - type: input id: repo_url attributes: label: Repository/Source Code link where this issue can be reproduced description: Please add url of the repository where this issue can be reproduced placeholder: https://github.com// validations: required: false - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme). options: - label: I agree to follow this project's Code of Conduct required: true validations: required: true ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ 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. ================================================ FILE: .github/ISSUE_TEMPLATE/enhancement.yaml ================================================ name: Enhancement 🚀 description: Propose a new feature or change for enhancing the experience. title: "[Enhancement]: " labels: ["enhancement", "triage"] body: - type: markdown attributes: value: | Thanks for taking the time to fill out this enhancement form :) - Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any other relevant question. - You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users - Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation. - Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions. - Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created. - type: textarea id: what_happened attributes: label: What you'd like to propose? description: placeholder: validations: required: true - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme). options: - label: I agree to follow this project's Code of Conduct required: true validations: required: true ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================ **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. ================================================ FILE: .github/workflows/gh-pages.yml ================================================ 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.146.0" # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true # Default to bash defaults: run: shell: bash jobs: # Build job build: permissions: contents: read runs-on: ubuntu-latest env: HUGO_VERSION: ${{ github.event.inputs.hugoVersion || '0.146.0' }} steps: - name: Install Hugo CLI run: | wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \ && sudo dpkg -i ${{ runner.temp }}/hugo.deb - name: Checkout uses: actions/checkout@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: permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2020 nanxiaobei and adityatelange Copyright (c) 2021-2026 adityatelange Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================

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.146.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.146.0) [![Discord](https://img.shields.io/discord/971046860317921340?label=Discord&logo=discord)](https://discord.gg/ahpmTvhVmp) [![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) ================================================ FILE: assets/css/common/404.css ================================================ .not-found { position: absolute; left: 0; right: 0; display: flex; align-items: center; justify-content: center; height: 80%; font-size: 160px; font-weight: 700; } ================================================ FILE: assets/css/common/archive.css ================================================ .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; } ================================================ FILE: assets/css/common/footer.css ================================================ .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; } ================================================ FILE: assets/css/common/header.css ================================================ .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; } [data-theme="dark"] #moon { display: none; } [data-theme="light"] #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; } ================================================ FILE: assets/css/common/main.css ================================================ .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; } ================================================ FILE: assets/css/common/post-entry.css ================================================ .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); width: 100%; height: auto; } .entry-cover a { box-shadow: 0 1px 0 var(--primary); } ================================================ FILE: assets/css/common/post-single.css ================================================ .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; } .breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; } .i18n_list { display: inline-flex; } .post-meta .i18n_list li { list-style: none; margin: auto 3px; } .breadcrumbs a { font-size: 16px; } .post-content { color: var(--content); margin: 30px 0; } .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, .post-meta .i18n_list li 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-bottom: var(--content-gap); border: 1px solid var(--border); background: var(--code-bg); border-radius: var(--radius); padding: 0.4em; } [data-theme="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; padding: 0 10px; opacity: 0.9; } .toc li ul { margin-inline-start: var(--gap); } .toc summary:focus { outline: 0; } .post-footer { margin-top: var(--content-gap); } .post-footer>* { margin-bottom: 10px; } .post-tags { display: flex; flex-wrap: wrap; gap: 10px; } .post-tags li { display: inline-block; } .post-tags a, .share-buttons, .paginav { border-radius: var(--radius); background: var(--code-bg); border: 1px solid var(--border); } .post-tags a { display: block; padding: 0 14px; color: var(--secondary); font-size: 14px; line-height: 34px; background: var(--code-bg); } .post-tags a:hover, .paginav a:hover { background: var(--border); } .share-buttons { padding: 10px; display: flex; justify-content: center; overflow-x: auto; gap: 10px; } .share-buttons li, .share-buttons a { display: inline-flex; } .share-buttons a:not(:last-of-type) { margin-inline-end: 12px; } 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; } ================================================ FILE: assets/css/common/profile-mode.css ================================================ .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); } ================================================ FILE: assets/css/common/search.css ================================================ #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); } ================================================ FILE: assets/css/common/terms.css ================================================ .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); } ================================================ FILE: assets/css/core/license.css ================================================ /* PaperMod v8+ License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE Copyright (c) 2020 nanxiaobei and adityatelange Copyright (c) 2021-2026 adityatelange */ ================================================ FILE: assets/css/core/reset.css ================================================ *, ::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%; } ================================================ FILE: assets/css/core/theme-vars.css ================================================ :root { --gap: 24px; --content-gap: 20px; --nav-width: 1024px; --main-width: 720px; --header-height: 60px; --footer-height: 60px; --radius: 8px; --theme: rgb(255, 255, 255); --entry: rgb(255, 255, 255); --primary: rgb(30, 30, 30); --secondary: rgb(108, 108, 108); --tertiary: rgb(214, 214, 214); --content: rgb(31, 31, 31); --code-block-bg: rgb(28, 29, 33); --code-bg: rgb(245, 245, 245); --border: rgb(238, 238, 238); color-scheme: light; } :root[data-theme="dark"] { --theme: rgb(29, 30, 32); --entry: rgb(46, 46, 51); --primary: rgb(218, 218, 219); --secondary: rgb(155, 156, 157); --tertiary: rgb(65, 66, 68); --content: rgb(196, 196, 197); --code-block-bg: rgb(46, 46, 51); --code-bg: rgb(55, 56, 62); --border: rgb(51, 51, 51); color-scheme: dark; } .list { background: var(--code-bg); } [data-theme="dark"] .list { background: var(--theme); } ================================================ FILE: assets/css/core/zmedia.css ================================================ @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; } } ================================================ FILE: assets/css/extended/blank.css ================================================ /* 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 */ ================================================ FILE: assets/css/includes/chroma-mod.css ================================================ .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%; } ================================================ FILE: assets/css/includes/chroma-styles.css ================================================ /* 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 { } ================================================ FILE: assets/css/includes/scroll-bar.css ================================================ /* from reset */ ::-webkit-scrollbar-track { background: 0 0; } ::-webkit-scrollbar-thumb { background: var(--tertiary); border: 5px solid var(--theme); border-radius: var(--radius); } [data-theme="light"] .list::-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; } } ================================================ FILE: assets/js/fastsearch.js ================================================ 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 } } ================================================ FILE: assets/js/license.js ================================================ /* PaperMod v8+ License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE Copyright (c) 2020 nanxiaobei and adityatelange Copyright (c) 2021-2026 adityatelange */ ================================================ FILE: go.mod ================================================ module github.com/adityatelange/hugo-PaperMod go 1.12 ================================================ FILE: i18n/ar.yaml ================================================ - 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: "نسخ الكود" ================================================ FILE: i18n/be.yaml ================================================ - 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: "скапіявана!" ================================================ FILE: i18n/bg.yaml ================================================ - id: prev_page translation: "Предишна страница" - id: next_page translation: "Следваща страница" - id: read_time translation: one : "1 мин" other: "{{ .Count }} мин" - id: toc translation: "Съдържание" - id: translations translation: "Преводи" ================================================ FILE: i18n/bn.yaml ================================================ - 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: "কপি হয়েছে!" ================================================ FILE: i18n/ca.yaml ================================================ - id: prev_page translation: "Pàgina anterior" - id: next_page translation: "Pàgina següent" - id: read_time translation: one : "1 minut" other: "{{ .Count }} minuts" - id: words translation: one : "paraula" other: "{{ .Count }} paraules" - id: toc translation: "Taula de Continguts" - id: translations translation: "Traduccions" - id: home translation: "Inici" - id: edit_post translation: "Editar" - id: code_copy translation: "copiar" - id: code_copied translation: "copiat!" ================================================ FILE: i18n/ckb.yaml ================================================ - 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: "لەبەر گیرایەوە!" ================================================ FILE: i18n/cs.yaml ================================================ - 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!" ================================================ FILE: i18n/da.yaml ================================================ - 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!" ================================================ FILE: i18n/de.yaml ================================================ - 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!" ================================================ FILE: i18n/el.yaml ================================================ - 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: "αντιγράφηκε!" ================================================ FILE: i18n/en.yaml ================================================ - 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!" ================================================ FILE: i18n/eo.yaml ================================================ - 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!" ================================================ FILE: i18n/es.yaml ================================================ - 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!" ================================================ FILE: i18n/fa.yaml ================================================ - 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: "کپی شد!" ================================================ FILE: i18n/fi.yaml ================================================ - id: prev_page translation: "Edellinen" - id: next_page translation: "Seuraava" - id: read_time translation: one : "1 min" other: "{{ .Count }} minuuttia" - id: words translation: one : "sana" other: "{{ .Count }} sanaa" - id: toc translation: "Sisällysluettelo" - id: translations translation: "Käännökset" - id: home translation: "Etusivu" - id: edit_post translation: "Muokkaa" - id: code_copy translation: "Kopioi" - id: code_copied translation: "Kopioitu!" ================================================ FILE: i18n/fr.yaml ================================================ - 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é !" ================================================ FILE: i18n/he.yaml ================================================ - 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: "הועתק!" ================================================ FILE: i18n/hi.yaml ================================================ - 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: "अनुवाद" ================================================ FILE: i18n/hr.yaml ================================================ - 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!" ================================================ FILE: i18n/hu.yaml ================================================ - 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" ================================================ FILE: i18n/id.yaml ================================================ - 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!" ================================================ FILE: i18n/it.yaml ================================================ - 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!" ================================================ FILE: i18n/ja.yaml ================================================ - 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: "コピーされました!" ================================================ FILE: i18n/ko.yaml ================================================ - 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: "복사 완료!" ================================================ FILE: i18n/ku.yaml ================================================ - 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!" ================================================ FILE: i18n/mn.yaml ================================================ - 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: "хуулсан!" ================================================ FILE: i18n/ms.yaml ================================================ - 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!" ================================================ FILE: i18n/nl.yaml ================================================ - 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!" ================================================ FILE: i18n/no.yaml ================================================ - 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!" ================================================ FILE: i18n/oc.yaml ================================================ - 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 !" ================================================ FILE: i18n/pa.yaml ================================================ - 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: "ਕਾਪੀ ਕੀਤੀ ਗਈ!!" ================================================ FILE: i18n/pl.yaml ================================================ - 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!" ================================================ FILE: i18n/pnb.yaml ================================================ - 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: "کاپی کیتی گئی!" ================================================ FILE: i18n/pt.yaml ================================================ - 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!" ================================================ FILE: i18n/ro.yaml ================================================ - 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!" ================================================ FILE: i18n/ru.yaml ================================================ - 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: "скопировано!" ================================================ FILE: i18n/sk.yaml ================================================ - 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é!" ================================================ FILE: i18n/sv.yaml ================================================ - 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!" ================================================ FILE: i18n/sw.yaml ================================================ - 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!" ================================================ FILE: i18n/th.yaml ================================================ - 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: "คัดลอกแล้ว!" ================================================ FILE: i18n/tr.yaml ================================================ - 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ı!" ================================================ FILE: i18n/uk.yaml ================================================ - 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: "скопійовано!" ================================================ FILE: i18n/uz.yaml ================================================ - 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" ================================================ FILE: i18n/vi.yaml ================================================ - 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!" ================================================ FILE: i18n/zh-tw.yaml ================================================ - 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: "已複製!" ================================================ FILE: i18n/zh.yaml ================================================ - 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: "已复制!" ================================================ FILE: layouts/404.html ================================================ {{- define "main" }}
    404
    {{- end }}{{/* end main */ -}} ================================================ FILE: layouts/_default/_markup/render-image.html ================================================ {{- $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") -}} {{- /**/ -}} ================================================ FILE: layouts/_default/archives.html ================================================ {{- define "main" }}
    {{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }} {{- if site.Params.ShowAllPagesInArchive }} {{- $pages = site.RegularPages }} {{- end }} {{- range $pages.GroupByPublishDate "2006" }} {{- if ne .Key "0001" }}
    {{- $year := replace .Key "0001" "" }}

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

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

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

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

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

    {{- partial "post_meta.html" . -}}
    {{- end }} {{- end }}
    {{- end }}
    {{- end }} {{- end }} {{- end }}{{/* end main */}} ================================================ FILE: layouts/_default/baseof.html ================================================ {{- if lt hugo.Version "0.146.0" }} {{- errorf "=> hugo v0.146.0 or greater is required for hugo-PaperMod to build " }} {{- end -}} {{- $theme := site.Params.defaultTheme | default "auto" }} {{- if eq $theme "dark" }} {{- else if eq $theme "light" }} {{- else }} {{- end }} {{- partial "head.html" . }} {{- if (or (ne .Kind `page` ) (eq .Layout `archives`) (eq .Layout `search`)) }} {{- else }} {{- end }} {{ partialCached "header.html" . .Page -}}
    {{- block "main" . }}{{ end }}
    {{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}} ================================================ FILE: layouts/_default/index.json ================================================ {{- $.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 -}} ================================================ FILE: layouts/_default/list.html ================================================ {{- 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 */ -}} ================================================ FILE: layouts/_default/llms.txt ================================================ {{- /* Recursive printer for sections */ -}} {{- define "llms_print_section" -}} {{- $section := .section -}} {{- $depth := .depth -}} {{- if or (gt (len $section.RegularPages) 0) (gt (len $section.Sections) 0) -}} {{- $hashes := strings.Repeat (add $depth 1) "#" }} {{ printf "%s %s" $hashes $section.Title }} {{- /* Pages in this section */ -}} {{- range $p := $section.RegularPages }} {{- if and (not $p.Params.searchHidden) (ne $p.Layout `archives`) (ne $p.Layout `search`) }} - [{{ $p.Title }}]({{ $p.Permalink }}) {{- end -}} {{- end -}} {{- /* Recurse into subsections */ -}} {{- range $s := $section.Sections -}} {{- template "llms_print_section" (dict "section" $s "depth" (add $depth 1)) -}} {{- end -}} {{- end -}} {{- end -}} {{- /* Main template starts here */ -}} # {{ site.Title }} {{- /* Pages not in any section */ -}} {{- $orphans := where site.RegularPages "Section" "" -}} {{ if gt (len $orphans) 0 }} {{- range $p := $orphans -}} {{ if and (not $p.Params.searchHidden) (ne $p.Layout `archives`) (ne $p.Layout `search`) (not $p.IsHome) }} - [{{ $p.Title }}]({{ $p.Permalink }}) {{- end -}} {{- end -}} {{- end -}} {{- range site.Sections -}} {{- template "llms_print_section" (dict "section" . "depth" 1) -}} {{- end }} ================================================ FILE: layouts/_default/rss.xml ================================================ {{- $authorEmail := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} {{- with .email }} {{- $authorEmail = . }} {{- end }} {{- end }} {{- end }} {{- $authorName := "" }} {{- with site.Params.author }} {{- if reflect.IsMap . }} {{- with .name }} {{- $authorName = . }} {{- end }} {{- else }} {{- $authorName = . }} {{- end }} {{- end }} {{- $pctx := . }} {{- if .IsHome }}{{ $pctx = site }}{{ end }} {{- $pages := slice }} {{- if or $.IsHome $.IsSection }} {{- $pages = $pctx.RegularPages }} {{- else }} {{- $pages = $pctx.Pages }} {{- end }} {{- $limit := site.Config.Services.RSS.Limit }} {{- if ge $limit 1 }} {{- $pages = $pages | first $limit }} {{- end }} {{- printf "" | safeHTML }} {{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ site.Title }}{{ end }} {{ .Permalink }} Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ site.Title }} {{- with site.Params.images }} {{ site.Title }} {{ index . 0 | absURL }} {{ index . 0 | absURL }} {{- end }} Hugo {{ site.Language.LanguageCode }}{{ with $authorEmail }} {{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }} {{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with site.Copyright }} {{ . | markdownify | plainify | strings.TrimPrefix "© " }}{{ end }}{{ if not .Date.IsZero }} {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} {{- with .OutputFormats.Get "RSS" }} {{ printf "" .Permalink .MediaType | safeHTML }} {{- end }} {{- range $pages }} {{- if and (ne .Layout `search`) (ne .Layout `archives`) }} {{ .Title }} {{ .Permalink }} {{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} {{- with $authorEmail }}{{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }} {{ .Permalink }} {{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}} {{- if and site.Params.ShowFullTextinRSS .Content }} {{ (printf "" .Content) | safeHTML }} {{- end }} {{- end }} {{- end }} ================================================ FILE: layouts/_default/search.html ================================================ {{- define "main" }} {{- end }}{{/* end main */}} ================================================ FILE: layouts/_default/single.html ================================================ {{- 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 */}} ================================================ FILE: layouts/_default/terms.html ================================================ {{- 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 */ -}} ================================================ FILE: layouts/partials/anchored_headings.html ================================================ {{- /* formats .Content headings by adding an anchor */ -}} {{ . | replaceRE "()" "${1}${3}" | safeHTML }} ================================================ FILE: layouts/partials/author.html ================================================ {{- 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 -}} ================================================ FILE: layouts/partials/breadcrumbs.html ================================================ {{- if (.Param "ShowBreadCrumbs") -}} {{- end -}} ================================================ FILE: layouts/partials/comments.html ================================================ {{- /* Comments area start */ -}} {{- /* to add comments read => https://gohugo.io/content-management/comments/ */ -}} {{- /* Comments area end */ -}} ================================================ FILE: layouts/partials/cover.html ================================================ {{- with .cxt}} {{/* Apply proper context from dict */}} {{- if (and .Params.cover.image (not $.isHidden)) }}
    {{- $loading := cond $.IsSingle "eager" "lazy" }} {{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }} {{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }} {{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }} {{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }} {{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }} {{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }} {{- $cover := (or $pageBundleCover $globalResourcesCover)}} {{- /* We are not using the .Param.cover.relative to decide the location of image */}} {{- /* If we have the image in pageBundle or globalResources we can process the image */}} {{- $sizes := (slice "360" "480" "720" "1080" "1500") }} {{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}} {{- if hugo.IsExtended -}} {{- $processableFormats = $processableFormats | append "webp" -}} {{- end -}} {{- $imgdl := (.Params.cover.image) | absURL }} {{- if $cover -}} {{- $imgdl = $cover.Permalink }} {{- end -}} {{- if $addLink }} {{- end }} {{- if $cover -}} {{/* i.e it is present in page bundle */}} {{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }} {{ $alt }} {{- else }}{{/* Unprocessable image or responsive images disabled */}} {{ $alt }} {{- end }} {{- else }} {{- /* For absolute urls and external links, no img processing here */}} {{ $alt }} {{- end }} {{- if $addLink }} {{- end -}} {{- /* Display Caption */}} {{- if $.IsSingle }} {{ with .Params.cover.caption -}}
    {{ . | markdownify }}
    {{- end }} {{- end }}
    {{- end }}{{/* End image */}} {{- end -}}{{/* End context */ -}} ================================================ FILE: layouts/partials/edit_post.html ================================================ {{- 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 }} ================================================ FILE: layouts/partials/extend_footer.html ================================================ {{- /* Footer custom content area start */ -}} {{- /* Insert any custom code web-analytics, resources, etc. here */ -}} {{- /* Footer custom content area end */ -}} ================================================ FILE: layouts/partials/extend_head.html ================================================ {{- /* 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 */ -}} ================================================ FILE: layouts/partials/footer.html ================================================ {{- 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 }} ================================================ FILE: layouts/partials/head.html ================================================ {{- 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 -}} {{- /* theme-toggle is enabled */}} {{- if (not site.Params.disableThemeToggle) }} {{- /* theme is light */}} {{- if (eq site.Params.defaultTheme "light") }} {{- /* theme is dark */}} {{- else if (eq site.Params.defaultTheme "dark") }} {{- else }} {{- /* theme is auto */}} {{- end }} {{- /* theme-toggle is disabled and theme is auto */}} {{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}} {{- end }} {{- partial "extend_head.html" . -}} {{- /* Misc */}} {{- if hugo.IsProduction | or (eq site.Params.env "production") }} {{- partial "google_analytics.html" . }} {{- partial "templates/opengraph.html" . }} {{- partial "templates/twitter_cards.html" . }} {{- partial "templates/schema_json.html" . }} {{- end -}} ================================================ FILE: layouts/partials/header.html ================================================
    ================================================ FILE: layouts/partials/home_info.html ================================================ {{- with site.Params.homeInfoParams }}

    {{ .Title | markdownify }}

    {{ .Content | markdownify }}
    {{ partial "social_icons.html" (dict "align" site.Params.homeInfoParams.AlignSocialIconsTo) }}
    {{- end -}} ================================================ FILE: layouts/partials/index_profile.html ================================================
    {{- 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}}
    ================================================ FILE: layouts/partials/post_canonical.html ================================================ {{ 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 }} ================================================ FILE: layouts/partials/post_meta.html ================================================ {{- $scratch := newScratch }} {{- if not .Date.IsZero -}} {{- $scratch.Add "meta" (slice (printf "%s" (.Date) (.Date | time.Format (default ":date_long" site.Params.DateFormat)))) }} {{- end }} {{- if (.Param "ShowReadingTime") -}} {{- $scratch.Add "meta" (slice (printf "%s" (i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime)))) }} {{- end }} {{- if (.Param "ShowWordCount") -}} {{- $scratch.Add "meta" (slice (printf "%s" (i18n "words" .WordCount | default (printf "%d words" .WordCount)))) }} {{- end }} {{- if not (.Param "hideAuthor") -}} {{- with (partial "author.html" .) }} {{- $scratch.Add "meta" (slice (printf "%s" .)) }} {{- end }} {{- end }} {{- with ($scratch.Get "meta") }} {{- delimit . " · " | safeHTML -}} {{- end -}} ================================================ FILE: layouts/partials/post_nav_links.html ================================================ {{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }} {{- if and (gt (len $pages) 1) (in $pages . ) }} {{- end }} ================================================ FILE: layouts/partials/share_icons.html ================================================ {{- $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 }} ================================================ FILE: layouts/partials/social_icons.html ================================================ ================================================ FILE: layouts/partials/svg.html ================================================ {{- $icon_name := ( trim .name " " | lower )}} {{- if (eq $icon_name "123rf") -}} {{- else if (eq $icon_name "500px") -}} {{- else if (eq $icon_name "adobestock") -}} {{- else if (eq $icon_name "anilist") -}} {{- else if or (eq $icon_name "ao3") (eq $icon_name "archiveofourown") -}} {{- else if (eq $icon_name "applemusic") -}} {{- else if (eq $icon_name "applepodcasts") -}} {{- else if (eq $icon_name "bandcamp") -}} {{- else if (eq $icon_name "behance") -}} {{- else if (eq $icon_name "bilibili") -}} {{- else if (eq $icon_name "bitcoin") -}} {{- else if (eq $icon_name "bluesky") -}} {{- else if (eq $icon_name "bookwyrm") -}} {{- else if (eq $icon_name "bugcrowd") -}} {{- else if (eq $icon_name "buttondown") -}} {{- else if (eq $icon_name "buymeacoffee") -}} {{- else if (eq $icon_name "codeberg") -}} {{- else if (eq $icon_name "codeforces") -}} {{- else if (eq $icon_name "codepen") -}} {{- else if (eq $icon_name "credly") -}} {{- else if (eq $icon_name "cryptohack") -}} {{- else if (eq $icon_name "ctftime") -}} {{- else if (eq $icon_name "cv") -}} {{- else if (eq $icon_name "deezer") -}} {{- else if (eq $icon_name "dev") -}} {{- else if (eq $icon_name "deviantart") -}} {{- else if (eq $icon_name "discogs") -}} {{- else if (eq $icon_name "discord") -}} {{- else if (eq $icon_name "douban") -}} {{- else if (eq $icon_name "dreamstime") -}} {{- else if (eq $icon_name "dribbble") -}} {{- else if (eq $icon_name "dzen") -}} {{- else if (eq $icon_name "email") -}} {{- else if (eq $icon_name "ethereum") -}} {{- else if (eq $icon_name "exercism") -}} {{- else if (eq $icon_name "facebook") -}} {{- else if (eq $icon_name "farcaster") -}} {{- else if (eq $icon_name "fediverse") -}} {{- else if (eq $icon_name "firefish") -}} {{- else if (eq $icon_name "flickr") -}} {{- else if (eq $icon_name "forgejo") -}} {{- else if (eq $icon_name "freepik") -}} {{- else if (eq $icon_name "git") -}} {{- else if (eq $icon_name "gitea") -}} {{- else if (eq $icon_name "github") -}} {{- else if (eq $icon_name "gitlab") -}} {{- else if (eq $icon_name "goodreads") -}} {{- else if (eq $icon_name "googleplaystore") -}} {{- else if (eq $icon_name "googlepodcasts") -}} {{- else if (eq $icon_name "googlescholar") -}} {{- else if (eq $icon_name "gurushots") -}} {{- else if (eq $icon_name "hackerone") -}} {{- else if (eq $icon_name "hackerrank") -}} {{- else if (eq $icon_name "hackthebox") -}} {{- else if (eq $icon_name "imdb") -}} {{- else if (eq $icon_name "instagram") -}} {{- else if (eq $icon_name "intigriti") -}} {{- else if (eq $icon_name "itchio") -}} {{- else if (eq $icon_name "juejin") -}} {{- else if (eq $icon_name "kaggle") -}} {{- else if (eq $icon_name "kakaotalk") -}} {{- else if (eq $icon_name "keybase") -}} {{- else if (eq $icon_name "keyoxide") -}} {{- else if (eq $icon_name "kofi") -}} {{- else if (eq $icon_name "komoot") -}} {{- else if (eq $icon_name "lastfm") -}} {{- else if (eq $icon_name "leetcode") -}} {{- else if (eq $icon_name "letterboxd") -}} {{- else if (eq $icon_name "liberapay") -}} {{- else if (eq $icon_name "lichess" ) -}} {{- else if (eq $icon_name "linkedin") -}} {{- else if (eq $icon_name "linktree") -}} {{- else if (eq $icon_name "mastodon") -}} {{- else if (eq $icon_name "matrix") -}} {{- else if (eq $icon_name "medium") -}} {{- else if (eq $icon_name "microblog") -}} {{- else if (eq $icon_name "mixcloud") -}} {{- else if (eq $icon_name "monero") -}} {{- else if (eq $icon_name "neteasecloudmusic") -}} {{- else if (eq $icon_name "nextcloud") -}} {{- else if (eq $icon_name "nostr") -}} {{- else if (eq $icon_name "nuget") -}} {{- else if (eq $icon_name "orcid") -}} {{- else if (eq $icon_name "osu!") -}} {{- else if (eq $icon_name "overcast") -}} {{- else if (eq $icon_name "patreon") -}} {{- else if (eq $icon_name "paypal") -}} {{- else if (eq $icon_name "peertube") -}} {{- else if or (eq $icon_name "pgpkey") (eq $icon_name "key") -}} {{- else if (eq $icon_name "phone") -}} {{- else if (eq $icon_name "pinterest") -}} {{- else if (eq $icon_name "pixelfed") -}} {{- else if (eq $icon_name "pleroma") -}} {{- else if (eq $icon_name "pocketcasts") -}} {{- else if (eq $icon_name "printables") -}} {{- else if (eq $icon_name "qq") -}} {{- else if (eq $icon_name "reddit") -}} {{- else if (eq $icon_name "raycast") -}} {{- else if (eq $icon_name "researchgate") -}} {{- else if (eq $icon_name "rootme") -}} {{- else if (eq $icon_name "rss") -}} {{- else if (eq $icon_name "serverfault") -}} {{- else if (eq $icon_name "sessionmessenger") -}} {{- else if (eq $icon_name "shutterstock") -}} {{- else if (eq $icon_name "signal") -}} {{- else if (eq $icon_name "sketchfab") -}} {{- else if (eq $icon_name "slack") -}} {{- else if (eq $icon_name "snapchat") -}} {{- else if (eq $icon_name "soundcloud") -}} {{- else if (eq $icon_name "sourcehut") -}} {{- else if (eq $icon_name "spacehey") -}} {{- else if (eq $icon_name "spotify") -}} {{- else if (eq $icon_name "stackoverflow") -}} {{- else if (eq $icon_name "steam") -}} {{- else if (eq $icon_name "strava") -}} {{- else if (eq $icon_name "substack") -}} {{- else if (eq $icon_name "tableau") -}} {{- else if (eq $icon_name "telegram") -}} {{- else if (eq $icon_name "thingiverse") -}} {{- else if (eq $icon_name "threads") -}} {{- else if (eq $icon_name "threema") -}} {{- else if (eq $icon_name "tidal") -}} {{- else if (eq $icon_name "tiktok") -}} {{- else if (eq $icon_name "tryhackme") -}} {{- else if (eq $icon_name "tumblr") -}} {{- else if (eq $icon_name "twitch") -}} {{- else if (eq $icon_name "twitter") -}} {{- else if (eq $icon_name "unity") -}} {{- else if (eq $icon_name "unsplash") -}} {{- else if (eq $icon_name "vimeo") -}} {{- else if or (eq $icon_name "vk") (eq $icon_name "vkontakte") -}} {{- else if (eq $icon_name "wantedly") -}} {{- else if (eq $icon_name "wechat") -}} {{- else if (eq $icon_name "whatsapp") -}} {{- else if or (eq $icon_name "wikipedia") (eq $icon_name "wiki") -}} {{- else if (eq $icon_name "wordpress") -}} {{- else if (eq $icon_name "x") -}} {{- else if (eq $icon_name "xda") -}} {{- else if (eq $icon_name "xing") -}} {{- else if (eq $icon_name "xmpp") -}} {{- else if (eq $icon_name "ycombinator") -}} {{- else if (eq $icon_name "yeswehack") -}} {{- else if (eq $icon_name "youtube") -}} {{- else if (eq $icon_name "zcal") -}} {{- else if (eq $icon_name "zhihu") -}} {{- else if (eq $icon_name "jamendo") -}} {{- else if $icon_name -}} {{- end -}} ================================================ FILE: layouts/partials/templates/_funcs/get-page-images.html ================================================ {{- $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 }} ================================================ FILE: layouts/partials/templates/opengraph.html ================================================ {{- with or site.Title site.Params.title | plainify }} {{- end }} {{- with or .Title site.Title site.Params.title | plainify }} {{- end }} {{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }} {{- end }} {{- with or .Params.locale site.Language.LanguageCode }} {{- end }} {{- if .IsPage }} {{- with .Section }} {{- end }} {{- $ISO8601 := "2006-01-02T15:04:05-07:00" }} {{- with .PublishDate }} {{- end }} {{- with .Lastmod }} {{- end }} {{- range .GetTerms "tags" | first 6 }} {{- end }} {{- else }} {{- end }} {{- if .Params.cover.image -}} {{- if (ne .Params.cover.relative true) }} {{- else}} {{- end}} {{- else }} {{- with partial "_funcs/get-page-images" . }} {{- range . | first 6 }} {{- end }} {{- end }} {{- end }} {{- with .Params.audio }} {{- range . | first 6 }} {{- end }} {{- end }} {{- with .Params.videos }} {{- range . | first 6 }} {{- end }} {{- end }} {{- range .GetTerms "series" }} {{- range .Pages | first 7 }} {{- if ne $ . }} {{- end }} {{- end }} {{- end }} {{- with site.Params.social }} {{- if reflect.IsMap . }} {{- with .facebook_app_id }} {{- else }} {{- with .facebook_admin }} {{- end }} {{- end }} {{- end }} {{- end }} {{- with (.Param "social.fediverse_creator") }} {{- end }} ================================================ FILE: layouts/partials/templates/schema_json.html ================================================ {{ 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 -}} ================================================ FILE: layouts/partials/templates/twitter_cards.html ================================================ {{- if .Params.cover.image -}} {{- if (ne $.Params.cover.relative true) }} {{- else }} {{- end}} {{- else }} {{- $images := partial "templates/_funcs/get-page-images" . }} {{- with index $images 0 }} {{- else }} {{- end }} {{- end }} {{- with or .Title site.Title site.Params.title | plainify }} {{- end }} {{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }} {{- end }} {{- $twitterSite := "" }} {{- with site.Params.social }} {{- if reflect.IsMap . }} {{- with .twitter }} {{- $content := . }} {{- if not (strings.HasPrefix . "@") }} {{- $content = printf "@%v" . }} {{- end }} {{- end }} {{- end }} {{- end }} ================================================ FILE: layouts/partials/toc.html ================================================ {{- $headers := findRE "(.|\n])+?
    " .Content -}} {{- $has_headers := ge (len $headers) 1 -}} {{- if $has_headers -}}
    {{- i18n "toc" | default "Table of Contents" }}
    {{- if (.Param "UseHugoToc") }} {{- .TableOfContents -}} {{- else }} {{- $largest := 6 -}} {{- range $headers -}} {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}} {{- $headerLevel := len (seq $headerLevel) -}} {{- if lt $headerLevel $largest -}} {{- $largest = $headerLevel -}} {{- end -}} {{- end -}} {{- $firstHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers 0) 1) 0)) -}} {{- $.Scratch.Set "bareul" slice -}}
      {{- range seq (sub $firstHeaderLevel $largest) -}}
        {{- $.Scratch.Add "bareul" (sub (add $largest .) 1) -}} {{- end -}} {{- range $i, $header := $headers -}} {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}} {{- $headerLevel := len (seq $headerLevel) -}} {{/* get id="xyz" */}} {{- $id := index (findRE "(id=\"(.*?)\")" $header 9) 0 }} {{- /* strip id="" to leave xyz, no way to get regex capturing groups in hugo */ -}} {{- $cleanedID := replace (replace $id "id=\"" "") "\"" "" }} {{- $header := replaceRE "((.|\n])+?)" "$1" $header -}} {{- if ne $i 0 -}} {{- $prevHeaderLevel := index (findRE "[1-6]" (index $headers (sub $i 1)) 1) 0 -}} {{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}} {{- if gt $headerLevel $prevHeaderLevel -}} {{- range seq $prevHeaderLevel (sub $headerLevel 1) -}}
          {{/* the first should not be recorded */}} {{- if ne $prevHeaderLevel . -}} {{- $.Scratch.Add "bareul" . -}} {{- end -}} {{- end -}} {{- else -}} {{- if lt $headerLevel $prevHeaderLevel -}} {{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}} {{- if in ($.Scratch.Get "bareul") . -}}
        {{/* manually do pop item */}} {{- $tmp := $.Scratch.Get "bareul" -}} {{- $.Scratch.Delete "bareul" -}} {{- $.Scratch.Set "bareul" slice}} {{- range seq (sub (len $tmp) 1) -}} {{- $.Scratch.Add "bareul" (index $tmp (sub . 1)) -}} {{- end -}} {{- else -}}
      {{- end -}} {{- end -}} {{- end -}} {{- end }}
    • {{- $header | plainify | safeHTML -}} {{- else }}
    • {{- $header | plainify | safeHTML -}} {{- end -}} {{- end -}} {{- $firstHeaderLevel := $largest }} {{- $lastHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers (sub (len $headers) 1)) 1) 0)) }}
    • {{- range seq (sub $lastHeaderLevel $firstHeaderLevel) -}} {{- if in ($.Scratch.Get "bareul") (add . $firstHeaderLevel) }}
    {{- else }}
  • {{- end -}} {{- end }} {{- end }} {{- end }} ================================================ FILE: layouts/partials/translation_list.html ================================================ {{- 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 -}} ================================================ FILE: layouts/robots.txt ================================================ User-agent: * {{- if hugo.IsProduction | or (eq site.Params.env "production") }} Disallow: {{- else }} Disallow: / {{- end }} Sitemap: {{ "sitemap.xml" | absURL }} ================================================ FILE: layouts/shortcodes/collapse.html ================================================ {{ if .Get "summary" }} {{ else }} {{ warnf "missing value for param 'summary': %s" .Position }} {{ end }}

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

    ================================================ FILE: layouts/shortcodes/figure.html ================================================ {{- 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 }} ================================================ FILE: layouts/shortcodes/inTextImg.html ================================================ {{- $Img := (.Get "url") }} {{- $height := (.Get "height") }} {{- $alt := (.Get "alt") }} {{$alt}} ================================================ FILE: layouts/shortcodes/ltr.html ================================================ {{ $.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 }}
    ================================================ FILE: layouts/shortcodes/rawhtml.html ================================================ {{- .Inner -}} ================================================ FILE: layouts/shortcodes/rtl.html ================================================ {{ $.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 }}
    ================================================ FILE: theme.toml ================================================ # 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/" demosite = "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.146.0" [author] name = "Aditya Telange" homepage = "https://github.com/adityatelange/" # If porting an existing theme [original] name = "Paper" author = "nanxiaobei" homepage = "https://github.com/nanxiaobei" repo = "https://github.com/nanxiaobei/hugo-paper/"