From 7905cc718ac72518c3b1788e1f53d68295a3461e Mon Sep 17 00:00:00 2001 From: JustinVollmer Date: Thu, 27 Feb 2025 23:19:43 +0100 Subject: [PATCH] cleanup --- .editorconfig | 19 - .gitattributes | 16 - .gitea/workflows/pages-deploy.yaml | 79 - .gitignore | 27 - .gitmodules | 3 - .husky/.gitkeep | 0 .markdownlint.json | 8 - .nojekyll | 0 .prettierignore | 2 - .vscode/extensions.json | 3 - .vscode/settings.json | 30 - .vscode/tasks.json | 64 - Gemfile | 14 - LICENSE | 21 - README.md | 84 - _config.yml | 221 --- _data/authors.yml | 11 - _data/contact.yml | 41 - _data/locales/ar.yml | 91 - _data/locales/bg-BG.yml | 81 - _data/locales/cs-CZ.yml | 89 - _data/locales/de-DE.yml | 87 - _data/locales/el-GR.yml | 91 - _data/locales/en.yml | 91 - _data/locales/es-ES.yml | 77 - _data/locales/fi-FI.yml | 90 - _data/locales/fr-FR.yml | 77 - _data/locales/hu-HU.yml | 92 - _data/locales/id-ID.yml | 77 - _data/locales/it-IT.yml | 90 - _data/locales/ko-KR.yml | 84 - _data/locales/my-MM.yml | 77 - _data/locales/pt-BR.yml | 77 - _data/locales/ru-RU.yml | 87 - _data/locales/sl-SI.yml | 91 - _data/locales/sv-SE.yml | 91 - _data/locales/th.yml | 91 - _data/locales/tr-TR.yml | 77 - _data/locales/uk-UA.yml | 77 - _data/locales/vi-VN.yml | 76 - _data/locales/zh-CN.yml | 83 - _data/locales/zh-TW.yml | 83 - _data/media.yml | 18 - _data/origin/basic.yml | 39 - _data/origin/cors.yml | 54 - _data/share.yml | 50 - _includes/analytics/cloudflare.html | 7 - _includes/analytics/fathom.html | 7 - _includes/analytics/goatcounter.html | 6 - _includes/analytics/google.html | 13 - _includes/analytics/matomo.html | 14 - _includes/analytics/umami.html | 6 - _includes/comments.html | 5 - _includes/comments/disqus.html | 50 - _includes/comments/giscus.html | 71 - _includes/comments/utterances.html | 49 - _includes/datetime.html | 20 - _includes/embed/audio.html | 35 - _includes/embed/bilibili.html | 9 - _includes/embed/twitch.html | 8 - _includes/embed/video.html | 59 - _includes/embed/youtube.html | 9 - _includes/favicons.html | 19 - _includes/footer.html | 49 - _includes/head.html | 107 -- _includes/js-selector.html | 109 -- _includes/jsdelivr-combine.html | 26 - _includes/lang.html | 10 - _includes/language-alias.html | 70 - _includes/media-url.html | 37 - _includes/mermaid.html | 62 - _includes/metadata-hook.html | 1 - _includes/mode-toggle.html | 116 -- _includes/no-linenos.html | 10 - _includes/notification.html | 24 - _includes/origin-type.html | 13 - _includes/pageviews/goatcounter.html | 19 - _includes/post-description.html | 16 - _includes/post-nav.html | 34 - _includes/post-paginator.html | 91 - _includes/post-sharing.html | 52 - _includes/read-time.html | 37 - _includes/refactor-content.html | 255 --- _includes/related-posts.html | 94 - _includes/search-loader.html | 47 - _includes/search-results.html | 10 - _includes/sidebar.html | 97 -- _includes/toc-status.html | 10 - _includes/toc.html | 8 - _includes/topbar.html | 77 - _includes/trending-tags.html | 46 - _includes/update-list.html | 40 - _javascript/categories.js | 7 - _javascript/commons.js | 5 - _javascript/home.js | 8 - _javascript/misc.js | 7 - _javascript/modules/components/back-to-top.js | 19 - .../modules/components/category-collapse.js | 36 - _javascript/modules/components/clipboard.js | 143 -- _javascript/modules/components/img-loading.js | 67 - _javascript/modules/components/img-popup.js | 60 - .../modules/components/locale-datetime.js | 53 - .../modules/components/mode-watcher.js | 14 - .../modules/components/search-display.js | 110 -- _javascript/modules/components/sidebar.js | 22 - _javascript/modules/components/toc.js | 33 - .../modules/components/toc/toc-desktop.js | 22 - .../modules/components/toc/toc-mobile.js | 125 -- .../modules/components/tooltip-loader.js | 11 - _javascript/modules/layouts.js | 3 - _javascript/modules/layouts/basic.js | 7 - _javascript/modules/layouts/sidebar.js | 7 - _javascript/modules/layouts/topbar.js | 5 - _javascript/modules/plugins.js | 6 - _javascript/page.js | 9 - _javascript/post.js | 18 - _javascript/pwa/app.js | 55 - _javascript/pwa/sw.js | 92 - _layouts/archives.html | 35 - _layouts/categories.html | 138 -- _layouts/category.html | 24 - _layouts/compress.html | 10 - _layouts/default.html | 82 - _layouts/home.html | 122 -- _layouts/page.html | 20 - _layouts/post.html | 178 -- _layouts/tag.html | 23 - _layouts/tags.html | 22 - _plugins/posts-lastmod-hook.rb | 14 - ...-21-gruendung-star-citizen-organisation.md | 30 - _sass/addon/commons.scss | 1526 ----------------- _sass/addon/module.scss | 215 --- _sass/addon/syntax.scss | 292 ---- _sass/addon/variables.scss | 34 - _sass/colors/syntax-dark.scss | 164 -- _sass/colors/syntax-light.scss | 210 --- _sass/colors/typography-dark.scss | 147 -- _sass/colors/typography-light.scss | 112 -- _sass/layout/archives.scss | 143 -- _sass/layout/categories.scss | 83 - _sass/layout/category-tag.scss | 70 - _sass/layout/home.scss | 188 -- _sass/layout/post.scss | 585 ------- _sass/layout/tags.scss | 19 - _sass/main.bundle.scss | 2 - _sass/main.scss | 13 - _sass/variables-hook.scss | 3 - _tabs/about.md | 8 - _tabs/archives.md | 5 - _tabs/categories.md | 5 - _tabs/tags.md | 5 - assets/404.html | 14 - assets/css/jekyll-theme-chirpy.scss | 10 - assets/feed.xml | 54 - .../img/favicons/android-chrome-192x192.png | Bin 22560 -> 0 bytes .../img/favicons/android-chrome-512x512.png | Bin 112814 -> 0 bytes assets/img/favicons/apple-touch-icon.png | Bin 17574 -> 0 bytes assets/img/favicons/browserconfig.xml | 13 - assets/img/favicons/favicon-16x16.png | Bin 768 -> 0 bytes assets/img/favicons/favicon-32x32.png | Bin 1685 -> 0 bytes assets/img/favicons/favicon.ico | Bin 133914 -> 0 bytes assets/img/favicons/mstile-150x150.png | Bin 12172 -> 0 bytes assets/img/favicons/site.webmanifest | 26 - assets/js/data/mathjax.js | 25 - assets/js/data/search.json | 20 - assets/js/data/swconf.js | 47 - assets/robots.txt | 10 - index.html | 4 - jekyll-theme-chirpy.gemspec | 36 - package.json | 177 -- purgecss.config.js | 23 - rollup.config.js | 74 - tools/init.sh | 130 -- tools/release.sh | 186 -- tools/run.sh | 54 - tools/test.sh | 89 - 176 files changed, 11248 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .gitattributes delete mode 100644 .gitea/workflows/pages-deploy.yaml delete mode 100644 .gitignore delete mode 100644 .gitmodules delete mode 100644 .husky/.gitkeep delete mode 100644 .markdownlint.json delete mode 100644 .nojekyll delete mode 100644 .prettierignore delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/settings.json delete mode 100644 .vscode/tasks.json delete mode 100644 Gemfile delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 _config.yml delete mode 100644 _data/authors.yml delete mode 100644 _data/contact.yml delete mode 100644 _data/locales/ar.yml delete mode 100644 _data/locales/bg-BG.yml delete mode 100644 _data/locales/cs-CZ.yml delete mode 100644 _data/locales/de-DE.yml delete mode 100644 _data/locales/el-GR.yml delete mode 100644 _data/locales/en.yml delete mode 100644 _data/locales/es-ES.yml delete mode 100644 _data/locales/fi-FI.yml delete mode 100644 _data/locales/fr-FR.yml delete mode 100644 _data/locales/hu-HU.yml delete mode 100644 _data/locales/id-ID.yml delete mode 100644 _data/locales/it-IT.yml delete mode 100644 _data/locales/ko-KR.yml delete mode 100644 _data/locales/my-MM.yml delete mode 100644 _data/locales/pt-BR.yml delete mode 100644 _data/locales/ru-RU.yml delete mode 100644 _data/locales/sl-SI.yml delete mode 100644 _data/locales/sv-SE.yml delete mode 100644 _data/locales/th.yml delete mode 100644 _data/locales/tr-TR.yml delete mode 100644 _data/locales/uk-UA.yml delete mode 100644 _data/locales/vi-VN.yml delete mode 100644 _data/locales/zh-CN.yml delete mode 100644 _data/locales/zh-TW.yml delete mode 100644 _data/media.yml delete mode 100644 _data/origin/basic.yml delete mode 100644 _data/origin/cors.yml delete mode 100644 _data/share.yml delete mode 100644 _includes/analytics/cloudflare.html delete mode 100644 _includes/analytics/fathom.html delete mode 100644 _includes/analytics/goatcounter.html delete mode 100644 _includes/analytics/google.html delete mode 100644 _includes/analytics/matomo.html delete mode 100644 _includes/analytics/umami.html delete mode 100644 _includes/comments.html delete mode 100644 _includes/comments/disqus.html delete mode 100644 _includes/comments/giscus.html delete mode 100644 _includes/comments/utterances.html delete mode 100644 _includes/datetime.html delete mode 100644 _includes/embed/audio.html delete mode 100644 _includes/embed/bilibili.html delete mode 100644 _includes/embed/twitch.html delete mode 100644 _includes/embed/video.html delete mode 100644 _includes/embed/youtube.html delete mode 100644 _includes/favicons.html delete mode 100644 _includes/footer.html delete mode 100644 _includes/head.html delete mode 100644 _includes/js-selector.html delete mode 100644 _includes/jsdelivr-combine.html delete mode 100644 _includes/lang.html delete mode 100644 _includes/language-alias.html delete mode 100644 _includes/media-url.html delete mode 100644 _includes/mermaid.html delete mode 100644 _includes/metadata-hook.html delete mode 100644 _includes/mode-toggle.html delete mode 100644 _includes/no-linenos.html delete mode 100644 _includes/notification.html delete mode 100644 _includes/origin-type.html delete mode 100644 _includes/pageviews/goatcounter.html delete mode 100644 _includes/post-description.html delete mode 100644 _includes/post-nav.html delete mode 100644 _includes/post-paginator.html delete mode 100644 _includes/post-sharing.html delete mode 100644 _includes/read-time.html delete mode 100644 _includes/refactor-content.html delete mode 100644 _includes/related-posts.html delete mode 100644 _includes/search-loader.html delete mode 100644 _includes/search-results.html delete mode 100644 _includes/sidebar.html delete mode 100644 _includes/toc-status.html delete mode 100644 _includes/toc.html delete mode 100644 _includes/topbar.html delete mode 100644 _includes/trending-tags.html delete mode 100644 _includes/update-list.html delete mode 100644 _javascript/categories.js delete mode 100644 _javascript/commons.js delete mode 100644 _javascript/home.js delete mode 100644 _javascript/misc.js delete mode 100644 _javascript/modules/components/back-to-top.js delete mode 100644 _javascript/modules/components/category-collapse.js delete mode 100644 _javascript/modules/components/clipboard.js delete mode 100644 _javascript/modules/components/img-loading.js delete mode 100644 _javascript/modules/components/img-popup.js delete mode 100644 _javascript/modules/components/locale-datetime.js delete mode 100644 _javascript/modules/components/mode-watcher.js delete mode 100644 _javascript/modules/components/search-display.js delete mode 100644 _javascript/modules/components/sidebar.js delete mode 100644 _javascript/modules/components/toc.js delete mode 100644 _javascript/modules/components/toc/toc-desktop.js delete mode 100644 _javascript/modules/components/toc/toc-mobile.js delete mode 100644 _javascript/modules/components/tooltip-loader.js delete mode 100644 _javascript/modules/layouts.js delete mode 100644 _javascript/modules/layouts/basic.js delete mode 100644 _javascript/modules/layouts/sidebar.js delete mode 100644 _javascript/modules/layouts/topbar.js delete mode 100644 _javascript/modules/plugins.js delete mode 100644 _javascript/page.js delete mode 100644 _javascript/post.js delete mode 100644 _javascript/pwa/app.js delete mode 100644 _javascript/pwa/sw.js delete mode 100644 _layouts/archives.html delete mode 100644 _layouts/categories.html delete mode 100644 _layouts/category.html delete mode 100644 _layouts/compress.html delete mode 100644 _layouts/default.html delete mode 100644 _layouts/home.html delete mode 100644 _layouts/page.html delete mode 100644 _layouts/post.html delete mode 100644 _layouts/tag.html delete mode 100644 _layouts/tags.html delete mode 100644 _plugins/posts-lastmod-hook.rb delete mode 100644 _posts/2022-10-21-gruendung-star-citizen-organisation.md delete mode 100644 _sass/addon/commons.scss delete mode 100644 _sass/addon/module.scss delete mode 100644 _sass/addon/syntax.scss delete mode 100644 _sass/addon/variables.scss delete mode 100644 _sass/colors/syntax-dark.scss delete mode 100644 _sass/colors/syntax-light.scss delete mode 100644 _sass/colors/typography-dark.scss delete mode 100644 _sass/colors/typography-light.scss delete mode 100644 _sass/layout/archives.scss delete mode 100644 _sass/layout/categories.scss delete mode 100644 _sass/layout/category-tag.scss delete mode 100644 _sass/layout/home.scss delete mode 100644 _sass/layout/post.scss delete mode 100644 _sass/layout/tags.scss delete mode 100644 _sass/main.bundle.scss delete mode 100644 _sass/main.scss delete mode 100644 _sass/variables-hook.scss delete mode 100644 _tabs/about.md delete mode 100644 _tabs/archives.md delete mode 100644 _tabs/categories.md delete mode 100644 _tabs/tags.md delete mode 100644 assets/404.html delete mode 100644 assets/css/jekyll-theme-chirpy.scss delete mode 100644 assets/feed.xml delete mode 100644 assets/img/favicons/android-chrome-192x192.png delete mode 100644 assets/img/favicons/android-chrome-512x512.png delete mode 100644 assets/img/favicons/apple-touch-icon.png delete mode 100644 assets/img/favicons/browserconfig.xml delete mode 100644 assets/img/favicons/favicon-16x16.png delete mode 100644 assets/img/favicons/favicon-32x32.png delete mode 100644 assets/img/favicons/favicon.ico delete mode 100644 assets/img/favicons/mstile-150x150.png delete mode 100644 assets/img/favicons/site.webmanifest delete mode 100644 assets/js/data/mathjax.js delete mode 100644 assets/js/data/search.json delete mode 100644 assets/js/data/swconf.js delete mode 100644 assets/robots.txt delete mode 100644 jekyll-theme-chirpy.gemspec delete mode 100644 package.json delete mode 100644 purgecss.config.js delete mode 100644 rollup.config.js delete mode 100644 tools/init.sh delete mode 100644 tools/release.sh delete mode 100644 tools/run.sh delete mode 100644 tools/test.sh diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 2b740bf..0000000 --- a/.editorconfig +++ /dev/null @@ -1,19 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -trim_trailing_whitespace = true -# Unix-style newlines with a newline ending every file -end_of_line = lf -insert_final_newline = true - -[*.{js,css,scss}] -quote_type = single - -[*.{yml,yaml}] -quote_type = double - -[*.md] -trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 262d6bd..0000000 --- a/.gitattributes +++ /dev/null @@ -1,16 +0,0 @@ -# Set default behavior to automatically normalize line endings. -* text=auto - -# Force bash scripts to always use LF line endings so that if a repo is accessed -# in Unix via a file share from Windows, the scripts will work. -*.sh text eol=lf - -# Force batch scripts to always use CRLF line endings so that if a repo is accessed -# in Windows via a file share from Linux, the scripts will work. -*.{cmd,[cC][mM][dD]} text eol=crlf -*.{bat,[bB][aA][tT]} text eol=crlf - -# Denote all files that are truly binary and should not be modified. -*.png binary -*.jpg binary -*.ico binary diff --git a/.gitea/workflows/pages-deploy.yaml b/.gitea/workflows/pages-deploy.yaml deleted file mode 100644 index 3a4ee27..0000000 --- a/.gitea/workflows/pages-deploy.yaml +++ /dev/null @@ -1,79 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: - - main - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: write - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-22.04 - env: - RUBY_VERSION: "3.3.5" - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: "main" - - name: checkout pages - uses: actions/checkout@v4 - with: - ref: "pages" - path: "pages" - - name: Setup Ruby - run: | - apt-get update && \ - apt-get install curl wget tar build-essential zlib1g-dev gpg -y && \ - curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \ - curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && \ - curl -sSL https://get.rvm.io | bash -s stable && \ - source /etc/profile.d/rvm.sh && \ - rvm mount -r https://raw.morlana.space/morlana/rvm-binaries/@binaries/ubuntu/22.04/aarch64/ruby-$RUBY_VERSION.tar.bz2 && \ - rvm use $RUBY_VERSION && ruby -v && gem -v && \ - gem install bundler jekyll webrick - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: lts/* - - name: Build Assets - run: npm i && npm run build - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: | - source /etc/profile.d/rvm.sh && \ - rvm use $RUBY_VERSION && ruby -v && gem -v && \ - bundle install && \ - bundle exec jekyll build --destination pages - env: - JEKYLL_ENV: production - - name: push pages - run: | - cd pages && \ - git config user.name "${{ gitea.actor }}" && \ - git config user.email ""${{ gitea.actor }}"@noreply.git.morlana.online" && \ - git add . && \ - git commit -m "jekyll build from Action ${GITHUB_SHA}" && \ - git push diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0082d90..0000000 --- a/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -# Bundler cache -.bundle -vendor -Gemfile.lock - -# Jekyll cache -.jekyll-cache -.jekyll-metadata -_site - -# RubyGems -*.gem - -# NPM dependencies -node_modules -package-lock.json - -# IDE configurations -.idea -.vscode/* -!.vscode/settings.json -!.vscode/extensions.json -!.vscode/tasks.json - -# Misc -_sass/dist -assets/js/dist diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 58062c5..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "assets/lib"] - path = assets/lib - url = https://github.com/cotes2020/chirpy-static-assets.git diff --git a/.husky/.gitkeep b/.husky/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.markdownlint.json b/.markdownlint.json deleted file mode 100644 index 831991e..0000000 --- a/.markdownlint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "commands-show-output": false, - "blanks-around-fences": false, - "line-length": false, - "no-inline-html": { - "allowed_elements": ["kbd", "sub"] - } -} diff --git a/.nojekyll b/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 3596d8a..0000000 --- a/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -*.yml -*.yaml \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 082bc94..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["ms-vscode-remote.remote-containers"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 5e8a04f..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - // Prettier - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true, - // Shopify Liquid - "files.associations": { - "*.html": "liquid" - }, - "[markdown]": { - "editor.defaultFormatter": "yzhang.markdown-all-in-one" - }, - // Formatter - "[html][liquid]": { - "editor.defaultFormatter": "Shopify.theme-check-vscode" - }, - "[shellscript]": { - "editor.defaultFormatter": "mkhl.shfmt" - }, - // Disable vscode built-in stylelint - "css.validate": false, - "scss.validate": false, - "less.validate": false, - // Stylint extension settings - "stylelint.snippet": ["css", "scss"], - "stylelint.validate": ["css", "scss"], - // Run tasks in macOS - "terminal.integrated.profiles.osx": { - "zsh": { "path": "/bin/zsh", "args": ["-l", "-i"] } - } -} diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 99ed5c5..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "Run Jekyll Server", - "type": "shell", - "command": "./tools/run.sh", - "group": { - "kind": "build", - "isDefault": true - }, - "problemMatcher": [], - "detail": "Runs the Jekyll server with live reload." - }, - { - "label": "Build Jekyll Site", - "type": "shell", - "command": "./tools/test.sh", - "group": { - "kind": "build" - }, - "problemMatcher": [], - "detail": "Build the Jekyll site for production." - }, - { - "label": "Build JS (watch)", - "type": "shell", - "command": "npm run watch:js", - "group": { - "kind": "build" - }, - "problemMatcher": [], - "detail": "Build JS files in watch mode." - }, - { - "label": "Build CSS", - "type": "shell", - "command": "npm run build:css", - "group": { - "kind": "build" - }, - "problemMatcher": [], - "detail": "Build CSS files." - }, - { - "label": "Build JS & CSS", - "type": "shell", - "command": "npm run build", - "group": { - "kind": "build" - }, - "problemMatcher": [], - "detail": "Build JS & CSS for production." - }, - { - "label": "Run Jekyll Server + Build JS (watch)", - "dependsOn": ["Run Jekyll Server", "Build JS (watch)"], - "group": { - "kind": "build" - }, - "detail": "Runs both the Jekyll server with live reload and build JS files in watch mode." - } - ] -} diff --git a/Gemfile b/Gemfile deleted file mode 100644 index e541574..0000000 --- a/Gemfile +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gemspec - -gem "html-proofer", "~> 5.0", group: :test - -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", ">= 1", "< 3" - gem "tzinfo-data" -end - -gem "wdm", "~> 0.2.0", :platforms => [:mingw, :x64_mingw, :mswin] diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 299d89f..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019 Cotes Chung - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 7e57b2a..0000000 --- a/README.md +++ /dev/null @@ -1,84 +0,0 @@ - -
- - - # Chirpy Jekyll Theme - - A minimal, responsive, and feature-rich Jekyll theme for technical writing. - - [![CI](https://img.shields.io/github/actions/workflow/status/cotes2020/jekyll-theme-chirpy/ci.yml?logo=github)][ci]  - [![Codacy Badge](https://img.shields.io/codacy/grade/4e556876a3c54d5e8f2d2857c4f43894?logo=codacy)][codacy]  - [![GitHub license](https://img.shields.io/github/license/cotes2020/jekyll-theme-chirpy?color=goldenrod)][license]  - [![Gem Version](https://img.shields.io/gem/v/jekyll-theme-chirpy?&logo=RubyGems&logoColor=ghostwhite&label=gem&color=orange)][gem]  - [![Open in Dev Containers](https://img.shields.io/badge/Dev_Containers-Open-deepskyblue?logo=linuxcontainers)][open-container] - - [**Live Demo** →][demo] - - [![Devices Mockup](https://chirpy-img.netlify.app/commons/devices-mockup.png)][demo] - -
- -## Features - -- Dark Theme -- Localized UI language -- Pinned Posts on Home Page -- Hierarchical Categories -- Trending Tags -- Table of Contents -- Last Modified Date -- Syntax Highlighting -- Mathematical Expressions -- Mermaid Diagrams & Flowcharts -- Dark Mode Images -- Embed Media -- Comment Systems -- Built-in Search -- Atom Feeds -- PWA -- Web Analytics -- SEO & Performance Optimization - -## Documentation - -To learn how to use, develop, and upgrade the project, please refer to the [Wiki][wiki]. - -## Contributing - -Contributions (_pull requests_, _issues_, and _discussions_) are what make the open-source community such an amazing place -to learn, inspire, and create. Any contributions you make are greatly appreciated. -For details, see the "[Contributing Guidelines][contribute-guide]". - -## Credits - -### Contributors - -Thanks to [all the contributors][contributors] involved in the development of the project! - -[![all-contributors](https://contrib.rocks/image?repo=cotes2020/jekyll-theme-chirpy&columns=16)][contributors] - — Made with [contrib.rocks](https://contrib.rocks) - -### Third-Party Assets - -This project is built on the [Jekyll][jekyllrb] ecosystem and some [great libraries][lib], and is developed using [VS Code][vscode] as well as tools provided by [JetBrains][jetbrains] under a non-commercial open-source software license. - -The avatar and favicon for the project's website are from [ClipartMAX][clipartmax]. - -## License - -This project is published under [MIT License][license]. - -[gem]: https://rubygems.org/gems/jekyll-theme-chirpy -[ci]: https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml?query=event%3Apush+branch%3Amaster -[codacy]: https://app.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade -[license]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE -[open-container]: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/cotes2020/jekyll-theme-chirpy -[jekyllrb]: https://jekyllrb.com/ -[clipartmax]: https://www.clipartmax.com/middle/m2i8b1m2K9Z5m2K9_ant-clipart-childrens-ant-cute/ -[demo]: https://cotes2020.github.io/chirpy-demo/ -[wiki]: https://github.com/cotes2020/jekyll-theme-chirpy/wiki -[contribute-guide]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md -[contributors]: https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors -[lib]: https://github.com/cotes2020/chirpy-static-assets -[vscode]: https://code.visualstudio.com/ -[jetbrains]: https://www.jetbrains.com/?from=jekyll-theme-chirpy diff --git a/_config.yml b/_config.yml deleted file mode 100644 index db6f303..0000000 --- a/_config.yml +++ /dev/null @@ -1,221 +0,0 @@ -# The Site Configuration - -# Import the theme -theme: jekyll-theme-chirpy - -# The language of the webpage › http://www.lingoes.net/en/translator/langcode.htm -# If it has the same name as one of the files in folder `_data/locales`, the layout language will also be changed, -# otherwise, the layout language will use the default value of 'en'. -lang: de-DE - -# Change to your timezone › https://kevinnovak.github.io/Time-Zone-Picker -timezone: Europe/Berlin - -# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md -# ↓ -------------------------- - -title: SitirioTV # the main title - -tagline: What something is, is not the same, as what something means. # it will display as the subtitle - -description: >- # used by seo meta and the atom feed - A minimal, responsive and feature-rich Jekyll theme for technical writing. - -# Fill in the protocol & hostname for your site. -# E.g. 'https://username.github.io', note that it does not end with a '/'. -url: "https://justin.morlana.space" - -github: - username: justinvollmer # change to your GitHub username - -#twitter: -# username: twitter_username # change to your Twitter username - -social: - # Change to your full name. - # It will be displayed as the default author of the posts and the copyright owner in the Footer - name: Justin - email: sitiriotv@morlana.net # change to your email address - links: - # The first element serves as the copyright owner's link - - https://tree.morlana.link/@SitirioTV # change to your Twitter homepage - -# Site Verification Settings -webmaster_verifications: - google: # fill in your Google verification code - bing: # fill in your Bing verification code - alexa: # fill in your Alexa verification code - yandex: # fill in your Yandex verification code - baidu: # fill in your Baidu verification code - facebook: # fill in your Facebook verification code - -# ↑ -------------------------- -# The end of `jekyll-seo-tag` settings - -# Web Analytics Settings -analytics: - google: - id: # fill in your Google Analytics ID - goatcounter: - id: # fill in your GoatCounter ID - umami: - id: # fill in your Umami ID - domain: # fill in your Umami domain - matomo: - id: # fill in your Matomo ID - domain: # fill in your Matomo domain - cloudflare: - id: # fill in your Cloudflare Web Analytics token - fathom: - id: # fill in your Fathom Site ID - -# Page views settings -pageviews: - provider: # now only supports 'goatcounter' - -# Prefer color scheme setting. -# -# Note: Keep empty will follow the system prefer color by default, -# and there will be a toggle to switch the theme between dark and light -# on the bottom left of the sidebar. -# -# Available options: -# -# light — Use the light color scheme -# dark — Use the dark color scheme -# -theme_mode: dark - -# The CDN endpoint for media resources. -# Notice that once it is assigned, the CDN url -# will be added to all media resources (site avatar, posts' images, audio and video files) paths starting with '/' -# -# e.g. 'https://cdn.com' -# cdn: "https://chirpy-img.netlify.app" - -# the avatar on sidebar, support local or CORS resources -avatar: "https://tree.morlana.link/assets/img/4_1740692094.png" - -# The URL of the site-wide social preview image used in SEO `og:image` meta tag. -# It can be overridden by a customized `page.image` in front matter. -social_preview_image: # string, local or CORS resources - -# boolean type, the global switch for TOC in posts. -toc: true - -comments: - # Global switch for the post-comment system. Keeping it empty means disabled. - provider: # [disqus | utterances | giscus] - # The provider options are as follows: - disqus: - shortname: # fill with the Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname - # utterances settings › https://utteranc.es/ - utterances: - repo: # / - issue_term: # < url | pathname | title | ...> - # Giscus options › https://giscus.app - giscus: - repo: # / - repo_id: - category: - category_id: - mapping: # optional, default to 'pathname' - strict: # optional, default to '0' - input_position: # optional, default to 'bottom' - lang: # optional, default to the value of `site.lang` - reactions_enabled: # optional, default to the value of `1` - -# Self-hosted static assets, optional › https://github.com/cotes2020/chirpy-static-assets -assets: - self_host: - enabled: # boolean, keep empty means false - # specify the Jekyll environment, empty means both - # only works if `assets.self_host.enabled` is 'true' - env: # [development | production] - -pwa: - enabled: true # The option for PWA feature (installable) - cache: - enabled: true # The option for PWA offline cache - # Paths defined here will be excluded from the PWA cache. - # Usually its value is the `baseurl` of another website that - # shares the same domain name as the current website. - deny_paths: - # - "/example" # URLs match `/example/*` will not be cached by the PWA - -paginate: 10 - -# The base URL of your site -baseurl: "/" - -# ------------ The following options are not recommended to be modified ------------------ - -kramdown: - footnote_backlink: "↩︎" - syntax_highlighter: rouge - syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options - css_class: highlight - # default_lang: console - span: - line_numbers: false - block: - line_numbers: true - start_line: 1 - -collections: - tabs: - output: true - sort_by: order - -defaults: - - scope: - path: "" # An empty string here means all files in the project - type: posts - values: - layout: post - comments: true # Enable comments in posts. - toc: true # Display TOC column in posts. - # DO NOT modify the following parameter unless you are confident enough - # to update the code of all other post links in this project. - permalink: /posts/:title/ - - scope: - path: _drafts - values: - comments: false - - scope: - path: "" - type: tabs # see `site.collections` - values: - layout: page - permalink: /:title/ - -sass: - style: compressed - -compress_html: - clippings: all - comments: all - endings: all - profile: false - blanklines: false - ignore: - envs: [development] - -exclude: - - "*.gem" - - "*.gemspec" - - docs - - tools - - README.md - - LICENSE - - "*.config.js" - - package*.json - -jekyll-archives: - enabled: [categories, tags] - layouts: - category: category - tag: tag - permalinks: - tag: /tags/:name/ - category: /categories/:name/ diff --git a/_data/authors.yml b/_data/authors.yml deleted file mode 100644 index 1548371..0000000 --- a/_data/authors.yml +++ /dev/null @@ -1,11 +0,0 @@ -## Template › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/advanced-usage.md#setting-author-url -# ------------------------------------- -# {author_id}: -# name: {full name} -# twitter: {twitter_of_author} -# url: {homepage_of_author} -# ------------------------------------- - -sitiriotv: - name: SitirioTV | Justin - url: https://tree.morlana.link/@SitirioTV diff --git a/_data/contact.yml b/_data/contact.yml deleted file mode 100644 index e45d9d1..0000000 --- a/_data/contact.yml +++ /dev/null @@ -1,41 +0,0 @@ -# The contact options. - -- type: discord - icon: "fa-brands fa-discord" - url: "https://morlana.link/discord" - -#- type: twitter -# icon: "fa-brands fa-x-twitter" - -- type: email - icon: "fas fa-envelope" - noblank: true # open link in current tab - -- type: rss - icon: "fas fa-rss" - noblank: true -# Uncomment and complete the url below to enable more contact options -# -# - type: mastodon -# icon: 'fab fa-mastodon' # icons powered by -# url: '' # Fill with your Mastodon account page, rel="me" will be applied for verification -# -# - type: linkedin -# icon: 'fab fa-linkedin' # icons powered by -# url: '' # Fill with your Linkedin homepage -# -# - type: stack-overflow -# icon: 'fab fa-stack-overflow' -# url: '' # Fill with your stackoverflow homepage -# -# - type: bluesky -# icon: 'fa-brands fa-bluesky' -# url: '' # Fill with your Bluesky profile link -# -# - type: reddit -# icon: 'fa-brands fa-reddit' -# url: '' # Fill with your Reddit profile link -# -# - type: threads -# icon: 'fa-brands fa-threads' -# url: '' # Fill with your Threads profile link diff --git a/_data/locales/ar.yml b/_data/locales/ar.yml deleted file mode 100644 index a79e020..0000000 --- a/_data/locales/ar.yml +++ /dev/null @@ -1,91 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: منشور - category: فئة - tag: وسم - -# The tabs of sidebar -tabs: - # format: : - home: الرئيسية - categories: الفئات - tags: الوسوم - archives: الأرشيف - about: حول - -# the text displayed in the search bar & search results -search: - hint: بحث - cancel: إلغاء - no_results: نأسف! لا يوجد نتائج. - -panel: - lastmod: المحدثة مؤخرا - trending_tags: الوسوم الشائعة - toc: محتويات - -copyright: - # Shown at the bottom of the post - license: - template: هذا المنشور تحت ترخيص :LICENSE_NAME بواسطة المؤلف. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: بعض الحقوق محفوظة. - verbose: >- - ما لم يذكر خلاف ذلك ، يتم ترخيص منشورات المدونة على هذا الموقع - بموجب ترخيص Creative Commons Attribution 4.0 International (CC BY 4.0) من قبل المؤلف. - -meta: باستخدام :PLATFORM السمة :THEME - -not_found: - statement: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة. - -notification: - update_found: يتوفر اصدار جديد للمحتوى. - update: تحديث - -# ----- Posts related labels ----- - -post: - written_by: بواسطة - posted: نشّر - updated: حدّث - words: كلمات - pageview_measure: مشاهدات - read_time: - unit: دقيقة - prompt: قراءة - relate_posts: إقرأ المزيد - share: شارك - button: - next: الأجدد - previous: الأقدم - copy_code: - succeed: تم النسخ! - share_link: - title: أنسخ الرابط - succeed: تم نسخ الرابط بنجاح! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: فئة - plural: فئات - post_measure: - singular: منشور - plural: منشورات diff --git a/_data/locales/bg-BG.yml b/_data/locales/bg-BG.yml deleted file mode 100644 index 3fb060f..0000000 --- a/_data/locales/bg-BG.yml +++ /dev/null @@ -1,81 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Публикация - category: Категория - tag: Таг - -# The tabs of sidebar -tabs: - # format: : - home: Начало - categories: Категории - tags: Тагове - archives: Архив - about: За мен - -# the text displayed in the search bar & search results -search: - hint: търси - cancel: Отмени - no_results: Упс! Не са намерени резултати. - -panel: - lastmod: Наскоро обновени - trending_tags: Популярни тагове - toc: Съдържание - -copyright: - # Shown at the bottom of the post - license: - template: Тази публикация е лицензирана под :LICENSE_NAME от автора. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Някои права запазени. - verbose: >- - Освен ако не е посочено друго, публикациите в блога на този сайт са лицензирани - под лиценза Creative Commons Attribution 4.0 (CC BY 4.0) от автора. - -meta: Създадено чрез :PLATFORM и :THEME тема - -not_found: - statement: Съжалявам, но на този URL адрес няма налично съдържание. - -notification: - update_found: Налична е нова версия на съдържанието. - update: Обнови - -# ----- Posts related labels ----- - -post: - written_by: Автор - posted: Публикувана - updated: Обновена - words: думи - pageview_measure: преглеждания - read_time: - unit: мин - prompt: четиво - relate_posts: Още за четене - share: Споделете - button: - next: По-нови - previous: По-стари - copy_code: - succeed: Копирано! - share_link: - title: Копирай линк - succeed: Линкът е копиран успешно! - -# categories page -categories: - category_measure: - singular: категория - plural: категории - post_measure: - singular: публикация - plural: публикации diff --git a/_data/locales/cs-CZ.yml b/_data/locales/cs-CZ.yml deleted file mode 100644 index cf93f61..0000000 --- a/_data/locales/cs-CZ.yml +++ /dev/null @@ -1,89 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Příspěvek - category: Kategorie - tag: Štítek - -# The tabs of sidebar -tabs: - # format: : - home: Domů - categories: Kategorie - tags: Štítky - archives: Archivy - about: O mně - -# the text displayed in the search bar & search results -search: - hint: hledat - cancel: Zrušit - no_results: Ups! Žádný výsledek nenalezen. - -panel: - lastmod: Nedávno aktualizováno - trending_tags: Trendy štítky - toc: Obsah - -copyright: - # Shown at the bottom of the post - license: - template: Tento příspěvek je licencován pod :LICENSE_NAME autorem. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Některá práva vyhrazena. - verbose: >- - Pokud není uvedeno jinak, jsou příspěvky na tomto webu licencovány - pod licencí Creative Commons Attribution 4.0 International (CC BY 4.0) Licence autora. - -meta: Použití :PLATFORM s motivem :THEME - -not_found: - statement: Omlouváme se, adresu URL jsme špatně umístili nebo odkazuje na něco, co neexistuje. - -notification: - update_found: Je k dispozici nová verze obsahu. - update: Aktualizace - -# ----- Posts related labels ----- - -post: - written_by: Od - posted: Zveřejněno - updated: Aktualizováno - words: slova - pageview_measure: zhlednutí - read_time: - unit: minut - prompt: čtení - relate_posts: Další čtení - share: Sdílet - button: - next: Novější - previous: Starší - copy_code: - succeed: Zkopírováno! - share_link: - title: Kopírovat odkaz - succeed: Zkopírováno! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: kategorie - post_measure: - singular: příspěvěk - plural: příspěvky diff --git a/_data/locales/de-DE.yml b/_data/locales/de-DE.yml deleted file mode 100644 index 6c9d91d..0000000 --- a/_data/locales/de-DE.yml +++ /dev/null @@ -1,87 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Eintrag - category: Kategorie - tag: Tag - -# The tabs of sidebar -tabs: - # format: : - home: Startseite - categories: Kategorien - tags: Tags - archives: Archiv - about: Über - -# the text displayed in the search bar & search results -search: - hint: Suche - cancel: Abbrechen - no_results: Ups! Keine Einträge gefunden. - -panel: - lastmod: Kürzlich aktualisiert - trending_tags: Beliebte Tags - toc: Inhalt - -copyright: - # Shown at the bottom of the post - license: - template: Dieser Eintrag ist vom Autor unter :LICENSE_NAME lizensiert. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Einige Rechte vorbehalten. - verbose: >- - Alle Einträge auf dieser Seite stehen, soweit nicht anders angegeben, unter der Lizenz Creative Commons Attribution 4.0 (CC BY 4.0). - -meta: Powered by :PLATFORM with :THEME theme - -not_found: - statement: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource. - -notification: - update_found: Eine neue Version ist verfügbar. - update: Neue Version - -# ----- Posts related labels ----- - -post: - written_by: Von - posted: Veröffentlicht - updated: Aktualisiert - words: Wörter - pageview_measure: Aufrufe - read_time: - unit: Minuten - prompt: Lesezeit - relate_posts: Weiterlesen - share: Teilen - button: - next: Nächster Eintrag - previous: Eintrag vorher - copy_code: - succeed: Kopiert! - share_link: - title: Link kopieren - succeed: Link erfolgreich kopiert! - -# Date time format. -# See: , -df: - post: - strftime: "%d.%m.%Y" - dayjs: "DD.MM.YYYY" - -# categories page -categories: - category_measure: - singular: Kategorie - plural: Kategorien - post_measure: - singular: Eintrag - plural: Einträge diff --git a/_data/locales/el-GR.yml b/_data/locales/el-GR.yml deleted file mode 100644 index b6d2a86..0000000 --- a/_data/locales/el-GR.yml +++ /dev/null @@ -1,91 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Δημοσίευση - category: Κατηγορία - tag: Ετικέτα - -# The tabs of sidebar -tabs: - # format: : - home: Home - categories: Κατηγορίες - tags: Ετικέτες - archives: Αρχεία - about: Σχετικά - -# the text displayed in the search bar & search results -search: - hint: αναζήτηση - cancel: Ακύρωση - no_results: Oops! Κανένα αποτέλεσμα δεν βρέθηκε. - -panel: - lastmod: Σχετικά ενημερωμένα - trending_tags: Ετικέτες τάσης - toc: Περιεχόμενα - -copyright: - # Shown at the bottom of the post - license: - template: Η δημοσίευση αυτή βρίσκεται υπο την άδεια :LICENSE_NAME Greekforce1821. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Ορισμένα δικαιώματα reserved. - verbose: >- - Εκτός αλλού ή οπουδήποτε αλλού, τα blog posts σε αυτήν την σελίδα βρίσκονται υπο την άδεια - Creative Commons Attribution 4.0 International (CC BY 4.0) του δημιουργού. - -meta: Αξιοποιώντας την :PLATFORM theme :THEME - -not_found: - statement: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση URL ή υποδεικνύει κάτι που δεν υπάρχει. - -notification: - update_found: Υπάρχει διαθέσιμη μια νέα έκδοση του περιεχομένου. - update: Ενημέρωση - -# ----- Posts related labels ----- - -post: - written_by: Από - posted: Δημοσιεύθηκε - updated: Ενημερώθηκε - words: λέξεις - pageview_measure: προβολές - read_time: - unit: Λεπτά - prompt: διαβάσματος - relate_posts: Περισσότερα - share: Κοινοποιήστε - button: - next: Νεότερα - previous: Παλαιότερα - copy_code: - succeed: Αντιγράφθηκε! - share_link: - title: Αντιγραφή συνδέσμου - succeed: Η διεύθυνση αντιγράφθηκε με επιτυχία! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: Κατηγορία - plural: Κατηγορίες - post_measure: - singular: Δημοσίευση - plural: Δημοσιεύσεις diff --git a/_data/locales/en.yml b/_data/locales/en.yml deleted file mode 100644 index 152d090..0000000 --- a/_data/locales/en.yml +++ /dev/null @@ -1,91 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Post - category: Category - tag: Tag - -# The tabs of sidebar -tabs: - # format: : - home: Home - categories: Categories - tags: Tags - archives: Archives - about: About - -# the text displayed in the search bar & search results -search: - hint: search - cancel: Cancel - no_results: Oops! No results found. - -panel: - lastmod: Recently Updated - trending_tags: Trending Tags - toc: Contents - -copyright: - # Shown at the bottom of the post - license: - template: This post is licensed under :LICENSE_NAME by the author. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Some rights reserved. - verbose: >- - Except where otherwise noted, the blog posts on this site are licensed - under the Creative Commons Attribution 4.0 International (CC BY 4.0) License by the author. - -meta: Using the :THEME theme for :PLATFORM. - -not_found: - statement: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. - -notification: - update_found: A new version of content is available. - update: Update - -# ----- Posts related labels ----- - -post: - written_by: By - posted: Posted - updated: Updated - words: words - pageview_measure: views - read_time: - unit: min - prompt: read - relate_posts: Further Reading - share: Share - button: - next: Newer - previous: Older - copy_code: - succeed: Copied! - share_link: - title: Copy link - succeed: Link copied successfully! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: category - plural: categories - post_measure: - singular: post - plural: posts diff --git a/_data/locales/es-ES.yml b/_data/locales/es-ES.yml deleted file mode 100644 index 8f8d149..0000000 --- a/_data/locales/es-ES.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Entrada - category: Categoría - tag: Etiqueta - -# The tabs of sidebar -tabs: - # format: : - home: Inicio - categories: Categorías - tags: Etiquetas - archives: Archivo - about: Acerca de - -# the text displayed in the search bar & search results -search: - hint: Buscar - cancel: Cancelar - no_results: ¡Oops! No se encuentran resultados. - -panel: - lastmod: Actualizado recientemente - trending_tags: Etiquetas populares - toc: Contenido - -copyright: - # Shown at the bottom of the post - license: - template: Esta entrada está licenciada bajo :LICENSE_NAME por el autor. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Algunos derechos reservados. - verbose: >- - Salvo que se indique explícitamente, las entradas de este blog están licenciadas - bajo la Creative Commons Attribution 4.0 International (CC BY 4.0) License por el autor. - -meta: Hecho con :PLATFORM usando el tema :THEME - -not_found: - statement: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe. - -notification: - update_found: Hay una nueva versión de contenido disponible. - update: Actualizar - -# ----- Posts related labels ----- - -post: - written_by: Por - posted: Publicado - updated: Actualizado - words: palabras - pageview_measure: visitas - read_time: - unit: min - prompt: " de lectura" - relate_posts: Lecturas adicionales - share: Compartir - button: - next: Nuevo - previous: Anterior - copy_code: - succeed: ¡Copiado! - share_link: - title: Copiar enlace - succeed: ¡Enlace copiado! - -# categories page -categories: - category_measure: categorias - post_measure: entradas diff --git a/_data/locales/fi-FI.yml b/_data/locales/fi-FI.yml deleted file mode 100644 index 60c9862..0000000 --- a/_data/locales/fi-FI.yml +++ /dev/null @@ -1,90 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Julkaisu - category: Kateogoria - tag: Tagi - -# The tabs of sidebar -tabs: - # format: : - home: Koti - categories: Kateogoriat - tags: Tagit - archives: Arkistot - about: Minusta - -# the text displayed in the search bar & search results -search: - hint: etsi - cancel: Peruuta - no_results: Hups! Ei tuloksia. - -panel: - lastmod: Viimeksi päivitetty - trending_tags: Trendaavat tagit - toc: Sisältö - -copyright: - # Shown at the bottom of the post - license: - template: Tämä julkaisu on lisenssoitu :LICENSE_NAME julkaisijan toimesta. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Jotkut oikeudet pidätetään. - verbose: >- - Paitsi jos erikseen mainitaan on kaikki sisältö Creative Commons Attribution 4.0 International (CC BY 4.0) Lisensoitu kirjoittajan toimesta. - -meta: Käytetään :PLATFORM iä Teema :THEME - -not_found: - statement: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä. - -notification: - update_found: Uusi versio sisällöstä on saatavilla. - update: Päivitä - -# ----- Posts related labels ----- - -post: - written_by: Kirjoittaja - posted: Julkaistu - updated: Päivitetty - words: sanaa - pageview_measure: katselukertoja - read_time: - unit: minuuttia - prompt: lukea - relate_posts: Jatka lukemista - share: Jaa - button: - next: Uudempi - previous: Vanhempi - copy_code: - succeed: Kopiotu! - share_link: - title: Kopioi linkki - succeed: Linkki kopioitu onnistuneesti! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: kategoria - plural: kategoriat - post_measure: - singular: julkaisu - plural: julkaisut diff --git a/_data/locales/fr-FR.yml b/_data/locales/fr-FR.yml deleted file mode 100644 index dce83c9..0000000 --- a/_data/locales/fr-FR.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Post - category: Catégorie - tag: Tag - -# The tabs of sidebar -tabs: - # format: : - home: Accueil - categories: Catégories - tags: Tags - archives: Archives - about: À propos - -# the text displayed in the search bar & search results -search: - hint: recherche - cancel: Annuler - no_results: Oups ! Aucun résultat trouvé. - -panel: - lastmod: Récemment mis à jour - trending_tags: Tags tendance - toc: Contenu - -copyright: - # Shown at the bottom of the post - license: - template: Cet article est sous licence :LICENSE_NAME par l'auteur. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/deed.fr - - # Displayed in the footer - brief: Certains droits réservés. - verbose: >- - Sauf mention contraire, les articles de ce site sont publiés - sous la licence Creative Commons Attribution 4.0 International (CC BY 4.0) par l'auteur. - -meta: Propulsé par :PLATFORM avec le thème :THEME - -not_found: - statement: Désolé, nous avons égaré cette URL ou elle pointe vers quelque chose qui n'existe pas. - -notification: - update_found: Une nouvelle version du contenu est disponible. - update: Mise à jour - -# ----- Posts related labels ----- - -post: - written_by: Par - posted: Posté - updated: Mis à jour - words: mots - pageview_measure: vues - read_time: - unit: min - prompt: lire - relate_posts: Autres lectures - share: Partager - button: - next: Plus récent - previous: Plus ancien - copy_code: - succeed: Copié ! - share_link: - title: Copier le lien - succeed: Lien copié avec succès ! - -# categories page -categories: - category_measure: catégories - post_measure: posts diff --git a/_data/locales/hu-HU.yml b/_data/locales/hu-HU.yml deleted file mode 100644 index be3a31b..0000000 --- a/_data/locales/hu-HU.yml +++ /dev/null @@ -1,92 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Bejegyzés - category: Kategória - tag: Címke - -# The tabs of sidebar -tabs: - # format: : - home: Kezdőlap - categories: Kategóriák - tags: Címkék - archives: Archívum - about: Bemutatkozás - -# the text displayed in the search bar & search results -search: - hint: keresés - cancel: Mégse - no_results: Hoppá! Nincs találat a keresésre. - -panel: - lastmod: Legutóbb frissítve - trending_tags: Népszerű Címkék - toc: Tartalom - -copyright: - # Shown at the bottom of the post - license: - template: A bejegyzést a szerző :LICENSE_NAME licenc alatt engedélyezte. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Néhány jog fenntartva. - verbose: >- - Az oldalon található tartalmak - Creative Commons Attribution 4.0 International (CC BY 4.0) licenccel rendelkeznek, - hacsak másképp nincs jelezve. - -meta: Készítve :THEME témával a :PLATFORM platformra. - -not_found: - statement: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat. - -notification: - update_found: Elérhető a tartalom új verziója. - update: Frissítés - -# ----- Posts related labels ----- - -post: - written_by: Szerző - posted: Létrehozva - updated: Frissítve - words: szó - pageview_measure: látogató - read_time: - unit: perc - prompt: elolvasni - relate_posts: További olvasnivaló - share: Megosztás - button: - next: Újabb - previous: Régebbi - copy_code: - succeed: Másolva! - share_link: - title: Link másolása - succeed: Link sikeresen másolva! - -# Date time format. -# See: , -df: - post: - strftime: "%Y. %B. %e." - dayjs: "YYYY. MMMM D." - archives: - strftime: "%B" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: kategória - plural: kategória - post_measure: - singular: bejegyzés - plural: bejegyzés diff --git a/_data/locales/id-ID.yml b/_data/locales/id-ID.yml deleted file mode 100644 index d772ec3..0000000 --- a/_data/locales/id-ID.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Postingan - category: Kategori - tag: Tagar - -# The tabs of sidebar -tabs: - # format: : - home: Beranda - categories: Kategori - tags: Tagar - archives: Arsip - about: Tentang - -# the text displayed in the search bar & search results -search: - hint: Cari - cancel: Batal - no_results: Ups! Tidak ada hasil yang ditemukan. - -panel: - lastmod: Postingan Terbaru - trending_tags: Tagar Terpopuler - toc: Konten - -copyright: - # Shown at the bottom of the post - license: - template: Postingan ini dilisensikan di bawah :LICENSE_NAME oleh penulis. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Sebagian konten dilindungi. - verbose: >- - Kecuali jika dinyatakan, Postingan blog di situs ini dilisensikan - di bawah Lisensi Creative Commons Attribution 4.0 International (CC BY 4.0) oleh penulis. - -meta: Didukung oleh :PLATFORM dengan tema :THEME - -not_found: - statement: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada. - -notification: - update_found: Versi konten baru tersedia. - update: Perbarui - -# ----- Posts related labels ----- - -post: - written_by: Oleh - posted: Diterbitkan - updated: Diperbarui - words: kata - pageview_measure: dilihat - read_time: - unit: menit - prompt: baca - relate_posts: Postingan Lainya - share: Bagikan - button: - next: Terbaru - previous: Terlama - copy_code: - succeed: Disalin! - share_link: - title: Salin tautan - succeed: Tautan berhasil disalin! - -# categories page -categories: - category_measure: kategori - post_measure: Postingan diff --git a/_data/locales/it-IT.yml b/_data/locales/it-IT.yml deleted file mode 100644 index c8dfb44..0000000 --- a/_data/locales/it-IT.yml +++ /dev/null @@ -1,90 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Post - category: Categoria - tag: Tag - -# The tabs of sidebar -tabs: - # format: : - home: Pagina principale - categories: Categorie - tags: Tags - archives: Archivio - about: Informazioni - -# the text displayed in the search bar & search results -search: - hint: ricerca - cancel: Cancella - no_results: Oops! La ricerca non ha fornito risultati. - -panel: - lastmod: Aggiornati recentemente - trending_tags: Tags più cliccati - toc: Contenuti - -copyright: - # Shown at the bottom of the post - license: - template: Questo post è sotto licenza :LICENSE_NAME a nome dell'autore. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Alcuni diritti riservati. - verbose: >- - Eccetto quando esplicitamente menzionato, i post di questo blog sono da ritenersi sotto - i termini di licenza Creative Commons Attribution 4.0 International (CC BY 4.0). - -meta: Servizio offerto da :PLATFORM con tema :THEME -not_found: - statement: Ci scusiamo, non è stato possibile trovare l'URL in questione. Potrebbe puntare ad una pagina non esistente. - -notification: - update_found: Nuova versione del contenuto disponibile. - update: Aggiornamento - -# ----- Posts related labels ----- - -post: - written_by: Da - posted: Postato - updated: Aggiornato - words: parole - pageview_measure: visioni - read_time: - unit: min - prompt: lettura - relate_posts: Continua a leggere - share: Condividi - button: - next: Più recenti - previous: Meno recenti - copy_code: - succeed: Copiato! - share_link: - title: Copia link - succeed: Link copiato con successo! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: categoria - plural: categorie - post_measure: - singular: post - plural: posts diff --git a/_data/locales/ko-KR.yml b/_data/locales/ko-KR.yml deleted file mode 100644 index 8297634..0000000 --- a/_data/locales/ko-KR.yml +++ /dev/null @@ -1,84 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: 포스트 - category: 카테고리 - tag: 태그 - -# The tabs of sidebar -tabs: - # format: : - home: 홈 - categories: 카테고리 - tags: 태그 - archives: 아카이브 - about: 정보 - -# the text displayed in the search bar & search results -search: - hint: 검색 - cancel: 취소 - no_results: 검색 결과가 없습니다. - -panel: - lastmod: 최근 업데이트 - trending_tags: 인기 태그 - toc: 바로가기 - -copyright: - # Shown at the bottom of the post - license: - template: 이 기사는 저작권자의 :LICENSE_NAME 라이센스를 따릅니다. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: 일부 권리 보유 - verbose: >- - 명시되지 않는 한 이 사이트의 블로그 게시물은 작성자의 - Creative Commons Attribution 4.0 International(CC BY 4.0) 라이선스에 따라 사용이 허가되었습니다. - -meta: Powered by :PLATFORM with :THEME theme - -not_found: - statement: 해당 URL은 존재하지 않습니다. - -notification: - update_found: 새 버전의 콘텐츠를 사용할 수 있습니다. - update: 업데이트 - -# ----- Posts related labels ----- - -post: - written_by: By - posted: 게시 - updated: 업데이트 - words: 단어 - pageview_measure: 조회 - read_time: - unit: 분 - prompt: 읽는 시간 - relate_posts: 관련된 글 - share: 공유하기 - button: - next: 다음 글 - previous: 이전 글 - copy_code: - succeed: 복사되었습니다! - share_link: - title: 링크 복사하기 - succeed: 링크가 복사되었습니다! - -# Date time format. -# See: , -df: - post: - strftime: "%Y/%m/%d" - dayjs: "YYYY/MM/DD" - -# categories page -categories: - category_measure: 카테고리 - post_measure: 포스트 diff --git a/_data/locales/my-MM.yml b/_data/locales/my-MM.yml deleted file mode 100644 index d5bf728..0000000 --- a/_data/locales/my-MM.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: ပို့စ် - category: ကဏ္ဍ - tag: နာမ(တက်ဂ်) - -# The tabs of sidebar -tabs: - # format: : - home: အဓိကစာမျက်နှာ - categories: ကဏ္ဍများ - tags: နာမ(တက်ဂ်)များ - archives: မှတ်တမ်း​တိုက် - about: အကြောင်းအရာ - -# the text displayed in the search bar & search results -search: - hint: ရှာဖွေမည် - cancel: ဖျက်သိမ်းမည် - no_results: အိုး! ဘာမှမရှိပါ - -panel: - lastmod: မကြာသေးမီကမွမ်းမံထားသည် - trending_tags: ခေတ်စားနေသည့်တက်ဂ်များ - toc: အကြောင်းအရာများ - -copyright: - # Shown at the bottom of the post - license: - template: ဤပို့စ်သည်စာရေးသူ၏ :LICENSE_NAME လိုင်စင်ရထားသည်။ - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: မူပိုင်ခွင့်အချို့ကို လက်ဝယ်ထားသည်။ - verbose: >- - အခြားမှတ်သားထားချက်များမှလွဲ၍ ဤဆိုက်ရှိ ဘလော့ဂ်ပို့စ်များသည် စာရေးသူ၏ - Creative Commons Attribution 4.0 International (CC BY 4.0) အောက်တွင် လိုင်စင်ရထားပါသည်။ - -meta: Powered by :PLATFORM with :THEME theme - -not_found: - statement: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။ - -notification: - update_found: အကြောင်းအရာဗားရှင်းအသစ်ကို ရနိုင်ပါပြီ။ - update: အပ်ဒိတ် - -# ----- Posts related labels ----- - -post: - written_by: ကရေးသားခဲ့သည်။ - posted: တင်ထားခဲ့သည်။ - updated: မွမ်းမံထားခဲ့သည်။ - words: စကားလုံးများ - pageview_measure: အမြင်များ - read_time: - unit: မိနစ် - prompt: ဖတ်ပါမည် - relate_posts: နောက်ထပ်ဖတ်ရန် - share: မျှဝေရန် - button: - next: အသစ်များ - previous: အဟောင်းများ - copy_code: - succeed: ကူးယူလိုက်ပြီ။ - share_link: - title: လင့်ခ်ကို ကူးယူရန် - succeed: လင့်ခ်ကို ကူးယူလိုက်ပြီ။ - -# categories page -categories: - category_measure: ကဏ္ဍများ - post_measure: ပို့စ်များ diff --git a/_data/locales/pt-BR.yml b/_data/locales/pt-BR.yml deleted file mode 100644 index 7ca60a7..0000000 --- a/_data/locales/pt-BR.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Post - category: Categoria - tag: Tag - -# The tabs of sidebar -tabs: - # format: : - home: Home - categories: Categorias - tags: Tags - archives: Arquivos - about: Sobre - -# the text displayed in the search bar & search results -search: - hint: Buscar - cancel: Cancelar - no_results: Oops! Nenhum resultado encontrado. - -panel: - lastmod: Atualizados recentemente - trending_tags: Trending Tags - toc: Conteúdo - -copyright: - # Shown at the bottom of the post - license: - template: Esta postagem está licenciada sob :LICENSE_NAME pelo autor. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Alguns direitos reservados. - verbose: >- - Exceto onde indicado de outra forma, as postagens do blog neste site são licenciadas sob a - Creative Commons Attribution 4.0 International (CC BY 4.0) License pelo autor. - -meta: Feito com :PLATFORM usando o tema :THEME - -not_found: - statement: Desculpe, a página não foi encontrada. - -notification: - update_found: Uma nova versão do conteúdo está disponível. - update: atualização - -# ----- Posts related labels ----- - -post: - written_by: Por - posted: Postado em - updated: Atualizado - words: palavras - pageview_measure: visualizações - read_time: - unit: min - prompt: " de leitura" - relate_posts: Leia também - share: Compartilhar - button: - next: Próximo - previous: Anterior - copy_code: - succeed: Copiado! - share_link: - title: Copie o link - succeed: Link copiado com sucesso! - -# categories page -categories: - category_measure: categorias - post_measure: posts diff --git a/_data/locales/ru-RU.yml b/_data/locales/ru-RU.yml deleted file mode 100644 index 868ba95..0000000 --- a/_data/locales/ru-RU.yml +++ /dev/null @@ -1,87 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Пост - category: Категория - tag: Тег - -# The tabs of sidebar -tabs: - # format: : - home: Главная - categories: Категории - tags: Теги - archives: Архив - about: О сайте - -# the text displayed in the search bar & search results -search: - hint: поиск - cancel: Отмена - no_results: Упс! Ничего не найдено. - -panel: - lastmod: Недавно обновлено - trending_tags: Популярные теги - toc: Содержание - -copyright: - # Shown at the bottom of the post - license: - template: Авторский пост защищен лицензией :LICENSE_NAME. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Некоторые права защищены. - verbose: >- - Если не указано иное, авторские посты на этом сайте защищены лицензией Creative Commons Attribution 4.0 International (CC BY 4.0). - -meta: Использует тему :THEME для :PLATFORM - -not_found: - statement: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее. - -notification: - update_found: Доступна новая версия контента. - update: Обновить - -# ----- Posts related labels ----- - -post: - written_by: Автор - posted: Опубликовано - updated: Обновлено - words: слов - pageview_measure: просмотров - read_time: - unit: мин. - prompt: чтения - relate_posts: Похожие посты - share: Поделиться - button: - next: Следующий пост - previous: Предыдущий пост - copy_code: - succeed: Скопировано! - share_link: - title: Скопировать ссылку - succeed: Ссылка успешно скопирована! - -# Date time format. -# See: , -df: - post: - strftime: "%d.%m.%Y" - dayjs: "DD.MM.YYYY" - -# categories page -categories: - category_measure: - singular: категория - plural: категории - post_measure: - singular: пост - plural: посты diff --git a/_data/locales/sl-SI.yml b/_data/locales/sl-SI.yml deleted file mode 100644 index 4d9434d..0000000 --- a/_data/locales/sl-SI.yml +++ /dev/null @@ -1,91 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Objava #Post - category: Kategorija #Category - tag: Oznaka #Tag - -# The tabs of sidebar -tabs: - # format: : - home: Domov #Home - categories: Kategorije #Categories - tags: Oznake #Tags - archives: Arhiv #Archives - about: O meni #About - -# the text displayed in the search bar & search results -search: - hint: išči #search - cancel: Prekliči #Cancel - no_results: Ups! Vsebina ni bila najdena #Oops! No results found. - -panel: - lastmod: Nedavno Posodobljeno #Recently Updated - trending_tags: Priljubljene Oznake #Trending Tags - toc: Vsebina #Contents - -copyright: - # Shown at the bottom of the post - license: - template: Ta objava je licencirana pod :LICENCE_NAME s strani avtorja. #This post is licensed under :LICENSE_NAME by the author. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Nekatere pravice pridržane. #Some rights reserved. - verbose: >- - Razen kjer navedeno drugače, vse objave spletnega dnevnika so licencirane - pod Creative Commons Attribution 4.0 International (CC BY 4.0) s strani avtorja. - -meta: Uporabljena :PLATFORM tema :THEME #Using the :PLATFORM theme :THEME - -not_found: - statement: Oprostite, hiperpovezava je neustrezna ali vsebina ne obstajata. #Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. - -notification: - update_found: Novejša različica vsebine je na voljo. #A new version of content is available. - update: Posodobi #Update - -# ----- Posts related labels ----- - -post: - written_by: Od #By - posted: Objavljeno #Posted - updated: Posodobljeno #Updated - words: besede #words - pageview_measure: ogledi #views - read_time: - unit: min - prompt: beri #read - relate_posts: Nadaljnje branje #Further Reading - share: Deli #Share - button: - next: Novejše #Newer - previous: Starejše #Older - copy_code: - succeed: Kopirano! #Copied! - share_link: - title: Kopiraj povezavo #Copy link - succeed: Povezava uspešno kopirana! #Link copied successfully! - -# Date time format. -# See: , -df: - post: - strftime: "%e %b, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: kategorija #category - plural: kategorije #categories - post_measure: - singular: objava #post - plural: objave #posts diff --git a/_data/locales/sv-SE.yml b/_data/locales/sv-SE.yml deleted file mode 100644 index decb59c..0000000 --- a/_data/locales/sv-SE.yml +++ /dev/null @@ -1,91 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Inlägg #Post - category: Kategori #Category - tag: Tagga #Tag - -# The tabs of sidebar -tabs: - # format: : - home: Hem #Home - categories: Kategorier #Categories - tags: Taggar #Tags - archives: Arkiv #Archives - about: Om #About - -# the text displayed in the search bar & search results -search: - hint: sök - cancel: Avbryt - no_results: Hoppsan! Hittade inga sökträffar. - -panel: - lastmod: Senast uppdaterad - trending_tags: Trendande taggar - toc: Innehåll - -copyright: - # Shown at the bottom of the post - license: - template: Den här posten är publicerad under licensen :LICENSE_NAME av författaren. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Vissa rättigheter är reserverade. - verbose: >- - Om inte annat anges är blogginläggen på denna webbplats licensierade - under Creative Commons Attribution 4.0 International (CC BY 4.0) av författaren. - -meta: Byggd med :PLATFORM och temat :THEME - -not_found: - statement: Ursäkta, vi har tappat bort den här webbadressen eller så pekar den på något som inte längre finns. - -notification: - update_found: Det finns en ny version av innehållet. - update: Uppdatera sidan - -# ----- Posts related labels ----- - -post: - written_by: Av - posted: Postad - updated: Uppdaterad - words: ord - pageview_measure: visningar - read_time: - unit: min - prompt: läsning - relate_posts: Mer läsning - share: Dela - button: - next: Nyare - previous: Äldre - copy_code: - succeed: Kopierat! - share_link: - title: Kopiera länk - succeed: Länken har kopierats! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: kategori - plural: kategorier - post_measure: - singular: inlägg - plural: inlägg diff --git a/_data/locales/th.yml b/_data/locales/th.yml deleted file mode 100644 index a3f41a0..0000000 --- a/_data/locales/th.yml +++ /dev/null @@ -1,91 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: โพสต์ - category: หมวดหมู่ - tag: แท็ก - -# The tabs of sidebar -tabs: - # format: : - home: หน้าแรก - categories: หมวดหมู่ - tags: แท็ก - archives: คลังเก็บ - about: เกี่ยวกับ - -# the text displayed in the search bar & search results -search: - hint: ค้นหา - cancel: ยกเลิก - no_results: โอ๊ะ! ไม่พบผลลัพธ์ - -panel: - lastmod: อัปเดตล่าสุด - trending_tags: แท็กยอดนิยม - toc: เนื้อหา - -copyright: - # Shown at the bottom of the post - license: - template: โพสต์นี้อยู่ภายใต้การอนุญาต :LICENSE_NAME โดยผู้เขียน - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: สงวนลิขสิทธิ์เป็นบางส่วน - verbose: >- - เว้นแต่ว่าจะระบุเป็นอย่างอื่น โพสต์บนเว็บไซต์นี้อยู่ภายใต้ - สัญญาอนุญาตครีเอทีฟคอมมอนส์แบบ 4.0 นานาชาติ (CC BY 4.0) โดยผู้เขียน - -meta: กำลังใช้ธีมของ :PLATFORM ชื่อ :THEME - -not_found: - statement: ขออภัย เราวาง URL นั้นไว้ผิดที่ หรือมันชี้ไปยังสิ่งที่ไม่มีอยู่ - -notification: - update_found: มีเวอร์ชันใหม่ของเนื้อหา - update: อัปเดต - -# ----- Posts related labels ----- - -post: - written_by: โดย - posted: โพสต์เมื่อ - updated: อัปเดตเมื่อ - words: คำ - pageview_measure: ครั้ง - read_time: - unit: นาที - prompt: อ่าน - relate_posts: อ่านต่อ - share: แชร์ - button: - next: ใหม่กว่า - previous: เก่ากว่า - copy_code: - succeed: คัดลอกแล้ว! - share_link: - title: คัดลอกลิงก์ - succeed: คัดลอกลิงก์เรียบร้อยแล้ว! - -# Date time format. -# See: , -df: - post: - strftime: "%b %e, %Y" - dayjs: "ll" - archives: - strftime: "%b" - dayjs: "MMM" - -# categories page -categories: - category_measure: - singular: หมวดหมู่ - plural: หมวดหมู่ - post_measure: - singular: โพสต์ - plural: โพสต์ diff --git a/_data/locales/tr-TR.yml b/_data/locales/tr-TR.yml deleted file mode 100644 index 768f57c..0000000 --- a/_data/locales/tr-TR.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Gönderi - category: Kategori - tag: Etiket - -# The tabs of sidebar -tabs: - # format: : - home: Ana Sayfa - categories: Kategoriler - tags: Etiketler - archives: Arşiv - about: Hakkında - -# the text displayed in the search bar & search results -search: - hint: Ara... - cancel: İptal - no_results: Hop! Öyle bir şey bulamadım. - -panel: - lastmod: Son Güncellenenler - trending_tags: Yükselen Etiketler - toc: İçindekiler - -copyright: - # Shown at the bottom of the post - license: - template: Bu gönderi :LICENSE_NAME lisansı altındadır. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/deed.tr - - # Displayed in the footer - brief: Bazı hakları saklıdır. - verbose: >- - Aksi belirtilmediği sürece, bu sitedeki gönderiler Creative Commons Atıf 4.0 Uluslararası (CC BY 4.0) Lisansı altındadır. - Kısaca sayfa linkini vererek değiştirebilir / paylaşabilirsiniz. - -meta: :PLATFORM ve :THEME teması - -not_found: - statement: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor. - -notification: - update_found: İçeriğin yeni bir sürümü mevcut. - update: Güncelle - -# ----- Posts related labels ----- - -post: - written_by: Yazan - posted: Gönderim - updated: Güncelleme - words: sözcük - pageview_measure: görüntülenme - read_time: - unit: dakikada - prompt: okunabilir - relate_posts: Benzer Gönderiler - share: Paylaş - button: - next: İleri - previous: Geri - copy_code: - succeed: Kopyalandı. - share_link: - title: Linki kopyala - succeed: Link kopyalandı. - -# categories page -categories: - category_measure: kategori - post_measure: gönderi diff --git a/_data/locales/uk-UA.yml b/_data/locales/uk-UA.yml deleted file mode 100644 index 8fef52e..0000000 --- a/_data/locales/uk-UA.yml +++ /dev/null @@ -1,77 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Публікація - category: Категорія - tag: Тег - -# The tabs of sidebar -tabs: - # format: : - home: Домашня сторінка - categories: Категорії - tags: Теги - archives: Архів - about: Про сайт - -# the text displayed in the search bar & search results -search: - hint: пошук - cancel: Скасувати - no_results: Ох! Нічого не знайдено. - -panel: - lastmod: Нещодавно оновлено - trending_tags: Популярні теги - toc: Зміст - -copyright: - # Shown at the bottom of the post - license: - template: Публікація захищена ліцензією :LICENSE_NAME. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Деякі права захищено. - verbose: >- - Публікації на сайті захищено ліцензією Creative Commons Attribution 4.0 International (CC BY 4.0), - якщо інше не вказано в тексті. - -meta: Powered by :PLATFORM with :THEME theme - -not_found: - statement: Вибачте, це посилання вказує на ресурс, що не існує. - -notification: - update_found: Доступна нова версія вмісту. - update: Оновлення - -# ----- Posts related labels ----- - -post: - written_by: Автор - posted: Час публікації - updated: Оновлено - words: слів - pageview_measure: переглядів - read_time: - unit: хвилин - prompt: читання - relate_posts: Вас також може зацікавити - share: Поділитися - button: - next: Попередня публікація - previous: Наступна публікація - copy_code: - succeed: Успішно скопійовано! - share_link: - title: Скопіювати посилання - succeed: Посилання успішно скопійовано! - -# categories page -categories: - category_measure: категорії - post_measure: публікації diff --git a/_data/locales/vi-VN.yml b/_data/locales/vi-VN.yml deleted file mode 100644 index 6c2ceff..0000000 --- a/_data/locales/vi-VN.yml +++ /dev/null @@ -1,76 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: Bài viết - category: Danh mục - tag: Thẻ - -# The tabs of sidebar -tabs: - # format: : - home: Trang chủ - categories: Các danh mục - tags: Các thẻ - archives: Lưu trữ - about: Giới thiệu - -# the text displayed in the search bar & search results -search: - hint: tìm kiếm - cancel: Hủy - no_results: Không có kết quả tìm kiếm. - -panel: - lastmod: Mới cập nhật - trending_tags: Các thẻ thịnh hành - toc: Mục lục - -copyright: - # Shown at the bottom of the post - license: - template: Bài viết này được cấp phép bởi tác giả theo giấy phép :LICENSE_NAME. - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: Một số quyền được bảo lưu. - verbose: >- - Trừ khi có ghi chú khác, các bài viết đăng trên trang này được cấp phép bởi tác giả theo giấy phép Creative Commons Attribution 4.0 International (CC BY 4.0). - -meta: Trang web này được tạo bởi :PLATFORM với chủ đề :THEME - -not_found: - statement: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại. - -notification: - update_found: Đã có phiên bản mới của nội dung. - update: Cập nhật - -# ----- Posts related labels ----- - -post: - written_by: Viết bởi - posted: Đăng lúc - updated: Cập nhật lúc - words: từ - pageview_measure: lượt xem - read_time: - unit: phút - prompt: đọc - relate_posts: Bài viết liên quan - share: Chia sẻ - button: - next: Mới hơn - previous: Cũ hơn - copy_code: - succeed: Đã sao chép! - share_link: - title: Sao chép đường dẫn - succeed: Đã sao chép đường dẫn thành công! - -# categories page -categories: - category_measure: danh mục - post_measure: bài viết diff --git a/_data/locales/zh-CN.yml b/_data/locales/zh-CN.yml deleted file mode 100644 index 5c13410..0000000 --- a/_data/locales/zh-CN.yml +++ /dev/null @@ -1,83 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: 文章 - category: 分类 - tag: 标签 - -# The tabs of sidebar -tabs: - # format: : - home: 首页 - categories: 分类 - tags: 标签 - archives: 归档 - about: 关于 - -# the text displayed in the search bar & search results -search: - hint: 搜索 - cancel: 取消 - no_results: 搜索结果为空 - -panel: - lastmod: 最近更新 - trending_tags: 热门标签 - toc: 文章内容 - -copyright: - # Shown at the bottom of the post - license: - template: 本文由作者按照 :LICENSE_NAME 进行授权 - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: 保留部分权利。 - verbose: >- - 除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。 - -meta: 本站采用 :PLATFORM 主题 :THEME - -not_found: - statement: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。 - -notification: - update_found: 发现新版本的内容。 - update: 更新 - -# ----- Posts related labels ----- - -post: - written_by: 作者 - posted: 发表于 - updated: 更新于 - words: 字 - pageview_measure: 次浏览 - read_time: - unit: 分钟 - prompt: 阅读 - relate_posts: 相关文章 - share: 分享 - button: - next: 下一篇 - previous: 上一篇 - copy_code: - succeed: 已复制! - share_link: - title: 分享链接 - succeed: 链接已复制! - -# Date time format. -# See: , -df: - post: - strftime: "%Y/%m/%d" - dayjs: "YYYY/MM/DD" - -# categories page -categories: - category_measure: 个分类 - post_measure: 篇文章 diff --git a/_data/locales/zh-TW.yml b/_data/locales/zh-TW.yml deleted file mode 100644 index 33a4330..0000000 --- a/_data/locales/zh-TW.yml +++ /dev/null @@ -1,83 +0,0 @@ -# The layout text of site - -# ----- Commons label ----- - -layout: - post: 文章 - category: 分類 - tag: 標籤 - -# The tabs of sidebar -tabs: - # format: : - home: 首頁 - categories: 分類 - tags: 標籤 - archives: 封存 - about: 關於 - -# the text displayed in the search bar & search results -search: - hint: 搜尋 - cancel: 取消 - no_results: 沒有搜尋結果 - -panel: - lastmod: 最近更新 - trending_tags: 熱門標籤 - toc: 文章摘要 - -copyright: - # Shown at the bottom of the post - license: - template: 本文章以 :LICENSE_NAME 授權 - name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ - - # Displayed in the footer - brief: 保留部份權利。 - verbose: >- - 除非另有說明,否則本網誌的文章均由作者按照姓名標示 4.0 國際 (CC BY 4.0) 授權條款進行授權。 - -meta: 本網站使用 :PLATFORM 產生,採用 :THEME 主題 - -not_found: - statement: 抱歉,您可能正在存取一個已被移動的 URL,或者它從未存在。 - -notification: - update_found: 發現新版本更新。 - update: 更新 - -# ----- Posts related labels ----- - -post: - written_by: 作者 - posted: 發布於 - updated: 更新於 - words: 字 - pageview_measure: 次瀏覽 - read_time: - unit: 分鐘 - prompt: 閱讀 - relate_posts: 相關文章 - share: 分享 - button: - next: 下一篇 - previous: 上一篇 - copy_code: - succeed: 已複製! - share_link: - title: 分享連結 - succeed: 已複製連結! - -# Date time format. -# See: , -df: - post: - strftime: "%Y/%m/%d" - dayjs: "YYYY/MM/DD" - -# categories page -categories: - category_measure: 個分類 - post_measure: 篇文章 diff --git a/_data/media.yml b/_data/media.yml deleted file mode 100644 index 9cd69b4..0000000 --- a/_data/media.yml +++ /dev/null @@ -1,18 +0,0 @@ -- extension: mp3 - mime_type: mpeg -- extension: mov - mime_type: quicktime -- extension: avi - mime_type: x-msvideo -- extension: mkv - mime_type: x-matroska -- extension: ogv - mime_type: ogg -- extension: weba - mime_type: webm -- extension: 3gp - mime_type: 3gpp -- extension: 3g2 - mime_type: 3gpp2 -- extension: mid - mime_type: midi diff --git a/_data/origin/basic.yml b/_data/origin/basic.yml deleted file mode 100644 index 2d52982..0000000 --- a/_data/origin/basic.yml +++ /dev/null @@ -1,39 +0,0 @@ -# fonts - -webfonts: /assets/lib/fonts/main.css - -# Libraries - -toc: - css: /assets/lib/tocbot/tocbot.min.css - js: /assets/lib/tocbot/tocbot.min.js - -fontawesome: - css: /assets/lib/fontawesome-free/css/all.min.css - -search: - js: /assets/lib/simple-jekyll-search/simple-jekyll-search.min.js - -mermaid: - js: /assets/lib/mermaid/mermaid.min.js - -dayjs: - js: - common: /assets/lib/dayjs/dayjs.min.js - locale: /assets/lib/dayjs/locale/en.js - relativeTime: /assets/lib/dayjs/plugin/relativeTime.js - localizedFormat: /assets/lib/dayjs/plugin/localizedFormat.js - -glightbox: - css: /assets/lib/glightbox/glightbox.min.css - js: /assets/lib/glightbox/glightbox.min.js - -lazy-polyfill: - css: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.min.css - js: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.umd.min.js - -clipboard: - js: /assets/lib/clipboard/clipboard.min.js - -mathjax: - js: /assets/lib/mathjax/tex-chtml.js diff --git a/_data/origin/cors.yml b/_data/origin/cors.yml deleted file mode 100644 index afdb3d9..0000000 --- a/_data/origin/cors.yml +++ /dev/null @@ -1,54 +0,0 @@ -# Resource Hints -resource_hints: - - url: https://fonts.googleapis.com - links: - - rel: preconnect - - rel: dns-prefetch - - url: https://fonts.gstatic.com - links: - - rel: preconnect - opts: [crossorigin] - - rel: dns-prefetch - - url: https://cdn.jsdelivr.net - links: - - rel: preconnect - - rel: dns-prefetch - -# Web Fonts -webfonts: https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Source+Sans+Pro:wght@400;600;700;900&display=swap - -# Libraries - -toc: - css: https://cdn.jsdelivr.net/npm/tocbot@4.29.0/dist/tocbot.min.css - js: https://cdn.jsdelivr.net/npm/tocbot@4.29.0/dist/tocbot.min.js - -fontawesome: - css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/all.min.css - -search: - js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js - -mermaid: - js: https://cdn.jsdelivr.net/npm/mermaid@11.0.2/dist/mermaid.min.js - -dayjs: - js: - common: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js - locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/locale/:LOCALE.js - relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/relativeTime.js - localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/localizedFormat.js - -glightbox: - css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css - js: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/js/glightbox.min.js - -lazy-polyfill: - css: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.min.css - js: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.umd.min.js - -clipboard: - js: https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js - -mathjax: - js: https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-chtml.js diff --git a/_data/share.yml b/_data/share.yml deleted file mode 100644 index 98649fd..0000000 --- a/_data/share.yml +++ /dev/null @@ -1,50 +0,0 @@ -# Sharing options at the bottom of the post. -# Icons from - -platforms: [] - # - type: Twitter - # icon: "fa-brands fa-square-x-twitter" - # link: "https://twitter.com/intent/tweet?text=TITLE&url=URL" - - # - type: Facebook - # icon: "fab fa-facebook-square" - # link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL" - - # - type: Telegram - # icon: "fab fa-telegram" - # link: "https://t.me/share/url?url=URL&text=TITLE" - - # Uncomment below if you need to. - # - # - type: Linkedin - # icon: "fab fa-linkedin" - # link: "https://www.linkedin.com/sharing/share-offsite/?url=URL" - # - # - type: Weibo - # icon: "fab fa-weibo" - # link: "https://service.weibo.com/share/share.php?title=TITLE&url=URL" - # - # - type: Mastodon - # icon: "fa-brands fa-mastodon" - # # See: https://github.com/justinribeiro/share-to-mastodon#properties - # instances: - # - label: mastodon.social - # link: "https://mastodon.social/" - # - label: mastodon.online - # link: "https://mastodon.online/" - # - label: fosstodon.org - # link: "https://fosstodon.org/" - # - label: photog.social - # link: "https://photog.social/" - # - # - type: Bluesky - # icon: "fa-brands fa-bluesky" - # link: "https://bsky.app/intent/compose?text=TITLE%20URL" - # - # - type: Reddit - # icon: "fa-brands fa-square-reddit" - # link: "https://www.reddit.com/submit?url=URL&title=TITLE" - # - # - type: Threads - # icon: "fa-brands fa-square-threads" - # link: "https://www.threads.net/intent/post?text=TITLE%20URL" diff --git a/_includes/analytics/cloudflare.html b/_includes/analytics/cloudflare.html deleted file mode 100644 index 1eeb1a9..0000000 --- a/_includes/analytics/cloudflare.html +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/_includes/analytics/fathom.html b/_includes/analytics/fathom.html deleted file mode 100644 index 4b603d3..0000000 --- a/_includes/analytics/fathom.html +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/_includes/analytics/goatcounter.html b/_includes/analytics/goatcounter.html deleted file mode 100644 index 3867fdb..0000000 --- a/_includes/analytics/goatcounter.html +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/_includes/analytics/google.html b/_includes/analytics/google.html deleted file mode 100644 index d0aac65..0000000 --- a/_includes/analytics/google.html +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/_includes/analytics/matomo.html b/_includes/analytics/matomo.html deleted file mode 100644 index 72b2c46..0000000 --- a/_includes/analytics/matomo.html +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/_includes/analytics/umami.html b/_includes/analytics/umami.html deleted file mode 100644 index bfcb1d0..0000000 --- a/_includes/analytics/umami.html +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/_includes/comments.html b/_includes/comments.html deleted file mode 100644 index fef135f..0000000 --- a/_includes/comments.html +++ /dev/null @@ -1,5 +0,0 @@ - -{% if page.comments and site.comments.provider %} - {% capture path %}comments/{{ site.comments.provider }}.html{% endcapture %} - {% include {{ path }} %} -{% endif %} diff --git a/_includes/comments/disqus.html b/_includes/comments/disqus.html deleted file mode 100644 index 2b889a4..0000000 --- a/_includes/comments/disqus.html +++ /dev/null @@ -1,50 +0,0 @@ - - -
-

Comments powered by Disqus.

-
- - diff --git a/_includes/comments/giscus.html b/_includes/comments/giscus.html deleted file mode 100644 index f9becfe..0000000 --- a/_includes/comments/giscus.html +++ /dev/null @@ -1,71 +0,0 @@ - - diff --git a/_includes/comments/utterances.html b/_includes/comments/utterances.html deleted file mode 100644 index 5dd78ed..0000000 --- a/_includes/comments/utterances.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - diff --git a/_includes/datetime.html b/_includes/datetime.html deleted file mode 100644 index 9f954b6..0000000 --- a/_includes/datetime.html +++ /dev/null @@ -1,20 +0,0 @@ - - -{% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %} -{% assign df_dayjs = site.data.locales[include.lang].df.post.dayjs | default: 'DD/MM/YYYY' %} - - diff --git a/_includes/embed/audio.html b/_includes/embed/audio.html deleted file mode 100644 index cf928a7..0000000 --- a/_includes/embed/audio.html +++ /dev/null @@ -1,35 +0,0 @@ -{% assign src = include.src | strip %} -{% assign title = include.title | strip %} -{% assign types = include.types | default: '' | strip | split: '|' %} - -{% unless src contains '://' %} - {%- capture src -%} - {% include media-url.html src=src subpath=page.media_subpath %} - {%- endcapture -%} -{% endunless %} - -

- - {% if title %} - {{ title }} - {% endif %} -

diff --git a/_includes/embed/bilibili.html b/_includes/embed/bilibili.html deleted file mode 100644 index 0aa5552..0000000 --- a/_includes/embed/bilibili.html +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/_includes/embed/twitch.html b/_includes/embed/twitch.html deleted file mode 100644 index ed5ec83..0000000 --- a/_includes/embed/twitch.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/_includes/embed/video.html b/_includes/embed/video.html deleted file mode 100644 index 9b6918f..0000000 --- a/_includes/embed/video.html +++ /dev/null @@ -1,59 +0,0 @@ -{% assign video_url = include.src %} -{% assign title = include.title %} -{% assign poster_url = include.poster %} -{% assign types = include.types | default: '' | strip | split: '|' %} - -{% unless video_url contains '://' %} - {%- capture video_url -%} - {% include media-url.html src=video_url subpath=page.media_subpath %} - {%- endcapture -%} -{% endunless %} - -{% if poster_url %} - {% unless poster_url contains '://' %} - {%- capture poster_url -%} - {% include media-url.html src=poster_url subpath=page.media_subpath %} - {%- endcapture -%} - {% endunless %} - {% assign poster = 'poster="' | append: poster_url | append: '"' %} -{% endif %} - -{% assign attributes = 'controls' %} - -{% if include.autoplay %} - {% assign attributes = attributes | append: ' ' | append: 'autoplay' %} -{% endif %} - -{% if include.loop %} - {% assign attributes = attributes | append: ' ' | append: 'loop' %} -{% endif %} - -{% if include.muted %} - {% assign attributes = attributes | append: ' ' | append: 'muted' %} -{% endif %} - -

- - {% if title %} - {{ title }} - {% endif %} -

diff --git a/_includes/embed/youtube.html b/_includes/embed/youtube.html deleted file mode 100644 index 8f08002..0000000 --- a/_includes/embed/youtube.html +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/_includes/favicons.html b/_includes/favicons.html deleted file mode 100644 index 957c933..0000000 --- a/_includes/favicons.html +++ /dev/null @@ -1,19 +0,0 @@ - - -{% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %} - - - - -{% if site.pwa.enabled %} - -{% endif %} - - - - - - diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index 1ba9b63..0000000 --- a/_includes/footer.html +++ /dev/null @@ -1,49 +0,0 @@ - - -
-

- {{- '©' }} - - - {% if site.social.links %} - {{ site.social.name }}. - {% else %} - {{ site.social.name }}. - {% endif %} - - {% if site.data.locales[include.lang].copyright.brief %} - - {{- site.data.locales[include.lang].copyright.brief -}} - - {% endif %} -

- -

- {%- capture _platform -%} - Jekyll - {%- endcapture -%} - - {%- capture _theme -%} - Chirpy - {%- endcapture -%} - - {{ site.data.locales[include.lang].meta | replace: ':PLATFORM', _platform | replace: ':THEME', _theme }} -

-
diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index af3acdb..0000000 --- a/_includes/head.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - {%- capture seo_tags -%} - {% seo title=false %} - {%- endcapture -%} - - - - {% if page.image %} - {% assign src = page.image.path | default: page.image %} - - {% unless src contains '://' %} - {%- capture img_url -%} - {% include media-url.html src=src subpath=page.media_subpath absolute=true %} - {%- endcapture -%} - - {%- capture old_url -%}{{ src | absolute_url }}{%- endcapture -%} - {%- capture new_url -%}{{ img_url }}{%- endcapture -%} - - {% assign seo_tags = seo_tags | replace: old_url, new_url %} - {% endunless %} - - {% elsif site.social_preview_image %} - {%- capture img_url -%} - {% include media-url.html src=site.social_preview_image absolute=true %} - {%- endcapture -%} - - {%- capture og_image -%} - - {%- endcapture -%} - - {%- capture twitter_image -%} - - - {%- endcapture -%} - - {% assign old_meta_clip = '' %} - {% assign new_meta_clip = og_image | append: twitter_image %} - {% assign seo_tags = seo_tags | replace: old_meta_clip, new_meta_clip %} - {% endif %} - - {{ seo_tags }} - - - {%- unless page.layout == 'home' -%} - {{ page.title | append: ' | ' }} - {%- endunless -%} - {{ site.title }} - - - {% include_cached favicons.html %} - - - {% unless site.assets.self_host.enabled %} - {% for hint in site.data.origin.cors.resource_hints %} - {% for link in hint.links %} - - {% endfor %} - {% endfor %} - {% endunless %} - - - {% unless jekyll.environment == 'production' %} - - {% endunless %} - - - - - - - - - - - - - {% if site.toc and page.toc %} - - {% endif %} - - {% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %} - - {% endif %} - - {% if page.layout == 'page' or page.layout == 'post' %} - - - {% endif %} - - - - {% unless site.theme_mode %} - {% include mode-toggle.html %} - {% endunless %} - - {% include metadata-hook.html %} - diff --git a/_includes/js-selector.html b/_includes/js-selector.html deleted file mode 100644 index 4d77d06..0000000 --- a/_includes/js-selector.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -{% assign urls = site.data.origin[type].search.js %} - - - -{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %} - {% assign urls = urls | append: ',' | append: site.data.origin[type]['lazy-polyfill'].js %} - - {% unless page.layout == 'home' %} - - {% assign urls = urls - | append: ',' - | append: site.data.origin[type].glightbox.js - | append: ',' - | append: site.data.origin[type].clipboard.js - %} - {% endunless %} -{% endif %} - -{% if page.layout == 'home' - or page.layout == 'post' - or page.layout == 'archives' - or page.layout == 'category' - or page.layout == 'tag' -%} - {% assign locale = include.lang | split: '-' | first %} - - {% assign urls = urls - | append: ',' - | append: site.data.origin[type].dayjs.js.common - | append: ',' - | append: site.data.origin[type].dayjs.js.locale - | replace: ':LOCALE', locale - | append: ',' - | append: site.data.origin[type].dayjs.js.relativeTime - | append: ',' - | append: site.data.origin[type].dayjs.js.localizedFormat - %} -{% endif %} - -{% if page.content contains ' - -{% if page.math %} - - - - -{% endif %} - - -{% if page.layout == 'post' %} - {% assign provider = site.pageviews.provider %} - - {% if provider and provider != empty %} - {% case provider %} - {% when 'goatcounter' %} - {% if site.analytics[provider].id != empty and site.analytics[provider].id %} - {% include pageviews/{{ provider }}.html %} - {% endif %} - {% endcase %} - {% endif %} -{% endif %} - -{% if page.mermaid %} - {% include mermaid.html %} -{% endif %} - -{% if jekyll.environment == 'production' %} - - {% if site.pwa.enabled %} - - {% endif %} - - - {% for analytics in site.analytics %} - {% capture str %}{{ analytics }}{% endcapture %} - {% assign type = str | split: '{' | first %} - {% if site.analytics[type].id and site.analytics[type].id != empty %} - {% include analytics/{{ type }}.html %} - {% endif %} - {% endfor %} -{% endif %} diff --git a/_includes/jsdelivr-combine.html b/_includes/jsdelivr-combine.html deleted file mode 100644 index cffa699..0000000 --- a/_includes/jsdelivr-combine.html +++ /dev/null @@ -1,26 +0,0 @@ -{% assign urls = include.urls | split: ',' %} - -{% assign combined_urls = nil %} - -{% assign domain = 'https://cdn.jsdelivr.net/' %} - -{% for url in urls %} - {% if url contains domain %} - {% assign url_snippet = url | slice: domain.size, url.size %} - - {% if combined_urls %} - {% assign combined_urls = combined_urls | append: ',' | append: url_snippet %} - {% else %} - {% assign combined_urls = domain | append: 'combine/' | append: url_snippet %} - {% endif %} - - {% elsif url contains '//' %} - - {% else %} - - {% endif %} -{% endfor %} - -{% if combined_urls %} - -{% endif %} diff --git a/_includes/lang.html b/_includes/lang.html deleted file mode 100644 index 34b50df..0000000 --- a/_includes/lang.html +++ /dev/null @@ -1,10 +0,0 @@ -{% comment %} - Detect appearance language and return it through variable "lang" -{% endcomment %} -{% if site.data.locales[page.lang] %} - {% assign lang = page.lang %} -{% elsif site.data.locales[site.lang] %} - {% assign lang = site.lang %} -{% else %} - {% assign lang = 'en' %} -{% endif %} diff --git a/_includes/language-alias.html b/_includes/language-alias.html deleted file mode 100644 index abfa7ba..0000000 --- a/_includes/language-alias.html +++ /dev/null @@ -1,70 +0,0 @@ -{% comment %} - - Convert the alias of the syntax language to the official name - - See: - -{% endcomment %} - -{% assign _lang = include.language | default: '' %} - -{% case _lang %} - {% when 'actionscript', 'as', 'as3' %} - {{ 'ActionScript' }} - {% when 'applescript' %} - {{ 'AppleScript' }} - {% when 'brightscript', 'bs', 'brs' %} - {{ 'BrightScript' }} - {% when 'cfscript', 'cfc' %} - {{ 'CFScript' }} - {% when 'coffeescript', 'coffee', 'coffee-script' %} - {{ 'CoffeeScript' }} - {% when 'cs', 'csharp' %} - {{ 'C#' }} - {% when 'erl' %} - {{ 'Erlang' }} - {% when 'graphql' %} - {{ 'GraphQL' }} - {% when 'haskell', 'hs' %} - {{ 'Haskell' }} - {% when 'javascript', 'js' %} - {{ 'JavaScript' }} - {% when 'make', 'mf', 'gnumake', 'bsdmake' %} - {{ 'Makefile' }} - {% when 'md', 'mkd' %} - {{ 'Markdown' }} - {% when 'm' %} - {{ 'Matlab' }} - {% when 'objective_c', 'objc', 'obj-c', 'obj_c', 'objectivec' %} - {{ 'Objective-C' }} - {% when 'perl', 'pl' %} - {{ 'Perl' }} - {% when 'php','php3','php4','php5' %} - {{ 'PHP' }} - {% when 'py' %} - {{ 'Python' }} - {% when 'rb' %} - {{ 'Ruby' }} - {% when 'rs','no_run','ignore','should_panic' %} - {{ 'Rust' }} - {% when 'bash', 'zsh', 'ksh', 'sh' %} - {{ 'Shell' }} - {% when 'st', 'squeak' %} - {{ 'Smalltalk' }} - {% when 'tex'%} - {{ 'TeX' }} - {% when 'latex' %} - {{ 'LaTex' }} - {% when 'ts', 'typescript' %} - {{ 'TypeScript' }} - {% when 'vb', 'visualbasic' %} - {{ 'Visual Basic' }} - {% when 'vue', 'vuejs' %} - {{ 'Vue.js' }} - {% when 'yml' %} - {{ 'YAML' }} - {% when 'css', 'html', 'scss', 'ssh', 'toml', 'xml', 'yaml', 'json' %} - {{ _lang | upcase }} - {% else %} - {{ _lang | capitalize }} -{% endcase %} diff --git a/_includes/media-url.html b/_includes/media-url.html deleted file mode 100644 index ea41075..0000000 --- a/_includes/media-url.html +++ /dev/null @@ -1,37 +0,0 @@ -{%- comment -%} - Generate media resource final URL based on `site.cdn`, `page.media_subpath` - - Arguments: - src - required, basic media resources path - subpath - optional, relative path of media resources - absolute - optional, boolean, if true, generate absolute URL - - Return: - media resources URL -{%- endcomment -%} - -{% assign url = include.src %} - -{%- if url -%} - {% unless url contains ':' %} - {%- comment -%} Add media resources subpath prefix {%- endcomment -%} - {% assign url = include.subpath | default: '' | append: '/' | append: url %} - - {%- comment -%} Prepend CND URL {%- endcomment -%} - {% if site.cdn %} - {% assign url = site.cdn | append: '/' | append: url %} - {% endif %} - - {% assign url = url | replace: '///', '/' | replace: '//', '/' | replace: ':/', '://' %} - - {% unless url contains '://' %} - {% if include.absolute %} - {% assign url = site.url | append: site.baseurl | append: url %} - {% else %} - {% assign url = site.baseurl | append: url %} - {% endif %} - {% endunless %} - {% endunless %} -{%- endif -%} - -{{- url -}} diff --git a/_includes/mermaid.html b/_includes/mermaid.html deleted file mode 100644 index a3a83ed..0000000 --- a/_includes/mermaid.html +++ /dev/null @@ -1,62 +0,0 @@ - - diff --git a/_includes/metadata-hook.html b/_includes/metadata-hook.html deleted file mode 100644 index fd7e9bd..0000000 --- a/_includes/metadata-hook.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_includes/mode-toggle.html b/_includes/mode-toggle.html deleted file mode 100644 index 113ec37..0000000 --- a/_includes/mode-toggle.html +++ /dev/null @@ -1,116 +0,0 @@ - - - diff --git a/_includes/no-linenos.html b/_includes/no-linenos.html deleted file mode 100644 index 8500693..0000000 --- a/_includes/no-linenos.html +++ /dev/null @@ -1,10 +0,0 @@ -{% comment %} - Remove the line number of the code snippet. -{% endcomment %} - -{% assign content = include.content %} - -{% if content contains '
' %}
-  {% assign content = content | replace: '
', '' %}
-{% endif %}
diff --git a/_includes/notification.html b/_includes/notification.html
deleted file mode 100644
index 80049b0..0000000
--- a/_includes/notification.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
diff --git a/_includes/origin-type.html b/_includes/origin-type.html
deleted file mode 100644
index 7f72012..0000000
--- a/_includes/origin-type.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{% comment %} Site static assets origin type {% endcomment %}
-
-{% assign type = 'cors' %}
-
-{% if site.assets.self_host.enabled %}
-  {% if site.assets.self_host.env %}
-    {% if site.assets.self_host.env == jekyll.environment %}
-      {% assign type = 'basic' %}
-    {% endif %}
-  {% else %}
-    {% assign type = 'basic' %}
-  {% endif %}
-{% endif %}
diff --git a/_includes/pageviews/goatcounter.html b/_includes/pageviews/goatcounter.html
deleted file mode 100644
index e62fd69..0000000
--- a/_includes/pageviews/goatcounter.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
diff --git a/_includes/post-description.html b/_includes/post-description.html
deleted file mode 100644
index 6c40036..0000000
--- a/_includes/post-description.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{%- comment -%}
-  Get post description or generate it from the post content.
-{%- endcomment -%}
-
-{%- assign max_length = include.max_length | default: 200 -%}
-
-{%- capture description -%}
-{%- if post.description -%}
-  {{- post.description -}}
-{%- else -%}
-  {%- include no-linenos.html content=post.content -%}
-  {{- content | markdownify | strip_html -}}
-{%- endif -%}
-{%- endcapture -%}
-
-{{- description | strip | truncate: max_length | escape -}}
diff --git a/_includes/post-nav.html b/_includes/post-nav.html
deleted file mode 100644
index 736bec3..0000000
--- a/_includes/post-nav.html
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
diff --git a/_includes/post-paginator.html b/_includes/post-paginator.html
deleted file mode 100644
index c74e978..0000000
--- a/_includes/post-paginator.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
diff --git a/_includes/post-sharing.html b/_includes/post-sharing.html
deleted file mode 100644
index d894199..0000000
--- a/_includes/post-sharing.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
diff --git a/_includes/read-time.html b/_includes/read-time.html
deleted file mode 100644
index 9952410..0000000
--- a/_includes/read-time.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-{% assign words = include.content | strip_html | number_of_words: 'auto' %}
-
-
-
-{% assign wpm = 180 %}
-{% assign min_time = 1 %}
-
-{% assign read_time = words | divided_by: wpm %}
-
-{% unless read_time > 0 %}
-  {% assign read_time = min_time %}
-{% endunless %}
-
-{% capture read_prompt %}
-  {{- site.data.locales[include.lang].post.read_time.prompt -}}
-{% endcapture %}
-
-
-
-  
-    {{- read_time -}}
-    {{ ' ' }}
-    {{- site.data.locales[include.lang].post.read_time.unit -}}
-  
-  {%- if include.prompt -%}
-    {%- assign _prompt_words = read_prompt | number_of_words: 'auto' -%}
-    {%- unless _prompt_words > 1 -%}{{ ' ' }}{%- endunless -%}
-    {{ read_prompt }}
-  {%- endif -%}
-
diff --git a/_includes/refactor-content.html b/_includes/refactor-content.html
deleted file mode 100644
index 8d298cd..0000000
--- a/_includes/refactor-content.html
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-{% assign _content = include.content %}
-
-
-
-{% if _content contains '', ''
-    | replace: '
', '' - | replace: '
', '
' - %} -{% endif %} - - - -{% if _content contains '
' %}
-  {% assign _content = _content
-    | replace: '
', '' - %} -{% endif %} - - - -{% if _content contains '', - '' - | replace: '', - '' - %} -{% endif %} - - - -{% assign IMG_TAG = '' | first %} - {% assign _right = _img_snippet | remove: _left %} - - {% unless _left contains 'src=' %} - {% continue %} - {% endunless %} - - {% assign _left = _left | remove: ' /' | replace: ' w=', ' width=' | replace: ' h=', ' height=' %} - {% assign _attrs = _left | split: '" ' %} - - {% assign _src = null %} - {% assign _lqip = null %} - {% assign _class = null %} - - {% for _attr in _attrs %} - {% unless _attr contains '=' %} - {% continue %} - {% endunless %} - - {% assign _pair = _attr | split: '="' %} - {% capture _key %}{{ _pair | first }}{% endcapture %} - {% capture _value %}{{ _pair | last | remove: '"' }}{% endcapture %} - - {% case _key %} - {% when 'src' %} - {% assign _src = _value %} - {% when 'lqip' %} - {% assign _lqip = _value %} - {% when 'class' %} - {% assign _class = _value %} - {% endcase %} - {% endfor %} - - - {% if _class %} - {% capture _old_class %}class="{{ _class }}"{% endcapture %} - {% assign _left = _left | remove: _old_class %} - {% endif %} - - {% assign _final_src = null %} - {% assign _lazyload = true %} - - {%- capture _img_url -%} - {% include media-url.html src=_src subpath=page.media_subpath %} - {%- endcapture -%} - - {% assign _path_prefix = _img_url | remove: _src %} - - {% unless _src contains '//' %} - {% assign _final_src = _path_prefix | append: _src %} - {% assign _src_alt = 'src="' | append: _path_prefix %} - {% assign _left = _left | replace: 'src="', _src_alt %} - {% endunless %} - - {% if _lqip %} - {% assign _lazyload = false %} - {% assign _class = _class | append: ' blur' %} - - {% unless _lqip contains 'data:' %} - {% assign _lqip_alt = 'lqip="' | append: _path_prefix %} - {% assign _left = _left | replace: 'lqip="', _lqip_alt %} - {% endunless %} - - - {% assign _left = _left | replace: 'src=', 'data-src=' | replace: ' lqip=', ' data-lqip="true" src=' %} - - {% else %} - {% assign _class = _class | append: ' shimmer' %} - {% endif %} - - - {% if _lazyload %} - {% assign _left = _left | append: ' loading="lazy"' %} - {% endif %} - - {% if page.layout == 'home' %} - - {% assign _wrapper_start = '
' %} - - {% assign _img_content = _img_content | append: _wrapper_start %} - {% assign _right = _right | prepend: '>` is wrapped by `` --> - {% assign _parent = _right | slice: 1, 4 %} - - {% if _parent == '' %} - - {% assign _size = _img_content | size | minus: 1 %} - {% capture _class %} - class="img-link{% unless _lqip %} shimmer{% endunless %}" - {% endcapture %} - {% assign _img_content = _img_content | slice: 0, _size | append: _class | append: '>' %} - - {% else %} - - {% assign _wrapper_start = _final_src - | default: _src - | prepend: '' - %} - - {% assign _img_content = _img_content | append: _wrapper_start %} - {% assign _right = '> - {% assign _img_content = _img_content | append: IMG_TAG | append: _left | append: _right %} - {% endfor %} - - {% if _img_content %} - {% assign _content = _img_content %} - {% endif %} -{% endif %} - - - -{% if _content contains '
' %} - {% assign _code_spippets = _content | split: '
' %} - {% assign _new_content = '' %} - - {% for _snippet in _code_spippets %} - {% if forloop.last %} - {% assign _new_content = _new_content | append: _snippet %} - - {% else %} - {% assign _left = _snippet | split: '><' | last %} - - {% if _left contains 'file="' %} - {% assign _label_text = _left | split: 'file="' | last | split: '"' | first %} - {% assign _label_icon = 'far fa-file-code fa-fw' %} - {% else %} - {% assign _lang = _left | split: 'language-' | last | split: ' ' | first %} - {% capture _label_text %}{% include language-alias.html language=_lang %}{% endcapture %} - {% assign _label_icon = 'fas fa-code fa-fw small' %} - {% endif %} - - {% capture _label %} - - {% endcapture %} - - {% assign _new_content = _new_content - | append: _snippet - | append: '
' - | append: _label - | append: '
' - | append: '
' - %} - {% endif %} - {% endfor %} - - {% assign _content = _new_content %} -{% endif %} - - - -{% assign heading_levels = '2,3,4,5' | split: ',' %} -{% assign _heading_content = _content %} - -{% for level in heading_levels %} - {% assign mark_start = '' - %} - - {% assign left = snippet | split: mark_end | first %} - {% assign right = snippet | slice: left.size, snippet.size %} - {% assign left = left | replace_first: '">', '">' | append: '' %} - - {% assign _new_content = _new_content | append: mark_start | append: left | append: anchor | append: right %} - {% endfor %} - - {% assign _heading_content = _new_content %} - {% endif %} -{% endfor %} - -{% assign _content = _heading_content %} - - -{{ _content }} diff --git a/_includes/related-posts.html b/_includes/related-posts.html deleted file mode 100644 index 37a295b..0000000 --- a/_includes/related-posts.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -{% assign TOTAL_SIZE = 3 %} - - -{% assign TAG_SCORE = 1 %} - - -{% assign CATEGORY_SCORE = 0.5 %} - -{% assign SEPARATOR = ':' %} - -{% assign match_posts = '' | split: '' %} - -{% for category in page.categories %} - {% assign match_posts = match_posts | push: site.categories[category] | uniq %} -{% endfor %} - -{% for tag in page.tags %} - {% assign match_posts = match_posts | push: site.tags[tag] | uniq %} -{% endfor %} - -{% assign match_posts = match_posts | reverse %} -{% assign last_index = match_posts.size | minus: 1 %} -{% assign score_list = '' | split: '' %} - -{% for i in (0..last_index) %} - {% assign post = match_posts[i] %} - - {% if post.url == page.url %} - {% continue %} - {% endif %} - - {% assign score = 0 %} - - {% for tag in post.tags %} - {% if page.tags contains tag %} - {% assign score = score | plus: TAG_SCORE %} - {% endif %} - {% endfor %} - - {% for category in post.categories %} - {% if page.categories contains category %} - {% assign score = score | plus: CATEGORY_SCORE %} - {% endif %} - {% endfor %} - - {% if score > 0 %} - {% capture score_item %}{{ score }}{{ SEPARATOR }}{{ i }}{% endcapture %} - {% assign score_list = score_list | push: score_item %} - {% endif %} -{% endfor %} - -{% assign index_list = '' | split: '' %} - -{% if score_list.size > 0 %} - {% assign score_list = score_list | sort | reverse %} - {% for entry in score_list limit: TOTAL_SIZE %} - {% assign index = entry | split: SEPARATOR | last %} - {% assign index_list = index_list | push: index %} - {% endfor %} -{% endif %} - -{% assign relate_posts = '' | split: '' %} - -{% for index in index_list %} - {% assign i = index | to_integer %} - {% assign relate_posts = relate_posts | push: match_posts[i] %} -{% endfor %} - -{% if relate_posts.size > 0 %} - - -{% endif %} diff --git a/_includes/search-loader.html b/_includes/search-loader.html deleted file mode 100644 index 2582580..0000000 --- a/_includes/search-loader.html +++ /dev/null @@ -1,47 +0,0 @@ - - -{% capture result_elem %} -
-
-

{title}

- -
-

{snippet}

-
-{% endcapture %} - -{% capture not_found %}

{{ site.data.locales[include.lang].search.no_results }}

{% endcapture %} - - diff --git a/_includes/search-results.html b/_includes/search-results.html deleted file mode 100644 index 00a3182..0000000 --- a/_includes/search-results.html +++ /dev/null @@ -1,10 +0,0 @@ - - -
-
-
- {% include_cached trending-tags.html %} -
-
-
-
diff --git a/_includes/sidebar.html b/_includes/sidebar.html deleted file mode 100644 index 569585f..0000000 --- a/_includes/sidebar.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - diff --git a/_includes/toc-status.html b/_includes/toc-status.html deleted file mode 100644 index 4b71cae..0000000 --- a/_includes/toc-status.html +++ /dev/null @@ -1,10 +0,0 @@ -{% comment %} - Determine TOC state and return it through variable "enable_toc" -{% endcomment %} - -{% assign enable_toc = false %} -{% if site.toc and page.toc %} - {% if page.content contains ' -

{{- site.data.locales[include.lang].panel.toc -}}

- - -{% endif %} diff --git a/_includes/topbar.html b/_includes/topbar.html deleted file mode 100644 index fd68d1f..0000000 --- a/_includes/topbar.html +++ /dev/null @@ -1,77 +0,0 @@ - - -
-
- - - - - -
- {% if page.layout == 'home' %} - {{- site.data.locales[include.lang].title | default: site.title -}} - {% elsif page.collection == 'tabs' or page.layout == 'page' %} - {%- capture tab_key -%}{{ page.url | split: '/' }}{%- endcapture -%} - {{- site.data.locales[include.lang].tabs[tab_key] | default: page.title -}} - {% else %} - {{- site.data.locales[include.lang].layout[page.layout] | default: page.layout | capitalize -}} - {% endif %} -
- - - - - - - - -
-
diff --git a/_includes/trending-tags.html b/_includes/trending-tags.html deleted file mode 100644 index 57369f0..0000000 --- a/_includes/trending-tags.html +++ /dev/null @@ -1,46 +0,0 @@ - - -{% assign MAX = 10 %} - -{% assign size_list = '' | split: '' %} -{% assign tag_list = '' | split: '' %} - -{% for tag in site.tags %} - {% assign size = tag | last | size %} - {% assign size_list = size_list | push: size %} - - {% assign tag_str = tag | first | append: '::' | append: size %} - {% assign tag_list = tag_list | push: tag_str %} -{% endfor %} - -{% assign size_list = size_list | sort | reverse %} - -{% assign tag_list = tag_list | sort_natural %} - -{% assign trending_tags = '' | split: '' %} - -{% for size in size_list limit: MAX %} - {% for tag_str in tag_list %} - {% assign tag = tag_str | split: '::' %} - {% assign tag_name = tag | first %} - {% assign tag_size = tag | last | plus: 0 %} - {% if tag_size == size %} - {% unless trending_tags contains tag_name %} - {% assign trending_tags = trending_tags | push: tag_name %} - {% break %} - {% endunless %} - {% endif %} - {% endfor %} -{% endfor %} - -{% if trending_tags.size > 0 %} -
-

{{- site.data.locales[include.lang].panel.trending_tags -}}

-
- {% for tag_name in trending_tags %} - {% assign url = tag_name | slugify | url_encode | prepend: '/tags/' | append: '/' %} - - {% endfor %} -
-
-{% endif %} diff --git a/_includes/update-list.html b/_includes/update-list.html deleted file mode 100644 index 93684c3..0000000 --- a/_includes/update-list.html +++ /dev/null @@ -1,40 +0,0 @@ - - -{% assign MAX_SIZE = 5 %} - -{% assign all_list = '' | split: '' %} - -{% for post in site.posts %} - {% assign datetime = post.last_modified_at | default: post.date %} - - {% capture elem %} - {{- datetime | date: "%Y%m%d%H%M%S" -}}::{{- forloop.index0 -}} - {% endcapture %} - - {% assign all_list = all_list | push: elem %} -{% endfor %} - -{% assign all_list = all_list | sort | reverse %} - -{% assign update_list = '' | split: '' %} - -{% for entry in all_list limit: MAX_SIZE %} - {% assign update_list = update_list | push: entry %} -{% endfor %} - -{% if update_list.size > 0 %} -
-

{{- site.data.locales[include.lang].panel.lastmod -}}

-
    - {% for item in update_list %} - {% assign index = item | split: '::' | last | plus: 0 %} - {% assign post = site.posts[index] %} - {% assign url = post.url | relative_url %} -
  • - {{ post.title }} -
  • - {% endfor %} -
-
- -{% endif %} diff --git a/_javascript/categories.js b/_javascript/categories.js deleted file mode 100644 index 15d8251..0000000 --- a/_javascript/categories.js +++ /dev/null @@ -1,7 +0,0 @@ -import { basic, initSidebar, initTopbar } from './modules/layouts'; -import { categoryCollapse } from './modules/plugins'; - -basic(); -initSidebar(); -initTopbar(); -categoryCollapse(); diff --git a/_javascript/commons.js b/_javascript/commons.js deleted file mode 100644 index 6a17fb9..0000000 --- a/_javascript/commons.js +++ /dev/null @@ -1,5 +0,0 @@ -import { basic, initSidebar, initTopbar } from './modules/layouts'; - -initSidebar(); -initTopbar(); -basic(); diff --git a/_javascript/home.js b/_javascript/home.js deleted file mode 100644 index ef22cb9..0000000 --- a/_javascript/home.js +++ /dev/null @@ -1,8 +0,0 @@ -import { basic, initSidebar, initTopbar } from './modules/layouts'; -import { initLocaleDatetime, loadImg } from './modules/plugins'; - -loadImg(); -initLocaleDatetime(); -initSidebar(); -initTopbar(); -basic(); diff --git a/_javascript/misc.js b/_javascript/misc.js deleted file mode 100644 index 52b4043..0000000 --- a/_javascript/misc.js +++ /dev/null @@ -1,7 +0,0 @@ -import { basic, initSidebar, initTopbar } from './modules/layouts'; -import { initLocaleDatetime } from './modules/plugins'; - -initSidebar(); -initTopbar(); -initLocaleDatetime(); -basic(); diff --git a/_javascript/modules/components/back-to-top.js b/_javascript/modules/components/back-to-top.js deleted file mode 100644 index 40d9cd1..0000000 --- a/_javascript/modules/components/back-to-top.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Reference: https://bootsnipp.com/snippets/featured/link-to-top-page - */ - -export function back2top() { - const btn = document.getElementById('back-to-top'); - - window.addEventListener('scroll', () => { - if (window.scrollY > 50) { - btn.classList.add('show'); - } else { - btn.classList.remove('show'); - } - }); - - btn.addEventListener('click', () => { - window.scrollTo({ top: 0 }); - }); -} diff --git a/_javascript/modules/components/category-collapse.js b/_javascript/modules/components/category-collapse.js deleted file mode 100644 index 0c53cb4..0000000 --- a/_javascript/modules/components/category-collapse.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Tab 'Categories' expand/close effect. - */ - -import 'bootstrap/js/src/collapse.js'; - -const childPrefix = 'l_'; -const parentPrefix = 'h_'; -const children = document.getElementsByClassName('collapse'); - -export function categoryCollapse() { - [...children].forEach((elem) => { - const id = parentPrefix + elem.id.substring(childPrefix.length); - const parent = document.getElementById(id); - - // collapse sub-categories - elem.addEventListener('hide.bs.collapse', () => { - if (parent) { - parent.querySelector('.far.fa-folder-open').className = - 'far fa-folder fa-fw'; - parent.querySelector('.fas.fa-angle-down').classList.add('rotate'); - parent.classList.remove('hide-border-bottom'); - } - }); - - // expand sub-categories - elem.addEventListener('show.bs.collapse', () => { - if (parent) { - parent.querySelector('.far.fa-folder').className = - 'far fa-folder-open fa-fw'; - parent.querySelector('.fas.fa-angle-down').classList.remove('rotate'); - parent.classList.add('hide-border-bottom'); - } - }); - }); -} diff --git a/_javascript/modules/components/clipboard.js b/_javascript/modules/components/clipboard.js deleted file mode 100644 index 9566e9d..0000000 --- a/_javascript/modules/components/clipboard.js +++ /dev/null @@ -1,143 +0,0 @@ -/** - * Clipboard functions - * - * Dependencies: - * clipboard.js (https://github.com/zenorocha/clipboard.js) - */ - -import Tooltip from 'bootstrap/js/src/tooltip'; - -const clipboardSelector = '.code-header>button'; - -const ICON_DEFAULT = 'far fa-clipboard'; -const ICON_SUCCESS = 'fas fa-check'; - -const ATTR_TIMEOUT = 'timeout'; -const ATTR_TITLE_SUCCEED = 'data-title-succeed'; -const ATTR_TITLE_ORIGIN = 'data-bs-original-title'; -const TIMEOUT = 2000; // in milliseconds - -function isLocked(node) { - if (node.hasAttribute(ATTR_TIMEOUT)) { - let timeout = node.getAttribute(ATTR_TIMEOUT); - if (Number(timeout) > Date.now()) { - return true; - } - } - - return false; -} - -function lock(node) { - node.setAttribute(ATTR_TIMEOUT, Date.now() + TIMEOUT); -} - -function unlock(node) { - node.removeAttribute(ATTR_TIMEOUT); -} - -function showTooltip(btn) { - const succeedTitle = btn.getAttribute(ATTR_TITLE_SUCCEED); - btn.setAttribute(ATTR_TITLE_ORIGIN, succeedTitle); - Tooltip.getInstance(btn).show(); -} - -function hideTooltip(btn) { - Tooltip.getInstance(btn).hide(); - btn.removeAttribute(ATTR_TITLE_ORIGIN); -} - -function setSuccessIcon(btn) { - const icon = btn.children[0]; - icon.setAttribute('class', ICON_SUCCESS); -} - -function resumeIcon(btn) { - const icon = btn.children[0]; - icon.setAttribute('class', ICON_DEFAULT); -} - -function setCodeClipboard() { - const clipboardList = document.querySelectorAll(clipboardSelector); - - if (clipboardList.length === 0) { - return; - } - - // Initial the clipboard.js object - const clipboard = new ClipboardJS(clipboardSelector, { - target: (trigger) => { - const codeBlock = trigger.parentNode.nextElementSibling; - return codeBlock.querySelector('code .rouge-code'); - } - }); - - [...clipboardList].map( - (elem) => - new Tooltip(elem, { - placement: 'left' - }) - ); - - clipboard.on('success', (e) => { - const trigger = e.trigger; - - e.clearSelection(); - - if (isLocked(trigger)) { - return; - } - - setSuccessIcon(trigger); - showTooltip(trigger); - lock(trigger); - - setTimeout(() => { - hideTooltip(trigger); - resumeIcon(trigger); - unlock(trigger); - }, TIMEOUT); - }); -} - -function setLinkClipboard() { - const btnCopyLink = document.getElementById('copy-link'); - - if (btnCopyLink === null) { - return; - } - - btnCopyLink.addEventListener('click', (e) => { - const target = e.target; - - if (isLocked(target)) { - return; - } - - // Copy URL to clipboard - navigator.clipboard.writeText(window.location.href).then(() => { - const defaultTitle = target.getAttribute(ATTR_TITLE_ORIGIN); - const succeedTitle = target.getAttribute(ATTR_TITLE_SUCCEED); - - // Switch tooltip title - target.setAttribute(ATTR_TITLE_ORIGIN, succeedTitle); - Tooltip.getInstance(target).show(); - - lock(target); - - setTimeout(() => { - target.setAttribute(ATTR_TITLE_ORIGIN, defaultTitle); - unlock(target); - }, TIMEOUT); - }); - }); - - btnCopyLink.addEventListener('mouseleave', (e) => { - Tooltip.getInstance(e.target).hide(); - }); -} - -export function initClipboard() { - setCodeClipboard(); - setLinkClipboard(); -} diff --git a/_javascript/modules/components/img-loading.js b/_javascript/modules/components/img-loading.js deleted file mode 100644 index 989d9e6..0000000 --- a/_javascript/modules/components/img-loading.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Setting up image lazy loading and LQIP switching - */ - -const ATTR_DATA_SRC = 'data-src'; -const ATTR_DATA_LQIP = 'data-lqip'; - -const cover = { - SHIMMER: 'shimmer', - BLUR: 'blur' -}; - -function removeCover(clzss) { - this.parentElement.classList.remove(clzss); -} - -function handleImage() { - if (!this.complete) { - return; - } - - if (this.hasAttribute(ATTR_DATA_LQIP)) { - removeCover.call(this, cover.BLUR); - } else { - removeCover.call(this, cover.SHIMMER); - } -} - -/** - * Switches the LQIP with the real image URL. - */ -function switchLQIP() { - const src = this.getAttribute(ATTR_DATA_SRC); - this.setAttribute('src', encodeURI(src)); - this.removeAttribute(ATTR_DATA_SRC); -} - -export function loadImg() { - const images = document.querySelectorAll('article img'); - - if (images.length === 0) { - return; - } - - images.forEach((img) => { - img.addEventListener('load', handleImage); - }); - - // Images loaded from the browser cache do not trigger the 'load' event - document.querySelectorAll('article img[loading="lazy"]').forEach((img) => { - if (img.complete) { - removeCover.call(img, cover.SHIMMER); - } - }); - - // LQIPs set by the data URI or WebP will not trigger the 'load' event, - // so manually convert the URI to the URL of a high-resolution image. - const lqips = document.querySelectorAll( - `article img[${ATTR_DATA_LQIP}="true"]` - ); - - if (lqips.length) { - lqips.forEach((lqip) => { - switchLQIP.call(lqip); - }); - } -} diff --git a/_javascript/modules/components/img-popup.js b/_javascript/modules/components/img-popup.js deleted file mode 100644 index ac12043..0000000 --- a/_javascript/modules/components/img-popup.js +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Set up image popup - * - * Dependencies: https://github.com/biati-digital/glightbox - */ - -const html = document.documentElement; -const lightImages = '.popup:not(.dark)'; -const darkImages = '.popup:not(.light)'; -let selector = lightImages; - -function updateImages(current, reverse) { - if (selector === lightImages) { - selector = darkImages; - } else { - selector = lightImages; - } - - if (reverse === null) { - reverse = GLightbox({ selector: `${selector}` }); - } - - [current, reverse] = [reverse, current]; -} - -export function imgPopup() { - if (document.querySelector('.popup') === null) { - return; - } - - const hasDualImages = !( - document.querySelector('.popup.light') === null && - document.querySelector('.popup.dark') === null - ); - - if ( - (html.hasAttribute('data-mode') && - html.getAttribute('data-mode') === 'dark') || - (!html.hasAttribute('data-mode') && - window.matchMedia('(prefers-color-scheme: dark)').matches) - ) { - selector = darkImages; - } - - let current = GLightbox({ selector: `${selector}` }); - - if (hasDualImages && document.getElementById('mode-toggle')) { - let reverse = null; - - window.addEventListener('message', (event) => { - if ( - event.source === window && - event.data && - event.data.direction === ModeToggle.ID - ) { - updateImages(current, reverse); - } - }); - } -} diff --git a/_javascript/modules/components/locale-datetime.js b/_javascript/modules/components/locale-datetime.js deleted file mode 100644 index eb75626..0000000 --- a/_javascript/modules/components/locale-datetime.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Update month/day to locale datetime - * - * Requirement: - */ - -/* A tool for locale datetime */ -class LocaleHelper { - static get attrTimestamp() { - return 'data-ts'; - } - - static get attrDateFormat() { - return 'data-df'; - } - - static get locale() { - return document.documentElement.getAttribute('lang').substring(0, 2); - } - - static getTimestamp(elem) { - return Number(elem.getAttribute(this.attrTimestamp)); // unix timestamp - } - - static getDateFormat(elem) { - return elem.getAttribute(this.attrDateFormat); - } -} - -export function initLocaleDatetime() { - dayjs.locale(LocaleHelper.locale); - dayjs.extend(window.dayjs_plugin_localizedFormat); - - document - .querySelectorAll(`[${LocaleHelper.attrTimestamp}]`) - .forEach((elem) => { - const date = dayjs.unix(LocaleHelper.getTimestamp(elem)); - const text = date.format(LocaleHelper.getDateFormat(elem)); - elem.textContent = text; - elem.removeAttribute(LocaleHelper.attrTimestamp); - elem.removeAttribute(LocaleHelper.attrDateFormat); - - // setup tooltips - if ( - elem.hasAttribute('data-bs-toggle') && - elem.getAttribute('data-bs-toggle') === 'tooltip' - ) { - // see: https://day.js.org/docs/en/display/format#list-of-localized-formats - const tooltipText = date.format('llll'); - elem.setAttribute('data-bs-title', tooltipText); - } - }); -} diff --git a/_javascript/modules/components/mode-watcher.js b/_javascript/modules/components/mode-watcher.js deleted file mode 100644 index 9eecd09..0000000 --- a/_javascript/modules/components/mode-watcher.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Add listener for theme mode toggle - */ -const toggle = document.getElementById('mode-toggle'); - -export function modeWatcher() { - if (!toggle) { - return; - } - - toggle.addEventListener('click', () => { - modeToggle.flipMode(); - }); -} diff --git a/_javascript/modules/components/search-display.js b/_javascript/modules/components/search-display.js deleted file mode 100644 index 40059ac..0000000 --- a/_javascript/modules/components/search-display.js +++ /dev/null @@ -1,110 +0,0 @@ -/** - * This script make #search-result-wrapper switch to unload or shown automatically. - */ - -const btnSbTrigger = document.getElementById('sidebar-trigger'); -const btnSearchTrigger = document.getElementById('search-trigger'); -const btnCancel = document.getElementById('search-cancel'); -const content = document.querySelectorAll('#main-wrapper>.container>.row'); -const topbarTitle = document.getElementById('topbar-title'); -const search = document.getElementById('search'); -const resultWrapper = document.getElementById('search-result-wrapper'); -const results = document.getElementById('search-results'); -const input = document.getElementById('search-input'); -const hints = document.getElementById('search-hints'); - -// CSS class names -const LOADED = 'd-block'; -const UNLOADED = 'd-none'; -const FOCUS = 'input-focus'; -const FLEX = 'd-flex'; - -/* Actions in mobile screens (Sidebar hidden) */ -class MobileSearchBar { - static on() { - btnSbTrigger.classList.add(UNLOADED); - topbarTitle.classList.add(UNLOADED); - btnSearchTrigger.classList.add(UNLOADED); - search.classList.add(FLEX); - btnCancel.classList.add(LOADED); - } - - static off() { - btnCancel.classList.remove(LOADED); - search.classList.remove(FLEX); - btnSbTrigger.classList.remove(UNLOADED); - topbarTitle.classList.remove(UNLOADED); - btnSearchTrigger.classList.remove(UNLOADED); - } -} - -class ResultSwitch { - static resultVisible = false; - - static on() { - if (!this.resultVisible) { - resultWrapper.classList.remove(UNLOADED); - content.forEach((el) => { - el.classList.add(UNLOADED); - }); - this.resultVisible = true; - } - } - - static off() { - if (this.resultVisible) { - results.innerHTML = ''; - - if (hints.classList.contains(UNLOADED)) { - hints.classList.remove(UNLOADED); - } - - resultWrapper.classList.add(UNLOADED); - content.forEach((el) => { - el.classList.remove(UNLOADED); - }); - input.textContent = ''; - this.resultVisible = false; - } - } -} - -function isMobileView() { - return btnCancel.classList.contains(LOADED); -} - -export function displaySearch() { - btnSearchTrigger.addEventListener('click', () => { - MobileSearchBar.on(); - ResultSwitch.on(); - input.focus(); - }); - - btnCancel.addEventListener('click', () => { - MobileSearchBar.off(); - ResultSwitch.off(); - }); - - input.addEventListener('focus', () => { - search.classList.add(FOCUS); - }); - - input.addEventListener('focusout', () => { - search.classList.remove(FOCUS); - }); - - input.addEventListener('input', () => { - if (input.value === '') { - if (isMobileView()) { - hints.classList.remove(UNLOADED); - } else { - ResultSwitch.off(); - } - } else { - ResultSwitch.on(); - if (isMobileView()) { - hints.classList.add(UNLOADED); - } - } - }); -} diff --git a/_javascript/modules/components/sidebar.js b/_javascript/modules/components/sidebar.js deleted file mode 100644 index aed759e..0000000 --- a/_javascript/modules/components/sidebar.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Expand or close the sidebar in mobile screens. - */ - -const $sidebar = document.getElementById('sidebar'); -const $trigger = document.getElementById('sidebar-trigger'); -const $mask = document.getElementById('mask'); - -class SidebarUtil { - static #isExpanded = false; - - static toggle() { - this.#isExpanded = !this.#isExpanded; - document.body.toggleAttribute('sidebar-display', this.#isExpanded); - $sidebar.classList.toggle('z-2', this.#isExpanded); - $mask.classList.toggle('d-none', !this.#isExpanded); - } -} - -export function sidebarExpand() { - $trigger.onclick = $mask.onclick = () => SidebarUtil.toggle(); -} diff --git a/_javascript/modules/components/toc.js b/_javascript/modules/components/toc.js deleted file mode 100644 index e9086ee..0000000 --- a/_javascript/modules/components/toc.js +++ /dev/null @@ -1,33 +0,0 @@ -import { TocMobile as mobile } from './toc/toc-mobile'; -import { TocDesktop as desktop } from './toc/toc-desktop'; - -const desktopMode = matchMedia('(min-width: 1200px)'); - -function refresh(e) { - if (e.matches) { - if (mobile.popupOpened) { - mobile.hidePopup(); - } - - desktop.refresh(); - } else { - mobile.refresh(); - } -} - -function init() { - if (document.querySelector('main>article[data-toc="true"]') === null) { - return; - } - - // Avoid create multiple instances of Tocbot. Ref: - if (desktopMode.matches) { - desktop.init(); - } else { - mobile.init(); - } - - desktopMode.onchange = refresh; -} - -export { init as initToc }; diff --git a/_javascript/modules/components/toc/toc-desktop.js b/_javascript/modules/components/toc/toc-desktop.js deleted file mode 100644 index 5021a72..0000000 --- a/_javascript/modules/components/toc/toc-desktop.js +++ /dev/null @@ -1,22 +0,0 @@ -export class TocDesktop { - /* Tocbot options Ref: https://github.com/tscanlin/tocbot#usage */ - static options = { - tocSelector: '#toc', - contentSelector: '.content', - ignoreSelector: '[data-toc-skip]', - headingSelector: 'h2, h3, h4', - orderedList: false, - scrollSmooth: false, - headingsOffset: 16 * 2 // 2rem - }; - - static refresh() { - tocbot.refresh(this.options); - } - - static init() { - if (document.getElementById('toc-wrapper')) { - tocbot.init(this.options); - } - } -} diff --git a/_javascript/modules/components/toc/toc-mobile.js b/_javascript/modules/components/toc/toc-mobile.js deleted file mode 100644 index 20e24a7..0000000 --- a/_javascript/modules/components/toc/toc-mobile.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * TOC button, topbar and popup for mobile devices - */ - -const $tocBar = document.getElementById('toc-bar'); -const $soloTrigger = document.getElementById('toc-solo-trigger'); -const $triggers = document.getElementsByClassName('toc-trigger'); -const $popup = document.getElementById('toc-popup'); -const $btnClose = document.getElementById('toc-popup-close'); - -const SCROLL_LOCK = 'overflow-hidden'; -const CLOSING = 'closing'; - -export class TocMobile { - static #invisible = true; - static #barHeight = 16 * 3; // 3rem - - static options = { - tocSelector: '#toc-popup-content', - contentSelector: '.content', - ignoreSelector: '[data-toc-skip]', - headingSelector: 'h2, h3, h4', - orderedList: false, - scrollSmooth: false, - collapseDepth: 4, - headingsOffset: this.#barHeight - }; - - static initBar() { - const observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - $tocBar.classList.toggle('invisible', entry.isIntersecting); - }); - }, - { rootMargin: `-${this.#barHeight}px 0px 0px 0px` } - ); - - observer.observe($soloTrigger); - this.#invisible = false; - } - - static listenAnchors() { - const $anchors = document.getElementsByClassName('toc-link'); - [...$anchors].forEach((anchor) => { - anchor.onclick = () => this.hidePopup(); - }); - } - - static refresh() { - if (this.#invisible) { - this.initComponents(); - } - tocbot.refresh(this.options); - this.listenAnchors(); - } - - static get popupOpened() { - return $popup.open; - } - - static showPopup() { - this.lockScroll(true); - $popup.showModal(); - const activeItem = $popup.querySelector('li.is-active-li'); - activeItem.scrollIntoView({ block: 'center' }); - } - - static hidePopup() { - $popup.toggleAttribute(CLOSING); - - $popup.addEventListener( - 'animationend', - () => { - $popup.toggleAttribute(CLOSING); - $popup.close(); - }, - { once: true } - ); - - this.lockScroll(false); - } - - static lockScroll(enable) { - document.documentElement.classList.toggle(SCROLL_LOCK, enable); - document.body.classList.toggle(SCROLL_LOCK, enable); - } - - static clickBackdrop(event) { - if ($popup.hasAttribute(CLOSING)) { - return; - } - - const rect = event.target.getBoundingClientRect(); - if ( - event.clientX < rect.left || - event.clientX > rect.right || - event.clientY < rect.top || - event.clientY > rect.bottom - ) { - this.hidePopup(); - } - } - - static initComponents() { - this.initBar(); - - [...$triggers].forEach((trigger) => { - trigger.onclick = () => this.showPopup(); - }); - - $popup.onclick = (e) => this.clickBackdrop(e); - $btnClose.onclick = () => this.hidePopup(); - $popup.oncancel = (e) => { - e.preventDefault(); - this.hidePopup(); - }; - } - - static init() { - tocbot.init(this.options); - this.listenAnchors(); - this.initComponents(); - } -} diff --git a/_javascript/modules/components/tooltip-loader.js b/_javascript/modules/components/tooltip-loader.js deleted file mode 100644 index c36c879..0000000 --- a/_javascript/modules/components/tooltip-loader.js +++ /dev/null @@ -1,11 +0,0 @@ -import Tooltip from 'bootstrap/js/src/tooltip'; - -export function loadTooptip() { - const tooltipTriggerList = document.querySelectorAll( - '[data-bs-toggle="tooltip"]' - ); - - [...tooltipTriggerList].map( - (tooltipTriggerEl) => new Tooltip(tooltipTriggerEl) - ); -} diff --git a/_javascript/modules/layouts.js b/_javascript/modules/layouts.js deleted file mode 100644 index 28f7962..0000000 --- a/_javascript/modules/layouts.js +++ /dev/null @@ -1,3 +0,0 @@ -export { basic } from './layouts/basic'; -export { initSidebar } from './layouts/sidebar'; -export { initTopbar } from './layouts/topbar'; diff --git a/_javascript/modules/layouts/basic.js b/_javascript/modules/layouts/basic.js deleted file mode 100644 index fb36a8b..0000000 --- a/_javascript/modules/layouts/basic.js +++ /dev/null @@ -1,7 +0,0 @@ -import { back2top } from '../components/back-to-top'; -import { loadTooptip } from '../components/tooltip-loader'; - -export function basic() { - back2top(); - loadTooptip(); -} diff --git a/_javascript/modules/layouts/sidebar.js b/_javascript/modules/layouts/sidebar.js deleted file mode 100644 index 8795693..0000000 --- a/_javascript/modules/layouts/sidebar.js +++ /dev/null @@ -1,7 +0,0 @@ -import { modeWatcher } from '../components/mode-watcher'; -import { sidebarExpand } from '../components/sidebar'; - -export function initSidebar() { - modeWatcher(); - sidebarExpand(); -} diff --git a/_javascript/modules/layouts/topbar.js b/_javascript/modules/layouts/topbar.js deleted file mode 100644 index cfcd0ed..0000000 --- a/_javascript/modules/layouts/topbar.js +++ /dev/null @@ -1,5 +0,0 @@ -import { displaySearch } from '../components/search-display'; - -export function initTopbar() { - displaySearch(); -} diff --git a/_javascript/modules/plugins.js b/_javascript/modules/plugins.js deleted file mode 100644 index cc95c1b..0000000 --- a/_javascript/modules/plugins.js +++ /dev/null @@ -1,6 +0,0 @@ -export { categoryCollapse } from './components/category-collapse'; -export { initClipboard } from './components/clipboard'; -export { loadImg } from './components/img-loading'; -export { imgPopup } from './components/img-popup'; -export { initLocaleDatetime } from './components/locale-datetime'; -export { initToc } from './components/toc'; diff --git a/_javascript/page.js b/_javascript/page.js deleted file mode 100644 index 76e8ce9..0000000 --- a/_javascript/page.js +++ /dev/null @@ -1,9 +0,0 @@ -import { basic, initSidebar, initTopbar } from './modules/layouts'; -import { loadImg, imgPopup, initClipboard } from './modules/plugins'; - -loadImg(); -imgPopup(); -initSidebar(); -initTopbar(); -initClipboard(); -basic(); diff --git a/_javascript/post.js b/_javascript/post.js deleted file mode 100644 index 1c616ec..0000000 --- a/_javascript/post.js +++ /dev/null @@ -1,18 +0,0 @@ -import { basic, initTopbar, initSidebar } from './modules/layouts'; - -import { - loadImg, - imgPopup, - initLocaleDatetime, - initClipboard, - initToc -} from './modules/plugins'; - -loadImg(); -initToc(); -imgPopup(); -initSidebar(); -initLocaleDatetime(); -initClipboard(); -initTopbar(); -basic(); diff --git a/_javascript/pwa/app.js b/_javascript/pwa/app.js deleted file mode 100644 index 3c0ded2..0000000 --- a/_javascript/pwa/app.js +++ /dev/null @@ -1,55 +0,0 @@ -import Toast from 'bootstrap/js/src/toast'; - -if ('serviceWorker' in navigator) { - // Get Jekyll config from URL parameters - const src = new URL(document.currentScript.src); - const register = src.searchParams.get('register'); - const baseUrl = src.searchParams.get('baseurl'); - - if (register) { - const swUrl = `${baseUrl}/sw.min.js`; - const notification = document.getElementById('notification'); - const btnRefresh = notification.querySelector('.toast-body>button'); - const popupWindow = Toast.getOrCreateInstance(notification); - - navigator.serviceWorker.register(swUrl).then((registration) => { - // Restore the update window that was last manually closed by the user - if (registration.waiting) { - popupWindow.show(); - } - - registration.addEventListener('updatefound', () => { - registration.installing.addEventListener('statechange', () => { - if (registration.waiting) { - if (navigator.serviceWorker.controller) { - popupWindow.show(); - } - } - }); - }); - - btnRefresh.addEventListener('click', () => { - if (registration.waiting) { - registration.waiting.postMessage('SKIP_WAITING'); - } - popupWindow.hide(); - }); - }); - - let refreshing = false; - - // Detect controller change and refresh all the opened tabs - navigator.serviceWorker.addEventListener('controllerchange', () => { - if (!refreshing) { - window.location.reload(); - refreshing = true; - } - }); - } else { - navigator.serviceWorker.getRegistrations().then(function (registrations) { - for (let registration of registrations) { - registration.unregister(); - } - }); - } -} diff --git a/_javascript/pwa/sw.js b/_javascript/pwa/sw.js deleted file mode 100644 index ff9125d..0000000 --- a/_javascript/pwa/sw.js +++ /dev/null @@ -1,92 +0,0 @@ -importScripts('./assets/js/data/swconf.js'); - -const purge = swconf.purge; -const interceptor = swconf.interceptor; - -function verifyUrl(url) { - const requestUrl = new URL(url); - const requestPath = requestUrl.pathname; - - if (!requestUrl.protocol.startsWith('http')) { - return false; - } - - for (const prefix of interceptor.urlPrefixes) { - if (requestUrl.href.startsWith(prefix)) { - return false; - } - } - - for (const path of interceptor.paths) { - if (requestPath.startsWith(path)) { - return false; - } - } - return true; -} - -self.addEventListener('install', (event) => { - if (purge) { - return; - } - - event.waitUntil( - caches.open(swconf.cacheName).then((cache) => { - return cache.addAll(swconf.resources); - }) - ); -}); - -self.addEventListener('activate', (event) => { - event.waitUntil( - caches.keys().then((keyList) => { - return Promise.all( - keyList.map((key) => { - if (purge) { - return caches.delete(key); - } else { - if (key !== swconf.cacheName) { - return caches.delete(key); - } - } - }) - ); - }) - ); -}); - -self.addEventListener('message', (event) => { - if (event.data === 'SKIP_WAITING') { - self.skipWaiting(); - } -}); - -self.addEventListener('fetch', (event) => { - if (event.request.headers.has('range')) { - return; - } - - event.respondWith( - caches.match(event.request).then((response) => { - if (response) { - return response; - } - - return fetch(event.request).then((response) => { - const url = event.request.url; - - if (purge || event.request.method !== 'GET' || !verifyUrl(url)) { - return response; - } - - // See: - let responseToCache = response.clone(); - - caches.open(swconf.cacheName).then((cache) => { - cache.put(event.request, responseToCache); - }); - return response; - }); - }) - ); -}); diff --git a/_layouts/archives.html b/_layouts/archives.html deleted file mode 100644 index 4f7ad7d..0000000 --- a/_layouts/archives.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: page -# The Archives of posts. ---- - -{% include lang.html %} - -{% assign df_strftime_m = site.data.locales[lang].df.archives.strftime | default: '/ %m' %} -{% assign df_dayjs_m = site.data.locales[lang].df.archives.dayjs | default: '/ MM' %} - -
- {% for post in site.posts %} - {% assign cur_year = post.date | date: '%Y' %} - - {% if cur_year != last_year %} - {% unless forloop.first %}{% endunless %} - - - {{ '
    ' }} - - {% assign last_year = cur_year %} - {% endif %} - -
  • - {% assign ts = post.date | date: '%s' %} - {{ post.date | date: '%d' }} - - {{ post.date | date: df_strftime_m }} - - {{ post.title }} -
  • - - {% if forloop.last %}
{% endif %} - {% endfor %} -
diff --git a/_layouts/categories.html b/_layouts/categories.html deleted file mode 100644 index 0515097..0000000 --- a/_layouts/categories.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -layout: page -# All the Categories of posts ---- - -{% include lang.html %} - -{% assign HEAD_PREFIX = 'h_' %} -{% assign LIST_PREFIX = 'l_' %} - -{% assign group_index = 0 %} - -{% assign sort_categories = site.categories | sort %} - -{% for category in sort_categories %} - {% assign category_name = category | first %} - {% assign posts_of_category = category | last %} - {% assign first_post = posts_of_category | first %} - - {% if category_name == first_post.categories[0] %} - {% assign sub_categories = '' | split: '' %} - - {% for post in posts_of_category %} - {% assign second_category = post.categories[1] %} - {% if second_category %} - {% unless sub_categories contains second_category %} - {% assign sub_categories = sub_categories | push: second_category %} - {% endunless %} - {% endif %} - {% endfor %} - - {% assign sub_categories = sub_categories | sort %} - {% assign sub_categories_size = sub_categories | size %} - -
- -
- - - - {% capture _category_url %}/categories/{{ category_name | slugify | url_encode }}/{% endcapture %} - {{ category_name }} - - - {% assign top_posts_size = site.categories[category_name] | size %} - - {% if sub_categories_size > 0 %} - {{ sub_categories_size }} - {% if sub_categories_size > 1 %} - {{ - site.data.locales[lang].categories.category_measure.plural - | default: site.data.locales[lang].categories.category_measure - }} - {% else %} - {{ - site.data.locales[lang].categories.category_measure.singular - | default: site.data.locales[lang].categories.category_measure - }} - {% endif -%} - , - {% endif %} - - {{ top_posts_size }} - - {% if top_posts_size > 1 %} - {{ - site.data.locales[lang].categories.post_measure.plural - | default: site.data.locales[lang].categories.post_measure - }} - {% else %} - {{ - site.data.locales[lang].categories.post_measure.singular - | default: site.data.locales[lang].categories.post_measure - }} - {% endif %} - - - - - {% if sub_categories_size > 0 %} - - - - {% else %} - - - - {% endif %} -
- - - - {% if sub_categories_size > 0 %} -
-
    - {% for sub_category in sub_categories %} -
  • - - - {% capture _sub_ctg_url %}/categories/{{ sub_category | slugify | url_encode }}/{% endcapture %} - {{ sub_category }} - - {% assign posts_size = site.categories[sub_category] | size %} - - {{ posts_size }} - - {% if posts_size > 1 %} - {{ - site.data.locales[lang].categories.post_measure.plural - | default: site.data.locales[lang].categories.post_measure - }} - {% else %} - {{ - site.data.locales[lang].categories.post_measure.singular - | default: site.data.locales[lang].categories.post_measure - }} - {% endif %} - -
  • - {% endfor %} -
-
- {% endif %} -
- - - {% assign group_index = group_index | plus: 1 %} - {% endif %} -{% endfor %} diff --git a/_layouts/category.html b/_layouts/category.html deleted file mode 100644 index b064f27..0000000 --- a/_layouts/category.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -# The Category layout ---- - -{% include lang.html %} - -
-

- - {{ page.title }} - {{ page.posts | size }} -

- -
    - {% for post in page.posts %} -
  • - {{ post.title }} - - {% include datetime.html date=post.date class='text-muted small text-nowrap' lang=lang %} -
  • - {% endfor %} -
-
diff --git a/_layouts/compress.html b/_layouts/compress.html deleted file mode 100644 index 2779e92..0000000 --- a/_layouts/compress.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Jekyll layout that compresses HTML -# v3.2.0 -# http://jch.penibelst.de/ -# © 2014–2015 Anatol Broder -# MIT License ---- - -{% capture _LINE_FEED %} -{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" or page.compress_html == false %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "
" %}{% endif %}{% unless _pre_before contains "
" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
Step Bytes
raw {{ content | size }}{% if _profile_endings %}
endings {{ _profile_endings }}{% endif %}{% if _profile_startings %}
startings {{ _profile_startings }}{% endif %}{% if _profile_comments %}
comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %}
collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %}
clippings {{ _profile_clippings }}{% endif %}
{% endif %}{% endif %} diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 1590ef6..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -layout: compress ---- - - - -{% include origin-type.html %} - -{% include lang.html %} - -{% if site.theme_mode %} - {% capture prefer_mode %}data-mode="{{ site.theme_mode }}"{% endcapture %} -{% endif %} - - - - {% include head.html %} - - - {% include sidebar.html lang=lang %} - -
-
- {% include topbar.html lang=lang %} - -
-
- {% if layout.refactor or layout.layout == 'default' %} - {% include refactor-content.html content=content lang=lang %} - {% else %} - {{ content }} - {% endif %} -
- - - -
- -
- -
- {% for _include in layout.tail_includes %} - {% assign _include_path = _include | append: '.html' %} - {% include {{ _include_path }} lang=lang %} - {% endfor %} - - {% include_cached footer.html lang=lang %} -
-
- - {% include_cached search-results.html lang=lang %} -
- - -
- -
- - {% if site.pwa.enabled %} - {% include_cached notification.html lang=lang %} - {% endif %} - - - {% include js-selector.html lang=lang %} - - {% include_cached search-loader.html lang=lang %} - - diff --git a/_layouts/home.html b/_layouts/home.html deleted file mode 100644 index 451e391..0000000 --- a/_layouts/home.html +++ /dev/null @@ -1,122 +0,0 @@ ---- -layout: default -refactor: true ---- - -{% include lang.html %} - -{% assign all_pinned = site.posts | where: 'pin', 'true' %} -{% assign all_normal = site.posts | where_exp: 'item', 'item.pin != true and item.hidden != true' %} - -{% assign posts = '' | split: '' %} - - - -{% assign visible_start = paginator.page | minus: 1 | times: paginator.per_page %} -{% assign visible_end = visible_start | plus: paginator.per_page %} - -{% if all_pinned.size > visible_start %} - {% if all_pinned.size > visible_end %} - {% assign pinned_size = paginator.per_page %} - {% else %} - {% assign pinned_size = all_pinned.size | minus: visible_start %} - {% endif %} - - {% for i in (visible_start..all_pinned.size) limit: pinned_size %} - {% assign posts = posts | push: all_pinned[i] %} - {% endfor %} -{% else %} - {% assign pinned_size = 0 %} -{% endif %} - - - -{% assign normal_size = paginator.posts | size | minus: pinned_size %} - -{% if normal_size > 0 %} - {% if pinned_size > 0 %} - {% assign normal_start = 0 %} - {% else %} - {% assign normal_start = visible_start | minus: all_pinned.size %} - {% endif %} - - {% assign normal_end = normal_start | plus: normal_size | minus: 1 %} - - {% for i in (normal_start..normal_end) %} - {% assign posts = posts | push: all_normal[i] %} - {% endfor %} -{% endif %} - -
- {% for post in posts %} -
- - {% assign card_body_col = '12' %} - - {% if post.image %} - {% assign src = post.image.path | default: post.image %} - {% unless src contains '//' %} - {% assign src = post.media_subpath | append: '/' | append: src | replace: '//', '/' %} - {% endunless %} - - {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %} - - {% assign lqip = null %} - - {% if post.image.lqip %} - {% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %} - {% endif %} - -
- {{ alt }} -
- - {% assign card_body_col = '7' %} - {% endif %} - -
-
-

{{ post.title }}

- -
-

{% include post-description.html %}

-
- - - -
- -
-
-
- {% endfor %} -
- - -{% if paginator.total_pages > 1 %} - {% include post-paginator.html %} -{% endif %} diff --git a/_layouts/page.html b/_layouts/page.html deleted file mode 100644 index 32d6582..0000000 --- a/_layouts/page.html +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default ---- - -{% include lang.html %} - -
- {% if page.layout == 'page' or page.collection == 'tabs' %} - {% assign tab_key = page.title | downcase %} - {% assign title = site.data.locales[lang].tabs[tab_key] | default: page.title %} -

- {{ title }} -

-
- {{ content }} -
- {% else %} - {{ content }} - {% endif %} -
diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index 6a2deff..0000000 --- a/_layouts/post.html +++ /dev/null @@ -1,178 +0,0 @@ ---- -layout: default -refactor: true -panel_includes: - - toc -tail_includes: - - related-posts - - post-nav - - comments ---- - -{% include lang.html %} - -{% include toc-status.html %} - -
-
-

{{ page.title }}

- {% if page.description %} -

{{ page.description }}

- {% endif %} - - -
- - {% if enable_toc %} - - - - - -
-
{{- page.title -}}
- -
-
-
- {% endif %} - -
- {{ content }} -
- -
- - {% if page.categories.size > 0 %} - - {% endif %} - - - {% if page.tags.size > 0 %} - - {% endif %} - -
-
- {% if site.data.locales[lang].copyright.license.template %} - {% capture _replacement %} - - {{ site.data.locales[lang].copyright.license.name }} - - {% endcapture %} - - {{ site.data.locales[lang].copyright.license.template | replace: ':LICENSE_NAME', _replacement }} - {% endif %} -
- - {% include post-sharing.html lang=lang %} -
- -
- -
diff --git a/_layouts/tag.html b/_layouts/tag.html deleted file mode 100644 index d766d09..0000000 --- a/_layouts/tag.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: page -# The layout for Tag page ---- - -{% include lang.html %} - -
-

- - {{ page.title }} - {{ page.posts | size }} -

-
    - {% for post in page.posts %} -
  • - {{ post.title }} - - {% include datetime.html date=post.date class='text-muted small text-nowrap' lang=lang %} -
  • - {% endfor %} -
-
diff --git a/_layouts/tags.html b/_layouts/tags.html deleted file mode 100644 index 7800ca0..0000000 --- a/_layouts/tags.html +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: page -# All the Tags of posts. ---- - -
- {% assign tags = '' | split: '' %} - {% for t in site.tags %} - {% assign tags = tags | push: t[0] %} - {% endfor %} - - {% assign sorted_tags = tags | sort_natural %} - - {% for t in sorted_tags %} - - {% endfor %} -
diff --git a/_plugins/posts-lastmod-hook.rb b/_plugins/posts-lastmod-hook.rb deleted file mode 100644 index 1fd6ecf..0000000 --- a/_plugins/posts-lastmod-hook.rb +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env ruby -# -# Check for changed posts - -Jekyll::Hooks.register :posts, :post_init do |post| - - commit_num = `git rev-list --count HEAD "#{ post.path }"` - - if commit_num.to_i > 1 - lastmod_date = `git log -1 --pretty="%ad" --date=iso "#{ post.path }"` - post.data['last_modified_at'] = lastmod_date - end - -end diff --git a/_posts/2022-10-21-gruendung-star-citizen-organisation.md b/_posts/2022-10-21-gruendung-star-citizen-organisation.md deleted file mode 100644 index 19695a7..0000000 --- a/_posts/2022-10-21-gruendung-star-citizen-organisation.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Gründung unserer Star Citizen Organisation -description: >- - neulich haben wir eine neue Organisation in Star Citizen namens "Morlana Industries" (MORINC) gegründet. - Wir möchten gerne jeden einladen, der daran Interesse hätte, uns beizutreten. -author: sitiriotv -date: 2022-10-21 18:06:00 +0200 -categories: [Star Citizen, Organisation] -tags: [star citizen, star, citizen, morinc, Morlana Industries] -pin: true -media_subpath: '/posts/2022/10' ---- - -Hallo liebe Community, - -neulich haben wir eine neue Organisation in Star Citizen namens "Morlana Industries" (*MORINC*) gegründet. -Wir möchten gerne jeden einladen, der daran Interesse hätte, uns beizutreten. - -Hier ist der Link zur Organisationsseite: -> __***[https://robertsspaceindustries.com/orgs/MORINC](https://robertsspaceindustries.com/orgs/MORINC)***__ - -Um beizutreten müsst ihr einfach eine kleine Bewerbung schreiben. Wir sind jedoch nicht all zu streng und eine kleine Vorstellung würde ausreichen. - -Bei Fragen einfach hier kommentieren. - -Ich hoffe wir sehen uns im Verse, - -> LG SitirioTV | Justin / Kosmos | Florian - -*(PS: Aktuell ist die Organisation noch WORK IN PROGRESS!)* diff --git a/_sass/addon/commons.scss b/_sass/addon/commons.scss deleted file mode 100644 index 5e8acea..0000000 --- a/_sass/addon/commons.scss +++ /dev/null @@ -1,1526 +0,0 @@ -/* The common styles */ - -html { - font-size: 16px; - - @media (prefers-color-scheme: light) { - &:not([data-mode]), - &[data-mode='light'] { - @include light-scheme; - } - - &[data-mode='dark'] { - @include dark-scheme; - } - } - - @media (prefers-color-scheme: dark) { - &:not([data-mode]), - &[data-mode='dark'] { - @include dark-scheme; - } - - &[data-mode='light'] { - @include light-scheme; - } - } -} - -body { - background: var(--main-bg); - padding: env(safe-area-inset-top) env(safe-area-inset-right) - env(safe-area-inset-bottom) env(safe-area-inset-left); - color: var(--text-color); - -webkit-font-smoothing: antialiased; - font-family: $font-family-base; -} - -/* --- Typography --- */ - -@for $i from 1 through 5 { - h#{$i} { - @extend %heading; - - @if $i > 1 { - @extend %anchor; - } - - @if $i < 5 { - $size-factor: 0.25rem; - - @if $i > 1 { - $size-factor: 0.18rem; - - main & { - @if $i == 2 { - margin: 2.5rem 0 1.25rem; - } @else { - margin: 2rem 0 1rem; - } - } - } - - & { - font-size: 1rem + (5 - $i) * $size-factor; - } - } @else { - font-size: 1.05rem; - } - } -} - -a { - @extend %link-color; - - text-decoration: none; -} - -img { - max-width: 100%; - height: auto; - transition: all 0.35s ease-in-out; - - .blur & { - $blur: 20px; - - -webkit-filter: blur($blur); - filter: blur($blur); - } -} - -blockquote { - border-left: 0.125rem solid var(--blockquote-border-color); - padding-left: 1rem; - color: var(--blockquote-text-color); - margin-top: 0.5rem; - - > p:last-child { - margin-bottom: 0; - } - - &[class^='prompt-'] { - border-left: 0; - position: relative; - padding: 1rem 1rem 1rem 3rem; - color: var(--prompt-text-color); - - @extend %rounded; - - &::before { - text-align: center; - width: 3rem; - position: absolute; - left: 0.25rem; - margin-top: 0.4rem; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - } - } - - @include prompt('tip', '\f0eb', $fa-style: 'regular'); - @include prompt('info', '\f06a', $rotate: 180); - @include prompt('warning', '\f06a'); - @include prompt('danger', '\f071'); -} - -kbd { - font-family: Lato, sans-serif; - display: inline-block; - vertical-align: middle; - line-height: 1.3rem; - min-width: 1.75rem; - text-align: center; - margin: 0 0.3rem; - padding-top: 0.1rem; - color: var(--kbd-text-color); - background-color: var(--kbd-bg-color); - border-radius: $radius-sm; - border: solid 1px var(--kbd-wrap-color); - box-shadow: inset 0 -2px 0 var(--kbd-wrap-color); -} - -hr { - border-color: var(--main-border-color); - opacity: 1; -} - -footer { - background-color: var(--main-bg); - height: $footer-height; - border-top: 1px solid var(--main-border-color); - - @extend %text-xs; - - a { - @extend %text-highlight; - - &:hover { - @extend %link-hover; - } - } - - em { - @extend %text-highlight; - } - - p { - text-align: center; - margin-bottom: 0; - } -} - -/* fontawesome icons */ -i { - &.far, - &.fas { - @extend %no-cursor; - } -} - -/* --- Panels --- */ - -.access { - top: 2rem; - transition: top 0.2s ease-in-out; - margin-top: 3rem; - margin-bottom: 4rem; - - &:only-child { - position: -webkit-sticky; - position: sticky; - } - - > section { - padding-left: 1rem; - border-left: 1px solid var(--main-border-color); - - &:not(:last-child) { - margin-bottom: 4rem; - } - } - - .content { - font-size: 0.9rem; - } -} - -#panel-wrapper { - /* the headings */ - .panel-heading { - font-family: inherit; - line-height: inherit; - - @include label(inherit); - } - - .post-tag { - line-height: 1.05rem; - font-size: 0.85rem; - border-radius: 0.8rem; - padding: 0.3rem 0.5rem; - margin: 0 0.35rem 0.5rem 0; - - &:hover { - transition: all 0.3s ease-in; - } - } -} - -#access-lastmod { - a { - color: inherit; - - &:hover { - @extend %link-hover; - } - - @extend %no-bottom-border; - } -} - -.footnotes > ol { - padding-left: 2rem; - margin-top: 0.5rem; - - > li { - &:not(:last-child) { - margin-bottom: 0.3rem; - } - - @extend %sup-fn-target; - - > p { - margin-left: 0.25em; - - @include mt-mb(0); - } - } -} - -.footnote { - @at-root a#{&} { - @include ml-mr(1px); - @include pl-pr(2px); - - border-bottom-style: none !important; - } -} - -sup { - @extend %sup-fn-target; -} - -.reversefootnote { - @at-root a#{&} { - font-size: 0.6rem; - line-height: 1; - position: relative; - bottom: 0.25em; - margin-left: 0.25em; - border-bottom-style: none !important; - } -} - -/* --- Begin of Markdown table style --- */ - -/* it will be created by Liquid */ -.table-wrapper { - overflow-x: auto; - margin-bottom: 1.5rem; - - > table { - min-width: 100%; - overflow-x: auto; - border-spacing: 0; - - thead { - border-bottom: solid 2px rgba(210, 215, 217, 0.75); - - th { - @extend %table-cell; - } - } - - tbody { - tr { - border-bottom: 1px solid var(--tb-border-color); - - &:nth-child(2n) { - background-color: var(--tb-even-bg); - } - - &:nth-child(2n + 1) { - background-color: var(--tb-odd-bg); - } - - td { - @extend %table-cell; - } - } - } /* tbody */ - } /* table */ -} - -/* --- post --- */ - -.preview-img { - aspect-ratio: 40 / 21; - width: 100%; - height: 100%; - overflow: hidden; - - @extend %rounded; - - &:not(.no-bg) { - background: var(--img-bg); - } - - img { - height: 100%; - -o-object-fit: cover; - object-fit: cover; - - @extend %rounded; - - @at-root #post-list & { - width: 100%; - } - } -} - -.post-preview { - @extend %rounded; - - border: 0; - background: var(--card-bg); - box-shadow: var(--card-shadow); - - &::before { - @extend %rounded; - - content: ''; - width: 100%; - height: 100%; - position: absolute; - background-color: var(--card-hovor-bg); - opacity: 0; - transition: opacity 0.35s ease-in-out; - } - - &:hover { - &::before { - opacity: 0.3; - } - } -} - -main { - line-height: 1.75; - - h1 { - margin-top: 2rem; - } - - p { - > a.popup { - &:not(.normal):not(.left):not(.right) { - @include align-center; - } - } - } - - .categories, - #tags, - #archives { - a:not(:hover) { - @extend %no-bottom-border; - } - } -} - -.post-meta { - @extend %text-sm; - - a { - &:not([class]):hover { - @extend %link-hover; - } - } - - em { - @extend %normal-font-style; - } -} - -.content { - font-size: 1.08rem; - margin-top: 2rem; - overflow-wrap: break-word; - - a { - &.popup { - @extend %no-cursor; - @extend %img-caption; - @include mt-mb(0.5rem); - - cursor: zoom-in; - } - - &:not(.img-link) { - @extend %link-underline; - - &:hover { - @extend %link-hover; - } - } - } - - ol, - ul { - &:not([class]), - &.task-list { - -webkit-padding-start: 1.75rem; - padding-inline-start: 1.75rem; - - li { - margin: 0.25rem 0; - padding-left: 0.25rem; - } - - ol, - ul { - -webkit-padding-start: 1.25rem; - padding-inline-start: 1.25rem; - margin: 0.5rem 0; - } - } - } - - ul.task-list { - -webkit-padding-start: 1.25rem; - padding-inline-start: 1.25rem; - - li { - list-style-type: none; - padding-left: 0; - - /* checkbox icon */ - > i { - width: 2rem; - margin-left: -1.25rem; - color: var(--checkbox-color); - - &.checked { - color: var(--checkbox-checked-color); - } - } - - ul { - -webkit-padding-start: 1.75rem; - padding-inline-start: 1.75rem; - } - } - - input[type='checkbox'] { - margin: 0 0.5rem 0.2rem -1.3rem; - vertical-align: middle; - } - } /* ul */ - - dl > dd { - margin-left: 1rem; - } - - ::marker { - color: var(--text-muted-color); - } -} /* .content */ - -.tag:hover { - @extend %tag-hover; -} - -.post-tag { - display: inline-block; - min-width: 2rem; - text-align: center; - border-radius: 0.5rem; - border: 1px solid var(--btn-border-color); - padding: 0 0.4rem; - color: var(--text-muted-color); - line-height: 1.3rem; - - &:not(:last-child) { - margin-right: 0.2rem; - } -} - -.rounded-10 { - border-radius: 10px !important; -} - -.img-link { - color: transparent; - display: inline-flex; -} - -.shimmer { - overflow: hidden; - position: relative; - background: var(--img-bg); - - &::before { - content: ''; - position: absolute; - background: var(--shimmer-bg); - height: 100%; - width: 100%; - -webkit-animation: shimmer 1.3s infinite; - animation: shimmer 1.3s infinite; - } - - @-webkit-keyframes shimmer { - 0% { - transform: translateX(-100%); - } - - 100% { - transform: translateX(100%); - } - } - - @keyframes shimmer { - 0% { - transform: translateX(-100%); - } - - 100% { - transform: translateX(100%); - } - } -} - -.embed-video { - width: 100%; - height: 100%; - margin-bottom: 1rem; - aspect-ratio: 16 / 9; - - @extend %rounded; - - &.twitch { - aspect-ratio: 310 / 189; - } - - &.file { - display: block; - width: auto; - height: auto; - max-width: 100%; - max-height: 100%; - margin: auto; - margin-bottom: 0; - } - - @extend %img-caption; -} - -.embed-audio { - width: 100%; - display: block; - - @extend %img-caption; -} - -/* --- buttons --- */ -.btn-lang { - border: 1px solid !important; - padding: 1px 3px; - border-radius: 3px; - color: var(--link-color); - - &:focus { - box-shadow: none; - } -} - -/* --- Effects classes --- */ - -.flex-grow-1 { - flex-grow: 1 !important; -} - -.btn-box-shadow { - box-shadow: var(--card-shadow); -} - -/* overwrite bootstrap muted */ -.text-muted { - color: var(--text-muted-color) !important; -} - -/* Overwrite bootstrap tooltip */ -.tooltip-inner { - font-size: 0.7rem; - max-width: 220px; - text-align: left; -} - -/* Overwrite bootstrap outline button */ -.btn.btn-outline-primary { - &:not(.disabled):hover { - border-color: #007bff !important; - } -} - -.disabled { - color: rgb(206, 196, 196); - pointer-events: auto; - cursor: not-allowed; -} - -.hide-border-bottom { - border-bottom: none !important; -} - -.input-focus { - box-shadow: none; - border-color: var(--input-focus-border-color) !important; - background: center !important; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; -} - -.left { - float: left; - margin: 0.75rem 1rem 1rem 0; -} - -.right { - float: right; - margin: 0.75rem 0 1rem 1rem; -} - -/* --- Overriding --- */ - -/* mermaid */ -.mermaid { - text-align: center; -} - -/* MathJax */ -mjx-container { - overflow-y: hidden; - min-width: auto !important; -} - -/* --- sidebar layout --- */ - -$sidebar-display: 'sidebar-display'; -$btn-border-width: 3px; -$btn-mb: 0.5rem; - -#sidebar { - @include pl-pr(0); - - position: fixed; - top: 0; - left: 0; - height: 100%; - overflow-y: auto; - width: $sidebar-width; - background: var(--sidebar-bg); - border-right: 1px solid var(--sidebar-border-color); - - /* Hide scrollbar for IE, Edge and Firefox */ - -ms-overflow-style: none; /* IE and Edge */ - scrollbar-width: none; /* Firefox */ - - /* Hide scrollbar for Chrome, Safari and Opera */ - &::-webkit-scrollbar { - display: none; - } - - %sidebar-link-hover { - &:hover { - color: var(--sidebar-active-color); - } - } - - a { - @extend %sidebar-links; - } - - #avatar { - display: block; - width: 7rem; - height: 7rem; - overflow: hidden; - box-shadow: var(--avatar-border-color) 0 0 0 2px; - transform: translateZ(0); /* fixed the zoom in Safari */ - - img { - transition: transform 0.5s; - - &:hover { - transform: scale(1.2); - } - } - } - - .profile-wrapper { - @include mt-mb(2.5rem); - @extend %clickable-transition; - - padding-left: 2.5rem; - padding-right: 1.25rem; - width: 100%; - } - - .site-title { - @extend %clickable-transition; - @extend %sidebar-link-hover; - - font-family: inherit; - font-weight: 900; - font-size: 1.75rem; - line-height: 1.2; - letter-spacing: 0.25px; - margin-top: 1.25rem; - margin-bottom: 0.5rem; - width: fit-content; - color: var(--site-title-color); - } - - .site-subtitle { - font-size: 95%; - color: var(--site-subtitle-color); - margin-top: 0.25rem; - word-spacing: 1px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - - ul { - margin-bottom: 2rem; - - li.nav-item { - opacity: 0.9; - width: 100%; - - @include pl-pr(1.5rem); - - a.nav-link { - @include pt-pb(0.6rem); - - display: flex; - align-items: center; - border-radius: 0.75rem; - font-weight: 600; - - &:hover { - background-color: var(--sidebar-hover-bg); - } - - i { - font-size: 95%; - opacity: 0.8; - margin-right: 1.5rem; - } - - span { - font-size: 90%; - letter-spacing: 0.2px; - } - } - - &.active { - .nav-link { - color: var(--sidebar-active-color); - background-color: var(--sidebar-hover-bg); - - span { - opacity: 1; - } - } - } - - &:not(:first-child) { - margin-top: 0.25rem; - } - } - } - - .sidebar-bottom { - padding-left: 2rem; - padding-right: 1rem; - margin-bottom: 1.5rem; - - $btn-size: 1.75rem; - - %button { - width: $btn-size; - height: $btn-size; - margin-bottom: $btn-mb; // multi line gap - border-radius: 50%; - color: var(--sidebar-btn-color); - background-color: var(--sidebar-btn-bg); - text-align: center; - display: flex; - align-items: center; - justify-content: center; - - &:not(:focus-visible) { - box-shadow: var(--sidebar-border-color) 0 0 0 1px; - } - - &:hover { - background-color: var(--sidebar-hover-bg); - } - } - - a { - @extend %button; - @extend %sidebar-link-hover; - @extend %clickable-transition; - - &:not(:last-child) { - margin-right: $sb-btn-gap; - } - } - - i { - line-height: $btn-size; - } - - #mode-toggle { - @extend %button; - @extend %sidebar-links; - @extend %sidebar-link-hover; - } - - .icon-border { - @extend %no-cursor; - @include ml-mr(calc(($sb-btn-gap - $btn-border-width) / 2)); - - background-color: var(--sidebar-btn-color); - content: ''; - width: $btn-border-width; - height: $btn-border-width; - border-radius: 50%; - margin-bottom: $btn-mb; - } - } /* .sidebar-bottom */ -} /* #sidebar */ - -@media (hover: hover) { - #sidebar ul > li:last-child::after { - transition: top 0.5s ease; - } - - .nav-link { - transition: background-color 0.3s ease-in-out; - } - - .post-preview { - transition: background-color 0.35s ease-in-out; - } -} - -#search-result-wrapper { - display: none; - height: 100%; - width: 100%; - overflow: auto; - - .content { - margin-top: 2rem; - } -} - -/* --- top-bar --- */ - -#topbar-wrapper { - height: $topbar-height; - background-color: var(--topbar-bg); -} - -#topbar { - @extend %btn-color; - - #breadcrumb { - font-size: 1rem; - color: var(--text-muted-color); - padding-left: 0.5rem; - - a:hover { - @extend %link-hover; - } - - span { - &:not(:last-child) { - &::after { - content: '›'; - padding: 0 0.3rem; - } - } - } - } -} /* #topbar */ - -::-webkit-input-placeholder { - @include placeholder; -} - -::-moz-placeholder { - @include placeholder; -} - -:-ms-input-placeholder { - @include placeholder; -} - -::-ms-input-placeholder { - @include placeholder; -} - -::placeholder { - @include placeholder; -} - -:focus::-webkit-input-placeholder { - @include placeholder-focus; -} - -:focus::-moz-placeholder { - @include placeholder-focus; -} - -:focus:-ms-input-placeholder { - @include placeholder-focus; -} - -:focus::-ms-input-placeholder { - @include placeholder-focus; -} - -:focus::placeholder { - @include placeholder-focus; -} - -search { - display: flex; - width: 100%; - border-radius: 1rem; - border: 1px solid var(--search-border-color); - background: var(--main-bg); - padding: 0 0.5rem; - - i { - z-index: 2; - font-size: 0.9rem; - color: var(--search-icon-color); - } -} - -#sidebar-trigger, -#search-trigger { - display: none; -} - -/* 'Cancel' link */ -#search-cancel { - color: var(--link-color); - display: none; - white-space: nowrap; - - @extend %cursor-pointer; -} - -#search-input { - background: center; - border: 0; - border-radius: 0; - padding: 0.18rem 0.3rem; - color: var(--text-color); - height: auto; - - &:focus { - box-shadow: none; - } -} - -#search-hints { - padding: 0 1rem; - - h4 { - margin-bottom: 1.5rem; - } - - .post-tag { - display: inline-block; - line-height: 1rem; - font-size: 1rem; - background: var(--search-tag-bg); - border: none; - padding: 0.5rem; - margin: 0 1.25rem 1rem 0; - - &::before { - content: '#'; - color: var(--text-muted-color); - padding-right: 0.2rem; - } - - @extend %link-color; - } -} - -#search-results { - padding-bottom: 3rem; - - a { - font-size: 1.4rem; - line-height: 1.5rem; - - &:hover { - @extend %link-hover; - } - - @extend %link-color; - @extend %no-bottom-border; - @extend %heading; - } - - > article { - width: 100%; - - &:not(:last-child) { - margin-bottom: 1rem; - } - - /* icons */ - i { - color: #818182; - margin-right: 0.15rem; - font-size: 80%; - } - - > p { - @extend %text-ellipsis; - - white-space: break-spaces; - display: -webkit-box; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - } - } -} /* #search-results */ - -#topbar-title { - display: none; - font-size: 1.1rem; - font-weight: 600; - font-family: sans-serif; - color: var(--topbar-text-color); - text-align: center; - width: 70%; - word-break: keep-all; -} - -#mask { - inset: 0 0 0 0; -} - -/* --- basic wrappers --- */ - -#main-wrapper { - position: relative; - - @include pl-pr(0); - - > .container { - min-height: 100vh; - } -} - -#topbar-wrapper.row, -#main-wrapper > .container > .row, -#search-result-wrapper > .row { - @include ml-mr(0); -} - -#tail-wrapper { - > :not(script) { - margin-top: 3rem; - } -} - -/* --- button back-to-top --- */ - -#back-to-top { - visibility: hidden; - opacity: 0; - z-index: 1; - cursor: pointer; - position: fixed; - right: 1rem; - bottom: calc($footer-height-large - $back2top-size / 2); - background: var(--button-bg); - color: var(--btn-backtotop-color); - padding: 0; - width: $back2top-size; - height: $back2top-size; - border-radius: 50%; - border: 1px solid var(--btn-backtotop-border-color); - transition: opacity 0.5s ease-in-out, transform 0.2s ease-out; - - &:hover { - transform: translate3d(0, -5px, 0); - -webkit-transform: translate3d(0, -5px, 0); - } - - i { - line-height: $back2top-size; - position: relative; - bottom: 2px; - } - - &.show { - opacity: 1; - visibility: visible; - } -} - -#notification { - @-webkit-keyframes popup { - from { - opacity: 0; - bottom: 0; - } - } - - @keyframes popup { - from { - opacity: 0; - bottom: 0; - } - } - - .toast-header { - background: none; - border-bottom: none; - color: inherit; - } - - .toast-body { - font-family: Lato, sans-serif; - line-height: 1.25rem; - - button { - font-size: 90%; - min-width: 4rem; - } - } - - &.toast { - &.show { - display: block; - min-width: 20rem; - border-radius: 0.5rem; - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); - background-color: rgba(255, 255, 255, 0.5); - color: #1b1b1eba; - position: fixed; - left: 50%; - bottom: 20%; - transform: translateX(-50%); - -webkit-animation: popup 0.8s; - animation: popup 0.8s; - } - } -} - -/* - Responsive Design: - - {sidebar, content, panel} >= 1200px screen width - {sidebar, content} >= 850px screen width - {content} <= 849px screen width - -*/ - -@media all and (max-width: 576px) { - main { - .content { - > blockquote[class^='prompt-'] { - @include ml-mr(-1rem); - - border-radius: 0; - max-width: none; - } - } - } - - #avatar { - width: 5rem; - height: 5rem; - } -} - -@media all and (max-width: 768px) { - %full-width { - max-width: 100%; - } - - #topbar { - @extend %full-width; - } - - #main-wrapper > .container { - @extend %full-width; - @include pl-pr(0); - } -} - -/* hide sidebar and panel */ -@media all and (max-width: 849px) { - @mixin slide($append: null) { - $basic: transform 0.4s ease; - - @if $append { - transition: $basic, $append; - } @else { - transition: $basic; - } - } - - footer { - @include slide; - - height: $footer-height-large; - padding: 1.5rem 0; - } - - [#{$sidebar-display}] { - #sidebar { - transform: translateX(0); - } - - #main-wrapper { - transform: translateX($sidebar-width); - } - - #back-to-top { - visibility: hidden; - } - } - - #sidebar { - @include slide; - - transform: translateX(-$sidebar-width); /* hide */ - -webkit-transform: translateX(-$sidebar-width); - } - - #main-wrapper { - @include slide; - } - - #topbar, - #main-wrapper > .container { - max-width: 100%; - } - - #search-result-wrapper { - width: 100%; - } - - #breadcrumb, - search { - display: none; - } - - #topbar-wrapper { - @include slide(top 0.2s ease); - - left: 0; - } - - main, - #panel-wrapper { - margin-top: 0; - } - - #topbar-title, - #sidebar-trigger, - #search-trigger { - display: block; - } - - #search-result-wrapper .content { - letter-spacing: 0; - } - - #tags { - justify-content: center !important; - } - - h1.dynamic-title { - display: none; - - ~ .content { - margin-top: 2.5rem; - } - } -} /* max-width: 849px */ - -/* Sidebar is visible */ -@media all and (min-width: 850px) { - /* Solved jumping scrollbar */ - html { - overflow-y: scroll; - } - - #main-wrapper { - margin-left: $sidebar-width; - } - - #sidebar { - .profile-wrapper { - margin-top: 3rem; - } - } - - #search-hints { - display: none; - } - - search { - max-width: $search-max-width; - } - - #search-result-wrapper { - max-width: $main-content-max-width; - justify-content: start !important; - } - - main { - h1 { - margin-top: 3rem; - } - } - - div.content .table-wrapper > table { - min-width: 70%; - } - - /* button 'back-to-Top' position */ - #back-to-top { - right: 5%; - bottom: calc($footer-height - $back2top-size / 2); - } - - #topbar-title { - text-align: left; - } -} - -/* Pad horizontal */ -@media all and (min-width: 992px) and (max-width: 1199px) { - #main-wrapper > .container .col-lg-11 { - flex: 0 0 96%; - max-width: 96%; - } -} - -/* Compact icons in sidebar & panel hidden */ -@media all and (min-width: 850px) and (max-width: 1199px) { - #search-results > div { - max-width: 700px; - } - - #breadcrumb { - width: 65%; - overflow: hidden; - text-overflow: ellipsis; - word-break: keep-all; - white-space: nowrap; - } -} - -/* panel hidden */ -@media all and (max-width: 1199px) { - #panel-wrapper { - display: none; - } - - #main-wrapper > .container > div.row { - justify-content: center !important; - } -} - -/* --- desktop mode, both sidebar and panel are visible --- */ - -@media all and (min-width: 1200px) { - search { - margin-right: 4rem; - } - - #search-input { - transition: all 0.3s ease-in-out; - } - - #search-results > article { - width: 45%; - - &:nth-child(odd) { - margin-right: 1.5rem; - } - - &:nth-child(even) { - margin-left: 1.5rem; - } - - &:last-child:nth-child(odd) { - position: relative; - right: 24.3%; - } - } - - .content { - font-size: 1.03rem; - } -} - -@media all and (min-width: 1400px) { - #back-to-top { - right: calc((100vw - $sidebar-width - 1140px) / 2 + 3rem); - } -} - -@media all and (min-width: 1650px) { - $icon-gap: 1rem; - - #main-wrapper { - margin-left: $sidebar-width-large; - } - - #topbar-wrapper { - left: $sidebar-width-large; - } - - search { - margin-right: calc( - $main-content-max-width / 4 - $search-max-width - 0.75rem - ); - } - - #main-wrapper > .container { - max-width: $main-content-max-width; - - @include pl-pr(1.75rem, true); - } - - main.col-12, - #tail-wrapper { - padding-right: 4.5rem !important; - } - - #back-to-top { - right: calc( - (100vw - $sidebar-width-large - $main-content-max-width) / 2 + 2rem - ); - } - - #sidebar { - width: $sidebar-width-large; - - .profile-wrapper { - margin-top: 3.5rem; - margin-bottom: 2.5rem; - padding-left: 3.5rem; - } - - ul { - li.nav-item { - @include pl-pr(2.75rem); - } - } - - .sidebar-bottom { - padding-left: 2.75rem; - margin-bottom: 1.75rem; - - a:not(:last-child) { - margin-right: $sb-btn-gap-lg; - } - - .icon-border { - @include ml-mr(calc(($sb-btn-gap-lg - $btn-border-width) / 2)); - } - } - } -} /* min-width: 1650px */ diff --git a/_sass/addon/module.scss b/_sass/addon/module.scss deleted file mode 100644 index 1dfb735..0000000 --- a/_sass/addon/module.scss +++ /dev/null @@ -1,215 +0,0 @@ -/* -* Mainly scss modules, only imported to `assets/css/main.scss` -*/ - -/* ---------- scss placeholder --------- */ - -%heading { - color: var(--heading-color); - font-weight: 400; - font-family: $font-family-heading; - scroll-margin-top: 3.5rem; -} - -%anchor { - .anchor { - font-size: 80%; - } - - @media (hover: hover) { - .anchor { - visibility: hidden; - opacity: 0; - transition: opacity 0.25s ease-in, visibility 0s ease-in 0.25s; - } - - &:hover { - .anchor { - visibility: visible; - opacity: 1; - transition: opacity 0.25s ease-in, visibility 0s ease-in 0s; - } - } - } -} - -%tag-hover { - background: var(--tag-hover); - transition: background 0.35s ease-in-out; -} - -%table-cell { - padding: 0.4rem 1rem; - font-size: 95%; - white-space: nowrap; -} - -%link-hover { - color: #d2603a !important; - border-bottom: 1px solid #d2603a; - text-decoration: none; -} - -%link-color { - color: var(--link-color); -} - -%link-underline { - border-bottom: 1px solid var(--link-underline-color); -} - -%clickable-transition { - transition: all 0.3s ease-in-out; -} - -%no-cursor { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -%no-bottom-border { - border-bottom: none; -} - -%cursor-pointer { - cursor: pointer; -} - -%normal-font-style { - font-style: normal; -} - -%rounded { - border-radius: $radius-lg; -} - -%img-caption { - + em { - display: block; - text-align: center; - font-style: normal; - font-size: 80%; - padding: 0; - color: #6d6c6c; - } -} - -%sidebar-links { - color: var(--sidebar-muted-color); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -%text-clip { - display: -webkit-box; - overflow: hidden; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; -} - -@mixin text-ellipsis { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -%text-ellipsis { - @include text-ellipsis; -} - -%text-highlight { - color: var(--text-muted-highlight-color); - font-weight: 600; -} - -%text-sm { - font-size: 0.85rem; -} - -%text-xs { - font-size: 0.8rem; -} - -%sup-fn-target { - &:target { - background-color: var(--footnote-target-bg); - width: -moz-fit-content; - width: -webkit-fit-content; - width: fit-content; - transition: background-color 1.75s ease-in-out; - } -} - -%btn-color { - button i { - color: #999999; - } -} - -/* ---------- scss mixin --------- */ - -@mixin mt-mb($value) { - margin-top: $value; - margin-bottom: $value; -} - -@mixin ml-mr($value) { - margin-left: $value; - margin-right: $value; -} - -@mixin pt-pb($val) { - padding-top: $val; - padding-bottom: $val; -} - -@mixin pl-pr($val, $important: false) { - @if $important { - padding-left: $val !important; - padding-right: $val !important; - } @else { - padding-left: $val; - padding-right: $val; - } -} - -@mixin placeholder { - color: var(--text-muted-color) !important; -} - -@mixin placeholder-focus { - opacity: 0.6; -} - -@mixin label($font-size: 1rem, $font-weight: 600, $color: var(--label-color)) { - color: $color; - font-size: $font-size; - font-weight: $font-weight; -} - -@mixin align-center { - position: relative; - left: 50%; - transform: translateX(-50%); -} - -@mixin prompt($type, $fa-content, $fa-style: 'solid', $rotate: 0) { - &.prompt-#{$type} { - background-color: var(--prompt-#{$type}-bg); - - &::before { - content: $fa-content; - color: var(--prompt-#{$type}-icon-color); - font: var(--fa-font-#{$fa-style}); - - @if $rotate != 0 { - transform: rotate(#{$rotate}deg); - } - } - } -} diff --git a/_sass/addon/syntax.scss b/_sass/addon/syntax.scss deleted file mode 100644 index 6bd7b40..0000000 --- a/_sass/addon/syntax.scss +++ /dev/null @@ -1,292 +0,0 @@ -/* -* The syntax highlight. -*/ - -@import 'colors/syntax-light'; -@import 'colors/syntax-dark'; - -html { - @media (prefers-color-scheme: light) { - &:not([data-mode]), - &[data-mode='light'] { - @include light-syntax; - } - - &[data-mode='dark'] { - @include dark-syntax; - } - } - - @media (prefers-color-scheme: dark) { - &:not([data-mode]), - &[data-mode='dark'] { - @include dark-syntax; - } - - &[data-mode='light'] { - @include light-syntax; - } - } -} - -/* -- code snippets -- */ - -%code-snippet-bg { - background-color: var(--highlight-bg-color); -} - -%code-snippet-padding { - padding-left: 1rem; - padding-right: 1.5rem; -} - -.highlighter-rouge { - color: var(--highlighter-rouge-color); - margin-top: 0.5rem; - margin-bottom: 1.2em; /* Override BS Inline-code style */ -} - -.highlight { - @extend %rounded; - @extend %code-snippet-bg; - - overflow: auto; - padding-bottom: 0.75rem; - - @at-root figure#{&} { - @extend %code-snippet-bg; - } - - pre { - margin-bottom: 0; - font-size: $code-font-size; - line-height: 1.4rem; - word-wrap: normal; /* Fixed Safari overflow-x */ - } - - table { - td { - &:first-child { - display: inline-block; - margin-left: 1rem; - margin-right: 0.75rem; - } - - &:last-child { - padding-right: 2rem !important; - } - - pre { - overflow: visible; /* Fixed iOS safari overflow-x */ - word-break: normal; /* Fixed iOS safari linenos code break */ - } - } - } - - .lineno { - text-align: right; - color: var(--highlight-lineno-color); - -webkit-user-select: none; - -moz-user-select: none; - -o-user-select: none; - -ms-user-select: none; - user-select: none; - } -} /* .highlight */ - -code { - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; - color: var(--code-color); - - &.highlighter-rouge { - font-size: $code-font-size; - padding: 3px 5px; - word-break: break-word; - border-radius: $radius-sm; - background-color: var(--inline-code-bg); - } - - &.filepath { - background-color: inherit; - color: var(--filepath-text-color); - font-weight: 600; - padding: 0; - } - - a > &.highlighter-rouge { - padding-bottom: 0; /* show link's underlinke */ - color: inherit; - } - - a:hover > &.highlighter-rouge { - border-bottom: none; - } - - blockquote & { - color: inherit; - } -} - -td.rouge-code { - @extend %code-snippet-padding; - - /* - Prevent some browser extends from - changing the URL string of code block. - */ - a { - color: inherit !important; - border-bottom: none !important; - pointer-events: none; - } -} - -div[class^='language-'] { - @extend %rounded; - @extend %code-snippet-bg; - - box-shadow: var(--language-border-color) 0 0 0 1px; - - .content > & { - @include ml-mr(-1rem); - - border-radius: 0; - } - - .highlight { - border-top-left-radius: 0; - border-top-right-radius: 0; - } -} - -/* Hide line numbers for default, console, and terminal code snippets */ -div { - &.nolineno, - &.language-plaintext, - &.language-console, - &.language-terminal { - td:first-child { - padding: 0 !important; - margin-right: 0; - - .lineno { - display: none; - } - } - } -} - -.code-header { - @extend %no-cursor; - - display: flex; - justify-content: space-between; - align-items: center; - height: $code-header-height; - margin-left: 0.75rem; - margin-right: 0.25rem; - - /* the label block */ - span { - line-height: $code-header-height; - - /* label icon */ - i { - font-size: 1rem; - width: $code-icon-width; - color: var(--code-header-icon-color); - - &.small { - font-size: 70%; - } - } - - @at-root [file] #{&} > i { - position: relative; - top: 1px; /* center the file icon */ - } - - /* label text */ - &::after { - content: attr(data-label-text); - font-size: 0.85rem; - font-weight: 600; - color: var(--code-header-text-color); - } - } - - /* clipboard */ - button { - @extend %cursor-pointer; - @extend %rounded; - - border: 1px solid transparent; - height: $code-header-height; - width: $code-header-height; - padding: 0; - background-color: inherit; - - i { - color: var(--code-header-icon-color); - } - - &[timeout] { - &:hover { - border-color: var(--clipboard-checked-color); - } - - i { - color: var(--clipboard-checked-color); - } - } - - &:focus { - outline: none; - } - - &:not([timeout]):hover { - background-color: rgba(128, 128, 128, 0.37); - - i { - color: white; - } - } - } -} - -@media all and (min-width: 576px) { - div[class^='language-'] { - .content > & { - @include ml-mr(0); - - border-radius: $radius-lg; - } - - .code-header { - @include ml-mr(0); - - $dot-margin: 1rem; - - &::before { - content: ''; - display: inline-block; - margin-left: $dot-margin; - width: $code-dot-size; - height: $code-dot-size; - border-radius: 50%; - background-color: var(--code-header-muted-color); - box-shadow: ($code-dot-size + $code-dot-gap) 0 0 - var(--code-header-muted-color), - ($code-dot-size + $code-dot-gap) * 2 0 0 - var(--code-header-muted-color); - } - - span { - // center the text of label - margin-left: calc(($dot-margin + $code-dot-size) / 2 * -1); - } - } - } -} diff --git a/_sass/addon/variables.scss b/_sass/addon/variables.scss deleted file mode 100644 index 1d51cb1..0000000 --- a/_sass/addon/variables.scss +++ /dev/null @@ -1,34 +0,0 @@ -/* - * The SCSS variables - */ - -/* sidebar */ - -$sidebar-width: 260px !default; /* the basic width */ -$sidebar-width-large: 300px !default; /* screen width: >= 1650px */ -$sb-btn-gap: 0.8rem !default; -$sb-btn-gap-lg: 1rem !default; - -/* other framework sizes */ - -$topbar-height: 3rem !default; -$search-max-width: 200px !default; -$footer-height: 5rem !default; -$footer-height-large: 6rem !default; /* screen width: < 850px */ -$main-content-max-width: 1250px !default; -$radius-sm: 6px !default; -$radius-lg: 10px !default; -$back2top-size: 2.75rem !default; - -/* syntax highlight */ - -$code-font-size: 0.85rem !default; -$code-header-height: 2.25rem !default; -$code-dot-size: 0.75rem !default; -$code-dot-gap: 0.5rem !default; -$code-icon-width: 1.75rem !default; - -/* fonts */ - -$font-family-base: 'Source Sans Pro', 'Microsoft Yahei', sans-serif !default; -$font-family-heading: Lato, 'Microsoft Yahei', sans-serif !default; diff --git a/_sass/colors/syntax-dark.scss b/_sass/colors/syntax-dark.scss deleted file mode 100644 index eb92204..0000000 --- a/_sass/colors/syntax-dark.scss +++ /dev/null @@ -1,164 +0,0 @@ -/* - * The syntax dark mode styles. - */ - -@mixin dark-syntax { - --language-border-color: #2d2d2d; - --highlight-bg-color: #151515; - --highlighter-rouge-color: #c9def1; - --highlight-lineno-color: #808080; - --inline-code-bg: rgba(255, 255, 255, 0.05); - --code-color: #b0b0b0; - --code-header-text-color: #6a6a6a; - --code-header-muted-color: #353535; - --code-header-icon-color: #565656; - --clipboard-checked-color: #2bcc2b; - --filepath-text-color: #cacaca; - - .highlight .gp { - color: #87939d; - } - - /* --- Syntax highlight theme from `rougify style base16.dark` --- */ - - .highlight table td { - padding: 5px; - } - - .highlight table pre { - margin: 0; - } - - .highlight, - .highlight .w { - color: #d0d0d0; - background-color: #151515; - } - - .highlight .err { - color: #151515; - background-color: #ac4142; - } - - .highlight .c, - .highlight .ch, - .highlight .cd, - .highlight .cm, - .highlight .cpf, - .highlight .c1, - .highlight .cs { - color: #848484; - } - - .highlight .cp { - color: #f4bf75; - } - - .highlight .nt { - color: #f4bf75; - } - - .highlight .o, - .highlight .ow { - color: #d0d0d0; - } - - .highlight .p, - .highlight .pi { - color: #d0d0d0; - } - - .highlight .gi { - color: #90a959; - } - - .highlight .gd { - color: #f08a8b; - background-color: #320000; - } - - .highlight .gh { - color: #6a9fb5; - background-color: #151515; - font-weight: bold; - } - - .highlight .k, - .highlight .kn, - .highlight .kp, - .highlight .kr, - .highlight .kv { - color: #aa759f; - } - - .highlight .kc { - color: #d28445; - } - - .highlight .kt { - color: #d28445; - } - - .highlight .kd { - color: #d28445; - } - - .highlight .s, - .highlight .sb, - .highlight .sc, - .highlight .dl, - .highlight .sd, - .highlight .s2, - .highlight .sh, - .highlight .sx, - .highlight .s1 { - color: #90a959; - } - - .highlight .sa { - color: #aa759f; - } - - .highlight .sr { - color: #75b5aa; - } - - .highlight .si { - color: #b76d45; - } - - .highlight .se { - color: #b76d45; - } - - .highlight .nn { - color: #f4bf75; - } - - .highlight .nc { - color: #f4bf75; - } - - .highlight .no { - color: #f4bf75; - } - - .highlight .na { - color: #6a9fb5; - } - - .highlight .m, - .highlight .mb, - .highlight .mf, - .highlight .mh, - .highlight .mi, - .highlight .il, - .highlight .mo, - .highlight .mx { - color: #90a959; - } - - .highlight .ss { - color: #90a959; - } -} diff --git a/_sass/colors/syntax-light.scss b/_sass/colors/syntax-light.scss deleted file mode 100644 index 76aa669..0000000 --- a/_sass/colors/syntax-light.scss +++ /dev/null @@ -1,210 +0,0 @@ -/* - * The syntax light mode code snippet colors. - */ - -@mixin light-syntax { - /* --- custom light colors --- */ - --language-border-color: #ececec; - --highlight-bg-color: #f6f8fa; - --highlighter-rouge-color: #3f596f; - --highlight-lineno-color: #9e9e9e; - --inline-code-bg: rgba(25, 25, 28, 0.05); - --code-color: #3a3a3a; - --code-header-text-color: #a3a3a3; - --code-header-muted-color: #e5e5e5; - --code-header-icon-color: #c9c8c8; - --clipboard-checked-color: #43c743; - - /* --- Syntax highlight theme from `rougify style github` --- */ - - .highlight table td { - padding: 5px; - } - - .highlight table pre { - margin: 0; - } - - .highlight, - .highlight .w { - color: #24292f; - background-color: #f6f8fa; - } - - .highlight .k, - .highlight .kd, - .highlight .kn, - .highlight .kp, - .highlight .kr, - .highlight .kt, - .highlight .kv { - color: #cf222e; - } - - .highlight .gr { - color: #f6f8fa; - } - - .highlight .gd { - color: #82071e; - background-color: #ffebe9; - } - - .highlight .nb { - color: #953800; - } - - .highlight .nc { - color: #953800; - } - - .highlight .no { - color: #953800; - } - - .highlight .nn { - color: #953800; - } - - .highlight .sr { - color: #116329; - } - - .highlight .na { - color: #116329; - } - - .highlight .nt { - color: #116329; - } - - .highlight .gi { - color: #116329; - background-color: #dafbe1; - } - - .highlight .kc { - color: #0550ae; - } - - .highlight .l, - .highlight .ld, - .highlight .m, - .highlight .mb, - .highlight .mf, - .highlight .mh, - .highlight .mi, - .highlight .il, - .highlight .mo, - .highlight .mx { - color: #0550ae; - } - - .highlight .sb { - color: #0550ae; - } - - .highlight .bp { - color: #0550ae; - } - - .highlight .ne { - color: #0550ae; - } - - .highlight .nl { - color: #0550ae; - } - - .highlight .py { - color: #0550ae; - } - - .highlight .nv, - .highlight .vc, - .highlight .vg, - .highlight .vi, - .highlight .vm { - color: #0550ae; - } - - .highlight .o, - .highlight .ow { - color: #0550ae; - } - - .highlight .gh { - color: #0550ae; - font-weight: bold; - } - - .highlight .gu { - color: #0550ae; - font-weight: bold; - } - - .highlight .s, - .highlight .sa, - .highlight .sc, - .highlight .dl, - .highlight .sd, - .highlight .s2, - .highlight .se, - .highlight .sh, - .highlight .sx, - .highlight .s1, - .highlight .ss { - color: #0a3069; - } - - .highlight .nd { - color: #8250df; - } - - .highlight .nf, - .highlight .fm { - color: #8250df; - } - - .highlight .err { - color: #f6f8fa; - background-color: #82071e; - } - - .highlight .c, - .highlight .ch, - .highlight .cd, - .highlight .cm, - .highlight .cp, - .highlight .cpf, - .highlight .c1, - .highlight .cs { - color: #68717a; - } - - .highlight .gl { - color: #68717a; - } - - .highlight .gt { - color: #68717a; - } - - .highlight .ni { - color: #24292f; - } - - .highlight .si { - color: #24292f; - } - - .highlight .ge { - color: #24292f; - font-style: italic; - } - - .highlight .gs { - color: #24292f; - font-weight: bold; - } -} /* light-syntax */ diff --git a/_sass/colors/typography-dark.scss b/_sass/colors/typography-dark.scss deleted file mode 100644 index 664c936..0000000 --- a/_sass/colors/typography-dark.scss +++ /dev/null @@ -1,147 +0,0 @@ -/* - * The main dark mode styles - */ - -@mixin dark-scheme { - /* Framework color */ - --main-bg: rgb(27, 27, 30); - --mask-bg: rgb(68, 69, 70); - --main-border-color: rgb(44, 45, 45); - - /* Common color */ - --text-color: rgb(175, 176, 177); - --text-muted-color: #868686; - --text-muted-highlight-color: #aeaeae; - --heading-color: #cccccc; - --label-color: #a7a7a7; - --blockquote-border-color: rgb(66, 66, 66); - --blockquote-text-color: #868686; - --link-color: rgb(138, 180, 248); - --link-underline-color: rgb(82, 108, 150); - --button-bg: #1e1e1e; - --btn-border-color: #2e2f31; - --btn-backtotop-color: var(--text-color); - --btn-backtotop-border-color: #212122; - --card-header-bg: #292929; - --checkbox-color: rgb(118, 120, 121); - --checkbox-checked-color: var(--link-color); - --img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%); - --shimmer-bg: linear-gradient( - 90deg, - rgba(255, 255, 255, 0) 0%, - rgba(58, 55, 55, 0.4) 50%, - rgba(255, 255, 255, 0) 100% - ); - - /* Sidebar */ - --site-title-color: #717070; - --site-subtitle-color: #868686; - --sidebar-bg: #1e1e1e; - --sidebar-border-color: #292929; - --sidebar-muted-color: #868686; - --sidebar-active-color: rgb(255, 255, 255, 0.95); - --sidebar-hover-bg: #262626; - --sidebar-btn-bg: #232328; - --sidebar-btn-color: #787878; - --avatar-border-color: rgb(206, 206, 206, 0.9); - - /* Topbar */ - --topbar-bg: rgb(27, 27, 30, 0.64); - --topbar-text-color: var(--text-color); - --search-border-color: rgb(55, 55, 55); - --search-icon-color: rgb(100, 102, 105); - --input-focus-border-color: rgb(112, 114, 115); - - /* Home page */ - --post-list-text-color: rgb(175, 176, 177); - --btn-patinator-text-color: var(--text-color); - --btn-paginator-hover-color: #2e2e2e; - - /* Posts */ - --toc-highlight: rgb(116, 178, 243); - --toc-popup-border-color: #373737; - --tag-hover: rgb(43, 56, 62); - --tb-odd-bg: #252526; /* odd rows of the posts' table */ - --tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */ - --tb-border-color: var(--tb-odd-bg); - --footnote-target-bg: rgb(63, 81, 181); - --btn-share-color: #6c757d; - --btn-share-hover-color: #bfc1ca; - --card-bg: #1e1e1e; - --card-hovor-bg: #464d51; - --card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0, - rgb(137, 135, 135, 0.24) 0 0 0 1px; - --kbd-wrap-color: #6a6a6a; - --kbd-text-color: #d3d3d3; - --kbd-bg-color: #242424; - --prompt-text-color: rgb(216, 212, 212, 0.75); - --prompt-tip-bg: rgb(22, 60, 36, 0.64); - --prompt-tip-icon-color: rgb(15, 164, 15, 0.81); - --prompt-info-bg: rgb(7, 59, 104, 0.8); - --prompt-info-icon-color: #0075d1; - --prompt-warning-bg: rgb(90, 69, 3, 0.88); - --prompt-warning-icon-color: rgb(255, 165, 0, 0.8); - --prompt-danger-bg: rgb(86, 28, 8, 0.8); - --prompt-danger-icon-color: #cd0202; - - /* Tags */ - --tag-border: rgb(59, 79, 88); - --tag-shadow: rgb(32, 33, 33); - --dash-color: rgb(63, 65, 68); - --search-tag-bg: #292828; - - /* Categories */ - --categories-border: rgb(64, 66, 69, 0.5); - --categories-hover-bg: rgb(73, 75, 76); - --categories-icon-hover-color: white; - - /* Archive */ - --timeline-node-bg: rgb(150, 152, 156); - --timeline-color: rgb(63, 65, 68); - --timeline-year-dot-color: var(--timeline-color); - - color-scheme: dark; - - .light { - display: none; - } - - /* Categories */ - .categories.card, - .list-group-item { - background-color: var(--card-bg); - } - - .categories { - .card-header { - background-color: var(--card-header-bg); - } - - .list-group-item { - border-left: none; - border-right: none; - padding-left: 2rem; - border-color: var(--categories-border); - - &:last-child { - border-bottom-color: var(--card-bg); - } - } - } - - #archives li:nth-child(odd) { - background-image: linear-gradient( - to left, - rgb(26, 26, 30), - rgb(39, 39, 45), - rgb(39, 39, 45), - rgb(39, 39, 45), - rgb(26, 26, 30) - ); - } - - /* stylelint-disable-next-line selector-id-pattern */ - #disqus_thread { - color-scheme: none; - } -} /* dark-scheme */ diff --git a/_sass/colors/typography-light.scss b/_sass/colors/typography-light.scss deleted file mode 100644 index b6fc561..0000000 --- a/_sass/colors/typography-light.scss +++ /dev/null @@ -1,112 +0,0 @@ -/* - * The syntax light mode typography colors - */ - -@mixin light-scheme { - /* Framework color */ - --main-bg: white; - --mask-bg: #c1c3c5; - --main-border-color: #f3f3f3; - - /* Common color */ - --text-color: #34343c; - --text-muted-color: #757575; - --text-muted-highlight-color: inherit; - --heading-color: #2a2a2a; - --label-color: #585858; - --blockquote-border-color: #eeeeee; - --blockquote-text-color: #757575; - --link-color: #0056b2; - --link-underline-color: #dee2e6; - --button-bg: #ffffff; - --btn-border-color: #e9ecef; - --btn-backtotop-color: #686868; - --btn-backtotop-border-color: #f1f1f1; - --checkbox-color: #c5c5c5; - --checkbox-checked-color: #07a8f7; - --img-bg: radial-gradient( - circle, - rgb(255, 255, 255) 0%, - rgb(239, 239, 239) 100% - ); - --shimmer-bg: linear-gradient( - 90deg, - rgba(250, 250, 250, 0) 0%, - rgba(232, 230, 230, 1) 50%, - rgba(250, 250, 250, 0) 100% - ); - - /* Sidebar */ - --site-title-color: rgb(113, 113, 113); - --site-subtitle-color: #717171; - --sidebar-bg: #f6f8fa; - --sidebar-border-color: #efefef; - --sidebar-muted-color: #545454; - --sidebar-active-color: #1d1d1d; - --sidebar-hover-bg: rgb(223, 233, 241, 0.64); - --sidebar-btn-bg: white; - --sidebar-btn-color: #8e8e8e; - --avatar-border-color: white; - - /* Topbar */ - --topbar-bg: rgb(255, 255, 255, 0.7); - --topbar-text-color: rgb(78, 78, 78); - --search-border-color: rgb(240, 240, 240); - --search-icon-color: #c2c6cc; - --input-focus-border-color: #b8b8b8; - - /* Home page */ - --post-list-text-color: dimgray; - --btn-patinator-text-color: #555555; - --btn-paginator-hover-color: var(--sidebar-bg); - - /* Posts */ - --toc-highlight: #0550ae; - --toc-popup-border-color: lightgray; - --btn-share-color: gray; - --btn-share-hover-color: #0d6efd; - --card-bg: white; - --card-hovor-bg: #e2e2e2; - --card-shadow: rgb(104, 104, 104, 0.05) 0 2px 6px 0, - rgba(211, 209, 209, 0.15) 0 0 0 1px; - --footnote-target-bg: lightcyan; - --tb-odd-bg: #fbfcfd; - --tb-border-color: #eaeaea; - --dash-color: silver; - --kbd-wrap-color: #bdbdbd; - --kbd-text-color: var(--text-color); - --kbd-bg-color: white; - --prompt-text-color: rgb(46, 46, 46, 0.77); - --prompt-tip-bg: rgb(123, 247, 144, 0.2); - --prompt-tip-icon-color: #03b303; - --prompt-info-bg: #e1f5fe; - --prompt-info-icon-color: #0070cb; - --prompt-warning-bg: rgb(255, 243, 205); - --prompt-warning-icon-color: #ef9c03; - --prompt-danger-bg: rgb(248, 215, 218, 0.56); - --prompt-danger-icon-color: #df3c30; - - /* Tags */ - --tag-border: #dee2e6; - --tag-shadow: var(--btn-border-color); - --tag-hover: rgb(222, 226, 230); - --search-tag-bg: #f8f9fa; - - /* Categories */ - --categories-border: rgba(0, 0, 0, 0.125); - --categories-hover-bg: var(--btn-border-color); - --categories-icon-hover-color: darkslategray; - - /* Archive */ - --timeline-color: rgba(0, 0, 0, 0.075); - --timeline-node-bg: #c2c6cc; - --timeline-year-dot-color: #ffffff; - - [class^='prompt-'] { - --link-underline-color: rgb(219, 216, 216); - } - - .dark { - display: none; - } -} /* light-scheme */ diff --git a/_sass/layout/archives.scss b/_sass/layout/archives.scss deleted file mode 100644 index fd1979b..0000000 --- a/_sass/layout/archives.scss +++ /dev/null @@ -1,143 +0,0 @@ -/* - Style for Archives -*/ - -#archives { - letter-spacing: 0.03rem; - - $timeline-width: 4px; - - %timeline { - content: ''; - width: $timeline-width; - position: relative; - float: left; - background-color: var(--timeline-color); - } - - .year { - height: 3.5rem; - font-size: 1.5rem; - position: relative; - left: 2px; - margin-left: -$timeline-width; - - &::before { - @extend %timeline; - - height: 72px; - left: 79px; - bottom: 16px; - } - - &:first-child::before { - @extend %timeline; - - height: 32px; - top: 24px; - } - - /* Year dot */ - &::after { - content: ''; - display: inline-block; - position: relative; - border-radius: 50%; - width: 12px; - height: 12px; - left: 21.5px; - border: 3px solid; - background-color: var(--timeline-year-dot-color); - border-color: var(--timeline-node-bg); - box-shadow: 0 0 2px 0 #c2c6cc; - z-index: 1; - } - } - - ul { - li { - font-size: 1.1rem; - line-height: 3rem; - - @extend %text-ellipsis; - - &:nth-child(odd) { - background-color: var(--main-bg, #ffffff); - background-image: linear-gradient( - to left, - #ffffff, - #fbfbfb, - #fbfbfb, - #fbfbfb, - #ffffff - ); - } - - &::before { - @extend %timeline; - - top: 0; - left: 77px; - height: 3.1rem; - } - } - - &:last-child li:last-child::before { - height: 1.5rem; - } - } /* #archives ul */ - - .date { - white-space: nowrap; - display: inline-block; - position: relative; - right: 0.5rem; - - &.month { - width: 1.4rem; - text-align: center; - } - - &.day { - font-size: 85%; - font-family: Lato, sans-serif; - } - } - - a { - /* post title in Archvies */ - margin-left: 2.5rem; - position: relative; - top: 0.1rem; - - &:hover { - border-bottom: none; - } - - &::before { - /* the dot before post title */ - content: ''; - display: inline-block; - position: relative; - border-radius: 50%; - width: 8px; - height: 8px; - float: left; - top: 1.35rem; - left: 71px; - background-color: var(--timeline-node-bg); - box-shadow: 0 0 3px 0 #c2c6cc; - z-index: 1; - } - } -} /* #archives */ - -@media all and (max-width: 576px) { - #archives { - margin-top: -1rem; - - ul { - letter-spacing: 0; - } - } -} diff --git a/_sass/layout/categories.scss b/_sass/layout/categories.scss deleted file mode 100644 index f12b963..0000000 --- a/_sass/layout/categories.scss +++ /dev/null @@ -1,83 +0,0 @@ -/* - Style for Tab Categories -*/ - -%category-icon-color { - color: gray; -} - -.categories { - margin-bottom: 2rem; - border-color: var(--categories-border); - - &.card, - .list-group { - @extend %rounded; - } - - .card-header { - $radius: calc($radius-lg - 1px); - - padding: 0.75rem; - border-radius: $radius; - border-bottom: 0; - - &.hide-border-bottom { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - } - - i { - @extend %category-icon-color; - - font-size: 86%; /* fontawesome icons */ - } - - .list-group-item { - border-left: none; - border-right: none; - padding-left: 2rem; - - &:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - &:last-child { - border-bottom: 0; - } - } -} /* .categories */ - -.category-trigger { - width: 1.7rem; - height: 1.7rem; - border-radius: 50%; - text-align: center; - color: #6c757d !important; - - i { - position: relative; - height: 0.7rem; - width: 1rem; - transition: transform 300ms ease; - } - - &:hover { - i { - color: var(--categories-icon-hover-color); - } - } -} - -/* only works on desktop */ -@media (hover: hover) { - .category-trigger:hover { - background-color: var(--categories-hover-bg); - } -} - -.rotate { - transform: rotate(-90deg); -} diff --git a/_sass/layout/category-tag.scss b/_sass/layout/category-tag.scss deleted file mode 100644 index fe7d99c..0000000 --- a/_sass/layout/category-tag.scss +++ /dev/null @@ -1,70 +0,0 @@ -/* - Style for page Category and Tag -*/ - -.dash { - margin: 0 0.5rem 0.6rem 0.5rem; - border-bottom: 2px dotted var(--dash-color); -} - -#page-category, -#page-tag { - ul > li { - line-height: 1.5rem; - padding: 0.6rem 0; - - /* dot */ - &::before { - background: #999999; - width: 5px; - height: 5px; - border-radius: 50%; - display: block; - content: ''; - position: relative; - top: 0.6rem; - margin-right: 0.5rem; - } - - /* post's title */ - > a { - @extend %no-bottom-border; - - font-size: 1.1rem; - } - } -} - -/* tag icon */ -#page-tag h1 > i { - font-size: 1.2rem; -} - -#page-category h1 > i { - font-size: 1.25rem; -} - -#page-category, -#page-tag, -#access-lastmod { - a:hover { - @extend %link-hover; - - margin-bottom: -1px; /* Avoid jumping */ - } -} - -@media all and (max-width: 576px) { - #page-category, - #page-tag { - ul > li { - &::before { - margin: 0 0.5rem; - } - - > a { - @include text-ellipsis; - } - } - } -} diff --git a/_sass/layout/home.scss b/_sass/layout/home.scss deleted file mode 100644 index 7fff3ba..0000000 --- a/_sass/layout/home.scss +++ /dev/null @@ -1,188 +0,0 @@ -/* - Style for Homepage -*/ - -#post-list { - margin-top: 2rem; - - .card-wrapper { - &:hover { - text-decoration: none; - } - - &:not(:last-child) { - margin-bottom: 1.25rem; - } - } - - .card { - border: 0; - background: none; - - %img-radius { - border-radius: $radius-lg $radius-lg 0 0; - } - - .preview-img { - @extend %img-radius; - - img { - @extend %img-radius; - } - } - - .card-body { - height: 100%; - padding: 1rem; - - .card-title { - @extend %text-clip; - - color: var(--heading-color) !important; - font-size: 1.25rem; - } - - %muted { - color: var(--text-muted-color) !important; - } - - .card-text.content { - @extend %muted; - - p { - @extend %text-clip; - - line-height: 1.5; - margin: 0; - } - } - - .post-meta { - @extend %muted; - - i { - &:not(:first-child) { - margin-left: 1.5rem; - } - } - - em { - @extend %normal-font-style; - - color: inherit; - } - - > div:first-child { - display: block; - - @extend %text-ellipsis; - } - } - } - } -} /* #post-list */ - -.pagination { - color: var(--text-color); - font-family: Lato, sans-serif; - justify-content: space-evenly; - - a:hover { - text-decoration: none; - } - - .page-item { - .page-link { - color: var(--btn-patinator-text-color); - padding: 0 0.6rem; - display: -webkit-box; - -webkit-box-pack: center; - -webkit-box-align: center; - border-radius: 0.5rem; - border: 0; - background-color: inherit; - } - - &.active { - .page-link { - background-color: var(--btn-paginator-hover-color); - } - } - - &:not(.active) { - .page-link { - &:hover { - box-shadow: inset var(--btn-border-color) 0 0 0 1px; - } - } - } - - &.disabled { - cursor: not-allowed; - - .page-link { - color: rgba(108, 117, 125, 0.57); - } - } - } /* .page-item */ -} /* .pagination */ - -/* Tablet */ -@media all and (min-width: 768px) { - %img-radius { - border-radius: 0 $radius-lg $radius-lg 0; - } - - #post-list { - .card { - .card-body { - padding: 1.75rem 1.75rem 1.25rem 1.75rem; - - .card-text { - display: inherit !important; - } - - .post-meta { - i { - &:not(:first-child) { - margin-left: 1.75rem; - } - } - } - } - } - } -} - -/* Hide SideBar and TOC */ -@media all and (max-width: 830px) { - .pagination { - .page-item { - &:not(:first-child):not(:last-child) { - display: none; - } - } - } -} - -/* Sidebar is visible */ -@media all and (min-width: 831px) { - #post-list { - margin-top: 2.5rem; - } - - .pagination { - font-size: 0.85rem; - justify-content: center; - - .page-item { - &:not(:last-child) { - margin-right: 0.7rem; - } - } - - .page-index { - display: none; - } - } /* .pagination */ -} diff --git a/_sass/layout/post.scss b/_sass/layout/post.scss deleted file mode 100644 index b66e906..0000000 --- a/_sass/layout/post.scss +++ /dev/null @@ -1,585 +0,0 @@ -/** - * Post-specific styles - */ - -%btn-post-nav { - width: 50%; - position: relative; - border-color: var(--btn-border-color); -} - -@mixin dot($pl: 0.25rem, $pr: 0.25rem) { - content: '\2022'; - padding-left: $pl; - padding-right: $pr; -} - -header { - .post-desc { - @extend %heading; - - font-size: 1.125rem; - line-height: 1.6; - } - - .post-meta { - span + span::before { - @include dot; - } - - em, - time { - @extend %text-highlight; - } - - em { - a { - color: inherit; - } - } - } - - h1 + .post-meta { - margin-top: 1.5rem; - } -} - -.post-tail-wrapper { - @extend %text-sm; - - margin-top: 6rem; - border-bottom: 1px double var(--main-border-color); - - .license-wrapper { - line-height: 1.2rem; - - > a { - @extend %text-highlight; - - &:hover { - @extend %link-hover; - } - } - - span:last-child { - @extend %text-sm; - } - } /* .license-wrapper */ - - .post-meta a:not(:hover) { - @extend %link-underline; - } - - .share-wrapper { - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - - %icon-size { - font-size: 1.125rem; - } - - .share-icons { - display: flex; - - i { - color: var(--btn-share-color); - - @extend %icon-size; - } - - > * { - @extend %icon-size; - - margin-left: 0.5rem; - - &:hover { - i { - @extend %btn-share-hover; - } - } - } - - button { - padding: 0; - border: none; - line-height: inherit; - - @extend %cursor-pointer; - } - } /* .share-icons */ - } /* .share-wrapper */ -} - -.share-mastodon { - /* See: https://github.com/justinribeiro/share-to-mastodon#properties */ - --wc-stm-font-family: $font-family-base; - --wc-stm-dialog-background-color: var(--card-bg); - --wc-stm-form-button-border: 1px solid var(--btn-border-color); - --wc-stm-form-submit-background-color: var(--sidebar-btn-bg); - --wc-stm-form-cancel-background-color: var(--sidebar-btn-bg); - --wc-stm-form-button-background-color-hover: #007bff; - --wc-stm-form-button-color-hover: white; - - font-size: 1rem; -} - -.post-tags { - line-height: 2rem; - - .post-tag { - &:hover { - @extend %link-hover; - @extend %tag-hover; - @extend %no-bottom-border; - } - } -} - -.post-navigation { - .btn { - @extend %btn-post-nav; - - &:not(:hover) { - color: var(--link-color); - } - - &:hover { - &:not(.disabled)::before { - color: whitesmoke; - } - } - - &.disabled { - @extend %btn-post-nav; - - pointer-events: auto; - cursor: not-allowed; - background: none; - color: gray; - } - - &.btn-outline-primary.disabled:focus { - box-shadow: none; - } - - &::before { - color: var(--text-muted-color); - font-size: 0.65rem; - text-transform: uppercase; - content: attr(aria-label); - } - - &:first-child { - border-radius: $radius-lg 0 0 $radius-lg; - left: 0.5px; - } - - &:last-child { - border-radius: 0 $radius-lg $radius-lg 0; - right: 0.5px; - } - } - - p { - font-size: 1.1rem; - line-height: 1.5rem; - margin-top: 0.3rem; - white-space: normal; - } -} /* .post-navigation */ - -@media (hover: hover) { - .post-navigation { - .btn, - .btn::before { - transition: all 0.35s ease-in-out; - } - } -} - -@-webkit-keyframes fade-up { - from { - opacity: 0; - position: relative; - top: 2rem; - } - - to { - opacity: 1; - position: relative; - top: 0; - } -} - -@keyframes fade-up { - from { - opacity: 0; - position: relative; - top: 2rem; - } - - to { - opacity: 1; - position: relative; - top: 0; - } -} - -/* TOC panel */ -#toc-wrapper { - border-left: 1px solid rgba(158, 158, 158, 0.17); - position: -webkit-sticky; - position: sticky; - top: 4rem; - transition: top 0.2s ease-in-out; - -webkit-animation: fade-up 0.8s; - animation: fade-up 0.8s; - - ul { - list-style: none; - font-size: 0.85rem; - line-height: 1.25; - padding-left: 0; - - li { - &:not(:last-child) { - margin: 0.4rem 0; - } - - a { - padding: 0.2rem 0 0.2rem 1.25rem; - } - } - - /* Overwrite TOC plugin style */ - - .toc-link { - display: block; - - @extend %text-ellipsis; - - &:hover { - color: var(--toc-highlight); - text-decoration: none; - } - - &::before { - display: none; - } - } - - .is-active-link { - color: var(--toc-highlight) !important; - font-weight: 600; - - &::before { - display: inline-block; - width: 1px; - left: -1px; - height: 1.25rem; - background-color: var(--toc-highlight) !important; - } - } - - ul { - padding-left: 0.75rem; - } - } -} - -/* --- TOC button, bar and popup in mobile/tablet --- */ - -#toc-bar { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1; - margin: 0 -1rem; - height: $topbar-height; - background: var(--main-bg); - border-bottom: 1px solid var(--main-border-color); - transition: all 0.2s ease-in-out; - - @extend %btn-color; - - .label { - @extend %heading; - - margin-left: 0.25rem; - padding: 0 0.75rem; - color: inherit; - } - - &.invisible { - top: -$topbar-height; - transition: none; - } -} - -#toc-solo-trigger { - color: var(--text-muted-color); - border-color: var(--btn-border-color); - border-radius: $radius-lg; - - .label { - font-size: 1rem; - font-family: $font-family-heading; - } - - &:hover { - box-shadow: none; - background: none; - } -} - -@mixin slide-in { - from { - opacity: 0.7; - transform: translateY(-$topbar-height); - } - - to { - opacity: 1; - transform: translateY(0); - } -} - -@mixin slide-out { - 0% { - transform: translateY(0); - opacity: 1; - } - - 100% { - transform: translateY(-$topbar-height); - opacity: 0; - } -} - -@-webkit-keyframes slide-in { - @include slide-in; -} - -@keyframes slide-in { - @include slide-in; -} - -@-webkit-keyframes slide-out { - @include slide-out; -} - -@keyframes slide-out { - @include slide-out; -} - -#toc-popup { - $slide-in: slide-in 0.3s ease-out; - $slide-out: slide-out 0.3s ease-out; - $curtain-height: 2rem; - $backdrop: blur(5px); - - border-color: var(--toc-popup-border-color); - border-width: 1px; - border-radius: $radius-lg; - color: var(--text-color); - background: var(--card-bg); - margin-top: $topbar-height; - min-width: 20rem; - font-size: 1.05rem; - - @media all and (min-width: 576px) { - max-width: 32rem; - } - - &[open] { - -webkit-animation: $slide-in; - animation: $slide-in; - } - - &[closing] { - -webkit-animation: $slide-out; - animation: $slide-out; - } - - @media all and (min-width: 850px) { - left: $sidebar-width; - } - - .header { - @extend %btn-color; - - position: -webkit-sticky; - position: sticky; - top: 0; - background-color: inherit; - border-bottom: 1px solid var(--main-border-color); - - .label { - font-family: $font-family-heading; - } - } - - button { - > i { - font-size: 1.25rem; - vertical-align: middle; - } - - &:focus-visible { - box-shadow: none; - } - } - - ul { - list-style-type: none; - padding-left: 0; - - li { - ul, - & + li { - margin-top: 0.25rem; - } - - a { - display: flex; - line-height: 1.5; - padding: 0.375rem 0; - padding-right: 1.125rem; - - &.toc-link::before { - display: none; - } - } - } - } - - @for $i from 2 through 4 { - .node-name--H#{$i} { - padding-left: 1.125rem * ($i - 1); - } - } - - .is-active-link { - color: var(--toc-highlight) !important; - font-weight: 600; - } - - &::-webkit-backdrop { - -webkit-backdrop-filter: $backdrop; - backdrop-filter: $backdrop; - } - - &::backdrop { - -webkit-backdrop-filter: $backdrop; - backdrop-filter: $backdrop; - } - - &::after { - display: flex; - content: ''; - position: relative; - background: linear-gradient(transparent, var(--card-bg) 70%); - height: $curtain-height; - } - - #toc-popup-content { - overflow: auto; - max-height: calc(100vh - 4 * $topbar-height); - font-family: $font-family-heading; - margin-bottom: -$curtain-height; - } -} - -/* --- Related Posts --- */ - -#related-posts { - > h3 { - @include label(1.1rem, 600); - } - - time { - @extend %normal-font-style; - @extend %text-xs; - - color: var(--text-muted-color); - } - - p { - @extend %text-ellipsis; - - font-size: 0.9rem; - margin-bottom: 0.5rem; - white-space: break-spaces; - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - } - - .card { - h4 { - @extend %text-clip; - } - } -} - -/* stylelint-disable-next-line selector-id-pattern */ -#disqus_thread { - min-height: 8.5rem; -} - -.utterances { - max-width: 100%; -} - -%btn-share-hover { - color: var(--btn-share-hover-color) !important; -} - -.share-label { - @include label(inherit, 400, inherit); - - &::after { - content: ':'; - } -} - -@media all and (max-width: 576px) { - .post-tail-bottom { - flex-wrap: wrap-reverse !important; - - > div:first-child { - width: 100%; - margin-top: 1rem; - } - } -} - -@media all and (max-width: 768px) { - .content > p > img { - max-width: calc(100% + 1rem); - } -} - -/* Hide SideBar and TOC */ -@media all and (max-width: 849px) { - .post-navigation { - @include pl-pr(0); - @include ml-mr(-0.5rem); - } -} - -@media all and (min-width: 1200px) { - h2, - h3, - h4 { - scroll-margin-top: 2rem; - } - - #toc-bar, - #toc-solo-trigger { - display: none !important; - } -} diff --git a/_sass/layout/tags.scss b/_sass/layout/tags.scss deleted file mode 100644 index 4cf5d3b..0000000 --- a/_sass/layout/tags.scss +++ /dev/null @@ -1,19 +0,0 @@ -/* - Styles for Tab Tags -*/ - -.tag { - border-radius: 0.7em; - padding: 6px 8px 7px; - margin-right: 0.8rem; - line-height: 3rem; - letter-spacing: 0; - border: 1px solid var(--tag-border) !important; - box-shadow: 0 0 3px 0 var(--tag-shadow); - - span { - margin-left: 0.6em; - font-size: 0.7em; - font-family: Oswald, sans-serif; - } -} diff --git a/_sass/main.bundle.scss b/_sass/main.bundle.scss deleted file mode 100644 index 52e893f..0000000 --- a/_sass/main.bundle.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import 'dist/bootstrap'; -@import 'main'; diff --git a/_sass/main.scss b/_sass/main.scss deleted file mode 100644 index 1c2311d..0000000 --- a/_sass/main.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import 'colors/typography-light'; -@import 'colors/typography-dark'; -@import 'addon/variables'; -@import 'variables-hook'; -@import 'addon/module'; -@import 'addon/syntax'; -@import 'addon/commons'; -@import 'layout/home'; -@import 'layout/post'; -@import 'layout/tags'; -@import 'layout/archives'; -@import 'layout/categories'; -@import 'layout/category-tag'; diff --git a/_sass/variables-hook.scss b/_sass/variables-hook.scss deleted file mode 100644 index f27e0eb..0000000 --- a/_sass/variables-hook.scss +++ /dev/null @@ -1,3 +0,0 @@ -/* - Appending custom SCSS variables will override the default ones in `_sass/addon/variables.scsss` -*/ diff --git a/_tabs/about.md b/_tabs/about.md deleted file mode 100644 index ddb2bc4..0000000 --- a/_tabs/about.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -# the default layout is 'page' -icon: fas fa-info-circle -order: 4 ---- - -> Add Markdown syntax content to file `_tabs/about.md`{: .filepath } and it will show up on this page. -{: .prompt-tip } diff --git a/_tabs/archives.md b/_tabs/archives.md deleted file mode 100644 index c3abc59..0000000 --- a/_tabs/archives.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: archives -icon: fas fa-archive -order: 3 ---- diff --git a/_tabs/categories.md b/_tabs/categories.md deleted file mode 100644 index 2d241be..0000000 --- a/_tabs/categories.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: categories -icon: fas fa-stream -order: 1 ---- diff --git a/_tabs/tags.md b/_tabs/tags.md deleted file mode 100644 index ded3adc..0000000 --- a/_tabs/tags.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: tags -icon: fas fa-tags -order: 2 ---- diff --git a/assets/404.html b/assets/404.html deleted file mode 100644 index af89d6d..0000000 --- a/assets/404.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: page -title: "404: Page not found" -permalink: /404.html - -redirect_from: - - /norobots/ - - /assets/ - - /posts/ ---- - -{% include lang.html %} - -

{{ site.data.locales[lang].not_found.statement }}

diff --git a/assets/css/jekyll-theme-chirpy.scss b/assets/css/jekyll-theme-chirpy.scss deleted file mode 100644 index d20545b..0000000 --- a/assets/css/jekyll-theme-chirpy.scss +++ /dev/null @@ -1,10 +0,0 @@ ---- ---- - -@import 'main -{%- if jekyll.environment == 'production' -%} - .bundle -{%- endif -%} -'; - -/* append your custom style below */ diff --git a/assets/feed.xml b/assets/feed.xml deleted file mode 100644 index d2aad4d..0000000 --- a/assets/feed.xml +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: compress -permalink: /feed.xml -# Atom Feed, reference: https://validator.w3.org/feed/docs/atom.html ---- - -{% capture source %} - - {{ "/" | absolute_url }} - {{ site.title }} - {{ site.description }} - {{ site.time | date_to_xmlschema }} - - {{ site.social.name }} - {{ "/" | absolute_url }} - - - - Jekyll - © {{ 'now' | date: '%Y' }} {{ site.social.name }} - {{ site.baseurl }}/assets/img/favicons/favicon.ico - {{ site.baseurl }}/assets/img/favicons/favicon-96x96.png - -{% for post in site.posts limit: 5 %} - {% assign post_absolute_url = post.url | absolute_url %} - - {{ post.title }} - - {{ post.date | date_to_xmlschema }} - {% if post.last_modified_at %} - {{ post.last_modified_at | date_to_xmlschema }} - {% else %} - {{ post.date | date_to_xmlschema }} - {% endif %} - {{ post_absolute_url }} - - - {{ post.author | default: site.social.name }} - - - {% if post.categories %} - {% for category in post.categories %} - - {% endfor %} - {% endif %} - - {% include post-description.html max_length=400 %} - - -{% endfor %} - -{% endcapture %} -{{ source | replace: '&', '&' }} diff --git a/assets/img/favicons/android-chrome-192x192.png b/assets/img/favicons/android-chrome-192x192.png deleted file mode 100644 index 47b58e2284c69e17b1c60fcd98588e1e95177425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22560 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

5vMn1KXI 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 diff --git a/assets/img/favicons/android-chrome-512x512.png b/assets/img/favicons/android-chrome-512x512.png deleted file mode 100644 index 7aeb1a740b600aa94ba7d60e790d177fd64ec83d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112814 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 diff --git a/assets/img/favicons/apple-touch-icon.png b/assets/img/favicons/apple-touch-icon.png deleted file mode 100644 index 90e253afb3547266caa6ff23a72037b068e36449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17574 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 - - - - - #da532c - - - diff --git a/assets/img/favicons/favicon-16x16.png b/assets/img/favicons/favicon-16x16.png deleted file mode 100644 index 272d2cc27b47d8c158736f7b3b56400a55677cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf66p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`kNVGw3Kp1&dm zD9B#o>Fdh=f}5Y4#c1ce%v=Tr#`B&ojv*T7Sr6Xz4o+k^@bJFn`)7XXv-5H{E|s3O zlW)?K1scDUrU!^QvNU=GUeJ5x_Cl%UUsE3UuGdP7c5ye&=;ExM5hBr(bW82wu_d{$ zwyoK`^K5NJl^o|S!wWk%AFsPvc5rjNNq6DLTi?spym3hq=8O}(yf3?V_p8o0Z+=~| z3#WsYn3Wc;n>NpZujs1C3=R9@*1YJv3+-L=H=MQF_1DDW+ByFxN`Gx%d7dqt=BKp8 zLrEeb!b-y{T&|2?xi7M~KPKHtXTj#iV>U){c7=UE*R4>u(CvA=?Kj`m<8f&-j(K)y zMDhizyWN{zt3SP8* z=droC-|4nT&sZ%F@k~hQwCMgKtajKtM#6XUzule_k7w-I5S+-a%{p&Gk6*rbe^>6& z+LPC|xpjt`NgO)o{^`lhBkroZzc`rL9ohG8*)gt25vB}{l!%3GlW(YWJB4h&wn};K zH5p#Fz?F}l80#{r2*0dOiq(jiRR2%RZ)bVzVV|Z@D+v`}tw@RReOm;4RhGzq{jo34 zCcmYdOVCQ|m`~Q9Yj@1cCNP{aIdHne^2*ip8AkhOP4@Z7&+v~qrfFsPyWmfGz}QwT zag8WRNi0dVN-jzTQVd20Mkcz3hPsBPA%=!l1}0Xf2HFM&Rt5%gSI>o@Xvob^$xN%n qts%do444cVG~hOrWag$8mn7yE;MQX?H{2Ykhr!d;&t;ucLK6VhL@KHP diff --git a/assets/img/favicons/favicon-32x32.png b/assets/img/favicons/favicon-32x32.png deleted file mode 100644 index 3884d0bf0f40fffdba9c5f8b8cb1335a69673362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1685 zcmZ{keK^w#8^?de4%Y0^9ztF!n^HKoA_}oqb<}ET@vMKI>w5k;e|+!n_5I%0=eqy9x!z<~Rp@>w0062a zH-eAc4}O)hqI}LoH>Z9Lp>95&0FZbX0MfDmU`t-5tpGp_8UVz>0D!v&0GjMyIw^MY z#qP5nt^{D`Qr_bpc~W7!QKJC>KJZn$h9awJ@=}RI@^n#J+4HYG5O|&#RRaJJ8i|1S za~on^6+{G5HGb;3_{m|av+MlO$yi&k&|iP>6pdLc;j<{Ld9)#mQ|9U&1!(P*Wc0>F6?dQbf zeGA`ypr1M+cC;#|+H4@9yAOI-H6%(#>c0$jGe50WtvxI_`6QY=ySWt6kSsjSUI9yd z6aHKve5kITRZ?oW_WtCee(8J->GO#co}J!#7!D~!62}1eLiQ{p!0yt-df{9-&OXms|s)LU2 zeQ#E=k?{UlO2iP-Qp0O{P&g`LqKy*QLS$#X;Wz*NP`bRlwb5ZdEbv=r{Jj}B{oU&YzVJo1<0n;oaMB$7cA$IZw( zEdACYdUoYg^|GX6PFsUf!tNVowBNdGm&%q(Z%aKs)@;yQ@75!lXf6Y}wu(p*FG*KL z!Tkm0eNKAEW%Bsci*6DlHR#c17wf10^j_CsO-bLpaCZOxfzgLPrD0s zPbTQze6eK2Y2ND<*zvl`g-;m^Q|N=d4n(}1X1JG`M_hodjy^yhsmPf_&9%&~*8M=9 z_p^t7!!@I#UGvpMkEj#_ZS#I!c~h41^5X(j3YxF;iPBUlW~DkyI{QE^9c857nvgfeQXkz@-Hmf73p@TnNP#VI^akvPLDjHW*l&ov3Asdwyix5|c`RHC@ z0mU^k(fHN7ES-DkhlusdkRyReX1+xE0y6-yzy9t3R-~e^e|b=Xuon^&DsE0uc&E)8;YMat&5A}Fp=etDbSA2dG(}v;Fo2AhH`%;#==YdS*E2sdM zcYV~A{fE_K1#5buHmPJNXpyc!gM`VXr8>R4jEr(;iX@$tdwCniC#zs-U*^Q% zlw?t27!B1uRJV>zs`R?*P@ie{fwj`cr&&W$8Xm+f7+ZaO?iu3j=#n+U$+tN6#p&?{ zW3YyX@n}YKPvSR&?^iP1iY;|(E)k4$O;z_|@If!W*BpVo&W)p6+3VSp50~%usbL3Pib|uFjN+SPk5Hh%5#UUTfAiAgHh4{|N z=UuYdt`63gyT@gXZ!~5|wmv>Nh%4nozBkbQ6;=IX`OUouEb83Hb1}bfN#3^IA2wEb zQWD_a!ss-xNHIhyw9kaXm{At`AR^Pba}@iuN3czmA#FKSmSONwdT3zXaKT%ZNE7&U zSWf7JUmy^*QDiw@Cx|xmAZ%ixv_Z_@hl(e+dOjO(3pb#d9A5%g;%)X|b1#K+|9)O; z!q|+P=^1`1u==Q~ktQ2u*T-BB>ZJR?{LFIuD|bMh-hoEZ<#C%Z^NYfia>o&emNRUZ z>?EUoO7W)B_NJ==8+(%4WJWq=h6a-4mo`nU?{q9`wl!SWi-kYN4ax?jNYL5 zP5|F5a%Qw1C`ujO0r(9Q(#67H`M(7WIWGPjS_p@Z3yq@74ZxzY7N!`CDaO(dgTbLK zaTp6@G#ZCSrz7$*{|{hA(!v=D{|x-?W#uRbjQ)3l6V9SXb3$0`e`fv@uumjs0Fn!t JQ129+@n6A_{CWTY diff --git a/assets/img/favicons/favicon.ico b/assets/img/favicons/favicon.ico deleted file mode 100644 index 30ae3716ff23f2997d9ab6fbd2f7817c18f520fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133914 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%0Dlb@KVW=#`l|Tjb-`^U=>lB`wl(5i z@*VgyeP7%6Jk_)4eRw*}E8mp^)J{iSd+ix{@}X#yC#Wy+PwHt`DTW&AcCI>u}XTVAR49D>L_}Iuz(k=|y ztMAlr#J@g|y@8$l>s)im=j5yACjekKKa!6 zuO}z&y*at%d2&%Qt3RNJVi8^7gZUzjeWQ1+*6)MU4e?O^gC6HZ@QYnIhXFQQ$8U35 zXR8M`4$7B8{~3XE-?Z5U{eJi|9)-_tZy%rZn#9$^^BvKv=JU@+_Mesi$=mUr4A4(5 zavr#_QLz}^bcbz{`Pk6j=DzQf>Gm1A(7F^c#%2& zHEs96Tt?0Xz89Ki{9yV6QfK*CV()&bgQ=TdC$aHgvR`nH^SkUAp8PQRz?F{>_t~YG z*8NO!rl%^O@7lnRj2`?Mp_w=lrj@87 zU|)nCt6Sll^{{*LV{2yqtUM%dH8C*d2YMXeutdToM5c{?bU4}ms=*DzcI9YUksx6;-pw%Jwqqh242XSHP>V7 zeY_G^yc1qeFw~#ypQR4sZ&ti7asN)Cf5*hi2@g7&wr!f<4ZKkFU6hxCv)6ZwAG&Sy z_I0WI9ES(=SZ*NZlO1`hWvT~QQ(K>FuH^u9z}a%TZOz4Iyq}ux$?*g43;p-cKE|a} zZ=WSjUKEsnB=1Is;BKFobmP$SjKqqMB|knPwV?CV5Ayo~^K;HQXP(~LU{1P(0gF^z;?|Z;a2~hkRJ(w7Z7N4aks>%8^sQOD|OQs zW!?M!tR26WT=MYv=VRjgj!RrPCjRR1Tz)-q;$!iF5%+7J6g@vM-w(W8a)Nc%A^#uz z^LJ7Gme`f!x2~Oa$&EtaO+)96Vk_6qdi~1L{Y%H6ZWCYfzeaBS<%Zq!-+cOuGWz^7 z!QT4yv1olz$)A3iPd`lXjQRZhA7q$@O#?STH4xV8x1IYvhpE@)#p!no@-qd~>$B-^ z)_8E>1m=Hwf5XPVy*EtV^!IFB?Y{DP$Mrr1qxDm_+HZUC`JWg2bu0HTwtoG}JX`8F zoIh^I#eRi8e^bZ5-B;+}yZs8Eo`K!@H?jSH`UqgUo&I1K?FW8;-2DjbNd2eg^P|$O z`$7b_enpOzYi5cVJs{reWZ1!Je#>IrY#&$ox9&py-Qn}!{lEYJj{`rs97x_ioe51W z_uCyir1?9)e%oQ6ueKyT+Zyc5}M-9#2y#8?RKQqnmliWU^ZxB6kmi*Gm;kUUYa`B%&X>Oik z>(qRQz&XbqvqrvJWOTccezAx_gG^XzdY_8AvwZ{0KslVrTVj4a9blTr% zK7X@$@95gjS)Z=Uns)QZ{@>G!g#+QW_3-v_&sU2*PJe?h@_1Kdb7

X`B2u&suW# z{gbw}#;kQe^PH9TowN@}4_+QU@b@^bh{*r*4Ht{3Cm`8Np3bqw=WZ7}zhd}&pYZvO zk@+O=wdAwb{m5#n&8R`CKSfrndkoR3seTjK8+|`%Em-6I=)pN@U&y;pPLoSa-%GzJ zdo&jx7k}~~@$IP<`kVBZNxMsA{>t$6Tj4QZyq2$CdOxz5YS_+A*pE?zS94U;Rm--A z@7nnc^($vt?9tfMq%WhKx8j=r*$`Y`mUfFYx#mxv04^bn`A$AQ?JBYN$4Bm;jtuzq z3o3`z@qshR-1qi0bxLPT#^zq1cMM&*5b|H0H#i>~UGSTKH;fKUe~+-?Y=>U!J-w#3PdDsoc(-saLVr}~cy-#% z=|TGCO!z6iD|e3F?-;q?F>-%zc;xpXw~FsuqaS2wkIKHA^IT)ISLKYJ-hI72J$sP$ zYPJ@Str-_w{a(w{()?ZEb?JXfC4N5H;qT1Z)WrAeCq}<6JUJyi*@WlK(W4jBej{GH zXY8`^%Vc4kbDZ|6oKb6Uf7kw1@7c4|1R>3`~U zfUl3Oi}C6y&x+jT@=N88cin3jm)WMA&G{_PytnM#1)fi`aF)UzwsT0DGwjYMI;-ll zeQwP;He(Ba5!SNLaBxn>*#>*~;)nfV=OsK_@_Scunl}d4e)gK9D?b%_Ah(OJ-yt?~ zulV}UEt4Hyv7dc&4$8Sv^03eBy8^y1=(hvNOs*byTNR_(qB9ok-q||Mx%W2baeV(n zqa(&Hlk?&|aI;pK)(&uTW)hCh^tjGm;BQGF;LyN)T%Jw8VHH34|D_(}Ow+WE zPpscFHvfXy{Ar7_$4hc|_Kcl7Z{duP^9Igckw3n+;ji=S&Qo}IQ8wde&*_Tz?)-_xz(eHOh#%ih?@fR=HyV&cy2EISy?6kAc&gib3k(qRWF5oXepy#`- z*Xhn8-0`#L{Id7Rs=lP3`55<%8Dz5wOtO#uPUoF`9|b;z0Uvrw=Ds`XoTIb5&dQ<5 zSxdPFy;;Cl-Qe?Sch1}w`nNrQ+;l;1pFB@}{PvN(-}l~xpJc=~t;zh>gEQmKfoslJ zJ0s~kD$c$8ZWR8u;XU1OwpM;eF15{3_O8VhH6Ad=Mo#2anBXjl*Aw1gN0+A@gv`A= z>LVD=Hlf3r=zb5%*crGxg3o1Zu}AbU0Y(D|6i{)ElYI?1Zf@fh!uBTPPBj^6K}R1esY?^%%@x%s|n z8y#@ou<*jeRb2pAO^1#4{Gv06^nea%;(te`W2V|d|c-!RokB#h?uIUFlSLIJ;ZJyWHitWB* zBZf96;Ir=x_}*w`&mPG|99QdKoC7@TMzKO%ZleqQ0bL*~Yc^vS-*<+Y?$A4PX*th0 zeScKUBJX~O$7k`O->0g~NBS1wukrbvxqr2^pNPCr{XRaQ>>o|`YtXa_Z#!<}k8AhI zB5>+z2N!-`BY)o+^gSr`!%^;qS-Sdp3%$JXBWX7YAJ+Vh-yeqn5&x!szeCy+Bm0xL zK-We*UN*M6F!GCClP}q8bU}_K9yF%w*|hKXM;AA;Wwkjq9)5$o<&>^{4^-@yn+Nw* z-0Cyv1-sYC9uB^XTpSwbJT(gWZ$8z53Yw1Ct*g ze>TfCFzb04Y%f)u~El>A7cD$qqayV-*@+N=Z$+I3Kd(9pZ z_@zPo7FWoe4(R>9LE{ho^PPD$!$p5z7>jZ&9gFw3^798X?h0u?4x*oGdhx0J{+%QH zV@h-TktTfA+#`!NW8H789N+16dDh-|zFlqDZ%|khutjp=2O8VSxU%Vd_Izve;xFclC<5@ zE>Rs|_bctj@snSMdvIFXJoDW@->3FnS2Y%Eb-mAQ)ORAs*gL|i+!uQ~V2#KI$wlJ_ zLwFy7O6njPT z1ho6T0Cg$7vq$~@eCdZvuUC41pX_;QJEdJ>I%ocnOV8?%iFLGd z6pQrHZ};R{)^ovl$)uMCQDDn(w{* z$Ya5Z&nN$zMi0Kd7X5s_dKsHX1G>mvZ*P|jx(8M}-V*OB_x6>2d-;>!nzC;wAD{zz z^%y?fdQd*k-?C}Bzc^vM8j{a`!^;>tBX+1aHQtlI@#ui7d5d##>gUD2&lh{+_;|h^ zT=?Uc)_9&R{|>?LMLKXXh2lz(t?ZSTtaBixniGt)mTaqCB#3s~o^G__sd ze_4jhbbf=K%kSXr%!RtT^)nxA|BL@C{q4&e`LVo8jx1LaA4Xjp$5;04@xvJl@+4c0 z?Bw|5Z?DE)0^d&FY@7UDYtDqI@z4)zgT{P*Uwn|8*LN2Wy?MvauHg)Kdk*qRx)~q6 z$+*4;hO;kl;H&&LNc8|O`2=f*&S!jE?)`V#_0pzu)ISPG5SwTF`$s*vL2M z@4Hs0|CbkPVup7-@0hVRG|shnEw_U!U18H`utua0i(?l*HWGN3IPd=bNp3RT;PapUIXEuzj{J|j0Wq6sJuVL%r6r993{%MJ9 zmcm#D*FEp6M~a{1ud%EC)>h-d!u$Rf=>3D&#gYq#hts+;^#4v`vhOZzBzK?5McqW4 zvj3@8-kP~}o>*R9ER)p&{+s0yzN)*hjp~8?Y8hPq(b`%bR~-=3)dktP-;`I&ssEP) zsPWPj<28Asnr!hOaW$v8`TI8K*EScM#`m{$ZBDS{GICP#=L^`EHHup0vbloSM-n&p zNPm%C0QtxFUM2GX>d0fbwaLwVk4COiJtcp2`LRB_C3+X1FXOo}>{>3t)@pN$I#682 z4Ru_0PM&O4lHHycrW#h54X#VDkHRcF!1=r8y z-j&lXv=3O3zqs!=PgZFwp74^3skiV;aFXxw0c!fo-s!vT$y@GZy(DMCPx3^sd{Ukx z?{`oB$IkH?Z2N`AvqAD_3wW_Y|LXko0#59jZx;jjb+uym$lSGi_5Jh$f8jR5b4`|X z&%AoFS6A+{t^wc;|F+WMJ+zLrlpkyL_+_&_WFRd3;kV!(8>4v z`>9i{r|{89_T*rlSHGlJGxdFpEv=Q%!-nvI?9^<^FTahde(3j?#c#PcJCqB_C4DA$ z{PRBh!&5a>KA3$~X6AvnwG;a%d(H1}lQ;SM%+~uI4LU$4oE_pn3QG^3zd145z4a&^ zg9m)!slgep?x6)u)oJ?8cF+#z+HiTitQQB=P^@1X2k3x3L^|1b;JI@BPw6kzTEKcQ z>#OY|DT&vpP=?nzCBOO-@B#uMU*g?eP#!_Au0`)G*3>-&ypmV@rE*e?ywz z5Z`L?lYQ)-{GU9^vasnHTEx_@rLCvrCwNoaH@VL?Z3A5cbUi-Z_Cs2 zSzp`h7UXzKaH9 zt&=pg^AUVla|?MU-r?aWSD*O+{+A5cAsIO9?46DuWOqp9?>92H=mSFMwC0Zwc$&FK z9#sD5F|Ycm#$ME=jW3>kk3X;;;^Wa)xudtOdSGu${-Cy{me}9q=-(Ic-Eg%}P3^;2 zwFi1a7H#Aq*RmH`JoIo;lOp5BfKmR<|ICAq@m*_;(dSp+%nfh8&wI`S!(WW{S%be^ z2|eh-E46a(mUh>4gihd*oUn1MJZ%pzu@o%4uO0HiXkUz5dC%{bUMp>j@@M;5yX_L+ z`F{Kwd0>8fF3vqVH?3x3emRI(=J`0@wOm|`n8jjpAHAIWhd4L;%jxOI^Z53;GN>cF6>Rq{VV@57PwX$awc!&AsF-*ZwtS4mrM4X~$>Lu!D^uXC#{&B?5JLo0@IS+oJTaP~USLWg$ zdD6F$PM;TBaWM`LH22J3{_>-A&3QmN)OU=v9<#T*D0iR5etUg8u`nfnC+u#>#^Zc$@C^srCBR%-I*owPx;4e1!M;POHxRSkC!gl(M-C8p> z2O#&Z`^jH^Xzf_Ie3;m#UIjmJMm!6*xGdu6b76JtVh>)&&^))^}0q0ojPB#dR2ecCPQ8HvJaQG9_UDiT!(pcVArc{#2V#cj6<>W1pPw$D?7M z>6#A`E7`vDi_WfD`*++3-}U&}7%_~kv1Mx^vSf#Rueh&H!vE2;=ADJz9!&9=E_9Br z0T$(7`?r^Y&mHewc#JTME19`QzZk*ap_?ts2iOJN#WwZu;#paDjgzjFPu;JPmNmWhAz{h|FPq4}hR_a^;R>!M?7Es{A4c>!eZsqyOjM_=}E*XYuPb-Q-8qCHr^HoNI*>{eh#n3{SZ-8sz@YMzLkG zrI&>_@}k#hfUC8D^@W^CEUj*qCcRn=o3x*ym!HwU>Stl5|8m;p(>9Sm+Yj&Pz@yRM zcS^fntnpn5`IG$RP?_+a8O} zGd|lp&PVZ^bgyfFbB(;>FO1{sEBE&9kz?iG_rQQFdC1@CG{2`#;I~KM1W$MrSJ(Yq z8r1DQr+?O={5$?MKAEq)8GEv{_eXd57`PNSyr&~_z}h7r&>Wy}R%CE`-n&EYZ6g23 zeOeo&e=+^;d+o`I9$P!n0X0%|^Lxe=cfGY9d9smFHwp_b?9^Inxtbf@8GrZ3ISil8U7U-*&uxqM z=z(X>rl{MAYt@7DsXc!2{d|phkB&Ca#6tV7xTvICh}+hkrf~C zQm{L>-n(M0dXxIOHL{$EPwUwB;iuOKKA&&xn?bF zE;N*1qy0DUYfmTY|ND-fj`Q8@oxJUHEXtj&v+qScEq(4UYkf|yd{?4tBJ(ab&#Y-0 zJIeFYL@v&`uu(R}#uj1ZoxhA+HmL)!|Kt+e59061zdFDt)xL|198Z4l zo!*0k&+rz;+F!GGN%O}^yIP0Ls-5Q5=r?m$^C*JXUnrqEiYij&jv}OK)f3W_m z+}o2s+{(Aoucy!aH5r@3IkCpU+MUmEvJQi*eHplW2QBqerEjF09-!5E4!*lNC*Bng z*KA##W4!OVnkc*XT_^Ha2Y|D23uE6C|L(WeH}V1OKfF=*Ti^NGld&3(oUii7Z*kVM zj?*`GjQ7khH?uB5CtK0Cl^>Noo~dh*vpMNC+3?S5_x9}Cd@o1yyG!U6Tji;2qWHi` z^O-H1cbWXbm%GIl7I`*(rb}wrY>UqLo6i0gy1#L*!9goda5av8poLyKuYum`LTQGR z`*grPvBuhg-7Ls&m6r0@81a@)R{m_YxmU-n^j{AzE}yoM{MmnawrAx3wT1DMjOjku zI(#Dd8Xtx4i}soKjtNipOWR2P>_6>_k^eVG*sj4>x5Fc_$=}%n`CVna z_)b4tvxxKLOZI51?9u8Bi@G)4!k_Zd_2TEs-Wa@PduW#Hi94N>%*k7G-R8NNK+o7E zdh}!dPmh-Q*TQIzZaEphYfW6chg)$k{?+5rXBmfPc8WJ_zPj6H?e?z!n-;<(o}ltAH2r~#J%#TI)HcT2-Sf_Jo=d}@<(VXZPuyv z&mE@^?oSVWQ@y83uwwuF$NrBW<+w6_siF_B^WzhpZY*#uhN@Q?JHB68 zkN0}*nY@y{@n^-kIRQEvr$+ip*d@JGb8a@)|l*8KKEObM<%} z9~r+jw!1Bv_aFODo8&)^b)EZD&O=V*Z;q}nM!CDjH!;@te#stA)n)lG{-V45sOk$KyphaNiR`24NBXc=9Ve{}%frNuq(sHc)U`D^AwPkn)V_G3r+hhM8XVd3c) z=L4S|%H71@`U3iZ9&Ob3#shtIz%~68hpGeg059>hF}L#nA2=f);5y2^ydryY_goyY zpM(bURmP>Mvgl{)4YodxgPXs{0guYR_*DMpl6M(fSoFx6Y*FtzXZzx&mwWM%;8hPw zm)^W+#)nb%uIY>S#7DkBj#yt{PoR1|(#HR&Pk>iDLhCpNUOq?uM@IJ78s+agZT~zw zzI3-If4T)W-O`hP#;(e~wl5x&Rb|gtv-#5MUCn0=owfIoKVU{_2wC6-Fe%S2l?7}kTc7xH+A zdBd&q`b;P20N-tIr!m00_LtbBoYUH`wUxE>pgi=h+}yr`InXxB-~8--lsmq(xerfg zyy$?2$8ztHcK+Y`0k10~@*n+JdC11MB>(c-J78D->=k_V+s>~?r@V=ukh3_4P}{Ej z`z{?AV`6Q+e6fF}&I$L*ulSU&=Jd?Gcwuhwjtz)4Vvc?MzGs~MC^E)Ra)w9eMpJ!) z-g>uln~U!!1Nj*m`BwWb@~%Z4=$ysX+cb1H7v2+tUHK;wiflSJd9d zdBK+-;IRgd-^azn;!(UR|Gd-mkME!Sf9@T>_zwAt|L_3Uc>}ejQU1nQhl^L^?_$Hd zI2A9nj`X|66JzDM_5(-Wo2R&sa>skMKIe(7k$m@Dyn&-VQ7}qN=$m4e_(k??5k2PC zykpI*hUys}^WUWr9D9Cn?0Q{Xwg*BF_#SfBMtsYAxOiq=BtDYuvb=y@cm|)!zn{&m z*1!k&zK57!{J?iUm5(Z)ohd8d+M^@#|4!t*_geDrSiSLhC*LPGc=5~StNGETPQ~`r zW8kU5qdoh=?@`}-jSt?lk6)gHU)qX~&*;Q!=ke_QlM{QSpX9=}`EPN0l)rq?Icf4I zUw!A-<9qAp>|cG;Sp>A1UvFQ_dtwti)abiCDE`2Cm&OIS7H@rN5mV?b`Kb$62S$5< zPi-E*7aJL~6E=uOuq!7z+VSkd+?ADHi~K(t+3&hU{`=+LaUHiZc6x^|ftR(3njU_X zCcQID@FHh&Z(ki4{r$*y*VZ=jWpGA(`&o}pyd?uR$A-vVPY1|>{fe)CuOoDzV$b;Qr~|!EU*t%Yef#2t zXSE-F@ofq71jwG)@r@Ad>(u7*$W@*%mkUUH$8vTJ!J9%lZ+Q*BRcHs z!UaxnERWmcy=U@mI>1M;CBCn`!(Vz%cZ|2L!4LAMe;QrppZQ)niMZ%JbSyUaeIJJJ z!lOm`!_9qo*N*V4jSr~5ENnGtd5SU4lbWOaBvZ0Y`?IuV^*=iBkhIf`!#53Vwt#NF z-{->Q2f8=7O!npP*s~w}^*j7x*oY&z;JfD;S(=l)@m0)~i+2CrT8+Nr-CDM9&lFGC z4;=N&c#S^#Q~9gqSqE1Bc;WnwI<2|DFjib~kL>vXdcYshQ}rtKVZ5);EbsK_WIucw z+!_x?eu)L6?ixqFVy6Abk$=`|&bQEI^+Ws^go79PmwUWQ{lS z1N~wK-%h^8Yf=6_!?!trUOdBJc$F8foy!KVFe(eVCtTa)2d?=>XMC(7;08wdr}r7Z z)fno>M)|vjTltHI+8Tefh@bkSI4vKn{Nc~0Bjc0P-(oHKM<>?BXT6dhjWo-rtf|?0 zVZuG|ro0+X4KC*rG#MiQA@-YV)Xk=?mTE33B z%Y%$HM#Im_ZjsO6k^x;83&?upFSvLkHuT-Xq7&9=_O{3!uFVbj2YHG03ON*J@zsNE zjc5;iEk98H){k|KUwZM;_c7GX>~(e?&&eu!_P)%&8(Uxe=U!s1zvc2+aRr`*%kS~I zbjlpXSFK+Rgimo>mgj%xJKvdd7W>r22@KcO1^Fz0iFfRqAH~1gk^KYbPU^oadp?D3 zIA;weKi5W|=#jDBTTAwpp}17}(}mVK$_KqUtWn`(?&^Ua?R1BZq5=NqCx73S@R^VX7ecWcg+sS z1P`=P_UuD0p;lNu8fD~~ow8$ic-LByp4GNSd_AWhqx|Jk>E;;}gIhxo%`U14jWou$Ou!t-DY7Ij?Ra2@=yekK?M(;hiv*pP3#eqBd z__gF8TKWGyBmb}Pouyk(&-hq$`wTu`gwWz-esmJEKMhhaGm67{@MUY}WPA21M*hk(7uPM(v9sgT z@3%SIrxO|H4ERnN`>*tVq<8V!oc3GjBKcP~l@HvSFQTUnea+|o;;4^YzZu!@ z%f2`FFYiu|!=qQ=Q(=v?_ZptgfU_?&!bw9n`8kh?o>4~L;Scy=vaamezI`9-Z#33! z%E$7O%$$`f%_D5rBh9Y)E8~wk>ZoarZH&04ZdCb?JRS2t_C+>}@&|WuUZ44LYtqJ= z;*KZP0dtX=^BrLG0cd9j_HWd0Mq92f*hhvBSYUuH$KY4g{Jc}Sv@b7wPM-en@r8RO z$KIUyr@SyeXO_Cu-Yn7u}`{Acw28#Zj1^jY3r*_StR67?JVhok(hADTPXPSDrZ+{&2)K5~&a zod>O2Sr=R*ZHw}c?X&-@ zW*zx0>%G!mxwnUte2V=SAADm2BVSz0QPgnI$3D=?2a1Pu8cl1(diQ;=Q$7k-`O$0s z+`TsV7Dv}|0DFsUs60`hUz9(2ki8h7Cnq%<@&+3$ee1Q(Vu4*e$|tg*YxaV`sO&2@ zeQg-+);Ma1bd+saFVF$scQ0)7f-84r^X0c(rLnLyk3F2|Qfh7=iVSv1+oJrlX7YQH z+eZGcXS4VV&Is2v+~g*eKmY7(N_ka&S^JSay3|GZJ+wL}P+wo0z?<@iFChzi4`40w zf<4H)=$2>3EW?xh#$1*jsE^eDcTVw#+{IZ9kJUWz9Zi~f>?K>v^(=@r2%T6QM_-*o z0Jl2Op8VVJK;D2ScmpoGkRvVX7ru)Fa0ZL~t@q)zC?C9l1AB}t|2#GKS#qx}%HM$a zlv#A`p^@)-{KqoBnp5oIyU8Bz#*Vy_&xpU)spO9~Ixferz1J2h2fg)L*Y@~ouJWHg zhMsBtERLxCcwYH0!?pMHaD?k9fBHw)YWr#|@Uu@b=CJ0mE@!WD77aaO6Fmff#MNgo zPEjQ#&|*6Ld&dxQ9i zz`b7fsE=$6sD6R%8lBdEd>CC6XUWPlW7wQCS!6HH!5Lk2y*|IP_kL~TyWjop^bUTG zHsu;U_BX^2aQWxfebH;);#YjzyANmi@@SKA@VWBWlaIRL7>E15-y!73$eyh9XcNQL z0=hq5T+C_DgFNY6>0HzSJYg5$;S-o*Lt|g*(|13f{OkWlIy<*qIX3*Y`0*>HZMFPU z=bI&m+c|dj9<^D1WQ6Y;U21}KnBL0y%Wa(~SoQqTH8q=O){fv+FAKXy~;^Wq$ILBh+52 z189Y#GackonVH|UGs(sre)!?5vM>Gg5I%6hE91;X&gz78sxr{47uaK913sIhwEIkE zvHjEI|9>UC+G^Q%pj;vA#-B@$f0UX{=k7e{;a~V-=l@D8o3Xy4$9Pd)mRq5n;kh1eY`=A1@Y~>}R?Ak6 zs}Ey?SZu?OOMM1l(*3_IgLN+Y>D z1KaxKh^u>KmR#rH)Rt%Qsaq}g4venN68~q>*L$Yceg>aD>azL7Q?}o^*`eARUet$; zxjy>DKQwFXUfji_(q#_3m*cCARQBbmzP?pFc1DN|T6>DI_Wby1*Y@w(2!5K+{I2== z+J1e$=k&n-eCcTqAKwY6k0$$3{@}7*GUEr@;L3N`56}S(Jb5Hs_<_nF4uxwjd}RNc zYiHrmj7NNd{Is8ot7l{qe|L2J{|%!973l@;vqvWn+#|a5QSu<)&eOg$nODu2?H6yd zYd(!GbdoyS^C9?1pTLrPRTsq?H8J&lGGJ5mjlXnl z&dQy9$eN7VtL8aejG>3kwM$#^p>J@h?US2#HS_jbPZygT>fx{Et*#4R{ea$D1`n)v z@uj>0A6z*`<&Q2kv&LHd8e4H@lWad{iC&wr+sC#pu-yAXe%o)B8t*K%;QPeq{$R{O zO3NsJzSz16|KZJ-mPdGuzUun-zyJN|97K7H7Cu1UqW-lgdoddS?Ge!rdZNiSz@kru zZ!Tji8@8m4vD@?FVlFXcF^_-~zc2R$)B9x89t`(8PxXTCRR{P2I^fJ$YtYpJwRvX@ zjy?9+xq6p|2JkwE9ItUeOy!?Ox%V0$UGoW9d!3xT{dVyIv*d>r=Y{GM&u57{yF~tP z6}J|7R9eIwwI23KSK-Rm@JK_KhUX`qc;ZwyS==Y!%h*J1p52c=qewy2R#ltl@(I@ZOt7?s-yew>=opDevcFt9e!@j0{Pv@7NE4PP3 zM*InxY4rp00nI!b`)CeVzOgC#cg!)zY@`F=&{=-TbB$f$FSCu-##iF`EKd4t|n_-zo6ExvS6m z;xyh{yfy}WzZF3j#c6Ph9~|4n!}w)m~iqWr!2lvmUos9-@hhAG_(|10$e!sfR zx5?Ak-6(t4*0O45wS7DyAMygHvd2@OHP1BrWUW7_QCRPtdFGjuP5RwV`GNcDWcJwL zex95-7!@BQ`$ly=1KHEPsx-z+^K74VDe-&Qln!Ycde$TWA1@DjJnKcgF z=m6V$09mnGk)NA_7N8@P&5&MJ>KUp&#fr~}mnbMSlUYi?5? zFv?#pA#XbV_~SR?o%h94e6jw)YdX4O|F4YHA(f`JU`RGFAcl+q_51nhIqZ+#L zm;CXXK9hg<2=nfQJ9*Iuez>-;w{9q3!6K*1zVh<9wxO;M7P#!fc}hGyCI&?MVzb;sIJNb_Nkd>Mf+o1#CTBCN4^sKYan)3zpz}llY z>05UpD}Kv9gSCUTopl*~(!dm-#WwR*_U(($*pq#6FaGS8pW|oHtey-0=mW$nGCtvi z6DC}XBY5s>Y%Ml-Z20%9WUpNk|5oIGljL(JsnwD_J;$TUUp|Ka{Tp%UZNpb}Rs0}- z@o}_${KPwa?sa)t-nW%^|L%3t;+R#@B9pZXIx zg4r`;@aUYCck%19;yUVpduXfwM>D?#K3uiN8hgxah7ag^08ix+>Wi_pQWH`rfP8>l~luX~kq`w<`as++y9U%ZD# zdM*}Nr{Y0nPyTRLYbSea0rJ=2hQH*Wb>JIQkJ>Rhd5Ov1#N;3Uf4R``CBMZX@1yhN zuHh-$w?s`cQnY`-*iX$6FuN+`p2NYL$T6@qBwT#+7e)3V#&+`J~ zA>q{}D*MVm{Mj|R$H$y|8S{SlvMWB-k2cQx@`L6m;6fizvdH{3*%;{jf0Us2Md0<~*a)$8* z(+glTfG&f43z!qY^B~^@?t{9(Zh+i0XyYI8^!Mqw?ef4wC z6_|%W%nta2;69iKK&}`zKf!qTj~sz~K#UruYoOo%NC$vT0zLwWVSqjWxq`ky{M&-D z|F1Cr0|kWm2Rg7~AfE(mGT;qh0@DRx*MNTj_K*SW zL0^D>3F5{;$6&hoJ5Mkg)B(Bz`=;kt>|yu=`v>&xS2+OrfLJ5&p8(H*SEz4WP+XiH zD*qB=ABI1~H&_Q6Li0=_%I1cvk9I|AN-eu4LaIS2F&CI{FNybHV^*adJ7s{@YUyAmKnV7q`mL+zD7 z*rWWb*nXH2LVW?>jNw6cvIyAC@7USa3p2=o9P!8#l4*#Y|+z?cX2 z7#3dwH28fo&@SK$#t-ZW;}iIwpbwyrFkAud;2ab%7Qnt&kedK@50=LQbwC?nZ31Kn z^b@jOCs0v^3LK;hFwy@@93jkp#sVN4;0fk%fD4HGK)QPg#djJY-N=CYv;_JLV%}gq z0QM1p??-`e4&(~@46p}BSOK;Y*a;AO`*r^=OwK_5umZy#;Q99o4CCML0lY!^^*T%s zz;zIF2Ur6i0bm090QRi_{RMGj&_0YGn4W@XfZYSJT-ZDU>k~MFYd{WQ%>n#;@QnqS zXFwa^{h$sQGa!!v#y=QKko|fGm1|J>m%#jYCLo@HAHWLDW2<1VGFbOP>*+m6e+90t zu7G~9Kz*wQ{xg_o!8a}7+ez>ZIoPiVn|DFqVFhLj!1w_+1MHCiF=n7&&|LV_CjMa; zf7*8#marqh6n6fPj<7l~{6W26&w=cL-vILcKoi~ZT?C}9S z|324)egS;JdI;z~$cKToFR&3npMJ$3=o(nB0Q{kN^*Ln6Od!7C{#EgZ`UMB|7ar1q zXz<&kK!yH%o)A7Ko;4(#Z!1$O;EasalgYgYJ0^EU4fH*klE9f(j6Ig>lvbcm~asu`564V3FfOmko6U3w-TiOftl@Q?n zulxt`4Qv1lG?o{@x)0)g3L5{!&=H3JH3;7@Xiwo0(0{Oh$^iO5RbWpmu(6;38UE@k z0eyfKAQzY(0DB4MXOLF}HW-XkP+(a8j`OedzjqFM9_Z8WItB7ZU`_{PALt_3R|b4E zzzdke{t@ngXW&18F%I^mfczrJdx5wDSW80s&;t3+@=*U`q4E{<6TA!TXM@K7DTKd1 zv@Zk>>fgUI{6E)%5Z_=eU;)|mbI2xcLF4}x6bJapHzWrTD@1{grqDdG0k8(K7Jxg* z*8(3KtiynefL{Q7K-hSI=>Ryw^Z=X#n+(Pim>a+z3!n=CC*Xg8BMfU8t}yyPas+OYu=4Ae2Uvst0hpt$j37Zp z7AmtqXTa|iK!0TrADB>o{-v>pF$eV-;Ex5_x)NyL%`t?5804G5ZUg+mS^*xKLq#DU zs0Y&fpRxeH4%o{Nd|sgUz<&bv5v;X=Jb^4>Isj;x9)Rm$tbnx>*aHCO2kdu>fIt0dp;gCxHAN*k2CvuOQ9{<_=K6JPu-lAWsSEfZPkP zNx(-1ae#j|&S5-&cELH|738(Rx&`dj1M?K<6VPoaMs^A5`VeFT3kKVn$9tFJSibPZj@#2?&Ru|4$y02lzdCdn6>JzsoITCqO-PsGb3|hvWlT z2Z6nMAU_K*0I~!7alkwa@B{uLz!c02K-Mr_fXV;w=>(_;bOO``HUf-Y;Jbl6$iNQ= z1*|>5x&+MOz()h`1JA&o1MmI4z}f`w1#N(LgLnq;=K!xD-UrqKV1EP9W6&o^xA!1h z5D)c{5~ATC9s4(Of!+(oKNI9fhC@Cf4&*cZn>zm;E2AXf<1CV*Gqj{v;|Isol&JcRy#Tq$G^?n3+IQJ{J5ABp4V z_=nm+fC>sE53r{Chjsra-2i!H$W9Ec`~mb7@C@m|Da3yVq_aAZ9YBNh0S+4b|C3<*uj&iX13oAhn*+rOKZCpy7*9aX zInZ}r0Dsu;DT6s1?9%{a4a^-N{s{65Aod1qI=~a?16Z?zxD8A<0G5BRfcvllFbDGm z@GC)l9>nT^?*{fO13o~zU@tD<1?(3B_=E8e>FGIye-FfyDRjIBtr_5;eF*jS?I{2mzCR}1ooz^?<}O96bq+zYK8WXlZ-Bt>1%SLfh{b{V2l#GaECW9g$hM3pcv%O{Rm)B3RvTT*bayvf&$LLIuPu&I5|1_8FT&hS+EWSScCBn3Jm){ z#{YK+_gQGn$3b>q2-?$$4t=Bha~}UMl*j+euZGMrjxe+i2!OsxZiC_|+mLVd1B_3Q z#|Jh5{`HB0_7@{~P`O-!}iP1Q4K0kjs9J1&Yx@uG)Q9Xib(2%@c2-u{sOQ z37b$}b`#3$??W-Y6KEgq38W)G3$#CHAIjrzLOG=k=-vmYUO(hN)If2fBq-i*4$U)? zP`ri~`c?@YGz-=$|NHmfLIOZ1&=C+2NTGNj1GFw+fYxmS(72U=;&bAVKPV3QXA)4% zMiBa~C`M>Lp@-}U5fqmOAJqVm;s0Co@_(89UkUslO5h*(M!SfAy0Hrfhx+RU(3s!f zENc2xM{ME1B0Ui1?4fp5nK^^>4_aKS?PXDR9(EZR$-}LdH(!c4u-#?*$8$XZ*`jhw|+W*%Jkb(G}Zu|8Yx~8fPSqH*_%Jn5c%)XKMm?H&;M@ke$xJbtMJe0-|gp5y6tbz|4#q3zsrBS z{})>PuNSBQ|I3g6Oz-}U76bQB?P2$+|3bUNXm>ww|H2nWp91pg((ex%5k|NDQIy5{@=)-p#SVE>>5-7 zcKX{f?7s3nYz$Hi=mpqvvQiKJ;_|}7p@Ed`vDf1rI5>YeIVlM>_t~8{ZkhU;KA+C@ z&l9)Q>7qPSSZCr{=i=FnjWbq=gr288LZFYum0V^FSYs@lpFdwzl5|wSVB$f{Bfb5c z)Oxl7FQ)V3h3JdW(5%BlzfhIC@%47 z#aZSWZfXuy-KweDi{I$3tI!v*vGO7%=8SQj8A-IWeV#@hkliA6Jy9yJ7wMr%j5^AB zmwVp2c}PG0y$G+990A_DM~&IzHKy!bYXmSQD34zn)I-?Ho3fI8T;wMkW<*7bIk2FZN%&JggzlvG26x&@pGZrfgI(UIg%_bQm~<{rK)Ld?VHnuKB}Dg`nRX& z!$&K^Y^My8{(Mq*YtyGpY(LF5eJg7527BC&kFEY&_b{$WwdAC6;O#~V7gg? zTrQIoH%759~mq}t)mmK6nG3kw^QwWZ{$;TWk+$*7Ey7G*>H&^Q}flRZNTXO3}YjO4AKoC+Z z655FT2*q1rca_a#OvjX}OfxRmIm9Q}KdtJWj;xPJ1pD7QXQ* zmf>EuO!|}JEaeTZoW{YT2-kfy$*=23@a!U-XwWa|Z98;1n>oNfXk&(l?N3kLmU$kz-j70qK+9~RJ;;P(A7p&U-Ht_Q`J^VM z8jkjG$P~x{o-a}}b{WY(ua9ED zMj$06OCN}$^T~uVB6V1=>B+>C0`b|L2TKLGlA?G%->08)i|xdxDp16ZcjDf#$>8FFEF|dN*v>r*gI#vIu=Y;^t^q%trjgMZ4-l9D$r0G7hdplIUxnj7Y4s@A3yM9G(_?YD9%T$vLgM@GY9}vx8o% zhuV4@ZA8Xjk9LvX?~UOH%evb+EuwqDBV-aBh=~Gy317@oncG$8uUxGm2ci$?g9J82IHC68Lxi%JEaG-sCh*6-Ih-fL<<5uL)+uNNJrb(T!7o7HMt zBdPr2Uw*-RX|*wSX2kvCiDc~P9MvZq&2nm!#5Z3)3OsB2cuw|NS%vX3TH^Vm3`Vj- zAM@M*X=@V^5u_j)vfUC1*&~y!%CXj{g`A2X<0Kjd*m8_FEqnLOoxIGn;|@@E)cW2e z@gsfPSleP8>w19ma`SG>^NIsn_WUUS@~3d}A256Ge-u!u%5i9)2#Dx(?e=RXXe)_Q z?Z+QPk6HKrID&h1aegBA%DE;wLR&mK7S~xZjGk8NK|%P9ii^7+zinb=FDDf13noXz z>@!iOx*yl|Xh)f&&l(~cm_HhK5$3aRdXe5`wSLdZD&1G6v0rqSTaCfntvInQ`K)G`%Uph(nWJu29>%Dpn|tbqYo}M^vwDPRyrlf*c@$h@ zxY))~R#b+T9KK|Z?=z%N72yK!I>>YN_~&_|sZR;se)KXg&me10N!ym(bix{*`ChA=`oae%{y6!Z;esVX_=BI*D-gl^$ zDlJd_RQ%p2mMe!}d^tG}+YztTZn;C%5|u(h5;j)Xia4Wop(Hxr@R)*l zEC^}GJ_#x4R+3%%P4`TP5WiwJ@0K4l@#I;o#uQ}Q>r%*FZ@pz}usg}cR1kMqk&tM( zBkdCxgx`sxFj?H)-x9A*;%XKcM7GZFnI$A-!IcVCw6{5JoXzR8dt0+_$MoW+m&Glo zl7jE|-WiXUnj6PlyuLF$0#ogGeLx#xeZO-T;LAuiq z0=)%TPXag=)bO2r~uM*H;3CLZM`F8;*(2Jc{b z=jym49xIXpnNQSr1=P=pFS*3_W5Qm?z3AMWCfer`l^gfN6xHw{vS_REhs#lfnzc@L2J=`&FgJhBUXtdZrmMMCl-oRv&wVXc8DBfRMZ_wzK&NLRqhuat(UV$eO z#g|>$6gp?Rd)v4U$T`KEQfIvHhDqOF@maVNY55mABDc%`LJR!s_pqBfPE&@hpdtd3R}U!@7f!kYDT^0(&a#q(@g~DM|vCX7@T!XEoG$S6eUEK*sQhg zW4L^yNA6tNHNI;n$XmU8VMnmbN-cip)x!(b+Fc=AMg{xcsPs$)!r3$biziOwq(pJm zeBAifc=wHCDKhti*rxxsm=D^T1Jbf!aztHXg77Me}`TsjCpo+sUai#yIkr?5h0$X;PGJ0wa^ z$dL*PWt`lX%pP`3ug&Xvv-x2x1{)g?1 zTG#I2jDF>v-e;aX@komM^+LUOWAmayv52dJQ+DB&42xy-wRyRRoBJ4*>k@DK@zq40I*v&?WXiD{iGG@fr!Y`Vv?+QgRQus5?^3rdV|`P=UG${C z%|qHB&eNl~wZJIlbAa^Oo~qvsmCNfBB3E!Jxb7z=KJUE}~v41^Jq2Z9IJzb z$X7A&Z}Rp6&*P6U9=#tr)XDKFEO3Y=E5;C@$0xyR3pWUBaFpRbHA3i{q5h111mdQxk#Fj!!-es>`-@fq23(4!EBa|&8 zHwt&Dy=CPe#i-biBO#psx<&N##X-F;3d99kL(ukYV;st6&E2WQw;Z_vdYQHsMo;Ky zl^ql_Fyi-wKWA<>M(WN;CJ>UX4jqWN#p_5CD5g8UUlT67<02k+e(FX^N5861RuxHJ z9Y$hq4ZnRVQn_(peX_9;V;#%<;1)1hp@o0dRETo?bQ%vF zKZk&lJ%QRxpPxN(Lin{ibcsAQq;WE3N3xE3Lqc!+Qb=TF5vmtCyKOZ_OKqO!;jiZ| z#=UzDC!^V$an^n|%YnEVhrr|3Pt3cE&}3h*eh?N(nv{_sjq4bHDTLWNlN?H}>w%vV zr-Ht4dk#t$<)N6ATsxM%hT+7&V17N2w)u?6jk5$%l`ffcDAcE0Si{Okl#wy%+tta3*e>1a57_2)f|jP}mvxZaZ?)IP)=vWwfEsv1&O zV^eylFRw29jCEw#zs8*%J2vRh5tGAw(Za+tFUla7^-@p3klF(&V?-wmT~%^Oly7=C=~sKAl(J%=bctKIaPK;*)<= z_3fsVLGO#L)=k}1zknb2*6m@2t9_MLu6(<~jqwcY-bnwp)}UCmd2*VXK(|p@G?_wF zQ}5N_4`~l zU-r12^z6e-qpWEQ?@-e_=10WOFKL}2-yVWfseYP8ZWbtunoFuLX2Rb3zPazfB6`|9 zsC)y#rbopM^=48(mL_M8ievqIIpyc&Y67;_#iU4qk9OFiRyaBO^j&<}0wEsgSyw%< z^<-);b(PrY^V1fEt{cb-@>=F;98gv=-up!F^Zl}2ODrbkrOf-Y&O*!NJ{_*?c}j^i z!{h3N9>I2M)5KP>)zCydZT8LjMjZFVZ_{mwXw#A*$}(xDBDcdfHxfcWTu?flqA;jT z^0%s&PFi3LJZWpF|1cOx?e=hdGpAhN{q6CUH?=q>LS=aJpy`{eCQ@7M-kN;dv@xtg zc)Sb`F|xi%o82vL*PuGY?+SJZom|=Gs<>S3hS|#wIF9|EyIeR?T=d?Y_4|xO4~$}) zkE$OIrw<>z*(-`dyT(AMzO~N(Y5CyBH!a0gsfD;$o~roBN7AU3phLxQ#Tp% zTE+KW^KrAspU^UF$teh5|76(le0u<>%KvT znt2oHF{M+wmR$5my7`2OzUpR z$$-uIVg7<@{)Mz)Lc&z07rER0PV}!Uw#TZ}h}jbTQH;_4X30*1Q%-^+C7%{BxCu%e zBK?e~ZOuC$JTk@{88WjzJ|dlB&t23t!v2SPpbeTMU853U2K81#!+)pTcIe4P< zj$6hbhkga&QxO>hT}GsboK#pWYs$!Ss^Y5BL!ncmM+(>CA4nGP7eB(qbStjMWTwAg zyo2WENPM&8vr`V%(ETY%OqPa3tLb)0Qs=}+Nwf^i6E{9m%~Ti@!I63(Ztt9(m_MZI zdd#;d#h!{)KqAS$GUOdxP%|jQ6%r8;8((~D3U2o4vsQ65I1_D5Ckx50Gm{-7)QOTf zQ+yHn8pIFDW(}$QPs~-Gl~uwMaAd!{O@bts0&jF<{f>7OU8)KG5@Z*rd#_h6OY6zM zj8ZLA%@aqKdq%qI9p8MUIN`&w#z2~7(k}~zU}AIxL=}%bo?%>n$GF&TE||N0m*zf+yP55zRCul6GA#SXtv$n2lby5vlVEW02ad`!Wa&v@&PrU#lpa;2I)N z#y(o#6QYl!ZD%uPIwTXX3e!E+WW4VA^!wKbvvE2n_QrV(c!#VThVNq}P9dw1@PxS5 z@?5)QxDU{U7^ONP!kXH%OuOF>nzGUGc8HF zgw*RAoJZS_G2!vl&l}N25X0s@bCndcQhtbW=(Jrtu~`hZ=ytU-PI);phTpw( z%A5(8le$#&y54}2bzw$i#Tub%fnq>7A7MaPd)9`ocbe$EL&SF ztGwHsv6)bm+*`(tM}+Whmrco_>>@W|&j1anAvRjrqj|R*!(939Gg`sQ%^ZOTJ%S8A zSf82}Ey;?vj#I@S=d3ja#M3MX-aB=BUeSb%`zln|gMy`3Cy+{YRF|Wr0+Z?b=&=5L zA1A%`z|hbwS9^b@MY04uREOST5*r`#j@p{iKzyvi={t0M)s%TI$R}re2`u^@e)T6= zX*qRb#u4{-vA#_;Q{yI|vs5#SUJFFv)o^%fF3gLcZu0WT9Z^wdAjObT3(-N5ej%14 ztT4yVxJ?FIfx0K+Y{@$`3C$*_oT~%Pn85l=ltf@U-gy6 zw;pGeWwHP|1^vN?l8kZ3Z<(7jC&sj#EY}#DVueK8#AT)W7*ot*x1aj0W9TcNkhGmu zBVE_*;3~cD@EA?))_D7i#;mxeW|l7>g~<4sOKun3BuqH(Ww*q#HHlf%{Zi$v2H9s6 z-;^RgxYzP>A$CZV%uLOCX;^q!En4?J$5dzB@rcZ)GnKlCC2L@nKELhR#BoD@Qy=BI zOB`7MeFwdY4zW{<2Hv(i4M~4fF4io9#mcoTe*Ip*RctH~Zf1MRTmEq>t46X230y_V zv?l4X3XOa;AIf%wI#uoN%2Xh#&DKzPYMwry_b-^YFhzd-qkbQc2%i?6iE{`ESrUon zVLBRFpiZ77js%^PML`^+j#hir1^mmrK2bb`;8SLcCQa+Ls2|7uVPsSo{-g=nN~^bg z-m?z+X+IjIwIr|!O*LeUOOSo}@!7>5w@CXiF8plV2!^_ub+kfKXe1pgdahy^qiqp) zUYi{Ks_@q&AC@gFiI1iJoMA4!NJrmd1U{o1zFdBKh>Q2&xp)9qpg%&)-b>*v)o2V; z{p@yWj9AuXw)y3tJT!!_8$G3SR0Uya+J(kpt1L+4%1pWvVfU_Y-TwTRw6yA6Y}hnOXx$A^W!>_#F%IQD_x9qFm1_olq-6xRyE&z= z3JEbjn2*amu-xS6lrDBl%%aR@gx?a!sE+49;Npu%?TZ{bj=43S`;5BACyEnA-#w|w^I64Y*VVfD&1-xh>_xZl&2JsWDlG{TG^FvQF3xf+2_{WOs z#i%DF))^m^^y2=Aye)|>K__xp74S6q2ijw?tCX1PwmgGM63v-glFh1>XP$xa5BHn8 z?_y2mMXb?2l73n#M^vDtG{DyV6179|AFOz0 z)8jp=`7VJcsP7dTr{D4xmeZlr$&+t#Qm)_bPhYpQ67{_;@RZYj|r-)l992 zxbq!ufYJ{x&U**~gDRN^W1UgXbhkLW7QEwqOk5sGMya=S&ZNJBKHJ+d2tKGfN!pwy>m=pd}S?3Q#a+T^Z>lG9vZnX*q_0pH{51OA5 zmZ_7t_9U(sI9FaxlB;4CAM-_Dr8)&TN&07y^lOSuAKan993aR-4{AeW(65xHy)_!T zds-~TB~3Ty&USUv!4iq^>#C7{hKkKG0UP>9nOKHGvxVwF=4<;ezql?|rw;U~8m8Yl z_3CzhRgx=1W@jAdV}~pe9P8tqK{c9#+khlWb&~ba^ldNJH?utR?a;dq;y*+o;S*$8 z7x@W>y~I%ZtKk}(`ll}1fG2j+sQbLKvLd)Mf;mqAzo>Ro$~xf z)aabgrUyhlKYi#boj2n-qJ11j^TR8*f_7;IFM@o}h2!HJp4$mk*oihCO*in)PqSSs zw7cob&Kl3WMQdEQejKQ%-SFbWeT+!=BK^|M)uR`laVNgVft{FpiT#0WGD=&_HojV4 zjsGjgInj_DGZFphaw@!0#W7_w@>1>#va9aeA4Jr{6?$@M4wqRWtPYr4>mn@^M7oJ; zeU3pY4rDj;Y{%oDr_q;GXRZ`SjvJpRk)CzM=n_nPnwnqSy;|_*<+SxLx}dSL5teNE z!K_gFSVK!h4B^>!1Bs%w3l`rK8RXc)Q>mBLriZT#F zP6@ctEZg)dH=pW#wYEr$&APDjmFlt(Uo|Ia?tbF8y}C&-(>HwMx%!>d?UV;_Pj%wa zYE2&pa#SznXL{&lyX{+ADhg_g3+%y-XGg6VQkG)YhS2Ks;FtGPHt&rtWZE>eX%E1? z&~lYH7(igI%YCZqL=Z$?SVrebo48e+2B*myuhW&$^X*lJYS2NXKdIP9N%rGU?YBH^ z7^91<10M6|7MCFxmN4H_FHjQ2+XqLmYMEX^ zUK>My?~KQ-Dy+iVFm3Zplbg&8p}sh8typ-2smAgR`(~6$s%uFoeZC@!oVfPQ*>toB z{AA?@V^)VC94_p}r8hqoF;B9E2Yf^nFshydvm{=*gJ77Pr<>SztGGIhEJMl#bUL>2v;jZ2Lj14kFgQ{z$rB=Q9ABzCJu z7o;g8WsPN3p~*#Q>*bI~H~Fg7{(Y9!_=}kHFl~dvt`D)XGDO@{%|hb0`(l$Z5q<<0 z%y;9mN1(?Z?uO{KV@ZdQ%9W`(Pp%d!h9_D~NNO(97}DSmu8UkGdR@1MbKRq}9d(ux zDek6zqm#s)Lvg6q%38mR%9<||zy(jyLN1ZUwfcR&L0f=CXv+wnhEQg@M?|>IzXHJ3VP=v5 z(R7DKNQeRk&-LwZ)j|4?Gd;W$>0CIg)qOjWt!Z3OG5WFGZ{hBt`QRutWX4p5a&ec) z7IGomFvWDyi|J~XmSM9R;SC#e7;LgrDBP#=&|0&s;~XLwSA3X@g2Xc>L+tc~?&T=U z7&ot@e1NZIcBJaMFQsdFuolkTspg%^(;OnAIdEwF&jj(h(GbZWhs$J%i-zG{&8C~!)m&m3Eb+UWR-TU#| z2Af09h?8I8t*(UOao8dnM)H}RBTJ)L(u6h5bi(17;_*h&9I2lppO+UASDRz>;rpxY4fVj)NjSr{ibOW1>THJh zxwMiy52VS0u>&GPpR7qnzZwra(o`Wup0w!XTv96?DLD^Ta%_HIjxRfTaEFKMuB6$Dt{NY$~KWS??$Q1 z%{N3u?$#R0sg^yTGfEgHFxV_sev~~vSNAK)Q z1U&tY)I_Z%^KQS;AK{JO@~%t?-biQ|DNjRrE<$dp7(uG`b2=D~0aUu?7wZf02_e*dI$Cff5tpr~T2AN9Uj0^h=o z(GtZ3wvX2n$dBAe-W4HzZ@H_7V;cXEwJ1dEgDQp=-aB?29g@eCQ`GM9D)wYCOxTY1kjmYHOD78y&WiI*yLVf+9k082{~MwrP5i^5fow!sj-Dfw2wOawf<{ zdNiJUL<%&>i})ncB#*AMWro+?=}S0HH1mL(P@sICj@yhxlkjClqMx;(>*Ey3aP7k!RKCKG|$_%+{$8CXx?`E->v$aH+lK6tGei&+FBbDy#6xtZ)tH)gu-l-m1+KV~l(QKFoo`)ViR z{N0nQSlYjlheP*t?>S|kVb70GL=V2Le>mK~nGM2cM5jpc4G%A;ZVmsX%A8Hc5eOHYj(7<3;&n5lc&k$ z5Wj8wD7hhjl@TsOB@yS4VP<#f702=W!N4RR!;!nM*B2tF@h$YlbYSJ+J(_%G^x5T@q`~_&NmKgyP1jx7L`EY-$mX z2*hs}81ZTFi?n8pzq7d2CalBp=?90B4c@(qtu8llS@v}uuEABxZt_J6u1?A1)g~`w z8s79;CF*^96@Ashr0pAzud%;~Lz59yWWltq!{Zr!$4;jCZS#A>!17%x^|~k9^`**; zY&H**-Aw)a5xO+@h2yzZp zOL3WE%{5$?<3|);@p)vJiK+I3x)}+cK~h~KUi@J2l;BoW?z2tqUdju9t9JybCDkM0 z@grf6WB4n-W52u?w#sUnRKv-aBB*)sIIG9`_V0Q8%Oy#G0ga=nqc6NL(a;^&WFaqx6Pkb0{JQ z=dAEcDYB{C@4q%_1<-ntn2Bb2_QFS`t~?1}U|)=-zqS8eSa(2NKd#7#j#zy)4J(i_ zc;>4Xxv|-+=vN7=t8Y1;nh@t0H9ypn8KTX9=C&uATaG#3V@3EmmV`k(##mBh@K|Nv z!`0&;QLo)D|5f_8*9&2?kv9v|h@PZ0H&JC}ejvTgg20+*?r=i2u`wZ#W`w}^v^87_ zt&DZ~cJmwQYg+{&reX2&@wD3dNRre0VPD51YVFyiT|M8$A(S`-cGQl&knTlE=6>HN zq}vkVc(h7sOhP!V zqr*-rZ63g$&N0A7nD~HHD2@0A7js-owC!*n{KNV8qTZ-4s7-oBRi9k{njVdufOhGB zZJO&~j~`m$YQAl!{%k$8PB`dP9wH}uhXmQT@W&SClx^)66*Jt6@G<*IEe(@Qfq3-q z!X^(@hNuPm%^Q?n=v5L*jdg^0kg1~%wWS6{rtsvpQ4{v`l~0W2?6aAX3lUH^#%^wZ z$}^b^6#GU(c=^`lGJFR4oi^@c-ji`p{SoT4!g%+FZQW}};t|#xX1X-uY`Vd#-bwI1 zT5VrWn}tu3cJ7UstWDYbw&ub?_AK$mB!O_klW;(s8WkO?n1Krwkkz& zV6pp^jV`X%G4ANJ)GpD}Z49p`u`0h+ctKN4*#Cy`-#J^hQaC_J~)EJifIM{8M_|VgVtDE6a;Hqs?0EdVBrfJ9c zGuoPRI^lI;)hG#dtcSzH_dmP|nH)=W_w+9`m^$Jte$`GX+E+Z!K7*swoOsn2rKl@u zmtFAc2UogwqCgRaSf!L-(A;OPP)WW6qwQo&n+es~dAcOa9Q4W`%CVp3T^Nx*6&~de z>OeaSt#8UBAd``5KPI%Bsy^YYn>@u^dhWlMe~&Z^<8V$iPqJA{KTH4i5PkhFfBCyZ zYHkHmJkEBC3ko-`zRyyOk4U-gz4qmpzqnw$PCYRVeLBLGsOlj@L1eRPLote@XL`J| z$#Ow)qBFA~(hAS9;a3%g9&=AYS9K;dl;OMeydOF4onGRZo$@!N_fYK$7d*-7X!TrI z^Iz+9U8k;WaDIfk6&nusMo;N0=_upt`ZC|`p}^Ek7l}^#m+SpPWZ$utHbi%PoQR#m z6K3ryO#%ecm7nYtx80uFMW-0&pde6n`?CJcFkE(e60K~A9jSGsgmfPH)*Ce zI>oa&+acCUR<5qv#br6)!K;-FEJm4Jo^X`KHiN1}CM#;bZ#>vVgU2~0v#MAhxMfah zucf`R$2s!G8?M3TqArA24ME^kD8H4kAD$dB`yLtI^1{i=z9P5VHg=B*J&fwVCPh}#e3Q03al zwAQuhyIl%G3u!m&{L5)A3bE_o$K-jAw;^5IkMU0TnY=-8GrIIMLhF!U-Vjmqt}2%@ zEsH}ui4uviJpcQYM&eeUO7U0m{M-E&lHb&NEFv2b`UrSU6sn36hDxUjQJ&S|R}5PF zhu6WqXEel|Eq{Wn%{bGpd+OD!W%d!}OgM1BWvAjs&drjlL?X3X1*Lk+{ZZ@4N0+Dv zr-2Drcq~a;^_5fuR51cZ$aZ7h3 zKNM0C3QO6Qu+5j@tQL9hE1sJs8;~&Qe{-ZXw1kSG-3}>UX0a3FrI@AEO@}O1H{?Oj z!TSuTy4N-kT0hT!K^u{~Q-qzC9ZC`cUuco8J?rqak}kX@Yv-afqfY8}XG*Vqsfdyp zJ|?*#lTA9tjfBvpCA&bG%h;|9gNz6AMlU81+#dul5hzGB;F0w;F_d<-1asYK>BJXU%A?)mbr6{ z7jqZ;kn_!bBhLW7HR+)PDa%*)nSZ!bG)9?7QuqqYwaX(oHgr8kV$eB5i^y!?HOAZC zJP%w3YZL}r0KCBR3oko1UDqu3G#zRu_c?lkSxJFS;pBmDs79yF|;HSj3aVGVRmd=$Sda_gh zuasuVx)M|dE2{b;EN>0++K`ybMDLX#%cRhwsHH7;c?S+S%oTTjlkGmp;J?RejL54| zGdoK_{jDLXklXd+7A6A{Tj%DmkL|t>3U9hQi(fkiMr!X(e*RpU?%9hFf%eGb@1@w$ zxQe@kZwp8g2L|bPS~3WwJUf)4piGc!&tRo&koEO9?lhdm68`>`lo~0ij*{0^PAtNm<;}pshXugC6bSo9;ifh+0ysr6cw|IErd=5S_|Gp`j(bDOYjbR>OVKj z_$o(_>wE`uD-bW#h%cdjn0Hp*dLrD4CjIuX*qRa=#pHU-%`uC8X0h)#eE0}NeRafg z>XAPiXM}nVyq^CoO~$k&o9mPIwX#72^C+0KLs3k9CXN~LIgP(RA@|P1S?V%TxqAM4 zv!%LSnI=qvpgeGmcCt_)EtX>!-{_ zl(Hp>-7nlYTa`4kgtQqW>^-Z}x8c1Rwava81n1nEaI`TC4jD?pQDxmhmXY zh)P%Jl@32nHuW@4m^xRFn%{7`bP=`FL|JNG_FxJq?4HOP-FAup(KP*(Lx*yWkMi|5 zC)2Cgqzg)x>mhPS*YAfh?>U*(Ob1WYjq=5Px1m6&brNKCsvpm)J8z^OlUEF;_rOzh z6rsxR(tS{%N_X^qS@G)ATFnlCjHvr0oDVn4`j~jQ}_c*>zHmzs( z5y3ZQsHyE4l|sdu|0}chw=(#4Z++(m8rZYsCuzi^&&i%j)2=({Yb1ro8Of}=MN)2@ z`y<$`@z-X4ZgxQ|6Yll17kDNa6zLdBQzpxXD{tg$mZ}&ParTgJ8t;8K0@o}WE4p@} zf`~zGgzOZD<}zD|ynW0A9-k|0j*V+t8a-9?&ubc)v8H;UM0^-!(gy#wfOoWHR{ zwAkct?2gE|zoh<}pL(oswUVkR#Z2Wb^vjT}bRX!nLf`^(d9^;Jh-!Ys+kWEGN%gv9 zTnAmzwL#s{E8t|8y~42(>ETQV<))L+hnXLYwE4Z9Y}eLmd6qrl73rprydz(CIu}tI zE$SnuHv|*yTNh+`O0)a=w(!u5Pt?GPq3xjf#vqrf$vXJ1a|^U_X1ygXj*_M4zKDG} zQoLYddl*NbpLDVx-|3a~@Qt|g%Xa65Q%@WCJ1Ij*FEJh{U=&yA6FY4eFBGm@xRoYu zE)vKdv4oTiGkeF@(+RWkawLromdnbv4!ek>`J zp7&3Al9)E+x)ENauA4PXSL|6%Lw0KOGVxjC@RNJ-csTYCir;oeKVq2sws|nGfXAQG z+d`KgX0WMbVpAy|8CXVClTR-_tn=dSaMk|@kU($0mPY&|93khD+HSbc7ZAWgTB16h zwwU<{k0VMXBh1jD2Od)K^lPcPz2NtN&kz#V2r&y9G0i;;auXNS;klv%Q_Nuj%|z5} z-i#Tk(vXMwTc;s=Y-(0PrqlW!6+!bNvQGR!5|Xr}%#bzR#%iD0{w4et7dX|s41{`F zr|H*$<3>1)^ZciIm>#LtD=%mpj@hXgQQgfV$K-aZ!&yd=L9KQ#A&LQNk&{AU;BizVkG+WDf zoLE++pGoF2hdfnnO7)TKS;>n?uZ$Vv5z5)<-vyr-prM_WHSD}#&O-MHDeDt2^a2T%YFAO+aQ2>wJ?UNLpD+URUaJA5!ELaT@~_U~Ot_xK5TT zSw27$|3t~2aNkfo&D|W~dN%0(V{VmjrTfp&&H~z~T2^4NdmiuPApMSHZ=PM_Nv3p! zUp3XRlk_RZqMTsFwsrNdg)4cjT@6>N$xvjFQLDVh{9Ro+!QI@$m@{@mVU6gxh!1gt zQv}P0qK%kRSD&)QrD96bMGGtI8t#Pzo$@1<`@6=+yeB4*OdwXUFew2@x|m0v7JE9) z;HsSRUL>e`f4f0eHQvjIXtni3;%g$kS^N1s-=N<{2)Zbu>iX^H1T`JB=|15SZm~`x z|CH}#6ceGBoRu5vr_9mrI|W0!s~6r=BNp%udb|jJ73NW)pMwliBE-}Vj;$Cq_V8)G z&1fnLs`szrkGa9CkA#CjWvA2@K-q~z)?&32%qGR?9kBpsCWsdU{ zW0b9p&_pD?oJ;lgm=P)m>q!n<3BYd`S6^$>N05kqugjmgs)5%#T|^D(j~M4LCvjq0#mElP=3@RzJgRm7x5lYM-d zZ*qdFb@&(_tz_wO_H&d;ultvzm$%x~6!+=VJmHY{YTY|sdJ#Dt$5phR8q!nn=xjSq<+Lyf1njc+lKa6t(V6|dvtY);Tmm%)_Cdf_wyeTmi^5=j%i zK!_-GEPWn304_Og$rmq@O$ZHy*Wxuv}Y$X^fZS7XE}4b=!}9OF2wKBriQtgfJw44)4m0G)3k|%66?I!Cc!~i6OOvX^vA0R> zJ7!%<0vPa+MJ?C$T<&oHkRguRYCeLvB7&+GGQm&yH@?SkoqQrKwF+tFU3{21UST_F zzeTU6@K!)j=1ILeagEY|C3F&zV}7Dczx{cs%yy(9KsUf*KE^_Sn98X-4?)0OmU`H! z!VMm?)vSc`t<;e%E|~4E(96fUl}0C89g%5a23Ogqms=TL3XV|8ne)f4h9w5(JT@I_)Ch7P{z=c7p?*Oy-FB|zI zx!Qf85sez@A^_Uh;6=@-NA6*_R~I+FujIbi+mw(NKEwy@jn$XP|4spOr1A^;WYtNb)OOc0kc!?@Y;nFMjw~B{eRSwv|>^Pe6MXa&5zcL4` z8^$Ih_ zOWO*Q<=E}d8)uTGvtg|{uVpxhf9=wK{yf+l!`c~?F1E0@G~A~%+ZZ}SGj_aMsDQSS>dU2t~Eju*`5LZ zsf{?w!#XCwrDXH8t6R`w5x`${ma@jJ8f6hcz(VHx_CNDYtMxFiVigY)b0Q^XJ;fm! znOnEX86*|*B%3Ik!PIy@i}+vsSTDZ&RGg7W`uIMNvzbk*2Bza&$^fSbbmYI_1>DJj z#3+ulpUZ9ddPGzwP$?!5N8Afea>9ORRK#mprLBbp_Au@ECQM*T!~j2KJHuY~u3-zl zWo{mC95=^vHz| zZTevmbJ(hN*%((P$LOP-2JL5$aoOajWt~c$E*?Y33O>$yZev78(Yw4}F$E*PpQN8h z*~|v!>S*0qY&=Q8Dgq=+xsHR*`z3;D9%dtr7>i}a)-aFf?iOW~zfdaw&?T z()*iv2N&`W?6f2Bm9tobh&aUnkFkMGEFfo7Cn4fEIhG;_xQ=h=x;X|(LLO(7MfPgd z+SVO~aEiW2Bn5VR?rjNd*78M}T})ZWm>OS^VIJdAT`1Z=1k!n~+KfCe z2qYCGfw%nzhB!=_!ztzAmaq|%;h3{I1MWKnK+b($N@`f_-!co|q8l!QWF?z4ag62K z8hhD7z!6qjMbWh+sJP*r_XhJ8g~iWfC7bZKQ6f0WaTeM|2&mYS5C(y2&U^#|>~#=PB5B}ST7en|nWVvPb3~1P9%l!G ziI|1h(&$Q55xu;LSJ7o<5*OJG+EzeQIal5i2u9gQkx7m?CMTmWT**8esGjrM^my@4 zE6H_KjRhfL2y)4k3MUi@or0|XYvD@OG~O8&9OEc3!(k?!!Nvp3658gcN#}|p^SykK zkFv~$Va}fRAqg4eZf@gF4qJ8gG09Bc8UEI5Nu?rw)h!jirD4U z-Z#Z+VoFnW^lT{cI5Xb;f=gKl40B8edInV3&+UAgyBQ#w64u%7S z?BO^88A=>tz+UZF&kd;Q<|y?Ws-}1Wf66;)*9jI$dBl}z)wT|CFSqe+j_D4Y(;TG6 zJT9+OosMuEzxRdaJq%*X*N{4! zc-%Rz8X1U=C|o%pQ+%RoF|(rip-QZjY7-%=`js?DfLIB@t_w&j=@pDDpEN z;JBmb`zuG{Qwj9)8g9{b#@#CFv5=@JUOokpOdWwitrcY0uj!M!{(`x-v7Wy+!WmT> zl6q>O`+!)+G`Vnw8U)C?Bq)JkoS(6THa)mON-Uw>AwPi~Y=%%bMj~}slBN6(mvbAB zTIt-krTf-E#STt#2Zy}@Lw%ZK6FHuw zOdmgHHzoXVtz_N6SOJV^=4xKgW+$3T*x48jL}d@9Dapzle$+PW4k)snabz6|%ut^= z@Ag_r6$hEMZ=g>B(y-FKN-bZ+ZZ2Z09oQrXSwOcZ(x9)*prQkE_KYXrpXXXGA)Pm~ngLF*i~Bg` z$uKx?_eZBF-x_Y^#dMNH^O#a7bB`H?|I~mg1BnV^`+1VMkEoHfq{q_CnEW@@8-`DV z0Ip5WC%gV6e7$#u`&ngmQ7Cep8G3cO2sgIX{97R)M+TXaf(7$<8{7E2uI-srBGX1J zImMlfkYO?H40%(YW*=Lp7%J&Bc67Q( zk*o(MILt#_Z(BsE(2XJs==4e%7^Wh~p+X&Ub$YLQLcoQ5lxz4Rk2!V5Vv?40u>wr- z6GnIyy$pC|*{d9)WL026L`WVI-oX-2>iPvSEaw1U=BY$+_;^YE-vyEkn|Tvg>p=IU zTCME)DyveYY`i+tgPiaTV*w!#vOneO`rSwuvSrGh315IeP`Bly>n(^a^vM@gxsN4m z@;;sB2tCZVhKb}*0;H~XQ*ZoGIWpI?iEr_Bj@#w;J!?seTaib}CITV^aFQw7>{S`6 z&B7>Oy^1pr1i2oSIo5 z;6bl;m@ftScGI*%So(cqIF+O8d;#v?W_SgsdY7^63Ga3BAV#>0h4f;gR3uQNpDA1F zJ*hUCeqtqZjz7*nTl083S8yA5d(9SHAt#=LLfS`&`vIAG3^A5S0Syer-Q@@p77QNwj2&BHhfR)f-g2#j5y2 z71iF+ze2fvH}FSX#TTrME>cDiBV(i^Y~m($Fhw61dK;tCSz=@kIgv=VQgMv+NJ(Oh zY9m+kI&Pxd>OQVbQ|fT`T-{S*1Xk6^#~ib=5&ufu#r`@nZ%%vGs*q+THJzK_9}xg{ zG)%|k|5DXJUw4!`&fS&0^RoyXYUzKZLTogJWT*(CNWh3 zwDNK`^L4&a7Y*wRMDEtOn^vRWYrG;g0>ltk<8&mypA=R@F&r;qG^pW z(E9d5^>3LG`fWi>S7obm4-Z;RA*lp|uq9*7r=d<6NlAkrF3Ab|N2(0q`k7Qvl3yt! zLkn?*eb>&U?kn&^+PPFWUvWd3${c5cMYK5=i6=Vf-JmB4E&Uv{F9V>&FMDjs(C(qRGVdZPfQZM>Y3M_asL zC)bgwz8~QZ+F4JspO!#%#O-9B?jGcCk>QDfmeN%wj7tq7vTS1=Kjh2obHX^x1YMh@ zzr=!&VJf<6SX`vRt-V!ZM8^xc%&8vYw?t&PfLnMmJ-Aj+we>Y(qimX#rT(ok&H$6R zZJ}M^?=jtis@@x7wm0Y5IF%S#Oen1S_i5=>40UCIkSI;x7tH9m+?Z6ik#j;ZeUwr6 z_wjYItkHuoC&0w@4>Lgr-86f3xZJ@;2;Jz}RM?AU^@vVxVGG~j4h9li6mPk2+f;8D zqClHgYa=To#4y8n$_mtjapy$Lee=4nlQKVb{s`frwp*`G=Q1RRt{>Wc_OK+(y+2MB1>=O|4mGM^mc%e;ow z7F%7cjVLq77#;M`>R_R7>`|UbC8|~Ia+~MUOfchJmsFL; zostlO^y6UGMbgUic&#?`s#6&f>6#<~$?V=_T|-HUNrsuworIExGG(RQ!B=drLU)7R zPbAHBI0^C+7)!~c27%nZZT!JB1dxbQN+>@7C8ublf_Cz=5Jz{Ahxih==+X}{e#g(L zFv>Ws^w63RV*KYAPl75Hqo$c5Aj1|e+Vu5#@Vja@d%N7xk z=MrAaHd=|(S zuUC{ORR-`sfhtoTpO$pcmRfeupN8ZxU*MH&B5Om+;wy}@Ho-IvbkJpcjJxmmZRD|w zrluDp!?kSWd)&@pYfg>>&XPh~MRz%_-(q#ugtKf>VkEJ;2aCCxm(vTjs<*4zrzwo_ zj4Mnr!30H18IwVu>aPmh`4&U?c1QoG`DTu7Zey72U_#T<_f*AW{%2>j11R-m5`SY_ z>73=-r0b!NFEPpGHmlGtD{Gc?nrVh;p@VkaUDR9?$0jDNZ^n%j(aCGLm~V2ow&JH# zCZz}XWuJVAn6y;{+)=v!LOa*+N-m_?iRevwDSXs1(odCXMwz1E2(JMo^aCZCOz~rW ztVO@sAa(}LBV)^9sg#@vk0IDQ2E-wM{*DX~%tX7ymb4dD86>o}Es3Cs9%oD3rK(q< zhWRReyh!I4`a~?oSrrg5PM#K8X{E`*O<%B!KU2>N2*|L36>Q^MY-d_)4M|B}os5FR z;gjN{WZE{eOMatHZ;rLRju+?vc(=Zftotn%L?cQ}GDU%+_CdPVfV6;;V|*2vgb6 zM~#?f6;lz-{G8AAyquMG(NdS#Bla~a%rH%XvbIbrKT2GWz?W21X7yga!$EvnI-AiO zpos+um2Zl1(m)nPB9y~n0Rm=bb0ZE?astT&c@~oO3=aZHJByr_Z1K_yLUz*6HEf~7 zxjw$a{2l;VO$}gzfPh9?X(3NW+Xw60v=~GRn9Iw#l<)Fg?YB=tNI}=__Mc$90@YdO zFKJ;5ujVpcEHi13i?0i*5mKeZ3@lXmZAjjjWCqpvG zx7g1$tahr{#lexW3gr7Cp~568#8II@R)?Az^Gcjl9%o)fak`GU=vj}nE;|em6xhYRPP%<^4Rc({ zNL>kS=+&k0-L;-^?zeN1^1&vn($^t?)P;HLS%6@IQC53PIgcLQ!zZ3vmA$-xB2Re^ zmKe%B&T+PIIrE+R!oJGna^QG@)W#Z~=%!oyBUQ$kfQ7t_HT;YtHsU|_2PE%_mpXLv z1>!r}xQr|4Mm4oHCR)YGjR>bc4V{q*2aUz7<2646Y8>GK9#0Yb%xVN&NjDFtJY^AW z-nBIb>gFjC5Hgs2x=#U8L7nXZ++yY#I$6Trx@$){%GE^dpY>^@+{IH|!NqhWd6JGN$)Ijrn%H=-9@3y2xr(Rw1Cu{)=?Nc~Cbh z_nGGZz&?=#QiKffFxweQh1%xii-5p$_o(en7dgly?053#d|f&XJ(VTT-F)?FAKzpfm(ZaR$PEM+_A@s`CaD*=cKw+3 zDTD~=<8gM-UsrD1WnKZ-u#UZqrHHq!EFlis0m+OmZX+Co0|A4wu8Fu$0YV}{Tu#mP zn;&IHn>^JrXIV`P6A9TrVw@r;xSj@f&O!wQP-Z{J_$eFM$UG}vrf)kAdL(lV%x5kF zl{wBM>|s2?N_<2}gE)xA7Y|SJZT52+t7x^X%gt?cPr7gMbPZp=d0JIZJjE02N48tb2;O%j?q)Hvt5TCJ-`7KSy|q6U?N9nEMdX&P{Z% zhXBcNT|R~?3e#ZeazsGLer@ef%qQahdf%jj0ONF29oZ%>!XdZsx*7Qv(~3g?>9=CF#`rWz1w383B?#&P*T{X0AgAP{4+Dl+cEnTb?6 zNP#9x0R*s`In?(fonerr2qZgM!F%`)k0d+*zPrXm(2O&|Uh=fl!yJ0(ri})2G>~_S zBq?3LNRblb3^U9iV-&2hMLOfNQ@0R!na)Yb=*YUHGb!mhn&AM4X{4QQ<}jBzw9`nF zwo(|cLr6%43S}l4VTfUdnWp5Rugj*Aha#ed>$r@)43a|-F=)fp-Q%>FxtggcKV`t6 zZa`Bf_dFnu)*tPpGiWa-tiqod&=JOHMrxTC1PfTnDGyl`w)fMclR*wJ!mHWD*BG{b z{1_4HaFmcD1^NldXmfA_jWm!WOF)K*3LzB=6shPs;AXo6#~NAC_jN6zSl^<(_hQWq%DM?i)=4dlp^Cr?)A`BbSfs6-gj~7~&zZTHuxyF%RpbpM_2|4K%Z! zpE(XxLzqeovjl-4%LG5-dHgY7;$fSE=Ow}WHy~YqMMg+6}xx}p=~8K z2DP8UxA?WQp1fD3EaaH(B<5QhML*lqu)?E<<3ttt4H5ZrxcO~Tmuv*12f$jJ{^>%* zuysdfsPbc;;H~@~tG&f_mqMm|W)`%5G_f1mG)zmBKmY>fZ~;v^n$dioqYapi&j-x0 zOu)ns%wrABb-FjsRsKjNadGQp{f}g$=wwMt2+49SALkOj%Pve-R>+7h&S%)AF*Pq? z873e_y|K&@&!b`A^|N3nDUhT9aGXgxlW89SRd(}Y9Z_e#Tg>W|VkMFyBf7l2T82aP zaT$Na&-fN6QWTVW@XxzHlG*PxpERWE8F!f1*V1lFRqxosAnkN0! z2ZZbrJA>!DL?vFXV~o>Eppz~D+PQ>B6TwHy8a+WCsnbAI>680;iYxdl?&D5Q*a%qP zE9U-o=Iu_03_UESm4G4>_ADyIY^8%B;U91vQQf+joSC^~gt@eH0ezhE(z4RLfk^@_ zPV=pMmC7jE$jeyGQ+$Pj)kXw@DaM$j>fCRB>tF*phmM2@4l|VU7BR+;L`q$;Is_P} zeJa>1o}a$(gB)TpF@ICZoAYc*MR%$tW)Ng(#E3lsqkNnBT*nc?N8Dm&35K5 zYI;(+pq&NG)xuwW|ML#(Hi^3t#Kt9|L)~22XPP28@+_m16O4H-@Z{De(IGiH|BhIp zZeuGiX9+v`4`#IbYgTxgQKp^lfUc2g1`PdUU7+0Ka0JB+7SFL9?? z0Ht%a&}k%X%%g_}l-3?H>5WSOJv4cgChkzA_;n|9IpA$om0?=R5z#>t;|w!li&rPb zWFH|!-ImuwKrdHwBVFv^$4q-AVgxY72qmU$oRa&b1}>)E`exMArrED+m&77=1aLev zlioeN4gmz*Elvi@BkDP2#C}GYV+pDtqJc~Jnf5XJ()A1t^?2HP)|2y6K^vIF}}3Obep1Ae3P-dHW`lKkHT|Xl6lTt0G3| zq6a}ljvl(GFvAFAPH9O}MwJe3hIJPgaUB~e@dSIBO6iC;!5CGYl>sr!QZSc|HU?06 z7b1>w*h5V%hL-qBMW(aR6a*0c(GIaZ_GY^t>Ej%wn@Fn}>fBwx5^bvVCthQMMg(Jo zG<))V08H^S9$^ui_#h>A@>BLPLS*re7BEzDspl2Q5@WXhJSPs#*7$Ch@?4a{W?m$R8X2f3XA zR6?xp5vVc3BoQT@E>^!!8(3_Wa-)zwp{thp%u`H=Ju+1SNI`&cIx2jRSDLaAzNLSH zC)lW?0VBN;bGU?qPNmHlDooIgWQ;QHP8A%*eX~eTa)Jitvx2vgXOMmD=LDlnQ?bfU z^5h3(X`-F^ETNYM3XC$LZ43tci;Pfkx|*t`Xk{^R9(`QGE|xGdET+LJEhB*%)8xqN zZfGi3vOu1BTtFi=h8durab~FKI%J}53o_(sV=hZs%R1&$pt@!iXk4lX0FUC5EP7mTvgb{vZDk;n%{QcRm20RY6kVo=Ppe|dy`JJ+$q#+(Zz zSuW>(jye=0K6BILX(eEq3hgwKbf74~ZM&K$bvVI_^)2&`&+S1B>ZI0qPGilP>ck|iNS zMkxcX(4!V<5uH}D2*An!8G9AXWj@CfY^X{|i4o>_$sYh^`soAmw9!cqT`Z(Yj~P^| zScw@X*vTl<6l~^y;Jw4Fa72MIT@Dh8R*d!iijq8=bS{vzv#7CG2a}p0cD-l&*(Ybq z6Pg79Cd6IhD))56P+|vH&}J1G)hTxy4|0-NZiwZ9D&yqIp+d6Dw9ulHzFnec&ZQ*O zHuks+j!C$5EnXQLKkR$pRiX?8YS|~5a?D+ z@kW?uRT*WNgTz^ZhSjLGP|{LHn|IQR$|*`St|fkDIhl5{dwj##A}-PGZxo{rfH9s( zB=&2#w=&ScY>;9cngHYv#blblTLAkwqC=g{ri3ig#aZk1;fMkwwpCM^QTiCAY?p_` za;RQgCIlQEYg^V$unZO{Ifs^Ofo{; zo;vB?4)hjFo!A~)>Dp*GjXohC4V-0;jl4n^g^lzS6#_JHIlaznl@iVMtj-^}i6I>di&Tg+3ucY^RQ7`luBbGhYLz-L5-Ru}a6k{2upFT#M zEMXOsIqG>N{58$8RckXbnhK8E%BYDrq&_ilIwN|j3@}M2;vU&A=BK+`Pw@l`tr0@~ zn`aA;+Kl0(DpF${K^L)+M|ljUm?j`kgZ89niHkP6+vG2u`|0y*tuC}7Ke@wfV zeeQ1r>jnD!y9xVcb}*V^SeNiwd2sd+nA2qkAK+o}GT-`cq}3`rxSSr0c|-lXf=l^+ zUD&d@H(~;zrSJfsOjW5`LT@;!TV6rk6L;cHhK7ff7^7$@NV$&WN#?N5D^?jBnO&M9 z$dF?rbLn$F1xby9EsZrzs7>7I?j2Ko#2Cwr7#M1r8RFLiaWe+1j4+KP@D5P?Tb}1@ zH5}(1r`Yav9Cub{FSnhJ0n9D~5S96UfFD8`3vP$lqw`#iY#!0TRV+*lz=bNKHnGXb z_pxB41imU|%9JQkqDYA{6>8M1z>~J*5fcn(Yk+!QDRHF$*0aPLS==GrO-5H&EMryT zJt_hywChn|Fd?J62oPxrsYaO!B^|(~qJwHWkHKYZ!pb%^hICM?Kl=FD%h{^abYmgB z$RqS6>ZWPn&c^-(x)h{Zy~shl@4!8bJ$KYMAasD3I`3a3?P1HS^=r}+=NWgXH_R7 zSByK>eIti2VzW-=GE^&;0!&;{{GKeA(3KD~RrP?9?G-4An53Uc@CsNZN9}e-b_Lrw zwH2+4OfzUvH;JZ3TDgde5mw1G0`E?z&9%4Yck(D_fLRe>f((2&nDn~^NGp6y@iQ%R zL!1IVkE^w@C7nMig=IhsX|A-7vot~7@}v>kY5Ew{T{dC_7;~xsnNb96W`Q@JDrFli z7Ez_@^(TR4x(#)`dn>Y>Rw60T#}Ov*YYxj}Ai9v0?f>UhU6SiMrjqfDUVe ziL};ol1FWmUU$sVMD!0);q>R9StBxlMkvT@S)SZVqYh3nhxuON(|~|322(=CeW+2O ztm9`578()I2z1>yQDve}`gS!QSB4dm)P0e}%jFYxLddL?W%Z%043QOO9$qHUU4{lhkpu#>LWYC$j zeb+R9BX(6e6PyMC%H)wl;%4U5SNk-6yiVrQq|HG_v1+5hVa|kk5K(4Yn`~Wj7?*#D ze^<3VMmWg{2AH8nhHmm6H-!l;n8s+Ta_e5o^E^qVMgfVW4P~dSpo+#DlW7KM<^cOW zfm8h!B55WduyTZ2iI4)Lj8OEno1{_9{2NkXnh{2IJi+Nft?Elzr;mdHNk2Q;ndpq7 z-}ANTzsob8|1(qx3kVN#oA}cp;psCk8RtnB&_J{80~R94auvteamH7p1uI29^JK}< zKvuVpP*@*X)lgO0iIJs6pV(MJFd?9BK!ijxm*fbR= zaMbE12^bdDGo#iS5MYuvxJ|q{SRJJdQV?>OBQ_W&|HcOEx0$cZ`*IvdoeY56x} zsem!>N@ABsyxBQgt>~w=yrT1L>k01VtoDd|sME9J$Xk_KRdF1{Ah?)~+-ngvhLBM* zwwPT+hJbdeR4gN!p+Ic93haH6r-7tf64PNhFVwwGV)>)Q2~Kg`3ZS0DxS#(xyVcK} z{_94{quCyDZMuzHP$5T$t{xscSp&Mru{TvTnGMW2Q>VU0jhbgMb8UbD-8A8rW0g8` zzCLuci??|R&jBUvFv`$@s?1YH`O}(o)Q^HD$~;o%M^{B1YBXEhof%oh6VKwA7^82P zippmLoxFkziDL#7#X3$uyAuMpey-%d^Lfr7S(x=WElkn?cZkuXQ76`+kI+v)qnLac z#Rzh2VXI@*k!MBb>Zg+C^%Hc^YMBIJ{Q$ntOx?YajowourZi$o=QFikuK!IEa0Tm~ zH^r-ttUdpdDkF?0f>#u0k7(uviJGPr zru8Xu32~&iwL&bs3Fh-6nyL5vsbtMjT&GWl_C&?*^EKa9Y$I=vmtryloM481UM(OfF)WU!ye{>|qwAKpU+(eIh2yf)-jhpo=s;({m6*6LZOfwGBj! zctPbZL~P8%e-<&VOhk*V^Bo{)pn4WE{n>$8 z?YX?dDNQMXDgzv&#BrX~l|ft(h~46M#f&^F25=S#06BtVRK-o{nJ;J3ayc;z3J4jt@xxgy0~BomX-PzrCkVDs z;xXGUE(sMP@|d*ufPlPp@ji19Knpi=g+_QqZ$kPwLWLO~*E&jKY?8m`2N}*}0W@$H z2v8*lW8$TvD@_vsDA7nak|J4MFC)+q@CzB{lyl`XLxLvVXT*eHg$(It^=T(GViRxG z48TyJ8Ak2zN(h9arT|Lg2xuf0(z0~1lT)*BN=ccJyslrWkg9>oc|(B=+jtQzj$9IP ziX)VX*w4X~df);c;>v zsgc)ZqXYpt8tVd5pWb|79j|7tU9W&Dr#M2DfDs;NCgo6xGJhrRJ3IMb!C4_dl{Una zVr#G>&9Vi8G7NU6uIhioSw2Ucy#eMl)cB!}L)li{Joz(t}a<@?HkdjryD=0+eZhQ*4kIC1djp z)R?B5W>koCnMU&3b(*CY$ziAS?zuspxpZnfeE>|;$CMY#Tfck(FXlBm6WDBmIsfLG zjE?Lp>Y~y{Wv$XkqvOL1n9CuZbeWC-Ahil zWJh^~8P70gHG#jA-we)y{KHuz05l+LVm~*D&e^K%7OB#!yYWskiRzvcAj#2-{NLDCt-MqY!54VVC1~PXlA6D>B72RU`p>v)N6T&rDkY|vV3HD%4*Q-R1q3bJ z%qwZ3%peCimM9HTD0~iLqgTnMIE!3%)yHnem03*as}_C%hCN+CVvr?k@GP9T%gTK0j)FulT@_0 zHO6;nW4RU@L!AR{1lML3vfI|+azj9q2;rBxmxNR(*%Y|h>H>H33SNZd6#F^Ggl=GG z)}Y3d?4L#V5l`?Qj-HG8=V>DVG(&|M@d|RYiGm@MG}4t&QB;HEF&bD+1AUYdTkCcX za?g`n94(n8Q2+Z9ev=Du*#e9)jG_f2{E!lxX+gyqw$kVzfMA5Xm|>$Xb6X*6+cB#5 zbkfWdjzuGxy^sve771pdAgG(UAYcKnW;4U=<%CT+iDw&eh+V11B>@qi5MSeInx4)X z0ZKH$5gNocnMrdFsm-3Gjdr^j1{G>dGt4w|XlA4?eIvPS`2s~cbUz?LT(C|33}|K^trRKFA{Nzi zdNIpi0CRaamw8z?0VM`(LzXIcu@gxS#9+J}iK(akEGCs?JKtR1-k z7Laqgm7nYOyO3iM8(CD>B-fQHhS=d0e@(1Yf!~cjE9EosJw8nYDANf0SSc<(-SlUe zqLXHlgvOk@ES>bwNa-vDm^!~VrWBIu>-l(QaZ{MhE`O#hwVt9gDY&w_&lw^xK*x>v7Hb}fkiB}+fpW{Z3BiVH?oWqbyd03 zW>-IEB}{g+j*IBE=IXTBMI2^FYP^$%2gC=0bGH2_;b|iPl*x~=J-9)1pHBZQFiJq1 zlbVs7Y=&0mvw&7AiK=+@i{k!es6fD_ypN^M@(W;sQBCMUa)NK_e%gu!1ez|i5i(&V zf@3^F4MBw(8)(85%Pi4kTiYpS*2Xdp&_C;FXNQ1JE?@(Tb#z10Wo!cKitOb{FVQst zdwIJ&@N{f{K0E^ifGmweQBmAPW_AMylo@84EDgFGYQ14cwOwhZ#Hg)(;ePLbVz$Ac zz$!k#21hXz2nq~R!B_&-`Hz5z4lbtyla>Z3_0>oMv0l@|LiRFp zS_DY@u7NeIq)jWU8Bc04=vASQCpfChKBqpl%txc|W}b1_$umTNDmmCgPFz7II?c(g zF+o2Q*0vX?fJW4)Fv$s?;wk#H!8UCfXVW(p^FFS$4jz+i-LETptN#vgyFUNW&Nhtz zD(pg9gKLZcf*K{(>qPemRirX@5vv(2WG+wYSf{h60}-gTuW$;0^=NK4+nLc z+bqux`K0(nP<`gxe}>esGs7h9Mfv9hnGZ#|*(&BJC~|}oG}1(qZW5_*y}}GLl$_Er z^^o2hAOL!KH`mxCbEDl4GHEl8B{SU10H(~VYDK4-EQY!uYkjeM!G0d+8cbAE$OMhr z)osR@;Tj73AFplJnMSP`N|AoDG|@<-c1VfDgRK;oS)FsXNUkW zNk@^th}P#`9=BFX>i%&B>?tjnrCHG3E0di>(hNZny}XO-wRB;g7SYd$V`!1=;Zgg0 zq$`mbD?kL+_#$;gvw|Y`u$BdOCJ}=O<~a(QB+HGI_y>kkYyvJ5^Q|E0wU}g*B+4fp zO{v>|JAW)D&sYAzGhzV>0z`#=ajEE)vu

7(TB~ew%(zIxOJb+~lc#DtKyy$Oei; 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 diff --git a/assets/img/favicons/mstile-150x150.png b/assets/img/favicons/mstile-150x150.png deleted file mode 100644 index c0d045e25de42fc422567313f9e4e6f2717e8040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12172 zcmc(FXEst@nM`+AHd{rV_~m+6N#Ih(twMK?elFBK`MEh!0%( zP^56x5{+NS6Vrd}I z6PK(;Z3*B5{C8?f3ZVOcKY1<1Nx&5XcNGmqf^}S4au8o~WTznr#LcCmAglXfZg%IRO0jf`?;W+&9kSRY6g^Ylp}eO-*6v|x^`xN`et0gNq9`kd@*kE5EV>> zWvOsm@{J=8r}r`LFUneS>};7{#j@fN+wlJD@n^Y}kbjY;l8a^J@rq>cTt^gM>( zDPmrd*Ep)r3zK#JcmJH)r@Je?&ySa7F!dRp4ARrldH28{{Aa7std%9QM(9BnQ5MNV zoYVG})_vy}Cza0&ub$dFb{YDn*VN7$a%Kkx*LWt>cpB%&YcZHC$T0=YN#|^46Ww5c z`+Hc0^$JIO`1pV!Db23jl8~7##vl98^MqEzf=&{vB?!d3g)d2lAP%>(+-?c})iP#aPk=MG5yycA%+jw&ig+{{=U+(;sQnlC)3uq?r|tZ~wIr>9IS~=-I?7#_AM{FR0ize0)*1e;vrZ zR-;Go3I|2eW4MF;Xf3eC>#8+(q0?ry{j$9+VL1OM_B2TNvNhK`6;TSl5IN98TQW~w z>J$9P_8WSqbt*6)M0VYJ?}x=xs`EXj#xuI+ta3<-seEd#Vbu2I)4hR#y;kMa-K1gW zo_c9H{~~93jg4Z#D0FHr_pLo#@+uEl@t;%NKc?p7%s2~m$)@IjkCeojCI+YG&Y8aZ zD-~#?41Iwm*W0`spPIWatAUr*tT)js71o@+u-{d+-$e{L2D~dTe|{pUqq-|=GlZEO zinu1S-~Hs(IIPUNYG5zzT)sHguzWf-=lqwJ*He^q+EDzLp>JZ1XL5~x6As5DV2QLv zx#RXrM&kg&v-3ViS&X9nu5Ve5p-s_*%)9cqxAynN$FgP=G2IAng6jDfqz8`w`9*xNk1YMxlxY(6&m#?q@}PH|~{LH5=@ zhV&g%F18ftYcSJwYg_#Ydm*Vb3B3}<^0_}6>qt_)7(}3JTsbv`W%g8hYE24F_ECym zkJ_-*|HPYOMy}QV>RL=ZhUBTVvGf!MzPl#w^f;zF zHWK_y+6+a1BtJ(mei`}{61j$IrK!GtBdgG8w!D6ek2Xa+LymOWlHPNjG<@$=!$E

_nQW8n*?}ESWU%R`ze^O_AZ*R}?Sv8@5 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 Q14DpR6g3r)a^@lb2j -{%- endcomment -%} - -MathJax = { - tex: { - {%- comment -%} start/end delimiter pairs for in-line math {%- endcomment -%} - inlineMath: [ - ['$', '$'], - ['\\(', '\\)'] - ], - {%- comment -%} start/end delimiter pairs for display math {%- endcomment -%} - displayMath: [ - ['$$', '$$'], - ['\\[', '\\]'] - ], - {%- comment -%} equation numbering {%- endcomment -%} - tags: 'ams' - } -}; diff --git a/assets/js/data/search.json b/assets/js/data/search.json deleted file mode 100644 index 2601ed0..0000000 --- a/assets/js/data/search.json +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: compress -swcache: true ---- - -[ - {% for post in site.posts %} - { - "title": {{ post.title | jsonify }}, - "url": {{ post.url | relative_url | jsonify }}, - "categories": {{ post.categories | join: ', ' | jsonify }}, - "tags": {{ post.tags | join: ', ' | jsonify }}, - "date": "{{ post.date }}", - {% include no-linenos.html content=post.content %} - {% assign _content = content | strip_html | strip_newlines %} - "snippet": {{ _content | truncate: 200 | jsonify }}, - "content": {{ _content | jsonify }} - }{% unless forloop.last %},{% endunless %} - {% endfor %} -] diff --git a/assets/js/data/swconf.js b/assets/js/data/swconf.js deleted file mode 100644 index 798888a..0000000 --- a/assets/js/data/swconf.js +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: compress -permalink: '/:path/swconf.js' -# Note that this file will be fetched by the ServiceWorker, so it will not be cached. ---- - -const swconf = { - {% if site.pwa.cache.enabled %} - cacheName: 'chirpy-{{ "now" | date: "%s" }}', - - {%- comment -%} Resources added to the cache during PWA installation. {%- endcomment -%} - resources: [ - '{{ "/assets/css/:THEME.css" | replace: ':THEME', site.theme | relative_url }}', - '{{ "/" | relative_url }}', - {% for tab in site.tabs %} - '{{- tab.url | relative_url -}}', - {% endfor %} - - {% assign cache_list = site.static_files | where: 'swcache', true %} - {% for file in cache_list %} - '{{ file.path | relative_url }}'{%- unless forloop.last -%},{%- endunless -%} - {% endfor %} - ], - - interceptor: { - {%- comment -%} URLs containing the following paths will not be cached. {%- endcomment -%} - paths: [ - {% for path in site.pwa.cache.deny_paths %} - {% unless path == empty %} - '{{ path | relative_url }}'{%- unless forloop.last -%},{%- endunless -%} - {% endunless %} - {% endfor %} - ], - - {%- comment -%} URLs containing the following prefixes will not be cached. {%- endcomment -%} - urlPrefixes: [ - {% if site.analytics.goatcounter.id != nil and site.pageviews.provider == 'goatcounter' %} - 'https://{{ site.analytics.goatcounter.id }}.goatcounter.com/counter/' - {% endif %} - ] - }, - - purge: false - {% else %} - purge: true - {% endif %} -}; diff --git a/assets/robots.txt b/assets/robots.txt deleted file mode 100644 index 45c34e0..0000000 --- a/assets/robots.txt +++ /dev/null @@ -1,10 +0,0 @@ ---- -permalink: /robots.txt -# The robots rules ---- - -User-agent: * - -Disallow: /norobots/ - -Sitemap: {{ '/sitemap.xml' | absolute_url }} diff --git a/index.html b/index.html index 1357b08..e69de29 100644 --- a/index.html +++ b/index.html @@ -1,4 +0,0 @@ ---- -layout: home -# Index page ---- diff --git a/jekyll-theme-chirpy.gemspec b/jekyll-theme-chirpy.gemspec deleted file mode 100644 index 9de7dd0..0000000 --- a/jekyll-theme-chirpy.gemspec +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "jekyll-theme-chirpy" - spec.version = "7.1.1" - spec.authors = ["Cotes Chung"] - spec.email = ["cotes.chung@gmail.com"] - - spec.summary = "A minimal, responsive, and feature-rich Jekyll theme for technical writing." - spec.homepage = "https://github.com/cotes2020/jekyll-theme-chirpy" - spec.license = "MIT" - - spec.files = `git ls-files -z`.split("\x0").select { |f| - f.match(%r!^((_(includes|layouts|sass|(data\/(locales|origin)))|assets)\/|README|LICENSE)!i) - } - - spec.metadata = { - "bug_tracker_uri" => "https://github.com/cotes2020/jekyll-theme-chirpy/issues", - "documentation_uri" => "https://github.com/cotes2020/jekyll-theme-chirpy/#readme", - "homepage_uri" => "https://cotes2020.github.io/chirpy-demo", - "source_code_uri" => "https://github.com/cotes2020/jekyll-theme-chirpy", - "wiki_uri" => "https://github.com/cotes2020/jekyll-theme-chirpy/wiki", - "plugin_type" => "theme" - } - - spec.required_ruby_version = "~> 3.1" - - spec.add_runtime_dependency "jekyll", "~> 4.3" - spec.add_runtime_dependency "jekyll-paginate", "~> 1.1" - spec.add_runtime_dependency "jekyll-redirect-from", "~> 0.16" - spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.8" - spec.add_runtime_dependency "jekyll-archives", "~> 2.2" - spec.add_runtime_dependency "jekyll-sitemap", "~> 1.4" - spec.add_runtime_dependency "jekyll-include-cache", "~> 0.2" - -end diff --git a/package.json b/package.json deleted file mode 100644 index f93e76b..0000000 --- a/package.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "name": "jekyll-theme-chirpy", - "version": "7.1.1", - "description": "A minimal, responsive, and feature-rich Jekyll theme for technical writing.", - "repository": { - "type": "git", - "url": "git+https://github.com/cotes2020/jekyll-theme-chirpy.git" - }, - "author": "Cotes Chung", - "license": "MIT", - "since": 2019, - "bugs": { - "url": "https://github.com/cotes2020/jekyll-theme-chirpy/issues" - }, - "homepage": "https://github.com/cotes2020/jekyll-theme-chirpy/", - "scripts": { - "build": "concurrently npm:build:*", - "build:css": "purgecss -c purgecss.config.js", - "build:js": "rollup -c --bundleConfigAsCjs --environment BUILD:production", - "watch:js": "rollup -c --bundleConfigAsCjs -w", - "lint:scss": "stylelint _sass/**/*.scss", - "lint:fix:scss": "npm run lint:scss -- --fix", - "test": "npm run lint:scss", - "prepare": "husky" - }, - "dependencies": { - "@popperjs/core": "^2.11.8", - "bootstrap": "^5.3.3" - }, - "devDependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/preset-env": "^7.25.4", - "@commitlint/cli": "^19.5.0", - "@commitlint/config-conventional": "^19.5.0", - "@rollup/plugin-babel": "^6.0.4", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-terser": "^0.4.4", - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/exec": "^6.0.3", - "@semantic-release/git": "^10.0.1", - "concurrently": "^9.0.1", - "conventional-changelog-conventionalcommits": "^8.0.0", - "husky": "^9.1.6", - "purgecss": "^6.0.0", - "rollup": "^4.21.3", - "semantic-release": "^24.1.1", - "stylelint": "^16.9.0", - "stylelint-config-standard-scss": "^13.1.0" - }, - "prettier": { - "trailingComma": "none" - }, - "browserslist": [ - "last 2 versions", - "> 0.2%", - "not dead" - ], - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ], - "rules": { - "body-max-line-length": [ - 0, - "always" - ] - } - }, - "stylelint": { - "extends": "stylelint-config-standard-scss", - "rules": { - "no-descending-specificity": null, - "shorthand-property-no-redundant-values": null, - "at-rule-no-vendor-prefix": null, - "property-no-vendor-prefix": null, - "selector-no-vendor-prefix": null, - "value-no-vendor-prefix": null, - "color-function-notation": "legacy", - "alpha-value-notation": "number", - "selector-not-notation": "simple", - "color-hex-length": "long", - "declaration-block-single-line-max-declarations": 3, - "scss/operator-no-newline-after": null, - "rule-empty-line-before": [ - "always", - { - "ignore": [ - "after-comment", - "first-nested" - ] - } - ], - "value-keyword-case": [ - "lower", - { - "ignoreProperties": [ - "/^\\$/" - ] - } - ], - "media-feature-range-notation": "prefix" - } - }, - "release": { - "branches": [ - "production" - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "conventionalcommits" - } - ], - [ - "@semantic-release/release-notes-generator", - { - "preset": "conventionalcommits", - "presetConfig": { - "types": [ - { - "type": "feat", - "section": "Features" - }, - { - "type": "fix", - "section": "Bug Fixes" - }, - { - "type": "perf", - "section": "Improvements" - }, - { - "type": "refactor", - "section": "Changes", - "hidden": true - } - ] - } - } - ], - [ - "@semantic-release/changelog", - { - "changelogFile": "docs/CHANGELOG.md", - "changelogTitle": "# Changelog" - } - ], - [ - "@semantic-release/npm", - { - "npmPublish": false - } - ], - [ - "@semantic-release/exec", - { - "prepareCmd": "bash tools/release.sh --prepare", - "publishCmd": "bash tools/release.sh" - } - ], - [ - "@semantic-release/git", - { - "assets": [ - "docs", - "package.json", - "*.gemspec" - ], - "message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}" - } - ], - "@semantic-release/github" - ] - } -} diff --git a/purgecss.config.js b/purgecss.config.js deleted file mode 100644 index de370de..0000000 --- a/purgecss.config.js +++ /dev/null @@ -1,23 +0,0 @@ -const fs = require('fs'); -const DIST_PATH = '_sass/dist'; - -fs.rm(DIST_PATH, { recursive: true, force: true }, (err) => { - if (err) { - throw err; - } - - fs.mkdirSync(DIST_PATH); -}); - -module.exports = { - content: ['_includes/**/*.html', '_layouts/**/*.html', '_javascript/**/*.js'], - css: ['node_modules/bootstrap/dist/css/bootstrap.min.css'], - keyframes: true, - variables: true, - output: `${DIST_PATH}/bootstrap.css`, - // The `safelist` should be changed appropriately for future development - safelist: { - standard: [/^collaps/, /^w-/, 'shadow', 'border', 'kbd'], - greedy: [/^col-/, /tooltip/] - } -}; diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 19ba4da..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,74 +0,0 @@ -import babel from '@rollup/plugin-babel'; -import terser from '@rollup/plugin-terser'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import fs from 'fs'; -import pkg from './package.json'; - -const SRC_DEFAULT = '_javascript'; -const SRC_PWA = `${SRC_DEFAULT}/pwa`; -const DIST = 'assets/js/dist'; - -const banner = `/*! - * ${pkg.name} v${pkg.version} | © ${pkg.since} ${pkg.author} | ${pkg.license} Licensed | ${pkg.homepage} - */`; - -const frontmatter = `---\npermalink: /:basename\n---\n`; - -const isProd = process.env.BUILD === 'production'; - -function cleanup() { - fs.rmSync(DIST, { recursive: true, force: true }); - console.log(`> Directory "${DIST}" has been cleaned.`); -} - -function insertFrontmatter() { - return { - name: 'insert-frontmatter', - generateBundle(_, bundle) { - for (const chunkOrAsset of Object.values(bundle)) { - if (chunkOrAsset.type === 'chunk') { - chunkOrAsset.code = frontmatter + chunkOrAsset.code; - } - } - } - }; -} - -function build(filename, { src = SRC_DEFAULT, jekyll = false } = {}) { - return { - input: `${src}/${filename}.js`, - output: { - file: `${DIST}/${filename}.min.js`, - format: 'iife', - name: 'Chirpy', - banner, - sourcemap: !isProd && !jekyll - }, - watch: { - include: `${src}/**` - }, - plugins: [ - babel({ - babelHelpers: 'bundled', - presets: ['@babel/env'], - plugins: ['@babel/plugin-transform-class-properties'] - }), - nodeResolve(), - isProd && terser(), - jekyll && insertFrontmatter() - ] - }; -} - -cleanup(); - -export default [ - build('commons'), - build('home'), - build('categories'), - build('page'), - build('post'), - build('misc'), - build('app', { src: SRC_PWA, jekyll: true }), - build('sw', { src: SRC_PWA, jekyll: true }) -]; diff --git a/tools/init.sh b/tools/init.sh deleted file mode 100644 index 2ad72ab..0000000 --- a/tools/init.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash -# -# Init the environment for new user. - -set -eu - -# CLI Dependencies -CLI=("git" "npm") - -ACTIONS_WORKFLOW=pages-deploy.yml - -RELEASE_HASH=$(git log --grep="chore(release):" -1 --pretty="%H") - -# temporary file suffixes that make `sed -i` compatible with BSD and Linux -TEMP_SUFFIX="to-delete" - -_no_gh=false - -help() { - echo "Usage:" - echo - echo " bash /path/to/init [options]" - echo - echo "Options:" - echo " --no-gh Do not deploy to Github." - echo " -h, --help Print this help information." -} - -# BSD and GNU compatible sed -_sedi() { - regex=$1 - file=$2 - sed -i.$TEMP_SUFFIX -E "$regex" "$file" - rm -f "$file".$TEMP_SUFFIX -} - -_check_cli() { - for i in "${!CLI[@]}"; do - cli="${CLI[$i]}" - if ! command -v "$cli" &>/dev/null; then - echo "Command '$cli' not found! Hint: you should install it." - exit 1 - fi - done -} - -_check_status() { - if [[ -n $(git status . -s) ]]; then - echo "Error: Commit unstaged files first, and then run this tool again." - exit 1 - fi -} - -_check_init() { - if [[ $(git rev-parse HEAD^1) == "$RELEASE_HASH" ]]; then - echo "Already initialized." - exit 0 - fi -} - -check_env() { - _check_cli - _check_status - _check_init -} - -reset_latest() { - git reset --hard "$RELEASE_HASH" - git clean -fd - git submodule update --init --recursive -} - -init_files() { - if $_no_gh; then - rm -rf .github - else - ## Change the files of `.github/` - temp="$(mktemp -d)" - find .github/workflows -type f -name "*$ACTIONS_WORKFLOW*" -exec mv {} "$temp/$ACTIONS_WORKFLOW" \; - rm -rf .github && mkdir -p .github/workflows - mv "$temp/$ACTIONS_WORKFLOW" .github/workflows/"$ACTIONS_WORKFLOW" - rm -rf "$temp" - fi - - # Cleanup image settings in site config - _sedi "s/(^timezone:).*/\1/;s/(^.*cdn:).*/\1/;s/(^avatar:).*/\1/" _config.yml - - # remove the other files - rm -rf tools/init.sh tools/release.sh _posts/* - - # build assets - npm i && npm run build - - # track the CSS/JS output - _sedi "/.*\/dist$/d" .gitignore -} - -commit() { - git add -A - git commit -m "chore: initialize the environment" -q - echo -e "\n> Initialization successful!\n" -} - -main() { - check_env - reset_latest - init_files - commit -} - -while (($#)); do - opt="$1" - case $opt in - --no-gh) - _no_gh=true - shift - ;; - -h | --help) - help - exit 0 - ;; - *) - # unknown option - help - exit 1 - ;; - esac -done - -main diff --git a/tools/release.sh b/tools/release.sh deleted file mode 100644 index 522c892..0000000 --- a/tools/release.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env bash -# -# Requires: Git, NPM and RubyGems - -set -eu - -opt_pre=false # option for bump gem version -opt_pkg=false # option for building gem package - -MAIN_BRANCH="master" -RELEASE_BRANCH="production" - -GEM_SPEC="jekyll-theme-chirpy.gemspec" -NODE_SPEC="package.json" -CHANGELOG="docs/CHANGELOG.md" -CONFIG="_config.yml" - -CSS_DIST="_sass/dist" -JS_DIST="assets/js/dist" - -FILES=( - "$GEM_SPEC" - "$NODE_SPEC" - "$CHANGELOG" - "$CONFIG" -) - -TOOLS=( - "git" - "npm" - "gem" -) - -help() { - echo -e "A tool to release new version Chirpy gem.\nThis tool will:" - echo " 1. Build a new gem and publish it to RubyGems.org" - echo " 2. Merge the release branch into the default branch" - echo - echo "Usage:" - echo " bash $0 [options]" - echo - echo "Options:" - echo " --prepare Preparation for release" - echo " -p, --package Build a gem package only, for local packaging in case of auto-publishing failure" - echo " -h, --help Display this help message" -} - -_check_cli() { - for i in "${!TOOLS[@]}"; do - cli="${TOOLS[$i]}" - if ! command -v "$cli" &>/dev/null; then - echo "> Command '$cli' not found!" - exit 1 - fi - done -} - -_check_git() { - $opt_pre || ( - # ensure that changes have been committed - if [[ -n $(git status . -s) ]]; then - echo "> Abort: Commit the staged files first, and then run this tool again." - exit 1 - fi - ) - - $opt_pkg || ( - if [[ "$(git branch --show-current)" != "$RELEASE_BRANCH" ]]; then - echo "> Abort: Please run the tool in the '$RELEASE_BRANCH' branch." - exit 1 - fi - ) -} - -_check_src() { - for i in "${!FILES[@]}"; do - _src="${FILES[$i]}" - if [[ ! -f $_src && ! -d $_src ]]; then - echo -e "> Error: Missing file \"$_src\"!\n" - exit 1 - fi - done -} - -init() { - _check_cli - _check_git - _check_src - echo -e "> npm install\n" - npm i -} - -## Bump new version to gem-spec file -_bump_version() { - _version="$(grep '"version":' "$NODE_SPEC" | sed 's/.*: "//;s/".*//')" - sed -i "s/[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+/$_version/" "$GEM_SPEC" - echo "> Bump gem version to $_version" -} - -_improve_changelog() { - # Replace multiple empty lines with a single empty line - sed -i '/^$/N;/^\n$/D' "$CHANGELOG" - # Escape left angle brackets of HTML tag in the changelog as they break the markdown structure. e.g., '


' - sed -i -E 's/\s(<[a-z])/ \\\1/g' "$CHANGELOG" -} - -prepare() { - _bump_version - _improve_changelog -} - -## Build a Gem package -build_gem() { - # Remove unnecessary theme settings - sed -i -E "s/(^timezone:).*/\1/;s/(^cdn:).*/\1/;s/(^avatar:).*/\1/" $CONFIG - rm -f ./*.gem - - npm run build - # add CSS/JS distribution files to gem package - git add "$CSS_DIST" "$JS_DIST" -f - - echo -e "\n> gem build $GEM_SPEC\n" - gem build "$GEM_SPEC" - - echo -e "\n> Resume file changes ...\n" - git reset - git checkout . -} - -# Push the gem to RubyGems.org (using $GEM_HOST_API_KEY) -push_gem() { - gem push ./*.gem -} - -## Merge the release branch into the default branch -merge() { - git fetch origin "$MAIN_BRANCH" - git checkout -b "$MAIN_BRANCH" origin/"$MAIN_BRANCH" - - git merge --no-ff --no-edit "$RELEASE_BRANCH" || ( - git merge --abort - echo -e "\n> Conflict detected. Aborting merge.\n" - exit 0 - ) - - git push origin "$MAIN_BRANCH" -} - -main() { - init - - if $opt_pre; then - prepare - exit 0 - fi - - build_gem - $opt_pkg && exit 0 - push_gem - merge -} - -while (($#)); do - opt="$1" - case $opt in - --prepare) - opt_pre=true - shift - ;; - -p | --package) - opt_pkg=true - shift - ;; - -h | --help) - help - exit 0 - ;; - *) - # unknown option - help - exit 1 - ;; - esac -done - -main diff --git a/tools/run.sh b/tools/run.sh deleted file mode 100644 index 0efc452..0000000 --- a/tools/run.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash -# -# Run jekyll serve and then launch the site - -prod=false -command="bundle exec jekyll s -l" -host="127.0.0.1" - -help() { - echo "Usage:" - echo - echo " bash /path/to/run [options]" - echo - echo "Options:" - echo " -H, --host [HOST] Host to bind to." - echo " -p, --production Run Jekyll in 'production' mode." - echo " -h, --help Print this help information." -} - -while (($#)); do - opt="$1" - case $opt in - -H | --host) - host="$2" - shift 2 - ;; - -p | --production) - prod=true - shift - ;; - -h | --help) - help - exit 0 - ;; - *) - echo -e "> Unknown option: '$opt'\n" - help - exit 1 - ;; - esac -done - -command="$command -H $host" - -if $prod; then - command="JEKYLL_ENV=production $command" -fi - -if [ -e /proc/1/cgroup ] && grep -q docker /proc/1/cgroup; then - command="$command --force_polling" -fi - -echo -e "\n> $command\n" -eval "$command" diff --git a/tools/test.sh b/tools/test.sh deleted file mode 100644 index 331de1c..0000000 --- a/tools/test.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env bash -# -# Build and test the site content -# -# Requirement: html-proofer, jekyll -# -# Usage: See help information - -set -eu - -SITE_DIR="_site" - -_config="_config.yml" - -_baseurl="" - -help() { - echo "Build and test the site content" - echo - echo "Usage:" - echo - echo " bash $0 [options]" - echo - echo "Options:" - echo ' -c, --config "" Specify config file(s)' - echo " -h, --help Print this information." -} - -read_baseurl() { - if [[ $_config == *","* ]]; then - # multiple config - IFS="," - read -ra config_array <<<"$_config" - - # reverse loop the config files - for ((i = ${#config_array[@]} - 1; i >= 0; i--)); do - _tmp_baseurl="$(grep '^baseurl:' "${config_array[i]}" | sed "s/.*: *//;s/['\"]//g;s/#.*//")" - - if [[ -n $_tmp_baseurl ]]; then - _baseurl="$_tmp_baseurl" - break - fi - done - - else - # single config - _baseurl="$(grep '^baseurl:' "$_config" | sed "s/.*: *//;s/['\"]//g;s/#.*//")" - fi -} - -main() { - # clean up - if [[ -d $SITE_DIR ]]; then - rm -rf "$SITE_DIR" - fi - - read_baseurl - - # build - JEKYLL_ENV=production bundle exec jekyll b \ - -d "$SITE_DIR$_baseurl" -c "$_config" - - # test - bundle exec htmlproofer "$SITE_DIR" \ - --disable-external \ - --ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/" -} - -while (($#)); do - opt="$1" - case $opt in - -c | --config) - _config="$2" - shift - shift - ;; - -h | --help) - help - exit 0 - ;; - *) - # unknown option - help - exit 1 - ;; - esac -done - -main