mirror of
https://github.com/hugo-fixit/FixIt.git
synced 2026-08-30 18:22:40 +00:00
Compare commits
368 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 15841f0b90 | |||
| 78de1a3df6 | |||
| 9dcd26b9b1 | |||
| 3ae9eb7b98 | |||
| fb69b972c8 | |||
| de34bfa144 | |||
| 7e03845cad | |||
| be56be1cd6 | |||
| 7fa59dba79 | |||
| d61f060f9a | |||
| f99344d024 | |||
| 973a2962c0 | |||
| 9bfce6cbe6 | |||
| c3b30118c9 | |||
| fe1b070137 | |||
| bb00e33e2e | |||
| f0d54fe6d5 | |||
| b974fa56df | |||
| bd785eb608 | |||
| dc9956c807 | |||
| f57088b47a | |||
| 7042673dfe | |||
| 3a888c41c4 | |||
| 48dc34cf11 | |||
| 8d6e5277f9 | |||
| 0a67c51495 | |||
| cb3f77f064 | |||
| 238ec7ac33 | |||
| 7e2ae88187 | |||
| aca8809ea5 | |||
| fc30159f47 | |||
| e3e152b2d0 | |||
| 5467baf56b | |||
| 712b04fd4e | |||
| 269f376915 | |||
| 0d1d45cdc5 | |||
| 6c17548d27 | |||
| ffb3888414 | |||
| d31215044d | |||
| 203de93723 | |||
| ac1cf9b252 | |||
| 908cb6946b | |||
| 88ec9f6e8a | |||
| 6c25237a90 | |||
| 9a189af954 | |||
| ad93d92043 | |||
| b56d0a4e77 | |||
| 4f767ebcb0 | |||
| 531b2b99d9 | |||
| c94db763bc | |||
| c1e51653da | |||
| 52f8caa1cd | |||
| 0174749857 | |||
| 856475640b | |||
| 1b8daf3ca9 | |||
| 561dd0ab3a | |||
| c6d0b13e11 | |||
| 16af91dad2 | |||
| 37666132fb | |||
| d7edd8aab7 | |||
| 79f474b5b0 | |||
| 6df88b0283 | |||
| 13f825b7c2 | |||
| c56b7d3d33 | |||
| f3ce0fd165 | |||
| de823d47da | |||
| adb4a2bf3b | |||
| f0062e5b4f | |||
| a71ae78bf0 | |||
| ead88c34c6 | |||
| 256c324bff | |||
| 41050ee3db | |||
| 848704ee9f | |||
| 392c74934a | |||
| e736b89253 | |||
| d7eb199407 | |||
| c641344213 | |||
| ffbdc5ba98 | |||
| 54650f62db | |||
| c986050177 | |||
| 3a61933b80 | |||
| 4e4f0fbdfb | |||
| d893bac297 | |||
| b1adac1ab1 | |||
| f6f905517c | |||
| 49866cbc49 | |||
| 268bed75ad | |||
| eee891a00e | |||
| 5efebec3ae | |||
| 667d9c9b61 | |||
| a0eca23c10 | |||
| 12cd2847f0 | |||
| 7ebb1d9fa2 | |||
| 768dc8aad6 | |||
| dc8b3d6a25 | |||
| 0c3b7e3f36 | |||
| 69772a2556 | |||
| ceb2a16104 | |||
| 8e8d9ce03a | |||
| ad1f3fa803 | |||
| 3563649e09 | |||
| d4fdfc3ff2 | |||
| f40297b8d9 | |||
| 4cc2a820e5 | |||
| 3fd8b130ac | |||
| 76288c53d5 | |||
| bd5b9a6328 | |||
| 22f7a226e3 | |||
| d785162cba | |||
| 64db19998f | |||
| b50cfe0bd7 | |||
| c9827ab7d4 | |||
| 0d44d5bc0f | |||
| bc4ac5516b | |||
| 162a448089 | |||
| fe27a40bef | |||
| 87d0ad76b9 | |||
| 2640471fdb | |||
| 662533ae4e | |||
| 23bfb100cb | |||
| b61cd84c12 | |||
| fd5ea5b7ab | |||
| 5a9aab3730 | |||
| b6433d197a | |||
| bce815db20 | |||
| 4684f6a429 | |||
| b236c27820 | |||
| 7f30aa822b | |||
| 56468f9d94 | |||
| 3403398bf2 | |||
| 269038fd21 | |||
| f93fa4e870 | |||
| d6d6638d92 | |||
| 74cecb1ff6 | |||
| 173f77d092 | |||
| 2a034e9a2a | |||
| 1d4147556e | |||
| 7ff9f998ae | |||
| a5ba1d0c09 | |||
| 8db7727897 | |||
| 72fa55f58e | |||
| 17cb4e6a86 | |||
| b67517c3d1 | |||
| 5750079022 | |||
| f9b92cbbd6 | |||
| 2eb7605437 | |||
| 54a05223f0 | |||
| af2b4a1951 | |||
| c149a60028 | |||
| d8b62fc690 | |||
| bb294e5d13 | |||
| c9db04a462 | |||
| 995f9558db | |||
| 0659a175ad | |||
| 8265db32bc | |||
| ae6a114761 | |||
| cdccbb7637 | |||
| ea1e62419c | |||
| 5102f8e526 | |||
| 1292d517b5 | |||
| 6c585b34b1 | |||
| 1da9407ee3 | |||
| a4556a728e | |||
| fef069d7f6 | |||
| 8da0d0f299 | |||
| 0ebd630fd0 | |||
| fe0f7a6fcf | |||
| 6ba5a09447 | |||
| d607e6653d | |||
| e32446b5be | |||
| 7650a7f54d | |||
| 35e25236bb | |||
| e9b5e33b39 | |||
| 2d2d6c4071 | |||
| d2239acbb7 | |||
| d4a2962303 | |||
| 13161e78a0 | |||
| 87b9a42169 | |||
| f2a39a7fdd | |||
| 84d4381388 | |||
| 339b17c8ab | |||
| 3b727ea541 | |||
| 587029647a | |||
| 2b36f0ce88 | |||
| b4982b34e4 | |||
| 30bae125f3 | |||
| d29f143eb5 | |||
| 781e7d466f | |||
| 073d0ab221 | |||
| b6b2f0518a | |||
| 09542fb999 | |||
| b0d29bffe1 | |||
| a291890f51 | |||
| f3211e9617 | |||
| eb345cd9ea | |||
| 9fc37b36eb | |||
| 7092455a16 | |||
| 4d4cda6955 | |||
| f37622a155 | |||
| d061469497 | |||
| f77febb93d | |||
| 10b530abe1 | |||
| 16482da119 | |||
| 88db7c761a | |||
| fe03e7b904 | |||
| dcd93f7c6c | |||
| cd036e5625 | |||
| cd49374911 | |||
| e4ba7a346e | |||
| 4608f96ad3 | |||
| 88a6b0e37d | |||
| 5af5e44e10 | |||
| 3e80259a07 | |||
| 447f832a58 | |||
| 1359995948 | |||
| d27a42dab2 | |||
| 913a82fe18 | |||
| e19b71cc6a | |||
| 19f7746516 | |||
| 2efcf947a7 | |||
| 55e747e5f1 | |||
| 0edd185b39 | |||
| dfbffa2ad5 | |||
| 3f3d5aee37 | |||
| 84d781d6a4 | |||
| d051dbd9c0 | |||
| 3dbb46a6ec | |||
| 5dbb3e290e | |||
| 504b4916d9 | |||
| 1fcb1e6504 | |||
| 4e81224052 | |||
| 33395f3e15 | |||
| 2007fe5297 | |||
| 7ba6611825 | |||
| b575d23fe0 | |||
| 87156110a6 | |||
| 806572a817 | |||
| 07dcccae16 | |||
| 83a1f075ab | |||
| 993cd26413 | |||
| 84db100d99 | |||
| 0054c28934 | |||
| 267a21675d | |||
| a4cae812a8 | |||
| 08c995a295 | |||
| 243706ebfb | |||
| 41a638def9 | |||
| dce144e4b6 | |||
| 08374c06e8 | |||
| 5fd4be7aea | |||
| cf61466629 | |||
| 65371a19a4 | |||
| 7c8344ed08 | |||
| 195ccf005d | |||
| 6bb0650597 | |||
| a38599955e | |||
| c956dd1690 | |||
| b9368668e4 | |||
| 31b890b04f | |||
| da9e562fcc | |||
| bcc15163f1 | |||
| 2c9dabe3e8 | |||
| 9de773ecb8 | |||
| 3d602750c6 | |||
| e5f32e91bf | |||
| b731ebfacb | |||
| 23f13f092a | |||
| 5cfbc87b0f | |||
| c380e5fb1a | |||
| 511eed6ef1 | |||
| 3961261011 | |||
| 42f87544cd | |||
| e8a27da175 | |||
| e622dc3cf4 | |||
| 3b5b5b2894 | |||
| 28a46751c7 | |||
| 495e8286bc | |||
| 83baf0b0e0 | |||
| 7ab30e5905 | |||
| 982175b8db | |||
| 50e85ae825 | |||
| 858fbf3eb8 | |||
| 9d72d72d13 | |||
| 521097cec5 | |||
| 3f2df1a588 | |||
| 690ffbb931 | |||
| 26a257b6a4 | |||
| 6c7d872e0a | |||
| 48da281259 | |||
| ff2170d3cf | |||
| 624585267a | |||
| c0346d18a7 | |||
| 53c7d5f301 | |||
| 3ead60489d | |||
| e62e3f1760 | |||
| ca0cac5a92 | |||
| a2293f036c | |||
| 080bea00dd | |||
| 35d54b22cb | |||
| 38314a5d0f | |||
| 46eefcebbc | |||
| 01b1d40d6c | |||
| e47abfde71 | |||
| 37dc7068d9 | |||
| 3ae17a26fe | |||
| 0794b565d2 | |||
| 753fa8f65a | |||
| eea2b4f53f | |||
| 8836574f21 | |||
| 5e9bc5308a | |||
| c58d839df5 | |||
| 4907bde66f | |||
| d58fcf99e7 | |||
| f5e852441e | |||
| 19c4bd4d82 | |||
| c68e44a012 | |||
| 7a654bef02 | |||
| def5f4ec75 | |||
| ef9063febe | |||
| c2e515b457 | |||
| 6cd89fe122 | |||
| 793f350db7 | |||
| 43294b5731 | |||
| 6178bf1553 | |||
| e88b740a06 | |||
| 832629cf84 | |||
| 12e090f405 | |||
| 6bbbc502be | |||
| eb01a90a7b | |||
| d9548a067d | |||
| 77aa10b626 | |||
| 6a8f52e5e2 | |||
| af54d781bb | |||
| c855841130 | |||
| 46a4c235b9 | |||
| 27bceb444f | |||
| d756349248 | |||
| b03ae3222e | |||
| 4fe21af5c3 | |||
| e7b9f7600f | |||
| db70d55217 | |||
| dc7f002260 | |||
| 2a30b02644 | |||
| 07ba13b4b1 | |||
| 7b34985f3a | |||
| 692973e9f5 | |||
| fcf13346af | |||
| 8a90e43eb8 | |||
| 0f16e2b72c | |||
| 0963931d2e | |||
| e82a6549a6 | |||
| a7c305583a | |||
| 179cdbe18a | |||
| a91458eb7f | |||
| e301c2e600 | |||
| 8b977d102f | |||
| 9c7be57f21 | |||
| d95541029c | |||
| a067d7bcd0 | |||
| bb7763b305 | |||
| fd1ebab6f0 | |||
| aa208e20b7 | |||
| 791ff12e70 | |||
| 79587fc756 | |||
| fa61e7878b | |||
| ae3612bdd1 | |||
| c656087d3a | |||
| bb7062aa38 |
@@ -1,11 +1,12 @@
|
||||
{
|
||||
"comments": false,
|
||||
"minified": true,
|
||||
"presets": [
|
||||
[
|
||||
"@babel/preset-env",
|
||||
{
|
||||
"targets": "> 0.25%, not dead"
|
||||
}
|
||||
],
|
||||
"minify"
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
custom: [
|
||||
"https://paypal.me/Lruihao",
|
||||
"https://lruihao.cn/images/alipay.gif",
|
||||
"https://lruihao.cn/images/wechatpay.gif"
|
||||
]
|
||||
@@ -1,5 +1,13 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Questions 问题讨论
|
||||
url: https://github.com/hugo-fixit/FixIt/discussions/new
|
||||
about: Please ask questions in Discussion. 请在讨论中提问。
|
||||
|
||||
- name: 官方 QQ 群
|
||||
url: https://qm.qq.com/cgi-bin/qm/qr?k=awbwdTtSQ_-H5QGzeJxdWgv6JMbNehNM&jump_from=webapi
|
||||
about: '加入 FixIt 主题交流群: 814031017'
|
||||
|
||||
- name: Theme Documentation 主题文档
|
||||
url: https://fixit.lruihao.cn/categories/documentation/
|
||||
about: Please read the documentation carefully. 请先仔细阅读主题文档.
|
||||
about: Please read the documentation carefully. 请先仔细阅读主题文档。
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Set to true to add reviewers to PRs
|
||||
addReviewers: true
|
||||
|
||||
# Set to 'author' to add PR's author as a assignee
|
||||
addAssignees: author
|
||||
|
||||
# A list of reviewers to be added to PRs (GitHub user name)
|
||||
reviewers:
|
||||
- Lruihao
|
||||
|
||||
# A number of reviewers added to the PR
|
||||
# Set 0 to add all the reviewers (default: 0)
|
||||
numberOfReviewers: 1
|
||||
|
||||
# A list of assignees, overrides reviewers if set
|
||||
assignees:
|
||||
- Lruihao
|
||||
|
||||
# A number of assignees to add to the PRs
|
||||
# Set to 0 to add all of the assignees.
|
||||
# Uses numberOfReviewers if unset.
|
||||
numberOfAssignees: 0
|
||||
|
||||
# A list of keywords to be skipped the process if PR's title include it
|
||||
skipKeywords:
|
||||
- wip
|
||||
- deps-dev
|
||||
@@ -0,0 +1,5 @@
|
||||
name: "CodeQL config"
|
||||
|
||||
paths-ignore:
|
||||
- assets/lib/**
|
||||
- docs/**
|
||||
@@ -14,3 +14,21 @@ updates:
|
||||
- "Lruihao"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
open-pull-requests-limit: 1000
|
||||
assignees:
|
||||
- "Lruihao"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- package-ecosystem: "gitsubmodule"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
open-pull-requests-limit: 1000
|
||||
assignees:
|
||||
- "Lruihao"
|
||||
labels:
|
||||
- "dependencies"
|
||||
|
||||
@@ -4,13 +4,15 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'docs'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
algolia-atomic:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true # Fetch Hugo themes (true OR recursive)
|
||||
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||
@@ -31,7 +33,7 @@ jobs:
|
||||
ALGOLIA_APP_ID: YKOM6PKLUY
|
||||
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
|
||||
ALGOLIA_INDEX_NAME: 'index.en'
|
||||
ALGOLIA_INDEX_FILE: './exampleSite/public/index.json'
|
||||
ALGOLIA_INDEX_FILE: './docs/public/index.json'
|
||||
run: |
|
||||
npm run algolia
|
||||
|
||||
@@ -40,6 +42,6 @@ jobs:
|
||||
ALGOLIA_APP_ID: YKOM6PKLUY
|
||||
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
|
||||
ALGOLIA_INDEX_NAME: 'index.zh-cn'
|
||||
ALGOLIA_INDEX_FILE: './exampleSite/public/zh-cn/index.json'
|
||||
ALGOLIA_INDEX_FILE: './docs/public/zh-cn/index.json'
|
||||
run: |
|
||||
npm run algolia
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
name: Auto Assign
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
jobs:
|
||||
run:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: wow-actions/auto-assign@v3
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CONFIG_FILE: .github/configs/auto-assign.yml
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive # Fetch Hugo themes (true OR recursive)
|
||||
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||
@@ -18,4 +18,4 @@ jobs:
|
||||
hugo-version: latest
|
||||
extended: true
|
||||
- name: Build Hugo static files
|
||||
run: hugo -v --source=exampleSite --themesDir ../.. --gc
|
||||
run: hugo -v --source=docs --gc --minify
|
||||
|
||||
@@ -12,11 +12,14 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
branches:
|
||||
- master
|
||||
schedule:
|
||||
- cron: '45 0 * * 1'
|
||||
- cron: '30 18 * * 5'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
@@ -33,13 +36,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
config-file: ./.github/configs/codeql.yml
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
@@ -48,7 +52,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -62,4 +66,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
||||
@@ -20,5 +20,8 @@ jobs:
|
||||
with:
|
||||
readme_path: "contributors.md"
|
||||
image_size: 100
|
||||
commit_message: ":busts_in_silhouette: Chore(contributor): contrib-readme-action has updated contributors.md"
|
||||
committer_username: "github-actions[bot]"
|
||||
committer_email: "github-actions[bot]@users.noreply.github.com"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
|
||||
|
||||
+15
-11
@@ -1,24 +1,28 @@
|
||||
# Hugo default output directory
|
||||
public/
|
||||
/exampleSite/resources/
|
||||
|
||||
node_modules/
|
||||
build/
|
||||
resources/
|
||||
|
||||
## OS Files
|
||||
# Windows
|
||||
# Hugo
|
||||
.hugo_build.lock
|
||||
jsconfig.json
|
||||
|
||||
# NPM
|
||||
node_modules/
|
||||
|
||||
# VSCode
|
||||
.vscode
|
||||
|
||||
# OS Files
|
||||
## Windows
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# OSX
|
||||
## OSX
|
||||
.DS_Store
|
||||
|
||||
# Linux
|
||||
## Linux
|
||||
.directory
|
||||
|
||||
# Hugo
|
||||
.hugo_build.lock
|
||||
jsconfig.json
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "docs"]
|
||||
path = docs
|
||||
url = https://github.com/hugo-fixit/docs.git
|
||||
+223
-72
@@ -1,126 +1,277 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
<!-- Releases see https://github.com/Lruihao/FixIt/releases -->
|
||||
<!-- Releases see https://github.com/hugo-fixit/FixIt/releases -->
|
||||
|
||||
## v0.2.17 [2023.1.29]
|
||||
|
||||
> Snapshot: <>
|
||||
|
||||
- :tada: Feat: add support for [Fusejs search](https://fusejs.io/) ([#203](https://github.com/hugo-fixit/FixIt/issues/203))
|
||||
- :sparkles: Feat: add feature post reward support ([#216](https://github.com/hugo-fixit/FixIt/issues/216), @Lruihao[#234](https://github.com/hugo-fixit/FixIt/pull/234))
|
||||
- :sparkles: Feat: add reward shortcode support ([#216](https://github.com/hugo-fixit/FixIt/issues/216))
|
||||
- :sparkles: Feat: add TagCloud config support for tags page, see parameter `params.tagcloud` ([#235](https://github.com/hugo-fixit/FixIt/issues/235))
|
||||
- :sparkles: Feat: add [pace](https://github.com/CodeByZach/pace) support ([#190](https://github.com/hugo-fixit/FixIt/issues/190))
|
||||
- :sparkles: Feat: add custom templates and parameter `params.customFilePath` support
|
||||
- :sparkles: Feat: add feature end of post flag support ([#236](https://github.com/hugo-fixit/FixIt/issues/236))
|
||||
- :sparkles: Feat: refactor parameter `params.footer.siteTime`
|
||||
- :sparkles: Feat: add params to close wordcount and readingTime in post ([#209](https://github.com/hugo-fixit/FixIt/issues/209))
|
||||
- :sparkles: Feat: add parameter `params.footer.order` to order footer lines
|
||||
- :sparkles: Feat: add parameter `params.home.profile.avatarMenu`
|
||||
- :truck: Feat: migrate parameter `params.autoBookmark` to `params.page.autoBookmark` ([#55](https://github.com/hugo-fixit/FixIt/issues/55))
|
||||
- :truck: Feat: move `assets/data/emoji` to `assets/lib/valine/emoji/`
|
||||
- :zap: Perf: optimize close comment feature when the post has expired ([#204](https://github.com/hugo-fixit/FixIt/issues/204))
|
||||
- :zap: Perf: optimize sub menu position calculation in desktop header with css replace of javascript
|
||||
- :zap: Perf: enhance pangu spelling correction
|
||||
- :bug: Fix: remove the leading and trailing whitespace of the code string ([#205](https://github.com/hugo-fixit/FixIt/issues/205))
|
||||
- :bento: Fix: update webfonts for fontawesome 6.2.0 (@NicoDreamzZ[#228](https://github.com/hugo-fixit/FixIt/pull/228))
|
||||
- :bug: Fix: image shortcode/plugin lose the support for svg type files ([#210](https://github.com/hugo-fixit/FixIt/issues/210))
|
||||
- :bug: Fix: can't keep the static table of the contents in front of the post
|
||||
- :bug: Fix: escape hashtag character `#` in tag and category ([#245](https://github.com/hugo-fixit/FixIt/issues/245))
|
||||
- :bug: Fix: pangu.js cdn error
|
||||
- :bug: Fix: sitemap.xml link in robots.txt doesn't point to main sitemap (@Mejituu[#276](https://github.com/hugo-fixit/FixIt/pull/276))
|
||||
- :recycle: Refactor(i18n): hierarchize translation fields for supported languages
|
||||
- :globe_with_meridians: Docs(i18n): add missing translations for French + enhancements (@Kapusch[#247](https://github.com/hugo-fixit/FixIt/pull/247))
|
||||
- :lipstick: Style: refactor css style
|
||||
- :lipstick: Style: update home page stylesheet
|
||||
- :arrow_up: Chore(libs):
|
||||
- Update Twikoo from 1.4.10 to 1.6.8 and add Katex support for it ([#215](https://github.com/hugo-fixit/FixIt/issues/215) [#243](https://github.com/hugo-fixit/FixIt/issues/243))
|
||||
- :wrench: Chore(deps-dev):
|
||||
- Bump @babel/cli from 7.18.10 to 7.20.7
|
||||
- Bump @babel/core from 7.19.1 to 7.20.12
|
||||
- Bump @babel/preset-env from 7.18.10 to 7.20.2
|
||||
- Bump core-js from 3.25.2 to 3.27.2
|
||||
|
||||
- **Full Changelog:** @Lruihao [`v0.2.16...v0.2.17`](https://github.com/hugo-fixit/FixIt/compare/v0.2.16...v0.2.17)
|
||||
|
||||
## v0.2.16 [2022.9.24]
|
||||
|
||||
> This version fixes several bugs, adds a few new features and SEO optimizations, and refactors part of the project structure and code.
|
||||
> Snapshot: <https://fixit-jir7e7kzt-x-cell.vercel.app>
|
||||
|
||||
- :tada: Feat: add reading progress bar support ([#191](https://github.com/hugo-fixit/FixIt/issues/191))
|
||||
- :tada: Feat: add b2t scroll percent support ([#192](https://github.com/hugo-fixit/FixIt/issues/192))
|
||||
- :sparkles: Feat: add auto bookmark support ([#55](https://github.com/hugo-fixit/FixIt/issues/55))
|
||||
- :sparkles: Feat: add `raw` shortcode
|
||||
- :sparkles: Feat(menu): add params: `icon`, `type` for menu items
|
||||
- :sparkles: Feat: add custom aside template in post page ([#172](https://github.com/hugo-fixit/FixIt/issues/172))
|
||||
- :sparkles: Feat(math): add more block delimiter support for math
|
||||
- :sparkles: Feat(highlight): add full support for Chroma highlighting languages in the [list](https://gohugo.io/content-management/syntax-highlighting/#list-of-chroma-highlighting-languages)
|
||||
- :sparkles: Feat: add optional parameter `noreferrer` for the shortcode `link`
|
||||
- :sparkles: Feat: update echarts theme config
|
||||
- :sparkles: Feat: add noscript warning banner ([#194](https://github.com/hugo-fixit/FixIt/issues/194))
|
||||
- :sparkles: Feat: add 12 newly supported social links ([#175](https://github.com/hugo-fixit/FixIt/issues/175) [#197](https://github.com/hugo-fixit/FixIt/issues/197))
|
||||
- :zap: Perf: remove extra spaces in plugin link
|
||||
- :wheelchair: Feat(accessibility): use `aria-hidden=true` on icons that AT should ignore
|
||||
- :recycle: Refactor: image rendering
|
||||
- :recycle: Refactor: back to top and scroll to comments
|
||||
- :recycle: Refactor: custom.js rendering and remove `params.customJS` ([#189](https://github.com/hugo-fixit/FixIt/pull/189))
|
||||
- :recycle: Refactor: scss directory ([#185](https://github.com/hugo-fixit/FixIt/issues/185))
|
||||
- :recycle: Refactor: plugin script
|
||||
- :recycle: Refactor: version.template.svg
|
||||
- :recycle: Refactor: config ([#187](https://github.com/hugo-fixit/FixIt/issues/187))
|
||||
- :bug: Fix: add function `dos2unix` to unify new lines symbol between Windows and Unix/Mac OS
|
||||
- :bug: Fix: author display error in post and markdown file
|
||||
- :bug: Fix: use data attributes or class replace for custom attributes
|
||||
- :bug: Fix: attribute `media` not allowed on element meta in `[name=theme-color]`
|
||||
- :bug: Fix: support smooth migration from LoveIt to FixIt ([#174](https://github.com/hugo-fixit/FixIt/discussions/174) [#182](https://github.com/hugo-fixit/FixIt/issues/182))
|
||||
- :bug: Fix: `center-quote` shortcode rendering error when config `unsafe = false` (@yureiita[#160](https://github.com/hugo-fixit/FixIt/pull/160))
|
||||
- :bug: Fix: menu item invalid params `draft` in submenu
|
||||
- :bug: Fix: missing height and weight of img element and lazyload object-fit style
|
||||
- :bug: Fix: image shortcode invalid params `height` and `weight` ([#200](https://github.com/hugo-fixit/FixIt/issues/200))
|
||||
- :bug: Fix: typeit shortcode invalid config `duration = -1` and fix style
|
||||
- :bug: Fix: typeit shortcode prints consecutive spaces and newline errors
|
||||
- :art: Style: change the default icons of some social links
|
||||
- :bug: Fix: component `paginator` style error ([#188](https://github.com/hugo-fixit/FixIt/issues/188))
|
||||
- :lipstick: Style: fix language and theme switch cursor style ([#193](https://github.com/hugo-fixit/FixIt/issues/193))
|
||||
- :lipstick: Style: change line-break style of code element from `anywhere` to `auto`
|
||||
- :globe_with_meridians: Docs(i18n): update pt-br, de in i18n
|
||||
- :mag: Perf(SEO): enhance SEO performance
|
||||
- :wrench: Chore: modify babel config and optimize theme.js compilation and loading (revert [`65371a1`](https://github.com/hugo-fixit/FixIt/commit/65371a19a40591c3f403f7fde2b7001c3390354d))
|
||||
- :wrench: Chore: creating new go.mod: module github.com/hugo-fixit/FixIt
|
||||
- :arrow_up: Chore(libs):
|
||||
- Update simple-icons from 6.3.0 to 7.12.0
|
||||
- Update emoji-data from 5.0.1 to 14.0.0
|
||||
- Update mermaid from 9.1.3 to 9.1.7
|
||||
- Update typeit from 7.0.4 to 8.7.0
|
||||
- Update lightgallery from 1.4.0 to 2.6.1
|
||||
- Update Valine from 1.5.0 to 1.5.1
|
||||
- Update @waline/client from 2.6.1 to 2.10.0
|
||||
- Update mapbox-gl from 2.8.2 to 2.10.0
|
||||
- Update fontawesome-free from 6.1.1 to 6.2.0
|
||||
- Update katex from 0.15.3 to 0.16.2
|
||||
- Update echarts from 5.2.2 to 5.3.3
|
||||
- Update algoliasearch from 4.13.0 to 4.14.2
|
||||
- :wrench: Chore(deps-dev):
|
||||
- Remove dependencies: minimist, babel-preset-minify
|
||||
- Bump core-js from 3.24.1 to 3.25.2 (@dependabot[#201](https://github.com/hugo-fixit/FixIt/pull/201))
|
||||
- Bump @babel/core from 7.18.10 to 7.19.1 (@dependabot[#202](https://github.com/hugo-fixit/FixIt/pull/202))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.15...v0.2.16`](https://github.com/hugo-fixit/FixIt/compare/v0.2.15...v0.2.16)
|
||||
|
||||
## v0.2.15 [2022.8.4]
|
||||
|
||||
> Add content encryption feature(pages, partial), total word count, enhance auto toc, developer options and more.
|
||||
> Snapshot: <https://fixit-hvd1rg4ba-x-cell.vercel.app>
|
||||
|
||||
- :truck: Feat: ransfer repository from Lruihao to hugo-fixit
|
||||
- :tada: Feat: add content encryption of pages ([#123](https://github.com/hugo-fixit/FixIt/issues/123))
|
||||
- :tada: Feat: add `fixit-encryptor` shortcode ([#123](https://github.com/hugo-fixit/FixIt/issues/123))
|
||||
- :sparkles: Feat: add total word count feature in section and remove from footer ([#124](https://github.com/hugo-fixit/FixIt/issues/124))
|
||||
- :sparkles: Feat: enhance auto toc feature ([#104](https://github.com/hugo-fixit/FixIt/issues/104) [#136](https://github.com/hugo-fixit/FixIt/issues/136))
|
||||
- :sparkles: Feat: add repost feature ([#156](https://github.com/hugo-fixit/FixIt/issues/156))
|
||||
- :sparkles: Feat: add developer options
|
||||
- Check for updates option
|
||||
- Mobile Devtools config ([#163](https://github.com/hugo-fixit/FixIt/pull/163))
|
||||
- :bug: Fix: unable to show search bar of header at mobile mode ([#143](https://github.com/hugo-fixit/FixIt/issues/143))
|
||||
- :bug: Fix: Giscus comment invalid config `inputPosition`
|
||||
- :bug: Fix: Waline comment invalid config `imageUploader = false` & `highlighter = false` (@yureiita[#161](https://github.com/hugo-fixit/FixIt/pull/161))
|
||||
- :bug: Fix: busuanzi logic error
|
||||
- :bug: Fix: close comment system logic error when the article was expired
|
||||
- :bug: Style: fix typos for rel attribute value noreferrer (@yureiita[#157](https://github.com/hugo-fixit/FixIt/pull/157))
|
||||
- :recycle: Refactor: migrate theme js from src to assets by js.build
|
||||
- :recycle: Refactor: change the post edit url splicing rules
|
||||
- :mag: Feat(SEO): add options to make output `baidu_urls.txt` file ([#138](https://github.com/hugo-fixit/FixIt/issues/138))
|
||||
- :truck: Feat: migrate exampleSite to docs submodule
|
||||
- :art: Style: add theme colors variables and add common color styles
|
||||
- :art: Style: add scroll bar for auto toc ([#136](https://github.com/hugo-fixit/FixIt/issues/136))
|
||||
- :art: Style: change the version badge style form flat-square to flat
|
||||
- :memo: Docs: revise theme documentations
|
||||
- :heavy_plus_sign: Feat: add theme core configuration settings file
|
||||
- :wrench: Feat(cdn): add unpkg cdn support
|
||||
- :wrench: Chore: change the theme minimum supported Hugo versions above **0.84.0**
|
||||
- :arrow_up: Chore(libs): update some third-party libraries
|
||||
- Update Artalk from 2.2.12 to 2.3.4 ([#150](https://github.com/hugo-fixit/FixIt/issues/150))
|
||||
- Update Waline from 1.5.2 to 2.6.1
|
||||
- Update Valine from 1.4.18 to 1.5.0
|
||||
- Update mermaid from 8.13.3 to 9.1.3
|
||||
- :arrow_up: Chore(deps-dev):
|
||||
- Bump babel-preset-minify from 0.5.1 to 0.5.2 ([#145](https://github.com/hugo-fixit/FixIt/pull/145))
|
||||
- Bump core-js from 3.22.0 to 3.24.1 ([#168](https://github.com/hugo-fixit/FixIt/pull/168))
|
||||
- Bump @babel/preset-env from 7.16.11 to 7.18.10 ([#169](https://github.com/hugo-fixit/FixIt/pull/169))
|
||||
- Bump @babel/cli from 7.17.6 to 7.18.10 ([#170](https://github.com/hugo-fixit/FixIt/pull/170))
|
||||
- Bump @babel/core from 7.17.9 to 7.18.10 ([#171](https://github.com/hugo-fixit/FixIt/pull/171))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.14...v0.2.15`](https://github.com/hugo-fixit/FixIt/compare/v0.2.14...v0.2.15)
|
||||
|
||||
## v0.2.14 [2022.5.15]
|
||||
|
||||
> Add hugo new features support.
|
||||
> Add hugo new features support.
|
||||
> Snapshot: <https://fixit-p1tg6tsml-lruihao.vercel.app>
|
||||
|
||||
- :recycle: Refactor: header layout
|
||||
- :tada: Feat: add sub menu (nested menu) support ([#31](https://github.com/Lruihao/FixIt/issues/31))
|
||||
- :sparkles: Feat: add user-defined content to menu items via the `params` field ([#99](https://github.com/Lruihao/FixIt/issues/99))
|
||||
- :sparkles: Feat: modified language selector to submenu (@pandaoh[`eced169`](https://github.com/Lruihao/FixIt/commit/eced169713ce4a0208ce70ab556824e47eb671d5), @Lruihao[#31](https://github.com/Lruihao/FixIt/issues/31))
|
||||
- :bug: Fix: add "no more translations" judgment logic ([#100](https://github.com/Lruihao/FixIt/issues/100))
|
||||
- :bug: Fix: fix some header css bug ([#31](https://github.com/Lruihao/FixIt/issues/31))
|
||||
- :sparkles: Feat: enhance link render ([#96](https://github.com/Lruihao/FixIt/issues/96))
|
||||
- :tada: Feat: add sub menu (nested menu) support ([#31](https://github.com/hugo-fixit/FixIt/issues/31))
|
||||
- :sparkles: Feat: add user-defined content to menu items via the `params` field ([#99](https://github.com/hugo-fixit/FixIt/issues/99))
|
||||
- :sparkles: Feat: modified language selector to submenu (@pandaoh[`eced169`](https://github.com/hugo-fixit/FixIt/commit/eced169713ce4a0208ce70ab556824e47eb671d5), @Lruihao[#31](https://github.com/hugo-fixit/FixIt/issues/31))
|
||||
- :bug: Fix: add "no more translations" judgment logic ([#100](https://github.com/hugo-fixit/FixIt/issues/100))
|
||||
- :bug: Fix: fix some header css bug ([#31](https://github.com/hugo-fixit/FixIt/issues/31))
|
||||
- :sparkles: Feat: enhance link render ([#96](https://github.com/hugo-fixit/FixIt/issues/96))
|
||||
- Add external icon for external links automatically
|
||||
- Add download icon for downloadable links
|
||||
- :sparkles: Feat: add giscus comment system ([#130](https://github.com/Lruihao/FixIt/issues/130))
|
||||
- :sparkles: Feat: link shortcode add `external-icon` option ([#96](https://github.com/Lruihao/FixIt/issues/96))
|
||||
- :sparkles: Feat: add GitHub Corners support ([#106](https://github.com/Lruihao/FixIt/issues/106))
|
||||
- :sparkles: Feat: add local avatar and gravatar support for post author ([#125](https://github.com/Lruihao/FixIt/issues/125))
|
||||
- :sparkles: Feat: add ~~total word count support in footer~~ ([#124](https://github.com/Lruihao/FixIt/issues/124))
|
||||
- :sparkles: Feat: add "Edit this page" button support ([#103](https://github.com/Lruihao/FixIt/issues/103))
|
||||
- :sparkles: Feat: add count badge for taxonomy ([#122](https://github.com/Lruihao/FixIt/issues/122))
|
||||
- :sparkles: Feat: add giscus comment system ([#130](https://github.com/hugo-fixit/FixIt/issues/130))
|
||||
- :sparkles: Feat: link shortcode add `external-icon` option ([#96](https://github.com/hugo-fixit/FixIt/issues/96))
|
||||
- :sparkles: Feat: add GitHub Corners support ([#106](https://github.com/hugo-fixit/FixIt/issues/106))
|
||||
- :sparkles: Feat: add local avatar and gravatar support for post author ([#125](https://github.com/hugo-fixit/FixIt/issues/125))
|
||||
- :sparkles: Feat: add ~~total word count support in footer~~ ([#124](https://github.com/hugo-fixit/FixIt/issues/124))
|
||||
- :sparkles: Feat: add "Edit this page" button support ([#103](https://github.com/hugo-fixit/FixIt/issues/103))
|
||||
- :sparkles: Feat: add count badge for taxonomy ([#122](https://github.com/hugo-fixit/FixIt/issues/122))
|
||||
- :zap: Perf: add Gravatar config support
|
||||
- :bug: Fix: invalid front matter `comment: true` ([#108](https://github.com/Lruihao/FixIt/issues/108))
|
||||
- :bug: Fix: ibruce and watermark option negative value error ([#114](https://github.com/Lruihao/FixIt/issues/114))
|
||||
- :bug: Fix: invalid front matter `comment: true` ([#108](https://github.com/hugo-fixit/FixIt/issues/108))
|
||||
- :bug: Fix: ibruce and watermark option negative value error ([#114](https://github.com/hugo-fixit/FixIt/issues/114))
|
||||
- :truck: Feat: *migrate ~~`home.profile.gravatarSite`~~ to `gravatar.host`*
|
||||
- :truck: Feat: *migrate ~~`ibruce.siteTime`~~ to `footer.siteTime`*
|
||||
- :lipstick: Style: add some common CSS styles Class ([#101](https://github.com/Lruihao/FixIt/issues/101))
|
||||
- :lipstick: Style: add the gap between and icon and text at blending typesetting (@ctj12461, @Lruihao[#118](https://github.com/Lruihao/FixIt/pull/118))
|
||||
- :lipstick: Style: add some common CSS styles Class ([#101](https://github.com/hugo-fixit/FixIt/issues/101))
|
||||
- :lipstick: Style: add the gap between and icon and text at blending typesetting (@ctj12461, @Lruihao[#118](https://github.com/hugo-fixit/FixIt/pull/118))
|
||||
- :lipstick: Style: modify blockquote CSS
|
||||
- :memo: Docs: revised theme documentations
|
||||
- :zap: Perf: remove third-party library clipboard.js ([#84](https://github.com/Lruihao/FixIt/issues/84))
|
||||
- :pencil2: Docs: fix highlight url typo in `theme-documentation-built-in-shortcodes` (@d-baer[#85](https://github.com/Lruihao/FixIt/pull/85))
|
||||
- :wrench: Chore(i18n): improve translations for supported languages ([#119](https://github.com/Lruihao/FixIt/issues/119))
|
||||
- :memo: Docs: revise theme documentations
|
||||
- :zap: Perf: remove third-party library clipboard.js ([#84](https://github.com/hugo-fixit/FixIt/issues/84))
|
||||
- :pencil2: Docs: fix highlight url typo in `theme-documentation-built-in-shortcodes` (@d-baer[#85](https://github.com/hugo-fixit/FixIt/pull/85))
|
||||
- :wrench: Chore(i18n): improve translations for the supported languages ([#119](https://github.com/hugo-fixit/FixIt/issues/119))
|
||||
- :wrench: Chore(i18n): add i18n support for console messages
|
||||
- :wrench: Chore: add deprecated parameter detection in cli
|
||||
- :arrow_up: Chore: update some third-party libraries
|
||||
- :wrench: Chore(deps-dev):
|
||||
- Bump minimist from 1.2.5 to 1.2.6 ([#92](https://github.com/Lruihao/FixIt/pull/92))
|
||||
- Bump @babel/core from 7.17.5 to 7.17.10 ([#126](https://github.com/Lruihao/FixIt/pull/126))
|
||||
- Bump core-js from 3.21.1 to 3.22.5 ([#129](https://github.com/Lruihao/FixIt/pull/129))
|
||||
- Bump @babel/cli from 7.17.6 to 7.17.10 ([#127](https://github.com/Lruihao/FixIt/pull/127))
|
||||
- Bump @babel/preset-env from 7.16.11 to 7.17.10 ([`bc74d14`](https://github.com/Lruihao/FixIt/commit/bc74d149c16b36644fecdd5bef325bf8087f8593))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.13...v0.2.14`](https://github.com/Lruihao/FixIt/compare/v0.2.13...v0.2.14)
|
||||
- Bump minimist from 1.2.5 to 1.2.6 ([#92](https://github.com/hugo-fixit/FixIt/pull/92))
|
||||
- Bump @babel/core from 7.17.5 to 7.17.10 ([#126](https://github.com/hugo-fixit/FixIt/pull/126))
|
||||
- Bump core-js from 3.21.1 to 3.22.5 ([#129](https://github.com/hugo-fixit/FixIt/pull/129))
|
||||
- Bump @babel/cli from 7.17.6 to 7.17.10 ([#127](https://github.com/hugo-fixit/FixIt/pull/127))
|
||||
- Bump @babel/preset-env from 7.16.11 to 7.17.10 ([`bc74d14`](https://github.com/hugo-fixit/FixIt/commit/bc74d149c16b36644fecdd5bef325bf8087f8593))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.13...v0.2.14`](https://github.com/hugo-fixit/FixIt/compare/v0.2.13...v0.2.14)
|
||||
|
||||
## v0.2.13 [2022.3.14]
|
||||
|
||||
> Improve and add some new features.
|
||||
> Improve and add some new features.
|
||||
> Snapshot: <https://fixit-bbh5g5x90-lruihao.vercel.app>
|
||||
|
||||
- :recycle: Refactor: page layout ([#65](https://github.com/Lruihao/FixIt/issues/65))
|
||||
- :tada: Feat: add Artalk comment support ([#54](https://github.com/Lruihao/FixIt/issues/54), @hiifong[#57](https://github.com/Lruihao/FixIt/pull/57))
|
||||
- :tada: Feat: add Waline comment support ([#36](https://github.com/Lruihao/FixIt/issues/36))
|
||||
- :tada: Feat: add Twikoo comment support ([#64](https://github.com/Lruihao/FixIt/issues/64))
|
||||
- :sparkles: Feat: add recently updated section ([#50](https://github.com/Lruihao/FixIt/issues/50))
|
||||
- :sparkles: Feat: add article expiration reminder support ([#51](https://github.com/Lruihao/FixIt/issues/51))
|
||||
- :sparkles: Feat: add pageStyle option ([#62](https://github.com/Lruihao/FixIt/issues/62))
|
||||
- :sparkles: Style: add media style for print view ([#61](https://github.com/Lruihao/FixIt/issues/61))
|
||||
- :sparkles: Feat: add Gravatar mirror site support (@ctj12461[#66](https://github.com/Lruihao/FixIt/pull/66))
|
||||
- :sparkles: Feat: add archive count display ([#33](https://github.com/Lruihao/FixIt/issues/33))
|
||||
- :sparkles: Feat: add `details` shortcode ([#68](https://github.com/Lruihao/FixIt/issues/68))
|
||||
- :sparkles: Feat: add `center-quote` shortcode ([#69](https://github.com/Lruihao/FixIt/issues/69))
|
||||
- :recycle: Refactor: page layout ([#65](https://github.com/hugo-fixit/FixIt/issues/65))
|
||||
- :tada: Feat: add Artalk comment support ([#54](https://github.com/hugo-fixit/FixIt/issues/54), @hiifong[#57](https://github.com/hugo-fixit/FixIt/pull/57))
|
||||
- :tada: Feat: add Waline comment support ([#36](https://github.com/hugo-fixit/FixIt/issues/36))
|
||||
- :tada: Feat: add Twikoo comment support ([#64](https://github.com/hugo-fixit/FixIt/issues/64))
|
||||
- :sparkles: Feat: add recently updated section ([#50](https://github.com/hugo-fixit/FixIt/issues/50))
|
||||
- :sparkles: Feat: add article expiration reminder support ([#51](https://github.com/hugo-fixit/FixIt/issues/51))
|
||||
- :sparkles: Feat: add pageStyle option ([#62](https://github.com/hugo-fixit/FixIt/issues/62))
|
||||
- :sparkles: Style: add media style for print view ([#61](https://github.com/hugo-fixit/FixIt/issues/61))
|
||||
- :sparkles: Feat: add Gravatar mirror site support (@ctj12461[#66](https://github.com/hugo-fixit/FixIt/pull/66))
|
||||
- :sparkles: Feat: add archive count display ([#33](https://github.com/hugo-fixit/FixIt/issues/33))
|
||||
- :sparkles: Feat: add `details` shortcode ([#68](https://github.com/hugo-fixit/FixIt/issues/68))
|
||||
- :sparkles: Feat: add `center-quote` shortcode ([#69](https://github.com/hugo-fixit/FixIt/issues/69))
|
||||
- :sparkles: Feat: add markdown support for **title** parameter of the admonition shortcode
|
||||
- :sparkles: Feat: add 9 newly supported social links ([#17](https://github.com/Lruihao/FixIt/issues/17))
|
||||
- :zap: Perf: enhance highlight feature (GitHub syntax supported) and fix some css bugs ([#43](https://github.com/Lruihao/FixIt/issues/43))
|
||||
- :sparkles: Feat: add 9 newly supported social links ([#17](https://github.com/hugo-fixit/FixIt/issues/17))
|
||||
- :zap: Perf: enhance highlight feature (GitHub syntax supported) and fix some css bugs ([#43](https://github.com/hugo-fixit/FixIt/issues/43))
|
||||
- Inline Code
|
||||
- Indented Code
|
||||
- Block Fenced Code
|
||||
- gist shortcode
|
||||
- :sparkles: Feat: add `params.page.code.edit` option support ([#76](https://github.com/Lruihao/FixIt/issues/76))
|
||||
- :sparkles: Feat: add `params.page.code.edit` option support ([#76](https://github.com/hugo-fixit/FixIt/issues/76))
|
||||
- :mag: Feat: add 360 and sougou seo support
|
||||
- :bug: Fix: remove source map of local libraries to avoid 404 error ([#67](https://github.com/Lruihao/FixIt/issues/67))
|
||||
- :fire: Feat: remove shortcode cardlink ([#42](https://github.com/Lruihao/FixIt/issues/42))
|
||||
- :lipstick: Style: more refined theme style ([#40](https://github.com/Lruihao/FixIt/issues/40))
|
||||
- :pencil2: Style: fix typo *discription* should be **description** ([#60](https://github.com/Lruihao/FixIt/issues/60))
|
||||
- :bug: Fix: remove source map of local libraries to avoid 404 error ([#67](https://github.com/hugo-fixit/FixIt/issues/67))
|
||||
- :fire: Feat: remove shortcode cardlink ([#42](https://github.com/hugo-fixit/FixIt/issues/42))
|
||||
- :lipstick: Style: more refined theme style ([#40](https://github.com/hugo-fixit/FixIt/issues/40))
|
||||
- :pencil2: Style: fix typo *discription* should be **description** ([#60](https://github.com/hugo-fixit/FixIt/issues/60))
|
||||
- :wrench: Chore(update-libs):
|
||||
- Update cell-watermark 1.0.3 and CDN support (fontFamily supported)
|
||||
- Update animate.css 3.7.2 -> 4.1.1 ([#74](https://github.com/Lruihao/FixIt/issues/74))
|
||||
- :wrench: Chore: add atomic-algolia for exampleSite ([#70](https://github.com/Lruihao/FixIt/issues/70))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.12...v0.2.13`](https://github.com/Lruihao/FixIt/compare/v0.2.12...v0.2.13)
|
||||
- Update animate.css 3.7.2 -> 4.1.1 ([#74](https://github.com/hugo-fixit/FixIt/issues/74))
|
||||
- :wrench: Chore: add atomic-algolia for exampleSite ([#70](https://github.com/hugo-fixit/FixIt/issues/70))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.12...v0.2.13`](https://github.com/hugo-fixit/FixIt/compare/v0.2.12...v0.2.13)
|
||||
|
||||
## v0.2.12 [2022-1-27]
|
||||
|
||||
> Fix most known bugs and add some new features.
|
||||
> Fix most known bugs and add some new features.
|
||||
> Snapshot: <https://fixit-e9lpwfkbp-lruihao.vercel.app>
|
||||
|
||||
- :tada: Feat: add PWA support
|
||||
- :tada: Feat: add Watermark support ([#16](https://github.com/Lruihao/FixIt/issues/16))
|
||||
- :tada: Feat: add "不蒜子" count and site run time ([#18](https://github.com/Lruihao/FixIt/issues/18))
|
||||
- :sparkles: Feat: add pangu.js support ([#20](https://github.com/Lruihao/FixIt/issues/20))
|
||||
- :sparkles: Feat: add public network security config (only in China) ([#15](https://github.com/Lruihao/FixIt/issues/15))
|
||||
- :sparkles: Feat: add CustomJS option ([#24](https://github.com/Lruihao/FixIt/issues/24))
|
||||
- :tada: Feat: add Watermark support ([#16](https://github.com/hugo-fixit/FixIt/issues/16))
|
||||
- :tada: Feat: add "不蒜子" count and site run time ([#18](https://github.com/hugo-fixit/FixIt/issues/18))
|
||||
- :sparkles: Feat: add pangu.js support ([#20](https://github.com/hugo-fixit/FixIt/issues/20))
|
||||
- :sparkles: Feat: add public network security config (only in China) ([#15](https://github.com/hugo-fixit/FixIt/issues/15))
|
||||
- :sparkles: Feat: add CustomJS option ([#24](https://github.com/hugo-fixit/FixIt/issues/24))
|
||||
- :sparkles: Feat: add theme embedded archeTypes
|
||||
- :mag: Feat(SEO): optimize SEO meta ([#30](https://github.com/Lruihao/FixIt/issues/30))
|
||||
- :zap: Feat: remove lib smooth-scroll ([#1](https://github.com/Lruihao/FixIt/issues/1)) replaced by CSS native properties scroll-margin, scroll-behavior ([#39](https://github.com/Lruihao/FixIt/issues/39))
|
||||
- :zap: Perf: merge shortcode cardlink (deprecated v0.2.13) into shortcode link and add 'download' param ([#42](https://github.com/Lruihao/FixIt/issues/42))
|
||||
- :zap: Perf: optimize JS loading ([#25](https://github.com/Lruihao/FixIt/issues/25))
|
||||
- :recycle: Refactor: header title DOM and add subtitle option ([#26](https://github.com/Lruihao/FixIt/issues/26))
|
||||
- :bug: Fix: set mermaid theme as 'default' when initialization ([#38](https://github.com/Lruihao/FixIt/issues/38))
|
||||
- :bug: Fix: typeit print code error ([#19](https://github.com/Lruihao/FixIt/issues/19))
|
||||
- :bug: Fix: pre element overflow error ([#29](https://github.com/Lruihao/FixIt/issues/29))
|
||||
- :bug: Fix: toc display error without content header ([#21](https://github.com/Lruihao/FixIt/issues/21))
|
||||
- :mag: Feat(SEO): optimize SEO meta ([#30](https://github.com/hugo-fixit/FixIt/issues/30))
|
||||
- :zap: Feat: remove lib smooth-scroll ([#1](https://github.com/hugo-fixit/FixIt/issues/1)) replaced by CSS native properties scroll-margin, scroll-behavior ([#39](https://github.com/hugo-fixit/FixIt/issues/39))
|
||||
- :zap: Perf: merge shortcode cardlink (deprecated v0.2.13) into shortcode link and add 'download' param ([#42](https://github.com/hugo-fixit/FixIt/issues/42))
|
||||
- :zap: Perf: optimize JS loading ([#25](https://github.com/hugo-fixit/FixIt/issues/25))
|
||||
- :recycle: Refactor: header title DOM and add subtitle option ([#26](https://github.com/hugo-fixit/FixIt/issues/26))
|
||||
- :bug: Fix: set mermaid theme as 'default' when initialization ([#38](https://github.com/hugo-fixit/FixIt/issues/38))
|
||||
- :bug: Fix: typeit print code error ([#19](https://github.com/hugo-fixit/FixIt/issues/19))
|
||||
- :bug: Fix: pre element overflow error ([#29](https://github.com/hugo-fixit/FixIt/issues/29))
|
||||
- :bug: Fix: toc display error without content header ([#21](https://github.com/hugo-fixit/FixIt/issues/21))
|
||||
- :lipstick: Style: style detail adjustments, change scroll-behavior to smooth, taxonomy, header, footer, shortcode style etc.
|
||||
- :pencil: Docs: improve demo site documentation ([#37](https://github.com/Lruihao/FixIt/issues/37))
|
||||
- :pencil: Docs: improve demo site documentation ([#37](https://github.com/hugo-fixit/FixIt/issues/37))
|
||||
- :wrench: Chore: add commands `fixit_checker.sh`
|
||||
- :wrench: Chore(i18n): change some translations
|
||||
- :arrow_up: Chore: update all third-party libraries
|
||||
- **Full Changelog:** @Lruihao [`v0.2.11...v0.2.12`](https://github.com/Lruihao/FixIt/compare/v0.2.11...v0.2.12)
|
||||
- **Full Changelog:** @Lruihao [`v0.2.11...v0.2.12`](https://github.com/hugo-fixit/FixIt/compare/v0.2.11...v0.2.12)
|
||||
|
||||
## v0.2.11 [2021-12-19]
|
||||
|
||||
> :tada: The beginning of FixIt to fix the theme LoveIt.
|
||||
|
||||
- :sparkles: Feat: add cardlink shortcode ([Lruihao/hugo-blog@`df9eca2`](https://github.com/Lruihao/hugo-blog/commit/df9eca26af43287748fd8d4654014357a8269b0b))
|
||||
- :sparkles: Feat: add cardlink shortcode ([Lruihao/hugo-blog@`df9eca2`](https://github.com/Lruihao/hugo-blog/commit/df9eca26af43287748fd8d4654014357a8269b0b))
|
||||
- :tada: Feat: add friends layout template
|
||||
- :wrench: Chore(i18n): add translations for Traditional Chinese ([Lruihao/hugo-blog@`df9eca2`](https://github.com/Lruihao/hugo-blog/commit/b86157d8b84830bda415ab2488580afd843acac2))
|
||||
- :bug: Fix: mobile style ([Lruihao/hugo-blog#19](https://github.com/Lruihao/hugo-blog/issues/19))
|
||||
- :bug: Style: fix content h1 style ([Lruihao/hugo-blog#8](https://github.com/Lruihao/hugo-blog/issues/8))
|
||||
- :bug: Fix: `.params.author` should be `$params.author` ([Lruihao/hugo-blog#1](https://github.com/Lruihao/hugo-blog/issues/1))
|
||||
- **Full Changelog:** @Lruihao [`v0.2.10...v0.2.11`](https://github.com/Lruihao/FixIt/compare/v0.2.10...v0.2.11)
|
||||
- **Full Changelog:** @Lruihao [`v0.2.10...v0.2.11`](https://github.com/hugo-fixit/FixIt/compare/v0.2.10...v0.2.11)
|
||||
|
||||
## v0.2.10 :arrow_down: [2020-5-29 before]
|
||||
|
||||
Thanks [dillonzq/LoveIt](https://github.com/dillonzq/LoveIt/releases)
|
||||
Thanks [dillonzq/LoveIt](https://github.com/dillonzq/LoveIt/releases)
|
||||
|
||||
+24
-15
@@ -1,17 +1,18 @@
|
||||
# CONTRIBUTING
|
||||
|
||||
## How to contribute to this project
|
||||
|
||||
First, fork this repository by clicking the fork button.
|
||||
|
||||
Next, clone your forked repo.
|
||||
|
||||
```
|
||||
git clone https://github.com/example/FixIt.git
|
||||
cd FixIt
|
||||
```bash
|
||||
git clone --recursive https://github.com/hugo-fixit/FixIt.git && cd FixIt
|
||||
```
|
||||
|
||||
Then, install the dev dependencies.
|
||||
|
||||
```
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
@@ -20,22 +21,22 @@ And now you are ready to go!
|
||||
Here are some useful commands.
|
||||
|
||||
```bash
|
||||
#build theme.js with babel
|
||||
# build theme.js with babel
|
||||
npm run babel
|
||||
#build theme.js and then build the static site
|
||||
# build theme.js and then build the static site
|
||||
npm run build
|
||||
#run a local debugging server
|
||||
# run a local debugging server with watch
|
||||
npm run server
|
||||
#run a local debugging server in production environment
|
||||
# run a local debugging server with watch in production environment
|
||||
npm run server:production
|
||||
#build theme.js and then run a local debugging server
|
||||
# build theme.js and then run a local debugging server
|
||||
npm run start
|
||||
#build theme.js and then run a local debugging server in production environment
|
||||
# build theme.js and then run a local debugging server in production environment
|
||||
npm run start:production
|
||||
|
||||
```
|
||||
|
||||
Finally, create a new pull request at https://github.com/Lruihao/FixIt/pulls to submit your contribution 🎉
|
||||
Finally, create a new pull request at <https://github.com/hugo-fixit/FixIt/pulls> to submit your contribution 🎉
|
||||
|
||||
## Git standard for developers
|
||||
|
||||
@@ -44,7 +45,8 @@ Finally, create a new pull request at https://github.com/Lruihao/FixIt/pulls to
|
||||
| Branch | Description |
|
||||
| :-- | :-- |
|
||||
| master | _The branch open to the public and release versions_ |
|
||||
| RC branch | _The development branch of the next version, e.g. v0.2.12-RC_ |
|
||||
| dev | _The development branch of the next version_ |
|
||||
| RC branch | _The release candidate branch of the next version, e.g. v0.2.12-RC_ |
|
||||
| single feature | _The branch to enhancements or fixes_ |
|
||||
|
||||
### Merge events
|
||||
@@ -58,10 +60,17 @@ Finally, create a new pull request at https://github.com/Lruihao/FixIt/pulls to
|
||||
### Commit message
|
||||
|
||||
#### Format
|
||||
> {emoji} {type}: {subject within 50 words} (#{issue/pull request})
|
||||
|
||||
`[{emoji} ]{type}[({module})]: {subject within 50 words}[ (#{issue/pull request})]`
|
||||
|
||||
example:
|
||||
|
||||
- :tada: Feat: add shortcode fixit-encryptor shortcode (#123)
|
||||
- :arrow_up: Chore(libs): update Artalk from 2.2.12 to 2.3.4 (#150)
|
||||
|
||||
#### Emoji
|
||||
- https://gitmoji.dev
|
||||
|
||||
- <https://gitmoji.dev>
|
||||
- [vscode plugin](https://github.com/maixiaojie/git-emoji-zh.git)
|
||||
- utools plugin `GitEmoji`
|
||||
|
||||
@@ -70,7 +79,7 @@ Finally, create a new pull request at https://github.com/Lruihao/FixIt/pulls to
|
||||
| Emoji | Type | Example | Description (No Ambiguous) |
|
||||
| :-------------------------------------------- | :------- | :----------------------------------------------------------- | :----------------------------------------------------------- |
|
||||
| :tada: <br>:sparkles: | Feat | Feat: add {feature} | new feature |
|
||||
| :truck: | | Feat: adjust/migrate {feature name},{change details} | For the adjustment feature, it is necessary to describe the current situation (before) and after adjustment (after) |
|
||||
| :truck: | | Feat: adjust/migrate {feature name}, {change details} | For the adjustment feature, it is necessary to describe the current situation (before) and after adjustment (after) |
|
||||
| :fire: | | Feat: delete {feature name}, {deletion reason} | If the feature is deleted, the reason for deletion must be explained |
|
||||
| :bug: <br>:construction: <br>:rotating_light: | Fix | Fix: fix {bug description} | Fix known bugs |
|
||||
| :art: <br>:lipstick: <br>:pencil2: | Style | Style: Typesetting/CSS style {optimizing content} | Changes that do not affect code operation, such as code layout and style change |
|
||||
|
||||
@@ -2,7 +2,7 @@ The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018 LIUZHICHAO.COM
|
||||
Copyright (c) 2019-2020 DILLONZQ.COM
|
||||
Copyright (c) 2021-2022 LRUIHAO.CN
|
||||
Copyright (c) 2021-2023 LRUIHAO.CN
|
||||
|
||||
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
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
# FixIt Theme | Hugo
|
||||
|
||||
[](https://github.com/Lruihao/FixIt/releases)
|
||||
[](https://github.com/Lruihao/FixIt/compare/v0.2.10...master)
|
||||
[](https://gohugo.io/)
|
||||
[](https://github.com/Lruihao/FixIt/blob/master/LICENSE)
|
||||
[](https://github.com/hugo-fixit/FixIt/releases)
|
||||
[](https://gohugo.io/)
|
||||
[](/LICENSE)
|
||||
|
||||
English README | [简体中文说明](https://github.com/Lruihao/FixIt/blob/master/README.zh-cn.md)
|
||||
👉 English README | [简体中文说明](README.zh-cn.md)
|
||||
|
||||
> **FixIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
|
||||
> [FixIt](https://github.com/hugo-fixit/FixIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
|
||||
|
||||
It is based on the original [LoveIt Theme](https://github.com/dillonzq/LoveIt), [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/Fastbyte01/KeepIt).
|
||||
It is based on the original [LoveIt Theme](https://github.com/dillonzq/LoveIt), [KeepIt Theme](https://github.com/Fastbyte01/KeepIt) and [LeaveIt Theme](https://github.com/liuzc/LeaveIt).
|
||||
|
||||
[LoveIt Theme](https://github.com/dillonzq/LoveIt) is a awesome hugo theme for us, I'm sorry that it's repository has been out of maintenance for a long time, so I rebuilt a new fork named FixIt so that I can better **Fix It** and make it more user-friendly.
|
||||
The FixIt theme inherits the excellent features of these themes, and adds new features and optimizations on those basis. Please read [Why Choose FixIt](#why-choose-fixit) to learn more.
|
||||
|
||||
The FixIt theme inherits the excellent functions of these themes, and adds new functions and optimizations on this basis. Please read [Why Choose FixIt](#why-choose-fixit) to learn more.
|
||||
|
||||

|
||||

|
||||
|
||||
## [Getting started](https://fixit.lruihao.cn/categories/documentation/)
|
||||
|
||||
@@ -24,19 +21,21 @@ Head to this [documentation page](https://fixit.lruihao.cn/theme-documentation-b
|
||||
Or run [Documentation Site](https://fixit.lruihao.cn) locally:
|
||||
|
||||
```bash
|
||||
hugo server --source=exampleSite
|
||||
git clone --recursive https://github.com/hugo-fixit/FixIt.git && cd FixIt
|
||||
|
||||
hugo server --source=docs
|
||||
```
|
||||
|
||||
Of course, you can also read the [FixIt wiki](https://github.com/Lruihao/FixIt/wiki) directly.
|
||||
In addition, there is the [FixIt wiki](https://github.com/hugo-fixit/FixIt/wiki).
|
||||
|
||||
## Migrate and Update
|
||||
## Install or Migrate
|
||||
|
||||
If you are currently using the LoveIt theme (or some other themes), it is very easy to migrate to FixIt.
|
||||
|
||||
You can add this repo as a submodule of your site directory.
|
||||
You can add this repo as a submodule of your site directory. Alternatively, you can [install the theme](https://fixit.lruihao.cn/theme-documentation-basics/#install-theme) in other ways.
|
||||
|
||||
```bash
|
||||
git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt
|
||||
git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt
|
||||
```
|
||||
|
||||
And later you can update the submodule in your site directory to the latest commit using this command:
|
||||
@@ -45,12 +44,6 @@ And later you can update the submodule in your site directory to the latest comm
|
||||
git submodule update --remote --merge
|
||||
```
|
||||
|
||||
Or use shell command `fixit_checker.sh` to update and commit in the theme directory.
|
||||
|
||||
```bash
|
||||
sh fixit_checker.sh
|
||||
```
|
||||
|
||||
Next, go to the `config.toml` and change the default theme to `FixIt`.
|
||||
|
||||
```diff
|
||||
@@ -62,50 +55,26 @@ Now the migration is finished and everything is ready 🎉
|
||||
|
||||
## Why choose FixIt
|
||||
|
||||
* Custom **Header (sub-menu supported)**
|
||||
* Custom **CSS Style**
|
||||
* A new **home page**, compatible with the latest version of Hugo
|
||||
* A lot of **style detail adjustments,** including color, font size, margins, code preview style
|
||||
* More readable **dark mode**
|
||||
* Some beautiful **CSS animations**
|
||||
* Easy-to-use and self-expanding **table of contents**
|
||||
* More **social links**, **share sites** and **comment system**
|
||||
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
|
||||
* **Copy code** to clipboard with one click
|
||||
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
|
||||
* Extended Markdown syntax for **ruby annotation**
|
||||
* Extended Markdown syntax for **fraction**
|
||||
* **Mathematical formula** supported by [KaTeX](https://katex.org/)
|
||||
* **Diagram syntax** shortcode supported by [mermaid](https://github.com/knsv/mermaid)
|
||||
* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/)
|
||||
* **Mapbox** shortcode supported by [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
* Embedded **music player** supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
* **Bilibili** player supported
|
||||
* Kinds of **admonitions** shortcode supported
|
||||
* Custom style shortcodes supported
|
||||
* **CDN** for all third-party libraries supported
|
||||
* **PWA (Progressive Web App)** supported
|
||||
* **Web Watermark** supported by [cell-watermark](https://github.com/Lruihao/watermark)
|
||||
* **Chinese typesetting** supported by [pangu.js](https://github.com/vinta/pangu.js)
|
||||
* **Card type** link shortcode
|
||||
* **Friends** page embedded template
|
||||
* ...
|
||||
The FixIt theme inherits the excellent features of themes such as LoveIt, and adds new features and optimizations on those basis, as detailed in [Features](#features). In addition, the FixIt theme has the following advantages:
|
||||
|
||||
In short,
|
||||
if you prefer the design language and freedom of the FixIt theme,
|
||||
if you want to use the extended Font Awesome icons conveniently,
|
||||
if you want to embed mathematical formulas, flowcharts, music or Bilibili videos in your posts,
|
||||
the FixIt theme may be more suitable for you.
|
||||
* Complete Chinese and English official documentations
|
||||
* Community support: Theme official website, Discussions and official QQ group
|
||||
* Continuously and actively update
|
||||
* Constantly incorporate suggestions and ideas from all sides
|
||||
* Highly open theme customizable section
|
||||
|
||||
In short, if you prefer the design language and freedom of the FixIt theme, and if you like to personalize your own themes as I do, the FixIt theme may be more suitable for you.
|
||||
|
||||
## Who used FixIt
|
||||
|
||||
To see this theme in action, here are some live demo sites which are rendered with **FixIt** theme.
|
||||
To see this theme in action, here are some [live demo sites](https://fixit.lruihao.cn/friends/) which are rendered with **FixIt** theme.
|
||||
|
||||
* [FixIt Theme Official Website](https://fixit.lruihao.cn)
|
||||
* [FixIt Theme Official Website - Preview](https://pre.fixit.lruihao.cn)
|
||||
* [Lruihao's note](https://lruihao.cn)
|
||||
* [hiifong's blog](https://52at.ml)
|
||||
* Add a your site by [making a PR](https://github.com/Lruihao/FixIt/pulls) (e.g. [#111](https://github.com/Lruihao/FixIt/pull/111))
|
||||
| Site | Repo |
|
||||
| :----------------------------------------------------------- | :----------------------------------------------------------- |
|
||||
| [FixIt Theme Official Website](https://fixit.lruihao.cn), [FixIt Preview](https://pre.fixit.lruihao.cn) | [hugo-fixit/docs](https://github.com/hugo-fixit/docs) |
|
||||
| [FixIt Blog Template - Git](https://demo.fixit.lruihao.cn) | [hugo-fixit/hugo-fixit-blog-git](https://github.com/hugo-fixit/hugo-fixit-blog-git) |
|
||||
| [FixIt Blog Template - Go](https://demo.fixit.lruihao.cn) | [hugo-fixit/hugo-fixit-blog-go](https://github.com/hugo-fixit/hugo-fixit-blog-go) |
|
||||
| [Lruihao's note](https://lruihao.cn) | [Lruihao/hugo-blog](https://github.com/Lruihao/hugo-blog) |
|
||||
|
||||
## Features
|
||||
|
||||
@@ -115,7 +84,7 @@ To see this theme in action, here are some live demo sites which are rendered wi
|
||||
* Optimized SEO performance with a correct **SEO SCHEMA** based on JSON-LD
|
||||
* **[Google Analytics](https://analytics.google.com/analytics)** supported
|
||||
* **[Fathom Analytics](https://usefathom.com/)** supported
|
||||
* Search engine **verification** supported (Google, Bind, Yandex and Baidu)
|
||||
* Search engine **verification** supported (Google, Bing, Yandex, Pinterest, Baidu, 360 and Sogou)
|
||||
* **CDN** for third-party libraries supported
|
||||
* Automatically converted images with **Lazy Load** by [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
|
||||
@@ -133,7 +102,7 @@ To see this theme in action, here are some live demo sites which are rendered wi
|
||||
|
||||
* **Gravatar** supported by [Gravatar](https://gravatar.com)
|
||||
* Local **Avatar** supported
|
||||
* Up to **73** social links supported
|
||||
* Up to **87** social links supported
|
||||
* Up to **28** share sites supported
|
||||
* **Disqus** comment system supported by [Disqus](https://disqus.com)
|
||||
* **Gitalk** comment system supported by [Gitalk](https://github.com/gitalk/gitalk)
|
||||
@@ -145,14 +114,19 @@ To see this theme in action, here are some live demo sites which are rendered wi
|
||||
* **Utterances** comment system supported by [Utterances](https://utteranc.es/)
|
||||
* **Artalk** comment system supported by [Artalk](https://artalk.js.org/)
|
||||
* **Twikoo** comment system supported by [Twikoo](https://twikoo.js.org/)
|
||||
* **giscus** comment system supported by [giscus](https://giscus.app/)
|
||||
|
||||
### Extended Features
|
||||
|
||||
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
|
||||
* **PWA (Progressive Web App)** supported
|
||||
* **Sub Menu** supported
|
||||
* **Content Encryption** supported (Pages, Partial)
|
||||
* **Friends** page embedded template
|
||||
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/) or [Fuse.js](https://fusejs.io/)
|
||||
* **Twemoji** supported
|
||||
* Automatically **highlighting** code
|
||||
* **Copy code** to clipboard with one click
|
||||
* **Images gallery** supported by [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js)
|
||||
* **Images gallery** supported by [lightgallery](https://github.com/sachinchoolur/lightgallery)
|
||||
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
|
||||
* Extended Markdown syntax for **ruby annotation**
|
||||
* Extended Markdown syntax for **fraction**
|
||||
@@ -167,11 +141,8 @@ To see this theme in action, here are some live demo sites which are rendered wi
|
||||
* **Custom script** shortcode
|
||||
* **Animated typing** supported by [TypeIt](https://typeitjs.com/)
|
||||
* **Cookie consent banner** supported by [cookieconsent](https://github.com/osano/cookieconsent)
|
||||
* **PWA (Progressive Web App)** supported
|
||||
* **Web Watermark** supported by [cell-watermark](https://github.com/Lruihao/watermark)
|
||||
* **Chinese typesetting** supported by [pangu.js](https://github.com/vinta/pangu.js)
|
||||
* **Card type** link shortcode
|
||||
* **Friends** page embedded template
|
||||
* ...
|
||||
|
||||
## Multilingual and i18n
|
||||
@@ -191,49 +162,50 @@ FixIt supports the following languages:
|
||||
* Russian
|
||||
* Romanian
|
||||
* Vietnamese
|
||||
* [Contribute with a new language](https://github.com/Lruihao/FixIt/pulls)
|
||||
* [Contribute with a new language](https://github.com/hugo-fixit/FixIt/pulls)
|
||||
|
||||
[Languages Compatibility](https://fixit.lruihao.cn/theme-documentation-basics/#language-compatibility)
|
||||
|
||||
## [Roadmap](https://github.com/Lruihao/FixIt/projects/1)
|
||||
## [Roadmap](https://github.com/hugo-fixit/FixIt/projects/1)
|
||||
|
||||
## [Changelog](https://github.com/Lruihao/FixIt/blob/master/CHANGELOG.md)
|
||||
## [Changelog](/CHANGELOG.md)
|
||||
|
||||
## Questions, ideas, bugs, pull requests
|
||||
|
||||
All feedback is welcome! Head over to the [issues](https://github.com/Lruihao/FixIt/issues) or [discussions](https://github.com/Lruihao/FixIt/discussions) tracker.
|
||||
All feedback is welcome! Head over to the [issues](https://github.com/hugo-fixit/FixIt/issues) or [discussions](https://github.com/hugo-fixit/FixIt/discussions) tracker.
|
||||
|
||||
## Contributing
|
||||
|
||||
Please see [CONTRIBUTING.md](/CONTRIBUTING.md) for getting started with the contribution.
|
||||
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for getting started with the contribution.
|
||||
|
||||
Make sure that you follow [CODE_OF_CONDUCT.md](/CODE_OF_CONDUCT.md) while contributing and engaging in the discussions.
|
||||
Make sure that you follow [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) while contributing and engaging in the discussions.
|
||||
|
||||
**When contributing, please first discuss the change you wish to make via an issue on this repository before making the actual change**.
|
||||
|
||||
## [Contributors](/contributors.md)
|
||||
## [Contributors](contributors.md)
|
||||
|
||||
## License
|
||||
## Acknowledgements
|
||||
|
||||
FixIt is licensed under the **MIT** license. Check the [LICENSE file](https://github.com/Lruihao/FixIt/blob/master/LICENSE) for details.
|
||||
|
||||
Thanks to the authors of following resources included in the theme:
|
||||
<details open>
|
||||
<summary>Thanks to the authors of following resources included in the theme:</summary>
|
||||
|
||||
* [normalize.css](https://github.com/necolas/normalize.css)
|
||||
* [Font Awesome](https://fontawesome.com/)
|
||||
* [Simple Icons](https://github.com/simple-icons/simple-icons)
|
||||
* [Animate.css](https://daneden.github.io/animate.css/)
|
||||
* [autocomplete.js](https://github.com/algolia/autocomplete.js)
|
||||
* [autocomplete-js](https://github.com/algolia/autocomplete)
|
||||
* [Lunr.js](https://lunrjs.com/)
|
||||
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
|
||||
* [Fuse.js](https://fusejs.io/)
|
||||
* [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
* [object-fit-images](https://github.com/fregante/object-fit-images)
|
||||
* [Twemoji](https://github.com/twitter/twemoji)
|
||||
* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js)
|
||||
* [emoji-data](https://github.com/iamcal/emoji-data)
|
||||
* [lightgallery](https://github.com/sachinchoolur/lightgallery)
|
||||
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
|
||||
* [TypeIt](https://typeitjs.com/)
|
||||
* [KaTeX](https://katex.org/)
|
||||
* [mermaid](https://github.com/knsv/mermaid)
|
||||
* [mermaid](https://github.com/mermaid-js/mermaid)
|
||||
* [ECharts](https://echarts.apache.org/)
|
||||
* [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
* [APlayer](https://github.com/MoePlayer/APlayer)
|
||||
@@ -242,13 +214,42 @@ Thanks to the authors of following resources included in the theme:
|
||||
* [Valine](https://valine.js.org/)
|
||||
* [cookieconsent](https://github.com/osano/cookieconsent)
|
||||
* [cell-watermark](https://github.com/Lruihao/watermark)
|
||||
* [不蒜子](http://busuanzi.ibruce.info/)
|
||||
* [pangu.js](https://github.com/vinta/pangu.js)
|
||||
* [Artalk](https://artalk.js.org/)
|
||||
* [Waline](https://waline.js.org/)
|
||||
* [Twikoo](https://twikoo.js.org/)
|
||||
* [github-corners](https://github.com/tholman/github-corners)
|
||||
* [giscus](https://giscus.app/)
|
||||
* [crypto-js](https://github.com/brix/crypto-js)
|
||||
* [vConsole](https://github.com/Tencent/vConsole)
|
||||
* [eruda](https://github.com/liriliri/eruda)
|
||||
* [pace](https://github.com/CodeByZach/pace)
|
||||
|
||||
</details>
|
||||
|
||||
<details open>
|
||||
<summary>The FixIt also draws on some features of the following projects, and thanks to their authors as well:</summary>
|
||||
|
||||
* [DoIt](https://github.com/HEIGE-PCloud/DoIt)
|
||||
* [NexT](https://github.com/next-theme/hexo-theme-next)
|
||||
|
||||
</details>
|
||||
|
||||
## License
|
||||
|
||||
FixIt is licensed under the **MIT** license. Check the [LICENSE file](LICENSE) for details.
|
||||
|
||||
## Author
|
||||
|
||||
[Lruihao](https://lruihao.cn)
|
||||
|
||||
## Sponsor
|
||||
|
||||
If you enjoy the theme, please consider buying me a coffee ☕️.
|
||||
|
||||
* [PayPal](https://paypal.me/Lruihao)
|
||||
* [Alipay](images/alipay.gif)
|
||||
* [Wechat](images/wechatpay.gif)
|
||||
|
||||
Thanks! ❤️
|
||||
|
||||
+85
-81
@@ -1,21 +1,18 @@
|
||||
# FixIt 主题 | Hugo
|
||||
|
||||
[](https://github.com/Lruihao/FixIt/releases)
|
||||
[](https://github.com/Lruihao/FixIt/compare/v0.2.10...master)
|
||||
[](https://gohugo.io/)
|
||||
[](https://github.com/Lruihao/FixIt/blob/master/LICENSE)
|
||||
[](https://github.com/hugo-fixit/FixIt/releases)
|
||||
[](https://gohugo.io/)
|
||||
[](/LICENSE)
|
||||
|
||||
[English README](https://github.com/Lruihao/FixIt/blob/master/README.md) | 简体中文说明
|
||||
👉 [English README](README.md) | 简体中文说明
|
||||
|
||||
> [FixIt](https://github.com/Lruihao/FixIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
|
||||
> [FixIt](https://github.com/hugo-fixit/FixIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
|
||||
|
||||
它的原型基于 [LoveIt 主题](https://github.com/dillonzq/LoveIt), [LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/Fastbyte01/KeepIt)。
|
||||
|
||||
[LoveIt 主题](https://github.com/dillonzq/LoveIt) 对我们来说是一个很棒的 Hugo 主题,很抱歉的是它的存储库已经停止维护很长一段时间了,所以我重建了一个名为 FixIt 的新主题,这样我可以更好地 **Fix It** 并使它用户体验更好。
|
||||
它的原型基于 [LoveIt 主题](https://github.com/dillonzq/LoveIt),[KeepIt 主题](https://github.com/Fastbyte01/KeepIt) 和 [LeaveIt 主题](https://github.com/liuzc/LeaveIt)。
|
||||
|
||||
FixIt 主题继承了这些主题的优秀功能,并在此基础上添加了新的功能与优化,请阅读 [为什么选择 FixIt](#为什么选择-FixIt) 来了解更多。
|
||||
|
||||

|
||||

|
||||
|
||||
## [立即开始](https://fixit.lruihao.cn/zh-cn/categories/documentation/)
|
||||
|
||||
@@ -23,20 +20,24 @@ FixIt 主题继承了这些主题的优秀功能,并在此基础上添加了
|
||||
|
||||
或者,在本地构建 [文档](https://fixit.lruihao.cn/zh-cn/):
|
||||
|
||||
> Gitee 镜像仓库:<https://gitee.com/lruihao/FixIt>
|
||||
|
||||
```bash
|
||||
hugo server --source=exampleSite
|
||||
git clone --recursive https://github.com/hugo-fixit/FixIt.git && cd FixIt
|
||||
|
||||
hugo server --source=docs
|
||||
```
|
||||
|
||||
当然,你也可以直接阅读 [FixIt 主题维基](https://github.com/Lruihao/FixIt/wiki)
|
||||
除此之外,还有 [FixIt 主题维基](https://github.com/hugo-fixit/FixIt/wiki)。
|
||||
|
||||
## 迁移和升级
|
||||
## 安装或迁移
|
||||
|
||||
如果你现在正在使用 LoveIt 主题(或者一些其他的主题),你可以很容易地迁移至 FixIt。
|
||||
|
||||
你可以将这个主题仓库添加为你的网站目录的子模块。
|
||||
你可以将这个主题仓库添加为你的网站目录的子模块。或者,您可以通过其他方式 [安装主题](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/#install-theme)。
|
||||
|
||||
```bash
|
||||
git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt
|
||||
git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt
|
||||
```
|
||||
|
||||
之后,你可以在站点目录通过这条命令来将主题更新至最新版本:
|
||||
@@ -45,12 +46,6 @@ git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt
|
||||
git submodule update --remote --merge
|
||||
```
|
||||
|
||||
或者在主题目录中使用 shell 命令 `fixit_checker.sh` 将主题更新至最新版本:
|
||||
|
||||
```bash
|
||||
sh fixit_checker.sh
|
||||
```
|
||||
|
||||
接着,前往 `config.toml` 并将默认主题更改为 `FixIt`。
|
||||
|
||||
```diff
|
||||
@@ -62,49 +57,26 @@ sh fixit_checker.sh
|
||||
|
||||
## 为什么选择 FixIt
|
||||
|
||||
* 自定义**标题栏(支持子菜单)**
|
||||
* 自定义 **CSS 样式**
|
||||
* 焕然一新的**主页**,已经兼容最新版 Hugo
|
||||
* 大量的**样式细节调整**,包括颜色、字体大小、边距、代码预览样式
|
||||
* 可读性更强的**深色模式**
|
||||
* 一些美观的 **CSS 动画**
|
||||
* 易用和自动展开的**文章目录**
|
||||
* 支持更多的**社交链接**、**网站分享**和**评论系统**
|
||||
* 支持基于 [Lunr.js](https://lunrjs.com/) 或 [algolia](https://www.algolia.com/) 的**搜索**
|
||||
* 一键**复制代码**到剪贴板
|
||||
* 支持基于 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法
|
||||
* 支持**上标注释**的扩展 Markdown 语法
|
||||
* 支持**分数**的扩展 Markdown 语法
|
||||
* 支持基于 [KaTeX](https://katex.org/) 的**数学公式**
|
||||
* 支持基于 [mermaid](https://github.com/knsv/mermaid) 的**图表**生成功能
|
||||
* 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化**生成功能
|
||||
* 支持基于 [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) 的 **Mapbox** 地图显示功能
|
||||
* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的内嵌**音乐播放器**
|
||||
* 支持内嵌 **Bilibili** 视频
|
||||
* 支持多种**注释**的 shortcode
|
||||
* 支持自定义样式的 shortcode
|
||||
* 支持所有第三方库的 **CDN**
|
||||
* 支持**渐进式网页应用**
|
||||
* 支持基于 [cell-watermark](https://github.com/Lruihao/watermark) 的**网页水印**
|
||||
* 支持基于 [pangu.js](https://github.com/vinta/pangu.js) 的**中文排版**
|
||||
* 支持**卡片式链接**的 shortcode
|
||||
* 支持**友情链接**的页面模板
|
||||
* ...
|
||||
FixIt 主题继承了 LoveIt 等主题的优秀功能,并在它们的基础上添加了新的功能与优化,详见 [特性](#特性)。除此之外,FixIt 主题还有以下优点:
|
||||
|
||||
所以,
|
||||
如果你更偏好 FixIt 主题的设计语言和自由度,
|
||||
如果你想便捷地使用扩展的 Font Awesome 图标,
|
||||
如果你想在文章内嵌数学公式、流程图、音乐或是 Bilibili 视频,
|
||||
那么,FixIt 主题可能是更适合你。
|
||||
* 完善的中英文官方文档
|
||||
* 社区支持:主题官网、Discussions 和官方 QQ 群
|
||||
* 持续积极地更新
|
||||
* 不断收纳各方的建议和想法
|
||||
* 高度开放主题可自定义部分
|
||||
|
||||
总之,如果你更偏好 FixIt 主题的设计语言和自由度,如果你和我一样喜欢个性化自定义主题,那么,FixIt 主题可能是更适合你。
|
||||
|
||||
## 谁在用 FixIt
|
||||
为了直观地浏览主题特性,这里有一些基于 **FixIt** 主题渲染的预览网站。
|
||||
|
||||
* [FixIt 主题官网](https://fixit.lruihao.cn/zh-cn/)
|
||||
* [FixIt 主题官网 - 预览](https://pre.fixit.lruihao.cn/zh-cn/)
|
||||
* [李瑞豪的博客](https://lruihao.cn)
|
||||
* [hiifong 的博客](https://52at.ml)
|
||||
* 你可以通过 [提交 PR](https://github.com/Lruihao/FixIt/pulls) 添加你的网站(例如:[#111](https://github.com/Lruihao/FixIt/pull/111))
|
||||
为了直观地浏览主题特性,这里有一些基于 **FixIt** 主题渲染的 [预览网站](https://fixit.lruihao.cn/zh-cn/friends/)。
|
||||
|
||||
| 站点 | 仓库 |
|
||||
| :----------------------------------------------------------- | :---------------------------------------------------------- |
|
||||
| [FixIt 主题官网](https://fixit.lruihao.cn), [FixIt 预览版](https://pre.fixit.lruihao.cn) | [hugo-fixit/docs](https://github.com/hugo-fixit/docs) |
|
||||
| [FixIt 博客模板 - Git](https://demo.fixit.lruihao.cn) | [hugo-fixit/hugo-fixit-blog-git](https://github.com/hugo-fixit/hugo-fixit-blog-git) |
|
||||
| [FixIt 博客模板 - Go](https://demo.fixit.lruihao.cn) | [hugo-fixit/hugo-fixit-blog-go](https://github.com/hugo-fixit/hugo-fixit-blog-go) |
|
||||
| [李瑞豪的博客](https://lruihao.cn) | [Lruihao/hugo-blog](https://github.com/Lruihao/hugo-blog) |
|
||||
|
||||
## 特性
|
||||
|
||||
@@ -114,7 +86,7 @@ sh fixit_checker.sh
|
||||
* 使用基于 JSON-LD 格式 的 **SEO SCHEMA** 文件进行 SEO 优化
|
||||
* 支持 **[Google Analytics](https://analytics.google.com/analytics)**
|
||||
* 支持 **[Fathom Analytics](https://usefathom.com/)**
|
||||
* 支持搜索引擎的**网站验证** (Google, Bind, Yandex and Baidu)
|
||||
* 支持搜索引擎的**网站验证** (Google, Bing, Yandex, Pinterest, Baidu, 360 and Sogou)
|
||||
* 支持所有第三方库的 **CDN**
|
||||
* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为**懒加载**
|
||||
|
||||
@@ -132,7 +104,7 @@ sh fixit_checker.sh
|
||||
|
||||
* 支持 **[Gravatar](https://gravatar.com)** 头像
|
||||
* 支持本地**头像**
|
||||
* 支持多达 **73** 种社交链接
|
||||
* 支持多达 **87** 种社交链接
|
||||
* 支持多达 **28** 种网站分享
|
||||
* 支持 **[Disqus](https://disqus.com)** 评论系统
|
||||
* 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统
|
||||
@@ -144,14 +116,19 @@ sh fixit_checker.sh
|
||||
* 支持 **[Utterances](https://utteranc.es/)** 评论系统
|
||||
* 支持 **[Artalk](https://artalk.js.org/)** 评论系统
|
||||
* 支持 **[Twikoo](https://twikoo.js.org/)** 评论系统
|
||||
* 支持 **[giscus](https://giscus.app/zh-CN/)** 评论系统
|
||||
|
||||
### 扩展功能
|
||||
|
||||
* 支持基于 [Lunr.js](https://lunrjs.com/) 或 [algolia](https://www.algolia.com/) 的**搜索**
|
||||
* 支持**渐进式网页应用**
|
||||
* 支持**二级菜单**
|
||||
* 支持**内容加密**(页面、局部)
|
||||
* 支持**友情链接**的页面模板
|
||||
* 支持基于 [Lunr.js](https://lunrjs.com/) 或 [algolia](https://www.algolia.com/) 或 [Fuse.js](https://fusejs.io/) 的**搜索**
|
||||
* 支持 **Twemoji**
|
||||
* 支持**代码高亮**
|
||||
* 一键**复制代码**到剪贴板
|
||||
* 支持基于 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 的**图片画廊**
|
||||
* 支持基于 [lightgallery](https://github.com/sachinchoolur/lightgallery) 的**图片画廊**
|
||||
* 支持 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法
|
||||
* 支持**上标注释**的扩展 Markdown 语法
|
||||
* 支持**分数**的扩展 Markdown 语法
|
||||
@@ -166,11 +143,8 @@ sh fixit_checker.sh
|
||||
* 支持**自定义脚本**的 shortcode
|
||||
* 支持基于 [TypeIt](https://typeitjs.com/) 的**打字动画** shortcode
|
||||
* 支持基于 [cookieconsent](https://github.com/osano/cookieconsent) 的 **Cookie 许可横幅**
|
||||
* 支持**渐进式网页应用**
|
||||
* 支持基于 [cell-watermark](https://github.com/Lruihao/watermark) 的**网页水印**
|
||||
* 支持基于 [pangu.js](https://github.com/vinta/pangu.js) 的**中文排版**
|
||||
* 支持**卡片式链接**的 shortcode
|
||||
* 支持**友情链接**的页面模板
|
||||
* ...
|
||||
|
||||
## 多语言和国际化
|
||||
@@ -190,49 +164,50 @@ FixIt 支持下列语言:
|
||||
* 俄语
|
||||
* 罗马尼亚语
|
||||
* 越南语
|
||||
* [贡献一种新的语言](https://github.com/Lruihao/FixIt/pulls)
|
||||
* [贡献一种新的语言](https://github.com/hugo-fixit/FixIt/pulls)
|
||||
|
||||
[语言兼容性](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/#language-compatibility)
|
||||
|
||||
## [路线图](https://github.com/Lruihao/FixIt/projects/1)
|
||||
## [路线图](https://github.com/hugo-fixit/FixIt/projects/1)
|
||||
|
||||
## [更新日志](https://github.com/Lruihao/FixIt/blob/master/CHANGELOG.md)
|
||||
## [更新日志](/CHANGELOG.md)
|
||||
|
||||
## 问题、想法、bugs 和 PRs
|
||||
|
||||
所有的反馈都是欢迎的!详见 [议题](https://github.com/Lruihao/FixIt/issues) 或者 [讨论](https://github.com/Lruihao/FixIt/discussions)。
|
||||
所有的反馈都是欢迎的!详见 [议题](https://github.com/hugo-fixit/FixIt/issues) 或者 [讨论](https://github.com/hugo-fixit/FixIt/discussions)。
|
||||
|
||||
## 参与贡献
|
||||
|
||||
请参阅 [CONTRIBUTING.md](/CONTRIBUTING.md) 以了解贡献该项目的基本信息。
|
||||
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解贡献该项目的基本信息。
|
||||
|
||||
确保在贡献和参与讨论时遵守 [CODE_OF_CONDUCT.md](/CODE_OF_CONDUCT.md)。
|
||||
确保在贡献和参与讨论时遵守 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。
|
||||
|
||||
**贡献时,请先通过此存储库上的问题讨论您希望进行的更改,然后再进行实际更改**。
|
||||
|
||||
## [所有贡献者](/contributors.md)
|
||||
## [所有贡献者](contributors.md)
|
||||
|
||||
## 许可协议
|
||||
## 致谢
|
||||
|
||||
FixIt 根据 **MIT** 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/Lruihao/FixIt/blob/master/LICENSE)。
|
||||
|
||||
FixIt 主题中用到了以下项目,感谢它们的作者:
|
||||
<details open>
|
||||
<summary>FixIt 主题中用到了以下项目,感谢它们的作者:</summary>
|
||||
|
||||
* [normalize.css](https://github.com/necolas/normalize.css)
|
||||
* [Font Awesome](https://fontawesome.com/)
|
||||
* [Simple Icons](https://github.com/simple-icons/simple-icons)
|
||||
* [Animate.css](https://daneden.github.io/animate.css/)
|
||||
* [autocomplete.js](https://github.com/algolia/autocomplete.js)
|
||||
* [autocomplete-js](https://github.com/algolia/autocomplete)
|
||||
* [Lunr.js](https://lunrjs.com/)
|
||||
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
|
||||
* [Fuse.js](https://fusejs.io/)
|
||||
* [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
* [object-fit-images](https://github.com/fregante/object-fit-images)
|
||||
* [Twemoji](https://github.com/twitter/twemoji)
|
||||
* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js)
|
||||
* [emoji-data](https://github.com/iamcal/emoji-data)
|
||||
* [lightgallery](https://github.com/sachinchoolur/lightgallery)
|
||||
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
|
||||
* [TypeIt](https://typeitjs.com/)
|
||||
* [KaTeX](https://katex.org/)
|
||||
* [mermaid](https://github.com/knsv/mermaid)
|
||||
* [mermaid](https://github.com/mermaid-js/mermaid)
|
||||
* [ECharts](https://echarts.apache.org/)
|
||||
* [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
* [APlayer](https://github.com/MoePlayer/APlayer)
|
||||
@@ -241,13 +216,42 @@ FixIt 主题中用到了以下项目,感谢它们的作者:
|
||||
* [Valine](https://valine.js.org/)
|
||||
* [cookieconsent](https://github.com/osano/cookieconsent)
|
||||
* [cell-watermark](https://github.com/Lruihao/watermark)
|
||||
* [不蒜子](http://busuanzi.ibruce.info/)
|
||||
* [pangu.js](https://github.com/vinta/pangu.js)
|
||||
* [Artalk](https://artalk.js.org/)
|
||||
* [Waline](https://waline.js.org/)
|
||||
* [Twikoo](https://twikoo.js.org/)
|
||||
* [github-corners](https://github.com/tholman/github-corners)
|
||||
* [giscus](https://giscus.app/zh-CN)
|
||||
* [crypto-js](https://github.com/brix/crypto-js)
|
||||
* [vConsole](https://github.com/Tencent/vConsole)
|
||||
* [eruda](https://github.com/liriliri/eruda)
|
||||
* [pace](https://github.com/CodeByZach/pace)
|
||||
|
||||
</details>
|
||||
|
||||
<details open>
|
||||
<summary>FixIt 主题还借鉴了以下项目的部分功能,同样感谢它们的作者:</summary>
|
||||
|
||||
* [DoIt](https://github.com/HEIGE-PCloud/DoIt)
|
||||
* [NexT](https://github.com/next-theme/hexo-theme-next)
|
||||
|
||||
</details>
|
||||
|
||||
## 许可协议
|
||||
|
||||
FixIt 根据 **MIT** 许可协议授权。 更多信息请查看 [LICENSE 文件](LICENSE)。
|
||||
|
||||
## 作者
|
||||
|
||||
[Lruihao](https://lruihao.cn)
|
||||
|
||||
## 赞助支持
|
||||
|
||||
如果你喜爱这个主题,请考虑给我买杯咖啡 ☕️.
|
||||
|
||||
* [PayPal](https://paypal.me/Lruihao)
|
||||
* [支付宝](images/alipay.gif)
|
||||
* [微信支付](images/wechatpay.gif)
|
||||
|
||||
谢谢!❤️
|
||||
|
||||
@@ -6,7 +6,7 @@ date: {{ .Date }}
|
||||
description: "{{ .Site.Author.name }}'s friends"
|
||||
keywords:
|
||||
- Hugo
|
||||
- friends tempalate
|
||||
- friends template
|
||||
comment: false
|
||||
---
|
||||
|
||||
@@ -26,6 +26,6 @@ comment: false
|
||||
|
||||
{{< admonition info "Notice" true >}}
|
||||
1. If you want to exchange link, please leave a comment in the above format. (personal non-commercial blogs / websites only)
|
||||
2. :(fas fa-exclamation-triangle): Website failure, stop maintenance and improper content may be unlinked!
|
||||
2. :(fa-solid fa-exclamation-triangle): Website failure, stop maintenance and improper content may be unlinked!
|
||||
3. Those websites that do not respect other people's labor achievements, reprint without source, or malicious acts, please do not come to exchange.
|
||||
{{< /admonition >}}
|
||||
|
||||
@@ -35,7 +35,11 @@ lightgallery: false
|
||||
seo:
|
||||
images: []
|
||||
|
||||
# See details front matter: /theme-documentation-content/#front-matter
|
||||
repost:
|
||||
enable: true
|
||||
url: ""
|
||||
|
||||
# See details front matter: https://fixit.lruihao.cn/theme-documentation-content/#front-matter
|
||||
---
|
||||
|
||||
<!--more-->
|
||||
+5
-1
@@ -35,7 +35,11 @@ lightgallery: false
|
||||
seo:
|
||||
images: []
|
||||
|
||||
# See details front matter: /theme-documentation-content/#front-matter
|
||||
repost:
|
||||
enable: true
|
||||
url: ""
|
||||
|
||||
# See details front matter: https://fixit.lruihao.cn/theme-documentation-content/#front-matter
|
||||
---
|
||||
|
||||
<!--more-->
|
||||
|
||||
+23
-12
@@ -1,3 +1,5 @@
|
||||
@import "../../lib/normalize/normalize";
|
||||
|
||||
html {
|
||||
font-family: $global-font-family;
|
||||
font-weight: $global-font-weight;
|
||||
@@ -33,7 +35,7 @@ html {
|
||||
::selection {
|
||||
background-color: $selection-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $selection-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -44,25 +46,34 @@ body {
|
||||
@include overflow-wrap(break-word);
|
||||
scrollbar-color: auto;
|
||||
|
||||
&[theme='dark'] {
|
||||
&[data-theme='dark'] {
|
||||
color: $global-font-color-dark;
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
@include object-fit(contain);
|
||||
@include border-radius($global-border-radius/2);
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 0;
|
||||
@include border-radius($global-border-radius);
|
||||
}
|
||||
|
||||
@include ms;
|
||||
[role='button'] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
summary {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
abbr[title] {
|
||||
cursor: help;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
@import '../_partial/mask';
|
||||
@import '../_partial/icon';
|
||||
@import '../_partial/details';
|
||||
@import '../_partial/_widgets';
|
||||
@import '../_partials/mask';
|
||||
@import '../_partials/img';
|
||||
@import '../_partials/icon';
|
||||
@import '../_partials/details';
|
||||
@import '../_partials/widgets';
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.d-none,
|
||||
.d-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-none-desktop {
|
||||
display: none;
|
||||
}
|
||||
@@ -26,15 +28,39 @@
|
||||
display: block;
|
||||
}
|
||||
|
||||
.ms-1 {
|
||||
.ms-1,
|
||||
.mx-1 {
|
||||
margin-left: 0.25rem !important;
|
||||
}
|
||||
.me-1 {
|
||||
.me-1,
|
||||
.mx-1 {
|
||||
margin-right: 0.25rem !important;
|
||||
}
|
||||
.ps-1 {
|
||||
.ps-1,
|
||||
.px-1 {
|
||||
padding-left: 0.25rem !important;
|
||||
}
|
||||
.pe-1 {
|
||||
.pe-1,
|
||||
.px-1 {
|
||||
padding-right: 0.25rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
@each $color, $value in $theme-colors {
|
||||
.text-#{$color} {
|
||||
color: #{$value} !important;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: #{darken($value, 5%)} !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $key, $value in $orders {
|
||||
.order-#{$key} {
|
||||
order: #{$value} !important;
|
||||
}
|
||||
}
|
||||
|
||||
.variant-numeric {
|
||||
font-variant-numeric: tabular-nums lining-nums;
|
||||
}
|
||||
@@ -6,6 +6,8 @@ footer {
|
||||
padding: 1rem 0;
|
||||
|
||||
.footer-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 0.875rem;
|
||||
|
||||
.footer-line {
|
||||
@@ -4,7 +4,7 @@ header {
|
||||
background-color: $header-background-color;
|
||||
@include transition(box-shadow 0.3s ease);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $header-background-color-dark;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ header {
|
||||
min-height: 1.5em;
|
||||
height: 1.5em;
|
||||
vertical-align: middle;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.header-title-text {
|
||||
@@ -60,7 +61,7 @@ header {
|
||||
font-size: .875em;
|
||||
color: $global-font-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-color-dark;
|
||||
}
|
||||
|
||||
@@ -75,11 +76,16 @@ header {
|
||||
font-weight: bold;
|
||||
color: $menu-active-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $menu-active-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.language,
|
||||
&.theme-switch {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +139,7 @@ header {
|
||||
padding: 0 2rem 0 2rem;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
input {
|
||||
color: $global-font-color-dark;
|
||||
background-color: $search-background-color-dark;
|
||||
@@ -147,7 +153,7 @@ header {
|
||||
.search-button {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -162,8 +168,15 @@ header {
|
||||
}
|
||||
}
|
||||
|
||||
.theme-switch i {
|
||||
@include transform(rotate(225deg));
|
||||
.theme-switch {
|
||||
i {
|
||||
@include transform(rotate(225deg));
|
||||
@include transition(transform 0.4s ease);
|
||||
}
|
||||
|
||||
&:hover i {
|
||||
@include transform(rotate(45deg));
|
||||
}
|
||||
}
|
||||
|
||||
#header-desktop {
|
||||
@@ -174,7 +187,7 @@ header {
|
||||
line-height: $header-height;
|
||||
box-sizing: border-box;
|
||||
|
||||
[header-desktop='normal'] & {
|
||||
[data-header-desktop='normal'] & {
|
||||
position: static;
|
||||
}
|
||||
|
||||
@@ -188,7 +201,7 @@ header {
|
||||
padding: 0 2rem 0 MAX(10vh, $header-height);
|
||||
height: 100%;
|
||||
|
||||
&[github-corner='right'] {
|
||||
&[data-github-corner='right'] {
|
||||
padding-right: $header-height;
|
||||
}
|
||||
|
||||
@@ -206,6 +219,7 @@ header {
|
||||
>.menu-item:hover {
|
||||
& .sub-menu {
|
||||
display: block;
|
||||
transform: translateX(-0.5rem);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,7 +232,7 @@ header {
|
||||
padding: 0;
|
||||
border-left: 1px dashed lighten($global-font-secondary-color, 20%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-left-color: darken($global-font-secondary-color-dark, 20%);
|
||||
}
|
||||
}
|
||||
@@ -240,7 +254,7 @@ header {
|
||||
background-color: $header-background-color;
|
||||
@include transition(box-shadow 0.3s ease);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $header-background-color-dark;
|
||||
border-color: $global-border-color-dark;
|
||||
}
|
||||
@@ -273,7 +287,7 @@ header {
|
||||
min-height: $header-height;
|
||||
line-height: $header-height;
|
||||
|
||||
[header-mobile='normal'] & {
|
||||
[data-header-mobile='normal'] & {
|
||||
position: static;
|
||||
}
|
||||
|
||||
@@ -304,7 +318,7 @@ header {
|
||||
@include border-radius(3px);
|
||||
@include transition(all 0.3s ease-in-out);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: $global-font-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -381,7 +395,7 @@ header {
|
||||
&:hover {
|
||||
background-color: lighten($global-font-secondary-color, 24%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: darken($global-font-secondary-color-dark, 24%);
|
||||
}
|
||||
}
|
||||
@@ -430,7 +444,7 @@ header {
|
||||
.menu-item:hover {
|
||||
background-color: lighten($global-font-secondary-color, 20%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: darken($global-font-secondary-color-dark, 20%);
|
||||
}
|
||||
}
|
||||
@@ -440,7 +454,7 @@ header {
|
||||
display: block;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: $header-background-color-dark;
|
||||
border-top-color: $global-border-color-dark;
|
||||
}
|
||||
@@ -487,7 +501,7 @@ header {
|
||||
right: 0 !important;
|
||||
background-color: $global-background-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
|
||||
@@ -514,7 +528,7 @@ header {
|
||||
text-align: right;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -528,7 +542,7 @@ header {
|
||||
@include overflow-wrap(break-word);
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -537,7 +551,7 @@ header {
|
||||
font-style: normal;
|
||||
background-color: $selection-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $selection-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -545,7 +559,7 @@ header {
|
||||
&.cursor {
|
||||
background: darken($code-background-color, 5%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: lighten($code-background-color-dark, 5%);
|
||||
}
|
||||
}
|
||||
@@ -563,7 +577,7 @@ header {
|
||||
.search-query {
|
||||
font-weight: bold;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
@@ -575,7 +589,7 @@ header {
|
||||
font-size: 0.8rem;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] {
|
||||
[data-theme='dark'] {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
padding: 0 1rem;
|
||||
|
||||
&:has(.home:not(.posts)) {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
&.container-reverse {
|
||||
@@ -25,3 +29,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@import "_core/header";
|
||||
@import "_core/footer";
|
||||
@import "_core/pagination";
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
.page {
|
||||
width: 60%;
|
||||
|
||||
[page-style='wide'] & {
|
||||
[data-page-style='wide'] & {
|
||||
width: 64%;
|
||||
}
|
||||
|
||||
[page-style='narrow'] & {
|
||||
[data-page-style='narrow'] & {
|
||||
max-width: 800px;
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,11 @@
|
||||
aside {
|
||||
width: 20%;
|
||||
|
||||
[page-style='wide'] & {
|
||||
[data-page-style='wide'] & {
|
||||
width: 18%;
|
||||
}
|
||||
|
||||
[page-style='narrow'] & {
|
||||
[data-page-style='narrow'] & {
|
||||
width: calc(50% - 400px);
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@
|
||||
.page {
|
||||
width: 56%;
|
||||
|
||||
[page-style='wide'] & {
|
||||
[data-page-style='wide'] & {
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
@@ -36,7 +36,7 @@
|
||||
aside {
|
||||
width: 22%;
|
||||
|
||||
[page-style='wide'] & {
|
||||
[data-page-style='wide'] & {
|
||||
width: 20%;
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@
|
||||
.page {
|
||||
width: 52%;
|
||||
|
||||
[page-style='wide'] & {
|
||||
[data-page-style='wide'] & {
|
||||
width: 56%;
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@
|
||||
aside {
|
||||
width: 24%;
|
||||
|
||||
[page-style='wide'] & {
|
||||
[data-page-style='wide'] & {
|
||||
width: 22%;
|
||||
}
|
||||
}
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
.content {
|
||||
[id] {
|
||||
[header-mobile='normal'] & {
|
||||
[data-header-mobile='normal'] & {
|
||||
scroll-margin-top: 0;
|
||||
}
|
||||
}
|
||||
@@ -123,6 +123,10 @@
|
||||
font-size: 0.618rem;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .page-item {
|
||||
margin: 0 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only print {
|
||||
@@ -163,7 +167,7 @@
|
||||
.post-info-share,
|
||||
.post-info-more section:last-child,
|
||||
.post-nav,
|
||||
#fixed-buttons,
|
||||
.fixed-buttons,
|
||||
#comments,
|
||||
.github-corner {
|
||||
display: none !important;
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
list-style: none;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
padding: 1rem 0 0;
|
||||
padding: 1rem 0;
|
||||
|
||||
a {
|
||||
font-size: 0.8rem;
|
||||
@@ -16,14 +17,14 @@
|
||||
text-decoration: none;
|
||||
@include transition(0.3s);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $pagination-link-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
padding-bottom: 3px;
|
||||
margin: 0 20px;
|
||||
padding: 5px;
|
||||
margin: 0 10px;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: inline;
|
||||
@@ -36,12 +37,12 @@
|
||||
color: $pagination-link-hover-color;
|
||||
}
|
||||
|
||||
[theme='dark'] &:hover a {
|
||||
[data-theme='dark'] &:hover a {
|
||||
color: $pagination-link-hover-color-dark;
|
||||
}
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
&::before,
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 0;
|
||||
@@ -51,27 +52,22 @@
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
[theme='dark'] &:before,
|
||||
[theme='dark'] &:after {
|
||||
[data-theme='dark'] &::before,
|
||||
[data-theme='dark'] &::after {
|
||||
background: $pagination-link-hover-color-dark;
|
||||
}
|
||||
|
||||
&:before .active,
|
||||
&:after .active {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:before {
|
||||
&::before {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
&:after {
|
||||
&::after {
|
||||
right: 50%;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
&:before,
|
||||
&:after {
|
||||
&::before,
|
||||
&::after {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
@@ -81,13 +77,13 @@
|
||||
color: $pagination-link-hover-color;
|
||||
}
|
||||
|
||||
[theme='dark'] & a {
|
||||
[data-theme='dark'] & a {
|
||||
color: $pagination-link-hover-color-dark;
|
||||
}
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
width: 60%;
|
||||
&::before,
|
||||
&::after {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
:root {
|
||||
// Note: Custom variable values only support SassScript inside `#{}`.
|
||||
|
||||
// Theme colors varibles
|
||||
@each $color, $value in $theme-colors {
|
||||
--#{$prefix}#{$color}: #{$value};
|
||||
}
|
||||
@each $color, $value in $theme-colors {
|
||||
--#{$prefix}#{$color}-dark: #{darken($value, 5%)};
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
@mixin transform($value) {
|
||||
-webkit-transform: $value;
|
||||
-moz-transform: $value;
|
||||
-ms-transform: $value;
|
||||
-o-transform: $value;
|
||||
transform: $value;
|
||||
@@ -26,8 +25,6 @@
|
||||
|
||||
@mixin filter($value) {
|
||||
-webkit-filter: $value;
|
||||
-moz-filter: $value;
|
||||
-ms-filter: $value;
|
||||
filter: $value;
|
||||
}
|
||||
|
||||
@@ -97,12 +94,6 @@
|
||||
line-break: $value;
|
||||
}
|
||||
|
||||
@mixin ms {
|
||||
input::-ms-clear {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin object-fit($value) {
|
||||
-o-object-fit: $value;
|
||||
object-fit: $value;
|
||||
|
||||
@@ -4,19 +4,43 @@
|
||||
a::after {
|
||||
text-decoration: none;
|
||||
|
||||
color: if($light, $global-link-color, $single-link-color);
|
||||
@if $light {
|
||||
color: $global-link-color;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
color: if($dark, $global-link-color-dark, $single-link-color-dark);
|
||||
@else {
|
||||
color: $single-link-color;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
@if $dark {
|
||||
color: $global-link-color-dark;
|
||||
}
|
||||
|
||||
@else {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
color: if($light, $global-link-hover-color, $single-link-hover-color);
|
||||
@if $light {
|
||||
color: $global-link-hover-color;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
color: if($dark, $global-link-hover-color-dark, $single-link-hover-color-dark);
|
||||
@else {
|
||||
color: $single-link-hover-color;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
@if $dark {
|
||||
color: $global-link-hover-color-dark;
|
||||
}
|
||||
|
||||
@else {
|
||||
color: $single-link-hover-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,27 @@
|
||||
.archive {
|
||||
.single-title {
|
||||
padding: 1rem 0 0.5rem;
|
||||
margin: 0;
|
||||
font-size: 1.6rem;
|
||||
font-weight: bold;
|
||||
line-height: 140%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.single-subtitle {
|
||||
margin: 0.5rem 0;
|
||||
font-size: 1.2rem;
|
||||
font-weight: normal;
|
||||
line-height: 100%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-title {
|
||||
font-size: 1.2rem;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
@import '../_partial/_archive/terms';
|
||||
@import '../_partial/_archive/tags';
|
||||
@import '../_partials/_archive/terms';
|
||||
@import '../_partials/_archive/tags';
|
||||
}
|
||||
|
||||
+18
-13
@@ -1,7 +1,5 @@
|
||||
.home {
|
||||
.home-profile {
|
||||
@include transform(translateY(16vh));
|
||||
padding: 0 0 0.5rem;
|
||||
text-align: center;
|
||||
|
||||
.home-avatar {
|
||||
@@ -59,17 +57,16 @@
|
||||
padding: 0.5rem;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.home[posts] {
|
||||
.home.posts {
|
||||
.home-profile {
|
||||
@include transform(translateY(0));
|
||||
padding-top: 2rem;
|
||||
padding: 2rem 0;
|
||||
}
|
||||
|
||||
.home-avatar img {
|
||||
@@ -82,7 +79,11 @@
|
||||
color: $global-font-color;
|
||||
border-bottom: 1px dashed $global-border-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
&:first-of-type {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-color-dark;
|
||||
border-bottom: 1px dashed $global-border-color-dark;
|
||||
}
|
||||
@@ -100,11 +101,10 @@
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
@include object-fit(none);
|
||||
}
|
||||
|
||||
img.lazyloaded {
|
||||
@include object-fit(cover);
|
||||
&.lazyloaded {
|
||||
@include object-fit(cover);
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@@ -128,7 +128,7 @@
|
||||
@include overflow-wrap(break-word);
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
strong {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -177,6 +177,11 @@
|
||||
padding: 0;
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
.post-tag:not(:last-child)::after {
|
||||
content: ',';
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
[id] {
|
||||
scroll-margin-top: $header-height;
|
||||
|
||||
[header-desktop='normal'] & {
|
||||
[data-header-desktop='normal'] & {
|
||||
scroll-margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@import '../_partial/_single/toc';
|
||||
@import '../_partials/_single/toc';
|
||||
@import '../_partials/_single/fixit-decryptor';
|
||||
|
||||
.single {
|
||||
.single-title {
|
||||
@@ -7,13 +8,23 @@
|
||||
font-size: 1.6rem;
|
||||
font-weight: bold;
|
||||
line-height: 140%;
|
||||
|
||||
.icon-repost {
|
||||
color: var(--#{$prefix}success);
|
||||
display: inline-block;
|
||||
width: max-content;
|
||||
margin-right: 0.25rem;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: var(--#{$prefix}success-dark);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.single-subtitle {
|
||||
margin: 0.4rem 0;
|
||||
margin: 0.5rem 0;
|
||||
font-size: 1.2rem;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
@@ -25,7 +36,7 @@
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@@ -44,7 +55,7 @@
|
||||
object-position: center;
|
||||
@include object-fit(cover);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-color: $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -60,13 +71,22 @@
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
img.lazyloaded {
|
||||
width: 100%;
|
||||
&.lazyloaded {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#content[data-end-flag]:not([data-password])::after {
|
||||
content: attr(data-end-flag);
|
||||
display: block;
|
||||
text-align: center;
|
||||
color: $global-font-secondary-color;
|
||||
font-size: 15px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.content {
|
||||
> h1,
|
||||
> h2 {
|
||||
@@ -109,7 +129,7 @@
|
||||
font-weight: bold;
|
||||
margin: 1.2rem 0;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
@@ -124,7 +144,7 @@
|
||||
margin-right: 0.3125rem;
|
||||
color: $single-link-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -142,7 +162,7 @@
|
||||
strong {
|
||||
font-weight: bold;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
@@ -153,14 +173,14 @@
|
||||
white-space: normal;
|
||||
@include overflow-wrap(break-word);
|
||||
|
||||
[theme='dark'] & b,
|
||||
[theme='dark'] & strong {
|
||||
[data-theme='dark'] & b,
|
||||
[data-theme='dark'] & strong {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
[theme='dark'] a:hover b,
|
||||
[theme='dark'] a:hover strong {
|
||||
[data-theme='dark'] a:hover b,
|
||||
[data-theme='dark'] a:hover strong {
|
||||
color: $single-link-hover-color-dark;
|
||||
}
|
||||
|
||||
@@ -181,7 +201,7 @@
|
||||
color: $global-font-secondary-color;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: $code-background-color-dark;
|
||||
|
||||
rt {
|
||||
@@ -196,7 +216,7 @@
|
||||
&::-webkit-scrollbar {
|
||||
background-color: $table-background-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $table-background-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -209,14 +229,14 @@
|
||||
background: $table-background-color;
|
||||
border-collapse: collapse;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: $table-background-color-dark;
|
||||
}
|
||||
|
||||
thead {
|
||||
background: $table-thead-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $table-thead-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -225,7 +245,7 @@
|
||||
& tr:nth-child(odd) {
|
||||
background: darken($table-background-color, 2.25%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: lighten($table-background-color-dark, 2.75%);
|
||||
}
|
||||
}
|
||||
@@ -233,7 +253,7 @@
|
||||
& tr:hover {
|
||||
background: darken($table-background-color, 4.5%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: lighten($table-background-color-dark, 5.5%);
|
||||
}
|
||||
}
|
||||
@@ -244,7 +264,7 @@
|
||||
padding: 0.3rem 1rem;
|
||||
border: 1px solid darken($table-thead-color, 2%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-color: darken($table-thead-color-dark, 2%);
|
||||
}
|
||||
}
|
||||
@@ -254,6 +274,13 @@
|
||||
img {
|
||||
max-width: 100%;
|
||||
min-height: 1em;
|
||||
|
||||
&:not([data-h]) {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
svg {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
figure {
|
||||
@@ -272,14 +299,13 @@
|
||||
|
||||
img {
|
||||
display: block;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.lazyloading {
|
||||
@include object-fit(none);
|
||||
&.lazyloaded:not([data-w]) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
@@ -294,7 +320,7 @@
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $blockquote-color-dark;
|
||||
border-left-color: $global-border-color-dark;
|
||||
}
|
||||
@@ -305,7 +331,7 @@
|
||||
.footnotes {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@@ -314,8 +340,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
@import '../_partial/_single/code';
|
||||
@import '../_shortcodes/index';
|
||||
@import '../_partials/_single/code';
|
||||
@import '../_shortcodes';
|
||||
|
||||
hr {
|
||||
margin: 1rem 0;
|
||||
@@ -323,7 +349,7 @@
|
||||
border-top: 1px dashed $global-border-color;
|
||||
border-bottom: none;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-top: 1px dashed $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -340,7 +366,7 @@
|
||||
font-family: $code-font-family;
|
||||
color: $code-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $global-background-color-dark;
|
||||
border: 1px solid $global-border-color-dark;
|
||||
border-bottom-color: $global-border-color-dark;
|
||||
@@ -349,24 +375,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
.typeit {
|
||||
.code {
|
||||
padding: 0.375rem;
|
||||
font-size: 0.875rem;
|
||||
font-family: $code-font-family;
|
||||
font-weight: bold;
|
||||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
|
||||
.version {
|
||||
height: 1.25em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
}
|
||||
|
||||
@import '../_partial/_single/footer';
|
||||
@import '../_partial/_single/comment';
|
||||
@import '../_partials/_single/reward';
|
||||
@import '../_partials/_single/footer';
|
||||
@import '../_partials/_single/comment';
|
||||
}
|
||||
|
||||
.lg-toolbar .lg-icon::after {
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
.tag-cloud-tags {
|
||||
margin: 10px 0;
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin: 5px 10px;
|
||||
@include overflow-wrap(break-word);
|
||||
@include transition(all ease-out 0.3s);
|
||||
|
||||
&:active,
|
||||
&:focus,
|
||||
&:hover {
|
||||
@include transform(scale(1.2));
|
||||
}
|
||||
|
||||
sup {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
#comments {
|
||||
padding: 8rem 0 2rem;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
@import '_cookieconsent';
|
||||
@import '_fixed-button';
|
||||
@import '_github-corner';
|
||||
@@ -0,0 +1,69 @@
|
||||
.tag-cloud-tags {
|
||||
margin: 10px 0;
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin: 5px 10px;
|
||||
@include overflow-wrap(break-word);
|
||||
@include transition(all ease-out 0.3s);
|
||||
|
||||
&:active,
|
||||
&:focus,
|
||||
&:hover {
|
||||
@include transform(scale(1.2));
|
||||
|
||||
sup {
|
||||
color: $global-font-color;
|
||||
@include transition(all ease-out 0.3s);
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sup {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@for $grade from 0 through 10 {
|
||||
$tag-cloud-color: mix($tag-cloud-end, $tag-cloud-start, $grade * 10);
|
||||
$tag-cloud-color-dark: mix($tag-cloud-end-dark, $tag-cloud-start-dark, $grade * 10);
|
||||
|
||||
.tag-cloud-#{$grade} {
|
||||
color: $tag-cloud-color!important;
|
||||
font-size: var(--tag-font);
|
||||
margin: 10px!important;
|
||||
|
||||
&:active,
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: $global-link-hover-color!important;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $global-link-hover-color-dark;
|
||||
}
|
||||
|
||||
sup {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $tag-cloud-color-dark!important;
|
||||
}
|
||||
|
||||
sup {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -60,7 +60,7 @@
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-link-color-dark;
|
||||
|
||||
&:hover {
|
||||
@@ -75,7 +75,7 @@
|
||||
white-space: nowrap;
|
||||
font-variant-numeric: tabular-nums lining-nums;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
color: $global-font-secondary-color;
|
||||
@include transition(transform 0.2s ease);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
img {
|
||||
@include border-radius($global-border-radius/2);
|
||||
|
||||
&.lazyload,
|
||||
&.lazyloading {
|
||||
@include object-fit(scale-down);
|
||||
}
|
||||
|
||||
&.lazyloaded {
|
||||
@include object-fit(contain);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// Color map of admonition [$type $color $background-color, ... ]
|
||||
$admonition-color-map:
|
||||
'note' #448aff rgba(68, 138, 255, 0.1),
|
||||
'abstract' #00b0ff rgba(0, 176, 255, 0.1),
|
||||
'info' #00b8d4 rgba(0, 184, 212, 0.1),
|
||||
'tip' #00bfa5 rgba(0, 191, 165, 0.1),
|
||||
'success' #00c853 rgba(0, 200, 83, 0.1),
|
||||
'question' #64dd17 rgba(100, 221, 23, 0.1),
|
||||
'warning' #ff9100 rgba(255, 145, 0, 0.1),
|
||||
'failure' #ff5252 rgba(255, 82, 82, 0.1),
|
||||
'danger' #ff1744 rgba(255, 23, 68, 0.1),
|
||||
'bug' #f50057 rgba(245, 0, 87, 0.1),
|
||||
'example' #651fff rgba(101, 31, 255, 0.1),
|
||||
'quote' #9e9e9e rgba(159, 159, 159, 0.1)
|
||||
!default;
|
||||
@@ -0,0 +1,157 @@
|
||||
// Color map of the code highlight
|
||||
$code-highlight-color-map: (
|
||||
/* Error */ 'err': $code-error-color,
|
||||
/* Keyword */ 'k': #cf222e,
|
||||
/* KeywordConstant */ 'kc': #0550ae,
|
||||
/* KeywordDeclaration */ 'kd': #cf222e,
|
||||
/* KeywordNamespace */ 'kn': #cf222e,
|
||||
/* KeywordPseudo */ 'kp': #cf222e,
|
||||
/* KeywordReserved */ 'kr': #cf222e,
|
||||
/* KeywordType */ 'kt': #cf222e,
|
||||
/* Name */ 'n': $code-color,
|
||||
/* NameAttribute */ 'na': #0550ae,
|
||||
/* NameBuiltin */ 'nb': #0550ae,
|
||||
/* NameBuiltinPseudo */ 'bp': $code-color,
|
||||
/* NameClass */ 'nc': #8250df,
|
||||
/* NameConstant */ 'no': #cf222e,
|
||||
/* NameDecorator */ 'nd': #8250df,
|
||||
/* NameEntity */ 'ni': #0550ae,
|
||||
/* NameException */ 'ne': #0550ae,
|
||||
/* NameFunction */ 'nf': #0550ae,
|
||||
/* NameFunctionMagic */ 'fm': #0550ae,
|
||||
/* NameLabel */ 'nl': #0550ae,
|
||||
/* NameNamespace */ 'nn': #8250df,
|
||||
/* NameOther */ 'nx': #0550ae,
|
||||
/* NameProperty */ 'py': #0550ae,
|
||||
/* NameTag */ 'nt': #116329,
|
||||
/* NameVariable */ 'nv': #953800,
|
||||
/* NameVariableClass */ 'vc': #0550ae,
|
||||
/* NameVariableGlobal */ 'vg': #0550ae,
|
||||
/* NameVariableInstance */ 'vi': #0550ae,
|
||||
/* NameVariableMagic */ 'vm': #0550ae,
|
||||
/* Literal */ 'l': #0550ae,
|
||||
/* LiteralDate */ 'ld': #0a3069,
|
||||
/* LiteralString */ 's': #0a3069,
|
||||
/* LiteralStringAffix */ 'sa': #0a3069,
|
||||
/* LiteralStringBacktick */ 'sb': #0a3069,
|
||||
/* LiteralStringChar */ 'sc': #0a3069,
|
||||
/* LiteralStringDelimiter */ 'dl': #0a3069,
|
||||
/* LiteralStringDoc */ 'sd': #0a3069,
|
||||
/* LiteralStringDouble */ 's2': #0a3069,
|
||||
/* LiteralStringEscape */ 'se': #0a3069,
|
||||
/* LiteralStringHeredoc */ 'sh': #0a3069,
|
||||
/* LiteralStringInterpol */ 'si': #0a3069,
|
||||
/* LiteralStringOther */ 'sx': #0a3069,
|
||||
/* LiteralStringRegex */ 'sr': #0a3069,
|
||||
/* LiteralStringSingle */ 's1': #0a3069,
|
||||
/* LiteralStringSymbol */ 'ss': #0a3069,
|
||||
/* LiteralNumber */ 'm': #0550ae,
|
||||
/* LiteralNumberBin */ 'mb': #0550ae,
|
||||
/* LiteralNumberFloat */ 'mf': #0550ae,
|
||||
/* LiteralNumberHex */ 'mh': #0550ae,
|
||||
/* LiteralNumberInteger */ 'mi': #0550ae,
|
||||
/* LiteralNumberIntegerLong */ 'il': #0550ae,
|
||||
/* LiteralNumberOct */ 'mo': #0550ae,
|
||||
/* Operator */ 'o': #cf222e,
|
||||
/* OperatorWord */ 'ow': #cf222e,
|
||||
/* Punctuation */ 'p': $code-color,
|
||||
/* Comment */ 'c': #6e7781,
|
||||
/* CommentHashbang */ 'ch': #6e7781,
|
||||
/* CommentMultiline */ 'cm': #6e7781,
|
||||
/* CommentSingle */ 'c1': #6e7781,
|
||||
/* CommentSpecial */ 'cs': #6e7781,
|
||||
/* CommentPreproc */ 'cp': #0550ae,
|
||||
/* CommentPreprocFile */ 'cpf': #6e7781,
|
||||
/* Generic */ 'g': $code-color,
|
||||
/* GenericDeleted */ 'gd': #82071e,
|
||||
/* GenericEmph */ 'ge': $code-color,
|
||||
/* GenericError */ 'gr': $code-error-color,
|
||||
/* GenericHeading */ 'gh': $code-color,
|
||||
/* GenericInserted */ 'gi': #116329,
|
||||
/* GenericOutput */ 'go': $code-color,
|
||||
/* GenericPrompt */ 'gp': $code-color,
|
||||
/* GenericStrong */ 'gs': $code-color,
|
||||
/* GenericSubheading */ 'gu': $code-color,
|
||||
/* GenericTraceback */ 'gt': $code-error-color,
|
||||
/* GenericUnderline */ 'gl': $code-color,
|
||||
/* TextWhitespace */ 'w': $code-color,
|
||||
/* Other */ 'x': $code-color
|
||||
) !default;
|
||||
$code-highlight-color-map-dark: (
|
||||
/* Error */ 'err': $code-error-color,
|
||||
/* Keyword */ 'k': #f47067,
|
||||
/* KeywordConstant */ 'kc': #6cb6ff,
|
||||
/* KeywordDeclaration */ 'kd': #f47067,
|
||||
/* KeywordNamespace */ 'kn': #f47067,
|
||||
/* KeywordPseudo */ 'kp': #f47067,
|
||||
/* KeywordReserved */ 'kr': #f47067,
|
||||
/* KeywordType */ 'kt': #f47067,
|
||||
/* Name */ 'n': $code-color-dark,
|
||||
/* NameAttribute */ 'na': #6cb6ff,
|
||||
/* NameBuiltin */ 'nb': #dcbdfb,
|
||||
/* NameBuiltinPseudo */ 'bp': $code-color-dark,
|
||||
/* NameClass */ 'nc': #dcbdfb,
|
||||
/* NameConstant */ 'no': #6cb6ff,
|
||||
/* NameDecorator */ 'nd': #dcbdfb,
|
||||
/* NameEntity */ 'ni': #6cb6ff,
|
||||
/* NameException */ 'ne': #6cb6ff,
|
||||
/* NameFunction */ 'nf': #dcbdfb,
|
||||
/* NameFunctionMagic */ 'fm': #6cb6ff,
|
||||
/* NameLabel */ 'nl': #6cb6ff,
|
||||
/* NameNamespace */ 'nn': #f47067,
|
||||
/* NameOther */ 'nx': #dcbdfb,
|
||||
/* NameProperty */ 'py': #6cb6ff,
|
||||
/* NameTag */ 'nt': #8ddb8c,
|
||||
/* NameVariable */ 'nv': #f69d50,
|
||||
/* NameVariableClass */ 'vc': #6cb6ff,
|
||||
/* NameVariableGlobal */ 'vg': #6cb6ff,
|
||||
/* NameVariableInstance */ 'vi': #6cb6ff,
|
||||
/* NameVariableMagic */ 'vm': #6cb6ff,
|
||||
/* Literal */ 'l': #6cb6ff,
|
||||
/* LiteralDate */ 'ld': #96d0ff,
|
||||
/* LiteralString */ 's': #96d0ff,
|
||||
/* LiteralStringAffix */ 'sa': #96d0ff,
|
||||
/* LiteralStringBacktick */ 'sb': #96d0ff,
|
||||
/* LiteralStringChar */ 'sc': #96d0ff,
|
||||
/* LiteralStringDelimiter */ 'dl': #96d0ff,
|
||||
/* LiteralStringDoc */ 'sd': #96d0ff,
|
||||
/* LiteralStringDouble */ 's2': #96d0ff,
|
||||
/* LiteralStringEscape */ 'se': #96d0ff,
|
||||
/* LiteralStringHeredoc */ 'sh': #96d0ff,
|
||||
/* LiteralStringInterpol */ 'si': #96d0ff,
|
||||
/* LiteralStringOther */ 'sx': #96d0ff,
|
||||
/* LiteralStringRegex */ 'sr': #96d0ff,
|
||||
/* LiteralStringSingle */ 's1': #96d0ff,
|
||||
/* LiteralStringSymbol */ 'ss': #96d0ff,
|
||||
/* LiteralNumber */ 'm': #6cb6ff,
|
||||
/* LiteralNumberBin */ 'mb': #6cb6ff,
|
||||
/* LiteralNumberFloat */ 'mf': #6cb6ff,
|
||||
/* LiteralNumberHex */ 'mh': #6cb6ff,
|
||||
/* LiteralNumberInteger */ 'mi': #6cb6ff,
|
||||
/* LiteralNumberIntegerLong */ 'il': #6cb6ff,
|
||||
/* LiteralNumberOct */ 'mo': #6cb6ff,
|
||||
/* Operator */ 'o': #f47067,
|
||||
/* OperatorWord */ 'ow': #f47067,
|
||||
/* Punctuation */ 'p': $code-color-dark,
|
||||
/* Comment */ 'c': #768390,
|
||||
/* CommentHashbang */ 'ch': #768390,
|
||||
/* CommentMultiline */ 'cm': #768390,
|
||||
/* CommentSingle */ 'c1': #768390,
|
||||
/* CommentSpecial */ 'cs': #768390,
|
||||
/* CommentPreproc */ 'cp': #6cb6ff,
|
||||
/* CommentPreprocFile */ 'cpf': #768390,
|
||||
/* Generic */ 'g': $code-color-dark,
|
||||
/* GenericDeleted */ 'gd': #ffd8d3,
|
||||
/* GenericEmph */ 'ge': $code-color-dark,
|
||||
/* GenericError */ 'gr': $code-error-color,
|
||||
/* GenericHeading */ 'gh': $code-color-dark,
|
||||
/* GenericInserted */ 'gi': #b4f1b4,
|
||||
/* GenericOutput */ 'go': $code-color-dark,
|
||||
/* GenericPrompt */ 'gp': $code-color-dark,
|
||||
/* GenericStrong */ 'gs': $code-color-dark,
|
||||
/* GenericSubheading */ 'gu': $code-color-dark,
|
||||
/* GenericTraceback */ 'gt': $code-error-color,
|
||||
/* GenericUnderline */ 'gl': $code-color-dark,
|
||||
/* TextWhitespace */ 'w': $code-color-dark,
|
||||
/* Other */ 'x': $code-color-dark
|
||||
) !default;
|
||||
@@ -0,0 +1,373 @@
|
||||
// Code type map
|
||||
$code-type-map: (
|
||||
// Chroma supported languages
|
||||
// @generator https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js
|
||||
"abap": "ABAP",
|
||||
"abnf": "ABNF",
|
||||
"as": "ActionScript",
|
||||
"actionscript": "ActionScript",
|
||||
"as3": "ActionScript 3",
|
||||
"actionscript3": "ActionScript 3",
|
||||
"ada": "Ada",
|
||||
"ada95": "Ada",
|
||||
"ada2005": "Ada",
|
||||
"al": "AL",
|
||||
"ng2": "Angular2",
|
||||
"antlr": "ANTLR",
|
||||
"apacheconf": "ApacheConf",
|
||||
"aconf": "ApacheConf",
|
||||
"apache": "ApacheConf",
|
||||
"apl": "APL",
|
||||
"applescript": "AppleScript",
|
||||
"arduino": "Arduino",
|
||||
"armasm": "ArmAsm",
|
||||
"awk": "Awk",
|
||||
"gawk": "Awk",
|
||||
"mawk": "Awk",
|
||||
"nawk": "Awk",
|
||||
"ballerina": "Ballerina",
|
||||
"make": "Base Makefile",
|
||||
"makefile": "Base Makefile",
|
||||
"mf": "Base Makefile",
|
||||
"bsdmake": "Base Makefile",
|
||||
"bash": "Bash",
|
||||
"sh": "Bash",
|
||||
"ksh": "Bash",
|
||||
"zsh": "Bash",
|
||||
"shell": "Bash",
|
||||
"bash-session": "BashSession",
|
||||
"console": "BashSession",
|
||||
"shell-session": "BashSession",
|
||||
"bat": "Batchfile",
|
||||
"batch": "Batchfile",
|
||||
"dosbatch": "Batchfile",
|
||||
"winbatch": "Batchfile",
|
||||
"bib": "BibTeX",
|
||||
"bibtex": "BibTeX",
|
||||
"bicep": "Bicep",
|
||||
"blitzbasic": "BlitzBasic",
|
||||
"b3d": "BlitzBasic",
|
||||
"bplus": "BlitzBasic",
|
||||
"bnf": "BNF",
|
||||
"brainfuck": "Brainfuck",
|
||||
"bf": "Brainfuck",
|
||||
"c": "C",
|
||||
"csharp": "C#",
|
||||
"c\\#": "C#",
|
||||
"cpp": "C++",
|
||||
"c\\+\\+": "C++",
|
||||
"caddyfile": "Caddyfile",
|
||||
"caddy": "Caddyfile",
|
||||
"caddyfile-directives": "Caddyfile Directives",
|
||||
"caddyfile-d": "Caddyfile Directives",
|
||||
"caddy-d": "Caddyfile Directives",
|
||||
"capnp": "Cap'n Proto",
|
||||
"cassandra": "Cassandra CQL",
|
||||
"cql": "Cassandra CQL",
|
||||
"ceylon": "Ceylon",
|
||||
"cfengine3": "CFEngine3",
|
||||
"cf3": "CFEngine3",
|
||||
"cfs": "cfstatement",
|
||||
"chai": "ChaiScript",
|
||||
"chaiscript": "ChaiScript",
|
||||
"cheetah": "Cheetah",
|
||||
"spitfire": "Cheetah",
|
||||
"clojure": "Clojure",
|
||||
"clj": "Clojure",
|
||||
"cmake": "CMake",
|
||||
"cobol": "COBOL",
|
||||
"coffee-script": "CoffeeScript",
|
||||
"coffeescript": "CoffeeScript",
|
||||
"coffee": "CoffeeScript",
|
||||
"common-lisp": "Common Lisp",
|
||||
"cl": "Common Lisp",
|
||||
"lisp": "Common Lisp",
|
||||
"coq": "Coq",
|
||||
"cr": "Crystal",
|
||||
"crystal": "Crystal",
|
||||
"css": "CSS",
|
||||
"cython": "Cython",
|
||||
"pyx": "Cython",
|
||||
"pyrex": "Cython",
|
||||
"d": "D",
|
||||
"dart": "Dart",
|
||||
"diff": "Diff",
|
||||
"udiff": "Diff",
|
||||
"django": "Django/Jinja",
|
||||
"jinja": "Django/Jinja",
|
||||
"docker": "Docker",
|
||||
"dockerfile": "Docker",
|
||||
"dtd": "DTD",
|
||||
"dylan": "Dylan",
|
||||
"ebnf": "EBNF",
|
||||
"elixir": "Elixir",
|
||||
"ex": "Elixir",
|
||||
"exs": "Elixir",
|
||||
"elm": "Elm",
|
||||
"emacs": "EmacsLisp",
|
||||
"elisp": "EmacsLisp",
|
||||
"emacs-lisp": "EmacsLisp",
|
||||
"erlang": "Erlang",
|
||||
"factor": "Factor",
|
||||
"fennel": "Fennel",
|
||||
"fnl": "Fennel",
|
||||
"fish": "Fish",
|
||||
"fishshell": "Fish",
|
||||
"forth": "Forth",
|
||||
"fortran": "Fortran",
|
||||
"fortranfixed": "FortranFixed",
|
||||
"fsharp": "FSharp",
|
||||
"gas": "GAS",
|
||||
"asm": "GAS",
|
||||
"gdscript": "GDScript",
|
||||
"gd": "GDScript",
|
||||
"genshi": "Genshi",
|
||||
"kid": "Genshi",
|
||||
"xml\\+genshi": "Genshi",
|
||||
"xml\\+kid": "Genshi",
|
||||
"html\\+genshi": "Genshi HTML",
|
||||
"html\\+kid": "Genshi HTML",
|
||||
"genshitext": "Genshi Text",
|
||||
"cucumber": "Gherkin",
|
||||
"Cucumber": "Gherkin",
|
||||
"gherkin": "Gherkin",
|
||||
"Gherkin": "Gherkin",
|
||||
"glsl": "GLSL",
|
||||
"gnuplot": "Gnuplot",
|
||||
"go": "Go",
|
||||
"golang": "Go",
|
||||
"go-html-template": "Go HTML Template",
|
||||
"go-text-template": "Go Text Template",
|
||||
"graphql": "GraphQL",
|
||||
"graphqls": "GraphQL",
|
||||
"gql": "GraphQL",
|
||||
"groff": "Groff",
|
||||
"nroff": "Groff",
|
||||
"man": "Groff",
|
||||
"groovy": "Groovy",
|
||||
"handlebars": "Handlebars",
|
||||
"hbs": "Handlebars",
|
||||
"haskell": "Haskell",
|
||||
"hs": "Haskell",
|
||||
"hx": "Haxe",
|
||||
"haxe": "Haxe",
|
||||
"hxsl": "Haxe",
|
||||
"hcl": "HCL",
|
||||
"hexdump": "Hexdump",
|
||||
"hlb": "HLB",
|
||||
"html": "HTML",
|
||||
"http": "HTTP",
|
||||
"hylang": "Hy",
|
||||
"idris": "Idris",
|
||||
"idr": "Idris",
|
||||
"igor": "Igor",
|
||||
"igorpro": "Igor",
|
||||
"ini": "INI",
|
||||
"cfg": "INI",
|
||||
"dosini": "INI",
|
||||
"io": "Io",
|
||||
"j": "J",
|
||||
"java": "Java",
|
||||
"js": "JavaScript",
|
||||
"javascript": "JavaScript",
|
||||
"json": "JSON",
|
||||
"julia": "Julia",
|
||||
"jl": "Julia",
|
||||
"jungle": "Jungle",
|
||||
"kotlin": "Kotlin",
|
||||
"lighty": "Lighttpd configuration file",
|
||||
"lighttpd": "Lighttpd configuration file",
|
||||
"llvm": "LLVM",
|
||||
"lua": "Lua",
|
||||
"mako": "Mako",
|
||||
"md": "markdown",
|
||||
"mkd": "markdown",
|
||||
"mason": "Mason",
|
||||
"mathematica": "Mathematica",
|
||||
"mma": "Mathematica",
|
||||
"nb": "Mathematica",
|
||||
"matlab": "Matlab",
|
||||
"mcfunction": "mcfunction",
|
||||
"meson": "Meson",
|
||||
"meson\\.build": "Meson",
|
||||
"metal": "Metal",
|
||||
"minizinc": "MiniZinc",
|
||||
"MZN": "MiniZinc",
|
||||
"mzn": "MiniZinc",
|
||||
"mlir": "MLIR",
|
||||
"modula2": "Modula-2",
|
||||
"m2": "Modula-2",
|
||||
"monkeyc": "MonkeyC",
|
||||
"morrowind": "MorrowindScript",
|
||||
"mwscript": "MorrowindScript",
|
||||
"myghty": "Myghty",
|
||||
"mysql": "MySQL",
|
||||
"mariadb": "MySQL",
|
||||
"nasm": "NASM",
|
||||
"newspeak": "Newspeak",
|
||||
"nginx": "Nginx configuration file",
|
||||
"nim": "Nim",
|
||||
"nimrod": "Nim",
|
||||
"nixos": "Nix",
|
||||
"nix": "Nix",
|
||||
"objective-c": "Objective-C",
|
||||
"objectivec": "Objective-C",
|
||||
"obj-c": "Objective-C",
|
||||
"objc": "Objective-C",
|
||||
"ocaml": "OCaml",
|
||||
"octave": "Octave",
|
||||
"ones": "OnesEnterprise",
|
||||
"onesenterprise": "OnesEnterprise",
|
||||
"1S": "OnesEnterprise",
|
||||
"1S:Enterprise": "OnesEnterprise",
|
||||
"openedge": "OpenEdge ABL",
|
||||
"abl": "OpenEdge ABL",
|
||||
"progress": "OpenEdge ABL",
|
||||
"openedgeabl": "OpenEdge ABL",
|
||||
"openscad": "OpenSCAD",
|
||||
"org": "Org Mode",
|
||||
"orgmode": "Org Mode",
|
||||
"pacmanconf": "PacmanConf",
|
||||
"perl": "Perl",
|
||||
"pl": "Perl",
|
||||
"php": "PHP",
|
||||
"php3": "PHP",
|
||||
"php4": "PHP",
|
||||
"php5": "PHP",
|
||||
"phtml": "PHTML",
|
||||
"pig": "Pig",
|
||||
"pkgconfig": "PkgConfig",
|
||||
"plpgsql": "PL/pgSQL",
|
||||
"text": "plaintext",
|
||||
"plain": "plaintext",
|
||||
"no-highlight": "plaintext",
|
||||
"plutus-core": "Plutus Core",
|
||||
"plc": "Plutus Core",
|
||||
"pony": "Pony",
|
||||
"postgresql": "PostgreSQL SQL dialect",
|
||||
"postgres": "PostgreSQL SQL dialect",
|
||||
"postscript": "PostScript",
|
||||
"postscr": "PostScript",
|
||||
"pov": "POVRay",
|
||||
"powerquery": "PowerQuery",
|
||||
"pq": "PowerQuery",
|
||||
"powershell": "PowerShell",
|
||||
"posh": "PowerShell",
|
||||
"ps1": "PowerShell",
|
||||
"psm1": "PowerShell",
|
||||
"psd1": "PowerShell",
|
||||
"prolog": "Prolog",
|
||||
"promql": "PromQL",
|
||||
"protobuf": "Protocol Buffer",
|
||||
"proto": "Protocol Buffer",
|
||||
"puppet": "Puppet",
|
||||
"python": "Python",
|
||||
"py": "Python",
|
||||
"sage": "Python",
|
||||
"python3": "Python",
|
||||
"py3": "Python",
|
||||
"python2": "Python 2",
|
||||
"py2": "Python 2",
|
||||
"qbasic": "QBasic",
|
||||
"basic": "QBasic",
|
||||
"qml": "QML",
|
||||
"qbs": "QML",
|
||||
"splus": "R",
|
||||
"s": "R",
|
||||
"r": "R",
|
||||
"racket": "Racket",
|
||||
"rkt": "Racket",
|
||||
"ragel": "Ragel",
|
||||
"perl6": "Raku",
|
||||
"pl6": "Raku",
|
||||
"raku": "Raku",
|
||||
"jsx": "react",
|
||||
"react": "react",
|
||||
"reason": "ReasonML",
|
||||
"reasonml": "ReasonML",
|
||||
"registry": "reg",
|
||||
"rst": "reStructuredText",
|
||||
"rest": "reStructuredText",
|
||||
"restructuredtext": "reStructuredText",
|
||||
"rexx": "Rexx",
|
||||
"arexx": "Rexx",
|
||||
"rb": "Ruby",
|
||||
"ruby": "Ruby",
|
||||
"duby": "Ruby",
|
||||
"rust": "Rust",
|
||||
"rs": "Rust",
|
||||
"sas": "SAS",
|
||||
"sass": "Sass",
|
||||
"scala": "Scala",
|
||||
"scheme": "Scheme",
|
||||
"scm": "Scheme",
|
||||
"scilab": "Scilab",
|
||||
"scss": "SCSS",
|
||||
"sieve": "Sieve",
|
||||
"smalltalk": "Smalltalk",
|
||||
"squeak": "Smalltalk",
|
||||
"st": "Smalltalk",
|
||||
"smarty": "Smarty",
|
||||
"snobol": "Snobol",
|
||||
"sol": "Solidity",
|
||||
"solidity": "Solidity",
|
||||
"sparql": "SPARQL",
|
||||
"sql": "SQL",
|
||||
"squidconf": "SquidConf",
|
||||
"squid\\.conf": "SquidConf",
|
||||
"squid": "SquidConf",
|
||||
"sml": "Standard ML",
|
||||
"stylus": "Stylus",
|
||||
"svelte": "Svelte",
|
||||
"swift": "Swift",
|
||||
"systemd": "SYSTEMD",
|
||||
"systemverilog": "systemverilog",
|
||||
"sv": "systemverilog",
|
||||
"tablegen": "TableGen",
|
||||
"tasm": "TASM",
|
||||
"tcl": "Tcl",
|
||||
"tcsh": "Tcsh",
|
||||
"csh": "Tcsh",
|
||||
"termcap": "Termcap",
|
||||
"terminfo": "Terminfo",
|
||||
"terraform": "Terraform",
|
||||
"tf": "Terraform",
|
||||
"tex": "TeX",
|
||||
"latex": "TeX",
|
||||
"thrift": "Thrift",
|
||||
"toml": "TOML",
|
||||
"tradingview": "TradingView",
|
||||
"tv": "TradingView",
|
||||
"tsql": "Transact-SQL",
|
||||
"t-sql": "Transact-SQL",
|
||||
"turing": "Turing",
|
||||
"turtle": "Turtle",
|
||||
"twig": "Twig",
|
||||
"ts": "TypeScript",
|
||||
"tsx": "TypeScript",
|
||||
"typescript": "TypeScript",
|
||||
"typoscript": "TypoScript",
|
||||
"typoscriptcssdata": "TypoScriptCssData",
|
||||
"typoscripthtmldata": "TypoScriptHtmlData",
|
||||
"v": "verilog",
|
||||
"vlang": "V",
|
||||
"vsh": "V shell",
|
||||
"vshell": "V shell",
|
||||
"vb\\.net": "VB.net",
|
||||
"vbnet": "VB.net",
|
||||
"verilog": "verilog",
|
||||
"vhdl": "VHDL",
|
||||
"vim": "VimL",
|
||||
"vue": "vue",
|
||||
"vuejs": "vue",
|
||||
"whiley": "Whiley",
|
||||
"xml": "XML",
|
||||
"xorg\\.conf": "Xorg",
|
||||
"yaml": "YAML",
|
||||
"yang": "YANG",
|
||||
"zed": "Zed",
|
||||
"zig": "Zig",
|
||||
// Custom code type
|
||||
"markdown": "markdown",
|
||||
"yml": "YAML"
|
||||
) !default;
|
||||
@@ -0,0 +1,17 @@
|
||||
// Theme colors
|
||||
$primary: #1772ee !default;
|
||||
$secondary: #919191 !default;
|
||||
$success: #13ce66 !default;
|
||||
$info: #0dcaf0 !default;
|
||||
$warning: #ffba00 !default;
|
||||
$danger: #ff4949 !default;
|
||||
|
||||
// Theme colors map
|
||||
$theme-colors: (
|
||||
'primary': $primary,
|
||||
'secondary': $secondary,
|
||||
'success': $success,
|
||||
'info': $info,
|
||||
'warning': $warning,
|
||||
'danger': $danger
|
||||
) !default;
|
||||
@@ -0,0 +1,13 @@
|
||||
// Utilities
|
||||
|
||||
// property order
|
||||
$orders: (
|
||||
first: -1,
|
||||
0: 0,
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
last: 6,
|
||||
) !default;
|
||||
@@ -1,17 +1,17 @@
|
||||
// inline code
|
||||
code {
|
||||
display: inline-block;
|
||||
max-width: 100%;
|
||||
padding: 0 0.25rem;
|
||||
padding: 0.2em 0.4em;
|
||||
margin: 0;
|
||||
font-size: $code-font-size;
|
||||
font-family: $code-font-family;
|
||||
color: $code-color;
|
||||
background-color: rgba(175, 184, 193, 0.2);
|
||||
text-decoration: inherit;
|
||||
@include border-radius($global-border-radius);
|
||||
@include overflow-wrap(break-word);
|
||||
@include line-break(anywhere);
|
||||
@include line-break(auto);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $code-color-dark;
|
||||
background-color: rgba(99, 110, 123, 0.4);
|
||||
}
|
||||
@@ -30,7 +30,7 @@ pre {
|
||||
|
||||
background-color: $code-background-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $code-background-color-dark;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ pre {
|
||||
@include border-radius(0);
|
||||
@include max-content(min-width);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
@@ -91,7 +91,7 @@ pre {
|
||||
@include border-radius($global-border-radius);
|
||||
@include transition(border-radius 0.2s ease);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $code-info-color-dark;
|
||||
background-color: darken($code-background-color-dark, 6%);
|
||||
}
|
||||
@@ -128,14 +128,14 @@ pre {
|
||||
cursor: pointer;
|
||||
color: $global-link-hover-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-link-hover-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $type, $text in $code-type-map {
|
||||
&.#{$type} .code-title::after {
|
||||
&.language-#{$type} .code-title::after {
|
||||
content: $text;
|
||||
}
|
||||
}
|
||||
@@ -156,7 +156,7 @@ pre {
|
||||
display: block;
|
||||
background-color: $code-background-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $code-background-color-dark;
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ pre {
|
||||
background-color: darken($code-background-color, 6%);
|
||||
@include border-radius($global-border-radius $global-border-radius 0 0);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: darken($code-background-color-dark, 3%);
|
||||
}
|
||||
}
|
||||
@@ -237,7 +237,7 @@ pre {
|
||||
background-color: $code-hightlight-color;
|
||||
box-shadow: -0.5rem 0 0 $code-hightlight-color, 0.5rem 0 0 $code-hightlight-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $code-hightlight-color-dark;
|
||||
box-shadow: -0.5rem 0 0 $code-hightlight-color-dark, 0.5rem 0 0 $code-hightlight-color-dark;
|
||||
}
|
||||
@@ -266,7 +266,7 @@ pre {
|
||||
.ln {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -282,7 +282,7 @@ pre {
|
||||
.gd {
|
||||
background-color: #ffebe9;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: #78191b;
|
||||
}
|
||||
}
|
||||
@@ -290,7 +290,7 @@ pre {
|
||||
.gi {
|
||||
background-color: #dafbe1;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: #1b4721;
|
||||
}
|
||||
}
|
||||
@@ -301,7 +301,7 @@ pre {
|
||||
}
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
@each $class, $color in $code-highlight-color-map-dark {
|
||||
.#{$class} {
|
||||
color: $color;
|
||||
@@ -328,7 +328,7 @@ pre {
|
||||
@include link(false, false);
|
||||
background-color: darken($code-background-color, 5%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: darken($code-background-color-dark, 5%);
|
||||
}
|
||||
}
|
||||
@@ -338,13 +338,13 @@ pre {
|
||||
&::-webkit-scrollbar {
|
||||
background-color: #f6f8fa;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: #2d333b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
@import './github-dark-dimmed';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
#comments {
|
||||
padding: 2rem 0;
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
.fixit-decryptor-container {
|
||||
font-family: $global-font-family;
|
||||
text-align: center;
|
||||
margin-top: 3rem;
|
||||
|
||||
.fixit-encryptor-shortcode & {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
#fixit-decryptor-input,
|
||||
.fixit-decryptor-input,
|
||||
.fixit-encryptor-btn {
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
outline: none;
|
||||
color: $global-font-color;
|
||||
border: 1px solid darken($global-border-color, 15%);
|
||||
border-radius: $global-border-radius;
|
||||
@include transition(all 0.1s ease-out);
|
||||
box-shadow: 0px 0px 5px 0px darken($global-border-color, 15%);
|
||||
|
||||
&:active,
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: darken($global-link-hover-color, 6%);
|
||||
border-color: $global-link-hover-color;
|
||||
box-shadow: 0px 0px 5px 0px lighten($global-link-hover-color, 20%);
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: lighten($global-link-hover-color-dark, 6%);
|
||||
border-color: $global-link-hover-color-dark;
|
||||
box-shadow: 0px 0px 5px 0px darken($global-link-hover-color-dark, 20%);
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-color-dark;
|
||||
border-color: lighten($global-border-color-dark, 15%);
|
||||
box-shadow: 0px 0px 5px 0px lighten($global-border-color-dark, 15%);
|
||||
}
|
||||
}
|
||||
|
||||
#fixit-decryptor-input,
|
||||
.fixit-decryptor-input {
|
||||
width: clamp(50%, 400px, 100%);
|
||||
height: 3rem;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
background-color: $global-background-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.fixit-encryptor-btn {
|
||||
cursor: pointer;
|
||||
@include transition(all 0.1s ease-out);
|
||||
padding: 0.6rem 1rem;
|
||||
|
||||
background-color: $header-background-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: $header-background-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
+29
-24
@@ -1,11 +1,15 @@
|
||||
.post-footer {
|
||||
margin-top: 3rem;
|
||||
margin: 2rem 0;
|
||||
|
||||
&:has(~.post-reward) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-info {
|
||||
border-bottom: 1px solid $global-border-color;
|
||||
padding: 1rem 0 0.3rem;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-bottom: 1px solid $global-border-color-dark;
|
||||
}
|
||||
|
||||
@@ -17,7 +21,7 @@
|
||||
font-size: 0.8em;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@@ -28,7 +32,7 @@
|
||||
font-size: 0.8em;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@@ -69,36 +73,37 @@
|
||||
* {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
.post-tag:not(:last-child)::after {
|
||||
content: ',';
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.post-nav {
|
||||
&::before,
|
||||
&::after {
|
||||
content: ' ';
|
||||
display: table;
|
||||
}
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 1.5rem;
|
||||
|
||||
& a.prev,
|
||||
& a.next {
|
||||
.post-nav-item {
|
||||
flex: 1;
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
@include transition(all 0.3s ease-out);
|
||||
}
|
||||
|
||||
& a.prev {
|
||||
float: left;
|
||||
}
|
||||
&[rel='next'] {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
& a.prev:hover {
|
||||
@include transform(translateX(-4px));
|
||||
}
|
||||
&[rel='prev']:hover {
|
||||
@include transform(translateX(-4px));
|
||||
}
|
||||
|
||||
& a.next {
|
||||
float: right;
|
||||
}
|
||||
|
||||
& a.next:hover {
|
||||
@include transform(translateX(4px));
|
||||
&[rel='next']:hover {
|
||||
@include transform(translateX(4px));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
* Theme: GitHub Dark Dimmed
|
||||
* Description: Dark Dimmed theme as seen on github.com
|
||||
* Author: github.com
|
||||
* Maintainer: https://github.com/Lruihao/FixIt
|
||||
* Maintainer: https://github.com/hugo-fixit/FixIt
|
||||
* Updated: 2022-03-01
|
||||
*/
|
||||
& {
|
||||
@@ -0,0 +1,81 @@
|
||||
.post-reward {
|
||||
padding: 1rem;
|
||||
text-align: center;
|
||||
|
||||
&~.post-footer {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
&:has(.reward-ways:empty) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.comment {
|
||||
margin: 0.5rem 0;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.reward-input:checked~.reward-ways {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.reward-button {
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
color: lighten($reward-color, 5%);
|
||||
border: 2px solid lighten($reward-color, 10%);
|
||||
border-radius: $global-border-radius;
|
||||
@include transition(all 0.3s ease-out);
|
||||
padding: 0.6rem 1rem;
|
||||
background-color: $global-background-color;
|
||||
vertical-align: text-top;
|
||||
line-height: 1rem;
|
||||
|
||||
&:active,
|
||||
&:hover {
|
||||
color: #ffffff;
|
||||
border-color: $reward-color;
|
||||
background-color: $reward-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: #ffffff;
|
||||
border-color: $reward-color-dark;
|
||||
background-color: $reward-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $reward-color;
|
||||
border-color: lighten($reward-color, 5%);
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reward-ways {
|
||||
display: none;
|
||||
padding-top: 20px;
|
||||
|
||||
div {
|
||||
display: inline-block;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
&:hover span[data-animation] {
|
||||
animation: var(--animation-reward, jackInTheBox) 0.8s infinite linear;
|
||||
// The animation may affect :hover of img in dark mode
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
display: inline-block;
|
||||
margin: .8em 2em 0;
|
||||
max-width: 100%;
|
||||
width: $reward-img-width;
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
font-size: $toc-content-font-size;
|
||||
|
||||
ul {
|
||||
text-indent: -0.85rem;
|
||||
text-indent: -0.8rem;
|
||||
padding-left: 0.8rem;
|
||||
list-style: none;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
margin-right: 0.5rem;
|
||||
color: $single-link-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@
|
||||
color: $global-font-secondary-color;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: $code-background-color-dark;
|
||||
|
||||
rt {
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
.toc-title {
|
||||
margin: 0.5rem 0;
|
||||
cursor: pointer;
|
||||
|
||||
&::before {
|
||||
content: '|';
|
||||
@@ -68,19 +69,31 @@
|
||||
margin-right: 0.5rem;
|
||||
color: $global-border-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
i.toc-icon {
|
||||
@include transition(transform 0.2s ease);
|
||||
}
|
||||
}
|
||||
|
||||
&.toc-hidden i.toc-icon {
|
||||
@include transform(rotate(-90deg));
|
||||
@include transition(transform 0.2s ease);
|
||||
}
|
||||
|
||||
.toc-content {
|
||||
overflow-y: scroll;
|
||||
max-height: calc(100vh - #{2*$header-height});
|
||||
|
||||
&.always-active ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
> nav > ul {
|
||||
margin: 0.625rem 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
@@ -97,14 +110,14 @@
|
||||
font-weight: bold;
|
||||
color: $single-link-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
|
||||
&::before {
|
||||
color: $single-link-hover-color;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $single-link-hover-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -116,7 +129,7 @@
|
||||
display: none;
|
||||
margin: 0.8rem 0;
|
||||
|
||||
&[kept='true'] {
|
||||
&[data-kept='true'] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@@ -127,7 +140,7 @@
|
||||
padding: 0 0.75rem;
|
||||
background: darken($code-background-color, 3%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: darken($code-background-color-dark, 6%);
|
||||
}
|
||||
}
|
||||
@@ -140,7 +153,7 @@
|
||||
padding: 0.4rem 1rem 0.4rem 1.8rem;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background-color: $code-background-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -149,7 +162,7 @@
|
||||
.toc-title {
|
||||
background: darken($code-background-color, 6%);
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
background: darken($code-background-color-dark, 3%);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
@import '_widgets/cookieconsent';
|
||||
@import '_widgets/fixed-button';
|
||||
@import '_widgets/github-corner';
|
||||
@import '_widgets/noscript-warning';
|
||||
@import '_widgets/reading-progress';
|
||||
@import '_widgets/typeit';
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-color;
|
||||
|
||||
&:hover,
|
||||
+8
-14
@@ -1,18 +1,13 @@
|
||||
#fixed-buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.fixed-button {
|
||||
display: none;
|
||||
z-index: 100;
|
||||
position: fixed;
|
||||
right: 1.5rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.3rem;
|
||||
padding: 0.6rem 0.6rem;
|
||||
line-height: 1.5rem;
|
||||
padding: 0.5rem 0.625rem;
|
||||
color: $global-font-secondary-color;
|
||||
background: $header-background-color;
|
||||
@include border-radius(2rem);
|
||||
background-color: $header-background-color;
|
||||
@include border-radius(1.25rem);
|
||||
@include transition(color 0.4s ease);
|
||||
|
||||
@include blur;
|
||||
@@ -29,9 +24,9 @@
|
||||
outline: none;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
background: $header-background-color-dark;
|
||||
background-color: $header-background-color-dark;
|
||||
|
||||
&:hover,
|
||||
&:active {
|
||||
@@ -40,11 +35,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
#back-to-top {
|
||||
display: block;
|
||||
.back-to-top {
|
||||
bottom: 1.5rem;
|
||||
}
|
||||
|
||||
#view-comments {
|
||||
.view-comments {
|
||||
bottom: 4.5rem;
|
||||
}
|
||||
+1
-1
@@ -28,7 +28,7 @@
|
||||
color: $github-corner-color;
|
||||
fill: $github-corner-fill;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
color: $github-corner-color-dark;
|
||||
fill: $github-corner-fill-dark;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
.noscript-warning {
|
||||
background-color: var(--#{$prefix}danger);
|
||||
color: white;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 150;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: var(--#{$prefix}danger-dark);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
.reading-progress-bar {
|
||||
--progress: 0;
|
||||
height: var(--progress-h, 2px);
|
||||
width: var(--progress);
|
||||
background-color: var(--bg-progress, var(--#{$prefix}info));
|
||||
z-index: 150;
|
||||
position: fixed;
|
||||
|
||||
[data-theme="dark"] & {
|
||||
background-color: var(--bg-progress-dark, var(--#{$prefix}info-dark));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
.typeit {
|
||||
.highlight {
|
||||
padding: 0.375rem;
|
||||
font-size: 0.875rem;
|
||||
font-family: $code-font-family;
|
||||
font-weight: bold;
|
||||
word-break: break-all;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
--ti-cursor-font-family: #{$global-font-family};
|
||||
--ti-cursor-font-size: #{$global-font-size};
|
||||
--ti-cursor-font-style: normal;
|
||||
--ti-cursor-font-weight: #{$global-font-weight};
|
||||
--ti-cursor-line-height: #{$global-line-height};
|
||||
--ti-cursor-color: #{$global-font-color};
|
||||
--ti-cursor-transform: translateX(0);
|
||||
|
||||
[data-theme='dark'] & {
|
||||
--ti-cursor-color: #{$global-font-color-dark};
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,7 @@
|
||||
position: relative;
|
||||
margin: 1rem 0;
|
||||
padding: 0 0.75rem;
|
||||
background-color: map-get($admonition-background-color-map, 'note');
|
||||
border-left: 0.25rem solid map-get($admonition-color-map, 'note');
|
||||
border-left: .25rem solid;
|
||||
overflow: auto;
|
||||
@include border-radius($global-border-radius);
|
||||
|
||||
@@ -11,22 +10,16 @@
|
||||
font-weight: bold;
|
||||
margin: 0 -0.75rem;
|
||||
padding: 0.25rem 1.8rem;
|
||||
border-bottom: 1px solid map-get($admonition-background-color-map, 'note');
|
||||
background-color: opacify(map-get($admonition-background-color-map, 'note'), 0.15);
|
||||
border-bottom: 1px solid;
|
||||
@include border-radius(0);
|
||||
}
|
||||
|
||||
&.open .admonition-title {
|
||||
background-color: map-get($admonition-background-color-map, 'note');
|
||||
}
|
||||
|
||||
.admonition-content {
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
|
||||
i.icon {
|
||||
font-size: 0.85rem;
|
||||
color: map-get($admonition-color-map, 'note');
|
||||
position: absolute;
|
||||
top: 0.6rem;
|
||||
left: 0.4rem;
|
||||
@@ -38,27 +31,42 @@
|
||||
right: 0.3rem;
|
||||
}
|
||||
|
||||
@each $type, $color in $admonition-color-map {
|
||||
&.#{$type} {
|
||||
@each $type, $color, $background-color in $admonition-color-map {
|
||||
@if $type == 'note' {
|
||||
background-color: $background-color;
|
||||
border-left-color: $color;
|
||||
|
||||
.admonition-title {
|
||||
border-bottom-color: $background-color;
|
||||
background-color: opacify($background-color, 0.15);
|
||||
}
|
||||
|
||||
&.open .admonition-title {
|
||||
background-color: $background-color;
|
||||
}
|
||||
|
||||
i.icon {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@else {
|
||||
&.#{$type} {
|
||||
background-color: $background-color;
|
||||
border-left-color: $color;
|
||||
|
||||
@each $type, $color in $admonition-background-color-map {
|
||||
&.#{$type} {
|
||||
background-color: $color;
|
||||
.admonition-title {
|
||||
border-bottom-color: $background-color;
|
||||
background-color: opacify($background-color, 0.15);
|
||||
}
|
||||
|
||||
.admonition-title {
|
||||
border-bottom-color: $color;
|
||||
background-color: opacify($color, 0.15);
|
||||
}
|
||||
&.open .admonition-title {
|
||||
background-color: $background-color;
|
||||
}
|
||||
|
||||
&.open .admonition-title {
|
||||
background-color: $color;
|
||||
i.icon {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
display: block;
|
||||
margin: 0.5rem auto;
|
||||
box-sizing: border-box;
|
||||
width: 400px;
|
||||
width: clamp(50%, 400px, 100%);
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
text-decoration: none;
|
||||
@@ -23,9 +23,9 @@
|
||||
bottom: 0.75rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-image: url('/images/fixit.svg');
|
||||
background-image: var(--cl-bg-url);
|
||||
background-repeat: no-repeat;
|
||||
filter: blur(0.15rem);
|
||||
filter: blur(0.5rem);
|
||||
opacity: 0.5;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
@@ -83,7 +83,7 @@
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
&content {
|
||||
background-color: rgba(61, 62, 65, 0.88);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-top-color: $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
@@ -36,7 +36,7 @@
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900;
|
||||
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border-bottom-color: $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
iframe.instagram-media {
|
||||
[theme='dark'] & {
|
||||
[data-theme='dark'] & {
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
+28
-249
@@ -3,11 +3,14 @@
|
||||
// ==============================
|
||||
|
||||
// ========== Global ========== //
|
||||
// Prefix for :root CSS variables.
|
||||
$prefix: fi- !default;
|
||||
|
||||
// Font and Line Height
|
||||
$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;
|
||||
$global-font-size: 16px;
|
||||
$global-font-weight: 400;
|
||||
$global-line-height: 1.5rem;
|
||||
$global-font-size: 16px !default;
|
||||
$global-font-weight: 400 !default;
|
||||
$global-line-height: 1.5rem !default;
|
||||
|
||||
// Radius of the border
|
||||
$global-border-radius: 5px !default;
|
||||
@@ -72,6 +75,14 @@ $search-background-color: #e9e9e9 !default;
|
||||
$search-background-color-dark: #363636 !default;
|
||||
// ========== Header ========== //
|
||||
|
||||
// ========== Tag Cloud ========== //
|
||||
// Color range of tag cloud
|
||||
$tag-cloud-start: $global-font-secondary-color!default;
|
||||
$tag-cloud-end: $global-font-color!default;
|
||||
$tag-cloud-start-dark: $global-font-secondary-color-dark!default;
|
||||
$tag-cloud-end-dark: $global-font-color-dark!default;
|
||||
// ========== Tag Cloud ========== //
|
||||
|
||||
// ========== Single Content ========== //
|
||||
// Font size of the TOC
|
||||
$toc-title-font-size: 1.2rem !default;
|
||||
@@ -94,8 +105,15 @@ $table-thead-color: #ededed !default;
|
||||
$table-thead-color-dark: #20252b !default;
|
||||
|
||||
// Color of the blockquote
|
||||
$blockquote-color: #697681 !default;
|
||||
$blockquote-color: #697681 !default;
|
||||
$blockquote-color-dark: #9ba3aa !default;
|
||||
|
||||
// Color of reward
|
||||
$reward-color: tomato !default;
|
||||
$reward-color-dark: darken($reward-color, 5%) !default;
|
||||
|
||||
// Width of reward image
|
||||
$reward-img-width: 180px !default;
|
||||
// ========== Single Content ========== //
|
||||
|
||||
// ========== Pagination ========== //
|
||||
@@ -131,253 +149,8 @@ $code-font-size: 0.875rem !default;
|
||||
|
||||
// Font family of the code
|
||||
$code-font-family: Source Code Pro, Menlo, Consolas, Monaco, monospace, $global-font-family !default;
|
||||
|
||||
// Code type map
|
||||
$code-type-map: (
|
||||
// Custom code type
|
||||
language-bash: 'Bash',
|
||||
language-c: 'C',
|
||||
language-cs: 'C#',
|
||||
language-cpp: 'C++',
|
||||
language-clojure: 'Clojure',
|
||||
language-coffeescript: 'CoffeeScript',
|
||||
language-css: 'CSS',
|
||||
language-dart: 'Dart',
|
||||
language-diff: 'Diff',
|
||||
language-erlang: 'Erlang',
|
||||
language-go: 'Go',
|
||||
language-go-html-template: 'Go HTML Template',
|
||||
language-groovy: 'Groovy',
|
||||
language-haskell: 'Haskell',
|
||||
language-html: 'HTML',
|
||||
language-http: 'HTTP',
|
||||
language-xml: 'XML',
|
||||
language-java: 'Java',
|
||||
language-js: 'JavaScript',
|
||||
language-javascript: 'JavaScript',
|
||||
language-json: 'JSON',
|
||||
language-kotlin: 'Kotlin',
|
||||
language-latex: 'LaTeX',
|
||||
language-less: 'Less',
|
||||
language-lisp: 'Lisp',
|
||||
language-lua: 'Lua',
|
||||
language-makefile: 'Makefile',
|
||||
language-markdown: 'Markdown',
|
||||
language-matlab: 'Matlab',
|
||||
language-objectivec: 'Objective-C',
|
||||
language-php: 'PHP',
|
||||
language-perl: 'Perl',
|
||||
language-python: 'Python',
|
||||
language-r: 'R',
|
||||
language-ruby: 'Ruby',
|
||||
language-rust: 'Rust',
|
||||
language-scala: 'Scala',
|
||||
language-scss: 'Scss',
|
||||
language-shell: 'Shell',
|
||||
language-sql: 'SQL',
|
||||
language-swift: 'Swift',
|
||||
language-tex: 'TeX',
|
||||
language-toml: 'TOML',
|
||||
language-ts: 'TypeScript',
|
||||
language-typescript: 'TypeScript',
|
||||
language-vue: 'Vue',
|
||||
language-yml: 'YAML',
|
||||
language-yaml: 'YAML'
|
||||
) !default;
|
||||
|
||||
// Color map of the code highlight
|
||||
$code-highlight-color-map: (
|
||||
/* Error */ 'err': $code-error-color,
|
||||
/* Keyword */ 'k': #cf222e,
|
||||
/* KeywordConstant */ 'kc': #0550ae,
|
||||
/* KeywordDeclaration */ 'kd': #cf222e,
|
||||
/* KeywordNamespace */ 'kn': #cf222e,
|
||||
/* KeywordPseudo */ 'kp': #cf222e,
|
||||
/* KeywordReserved */ 'kr': #cf222e,
|
||||
/* KeywordType */ 'kt': #cf222e,
|
||||
/* Name */ 'n': $code-color,
|
||||
/* NameAttribute */ 'na': #0550ae,
|
||||
/* NameBuiltin */ 'nb': #0550ae,
|
||||
/* NameBuiltinPseudo */ 'bp': $code-color,
|
||||
/* NameClass */ 'nc': #8250df,
|
||||
/* NameConstant */ 'no': #cf222e,
|
||||
/* NameDecorator */ 'nd': #8250df,
|
||||
/* NameEntity */ 'ni': #0550ae,
|
||||
/* NameException */ 'ne': #0550ae,
|
||||
/* NameFunction */ 'nf': #0550ae,
|
||||
/* NameFunctionMagic */ 'fm': #0550ae,
|
||||
/* NameLabel */ 'nl': #0550ae,
|
||||
/* NameNamespace */ 'nn': #8250df,
|
||||
/* NameOther */ 'nx': #0550ae,
|
||||
/* NameProperty */ 'py': #0550ae,
|
||||
/* NameTag */ 'nt': #116329,
|
||||
/* NameVariable */ 'nv': #953800,
|
||||
/* NameVariableClass */ 'vc': #0550ae,
|
||||
/* NameVariableGlobal */ 'vg': #0550ae,
|
||||
/* NameVariableInstance */ 'vi': #0550ae,
|
||||
/* NameVariableMagic */ 'vm': #0550ae,
|
||||
/* Literal */ 'l': #0550ae,
|
||||
/* LiteralDate */ 'ld': #0a3069,
|
||||
/* LiteralString */ 's': #0a3069,
|
||||
/* LiteralStringAffix */ 'sa': #0a3069,
|
||||
/* LiteralStringBacktick */ 'sb': #0a3069,
|
||||
/* LiteralStringChar */ 'sc': #0a3069,
|
||||
/* LiteralStringDelimiter */ 'dl': #0a3069,
|
||||
/* LiteralStringDoc */ 'sd': #0a3069,
|
||||
/* LiteralStringDouble */ 's2': #0a3069,
|
||||
/* LiteralStringEscape */ 'se': #0a3069,
|
||||
/* LiteralStringHeredoc */ 'sh': #0a3069,
|
||||
/* LiteralStringInterpol */ 'si': #0a3069,
|
||||
/* LiteralStringOther */ 'sx': #0a3069,
|
||||
/* LiteralStringRegex */ 'sr': #0a3069,
|
||||
/* LiteralStringSingle */ 's1': #0a3069,
|
||||
/* LiteralStringSymbol */ 'ss': #0a3069,
|
||||
/* LiteralNumber */ 'm': #0550ae,
|
||||
/* LiteralNumberBin */ 'mb': #0550ae,
|
||||
/* LiteralNumberFloat */ 'mf': #0550ae,
|
||||
/* LiteralNumberHex */ 'mh': #0550ae,
|
||||
/* LiteralNumberInteger */ 'mi': #0550ae,
|
||||
/* LiteralNumberIntegerLong */ 'il': #0550ae,
|
||||
/* LiteralNumberOct */ 'mo': #0550ae,
|
||||
/* Operator */ 'o': #cf222e,
|
||||
/* OperatorWord */ 'ow': #cf222e,
|
||||
/* Punctuation */ 'p': $code-color,
|
||||
/* Comment */ 'c': #6e7781,
|
||||
/* CommentHashbang */ 'ch': #6e7781,
|
||||
/* CommentMultiline */ 'cm': #6e7781,
|
||||
/* CommentSingle */ 'c1': #6e7781,
|
||||
/* CommentSpecial */ 'cs': #6e7781,
|
||||
/* CommentPreproc */ 'cp': #0550ae,
|
||||
/* CommentPreprocFile */ 'cpf': #6e7781,
|
||||
/* Generic */ 'g': $code-color,
|
||||
/* GenericDeleted */ 'gd': #82071e,
|
||||
/* GenericEmph */ 'ge': $code-color,
|
||||
/* GenericError */ 'gr': $code-error-color,
|
||||
/* GenericHeading */ 'gh': $code-color,
|
||||
/* GenericInserted */ 'gi': #116329,
|
||||
/* GenericOutput */ 'go': $code-color,
|
||||
/* GenericPrompt */ 'gp': $code-color,
|
||||
/* GenericStrong */ 'gs': $code-color,
|
||||
/* GenericSubheading */ 'gu': $code-color,
|
||||
/* GenericTraceback */ 'gt': $code-error-color,
|
||||
/* GenericUnderline */ 'gl': $code-color,
|
||||
/* TextWhitespace */ 'w': $code-color,
|
||||
/* Other */ 'x': $code-color
|
||||
) !default;
|
||||
$code-highlight-color-map-dark: (
|
||||
/* Error */ 'err': $code-error-color,
|
||||
/* Keyword */ 'k': #f47067,
|
||||
/* KeywordConstant */ 'kc': #6cb6ff,
|
||||
/* KeywordDeclaration */ 'kd': #f47067,
|
||||
/* KeywordNamespace */ 'kn': #f47067,
|
||||
/* KeywordPseudo */ 'kp': #f47067,
|
||||
/* KeywordReserved */ 'kr': #f47067,
|
||||
/* KeywordType */ 'kt': #f47067,
|
||||
/* Name */ 'n': $code-color-dark,
|
||||
/* NameAttribute */ 'na': #6cb6ff,
|
||||
/* NameBuiltin */ 'nb': #dcbdfb,
|
||||
/* NameBuiltinPseudo */ 'bp': $code-color-dark,
|
||||
/* NameClass */ 'nc': #dcbdfb,
|
||||
/* NameConstant */ 'no': #6cb6ff,
|
||||
/* NameDecorator */ 'nd': #dcbdfb,
|
||||
/* NameEntity */ 'ni': #6cb6ff,
|
||||
/* NameException */ 'ne': #6cb6ff,
|
||||
/* NameFunction */ 'nf': #dcbdfb,
|
||||
/* NameFunctionMagic */ 'fm': #6cb6ff,
|
||||
/* NameLabel */ 'nl': #6cb6ff,
|
||||
/* NameNamespace */ 'nn': #f47067,
|
||||
/* NameOther */ 'nx': #dcbdfb,
|
||||
/* NameProperty */ 'py': #6cb6ff,
|
||||
/* NameTag */ 'nt': #8ddb8c,
|
||||
/* NameVariable */ 'nv': #f69d50,
|
||||
/* NameVariableClass */ 'vc': #6cb6ff,
|
||||
/* NameVariableGlobal */ 'vg': #6cb6ff,
|
||||
/* NameVariableInstance */ 'vi': #6cb6ff,
|
||||
/* NameVariableMagic */ 'vm': #6cb6ff,
|
||||
/* Literal */ 'l': #6cb6ff,
|
||||
/* LiteralDate */ 'ld': #96d0ff,
|
||||
/* LiteralString */ 's': #96d0ff,
|
||||
/* LiteralStringAffix */ 'sa': #96d0ff,
|
||||
/* LiteralStringBacktick */ 'sb': #96d0ff,
|
||||
/* LiteralStringChar */ 'sc': #96d0ff,
|
||||
/* LiteralStringDelimiter */ 'dl': #96d0ff,
|
||||
/* LiteralStringDoc */ 'sd': #96d0ff,
|
||||
/* LiteralStringDouble */ 's2': #96d0ff,
|
||||
/* LiteralStringEscape */ 'se': #96d0ff,
|
||||
/* LiteralStringHeredoc */ 'sh': #96d0ff,
|
||||
/* LiteralStringInterpol */ 'si': #96d0ff,
|
||||
/* LiteralStringOther */ 'sx': #96d0ff,
|
||||
/* LiteralStringRegex */ 'sr': #96d0ff,
|
||||
/* LiteralStringSingle */ 's1': #96d0ff,
|
||||
/* LiteralStringSymbol */ 'ss': #96d0ff,
|
||||
/* LiteralNumber */ 'm': #6cb6ff,
|
||||
/* LiteralNumberBin */ 'mb': #6cb6ff,
|
||||
/* LiteralNumberFloat */ 'mf': #6cb6ff,
|
||||
/* LiteralNumberHex */ 'mh': #6cb6ff,
|
||||
/* LiteralNumberInteger */ 'mi': #6cb6ff,
|
||||
/* LiteralNumberIntegerLong */ 'il': #6cb6ff,
|
||||
/* LiteralNumberOct */ 'mo': #6cb6ff,
|
||||
/* Operator */ 'o': #f47067,
|
||||
/* OperatorWord */ 'ow': #f47067,
|
||||
/* Punctuation */ 'p': $code-color-dark,
|
||||
/* Comment */ 'c': #768390,
|
||||
/* CommentHashbang */ 'ch': #768390,
|
||||
/* CommentMultiline */ 'cm': #768390,
|
||||
/* CommentSingle */ 'c1': #768390,
|
||||
/* CommentSpecial */ 'cs': #768390,
|
||||
/* CommentPreproc */ 'cp': #6cb6ff,
|
||||
/* CommentPreprocFile */ 'cpf': #768390,
|
||||
/* Generic */ 'g': $code-color-dark,
|
||||
/* GenericDeleted */ 'gd': #ffd8d3,
|
||||
/* GenericEmph */ 'ge': $code-color-dark,
|
||||
/* GenericError */ 'gr': $code-error-color,
|
||||
/* GenericHeading */ 'gh': $code-color-dark,
|
||||
/* GenericInserted */ 'gi': #b4f1b4,
|
||||
/* GenericOutput */ 'go': $code-color-dark,
|
||||
/* GenericPrompt */ 'gp': $code-color-dark,
|
||||
/* GenericStrong */ 'gs': $code-color-dark,
|
||||
/* GenericSubheading */ 'gu': $code-color-dark,
|
||||
/* GenericTraceback */ 'gt': $code-error-color,
|
||||
/* GenericUnderline */ 'gl': $code-color-dark,
|
||||
/* TextWhitespace */ 'w': $code-color-dark,
|
||||
/* Other */ 'x': $code-color-dark
|
||||
) !default;
|
||||
// ========== Code ========== //
|
||||
|
||||
// ========== Admonition ========== //
|
||||
// Color map of the admonition
|
||||
$admonition-color-map: (
|
||||
'note': #448aff,
|
||||
'abstract': #00b0ff,
|
||||
'info': #00b8d4,
|
||||
'tip': #00bfa5,
|
||||
'success': #00c853,
|
||||
'question': #64dd17,
|
||||
'warning': #ff9100,
|
||||
'failure': #ff5252,
|
||||
'danger': #ff1744,
|
||||
'bug': #f50057,
|
||||
'example': #651fff,
|
||||
'quote': #9e9e9e
|
||||
) !default;
|
||||
|
||||
// Color map of the admonition background
|
||||
$admonition-background-color-map: (
|
||||
'note': rgba(68, 138, 255, 0.1),
|
||||
'abstract': rgba(0, 176, 255, 0.1),
|
||||
'info': rgba(0, 184, 212, 0.1),
|
||||
'tip': rgba(0, 191, 165, 0.1),
|
||||
'success': rgba(0, 200, 83, 0.1),
|
||||
'question': rgba(100, 221, 23, 0.1),
|
||||
'warning': rgba(255, 145, 0, 0.1),
|
||||
'failure': rgba(255, 82, 82, 0.1),
|
||||
'danger': rgba(255, 23, 68, 0.1),
|
||||
'bug': rgba(245, 0, 87, 0.1),
|
||||
'example': rgba(101, 31, 255, 0.1),
|
||||
'quote': rgba(159, 159, 159, 0.1)
|
||||
) !default;
|
||||
// ========== Admonition ========== //
|
||||
|
||||
// ========== GitHub Corners ========== //
|
||||
// Color of the GitHub Corners
|
||||
$github-corner-color: white !default;
|
||||
@@ -387,3 +160,9 @@ $github-corner-color-dark: black !default;
|
||||
$github-corner-fill: $header-background-color-dark !default;
|
||||
$github-corner-fill-dark: $header-background-color !default;
|
||||
// ========== GitHub Corners ========== //
|
||||
|
||||
@import '_partials/_maps/admonition';
|
||||
@import '_partials/_maps/code-highlight';
|
||||
@import '_partials/_maps/code-type';
|
||||
@import '_partials/_maps/colors';
|
||||
@import '_partials/_maps/utilities';
|
||||
|
||||
+3
-11
@@ -2,19 +2,11 @@
|
||||
|
||||
@import "_variables";
|
||||
@import "_override";
|
||||
|
||||
@import "_mixin/index";
|
||||
|
||||
@import "_core/root";
|
||||
@import "_core/base";
|
||||
@import "_core/layout";
|
||||
|
||||
@import "_page/index";
|
||||
|
||||
@import "_partial/header";
|
||||
@import "_partial/footer";
|
||||
@import "_partial/pagination";
|
||||
|
||||
@import "_core/common";
|
||||
@import "_page";
|
||||
@import "_core/media";
|
||||
|
||||
@import "_common";
|
||||
@import "_custom";
|
||||
|
||||
@@ -1,74 +1,86 @@
|
||||
# Tips: remove sourceMappingURL of local libraries to avoid source map 404 error.
|
||||
# See https://github.com/hugo-fixit/FixIt/issues/67
|
||||
|
||||
prefix:
|
||||
libFiles: https://cdn.jsdelivr.net/npm/
|
||||
# simple-icons@6.3.0 https://github.com/simple-icons/simple-icons
|
||||
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@6.3.0/icons/
|
||||
# simple-icons@7.12.0 https://github.com/simple-icons/simple-icons
|
||||
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@7.12.0/icons/
|
||||
libFiles:
|
||||
# algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
|
||||
algoliasearchJS: algoliasearch@4.13.0/dist/algoliasearch-lite.umd.min.js
|
||||
# algoliasearch@4.14.2 https://github.com/algolia/algoliasearch-client-javascript
|
||||
algoliasearchJS: algoliasearch@4.14.2/dist/algoliasearch-lite.umd.min.js
|
||||
# animate.css@4.1.1 https://github.com/daneden/animate.css
|
||||
animateCSS: animate.css@4.1.1/animate.min.css
|
||||
# aplayer@1.10.1 https://github.com/MoePlayer/APlayer
|
||||
aplayerCSS: aplayer@1.10.1/dist/APlayer.min.css
|
||||
aplayerJS: aplayer@1.10.1/dist/APlayer.min.js
|
||||
# artalk@2.1.4 https://github.com/ArtalkJS/Artalk
|
||||
artalkCSS: artalk@2.2.12/dist/Artalk.min.css
|
||||
artalkJS: artalk@2.2.12/dist/Artalk.min.js
|
||||
# autocomplete.js@0.38.1 https://github.com/algolia/autocomplete.js
|
||||
# artalk@2.3.4 https://github.com/ArtalkJS/Artalk
|
||||
artalkCSS: artalk@2.3.4/dist/Artalk.min.css
|
||||
artalkJS: artalk@2.3.4/dist/Artalk.min.js
|
||||
# autocomplete-js@0.38.1 https://github.com/algolia/autocomplete
|
||||
# TODO update autocompleteJS: '@algolia/autocomplete-js@1.7.1/dist/umd/index.production.js'
|
||||
autocompleteJS: autocomplete.js@0.38.1/dist/autocomplete.min.js
|
||||
# cell-watermark@1.0.3 https://github.com/Lruihao/watermark
|
||||
cellWatermarkJS: cell-watermark@1.0.3/src/watermark.min.js
|
||||
# cookieconsent@3.1.1 https://github.com/osano/cookieconsent
|
||||
cookieconsentCSS: cookieconsent@3.1.1/build/cookieconsent.min.css
|
||||
cookieconsentJS: cookieconsent@3.1.1/build/cookieconsent.min.js
|
||||
# echarts@5.2.2 https://github.com/apache/echarts
|
||||
echartsJS: echarts@5.3.2/dist/echarts.min.js
|
||||
echartsMacaronsJS: echarts@5.3.2/theme/macarons.min.js
|
||||
# TODO update
|
||||
# fontawesome-free@5.14.0 https://github.com/FortAwesome/Font-Awesome
|
||||
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@5.14.0/css/all.min.css'
|
||||
# crypto-js@4.1.1 https://github.com/brix/crypto-js
|
||||
cryptoCoreJS: crypto-js@4.1.1/core.js
|
||||
cryptoEncBase64JS: crypto-js@4.1.1/enc-base64.js
|
||||
cryptoMd5JS: crypto-js@4.1.1/md5.js
|
||||
cryptoSha256JS: crypto-js@4.1.1/sha256.js
|
||||
# echarts@5.3.3 https://github.com/apache/echarts
|
||||
echartsJS: echarts@5.3.3/dist/echarts.min.js
|
||||
# eruda@2.5.0 https://github.com/liriliri/eruda
|
||||
erudaJS: eruda@2.5.0/eruda.js
|
||||
# fontawesome-free@6.2.0 https://github.com/FortAwesome/Font-Awesome
|
||||
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@6.2.0/css/all.min.css'
|
||||
# fusejs@6.6.2 https://github.com/krisk/fuse
|
||||
fuseJS: fuse.js@6.6.2/dist/fuse.min.js
|
||||
# gitalk@1.7.2 https://github.com/gitalk/gitalk
|
||||
gitalkCSS: gitalk@1.7.2/dist/gitalk.min.css
|
||||
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
|
||||
# katex@0.15.1 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.15.3/dist/contrib/auto-render.min.js
|
||||
katexCopyTexCSS: katex@0.15.3/dist/contrib/copy-tex.min.css
|
||||
katexCopyTexJS: katex@0.15.3/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.15.3/dist/katex.min.css
|
||||
katexJS: katex@0.15.3/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js
|
||||
# katex@0.16.2 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.16.2/dist/contrib/auto-render.min.js
|
||||
katexCopyTexJS: katex@0.16.2/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.16.2/dist/katex.min.css
|
||||
katexJS: katex@0.16.2/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.16.2/dist/contrib/mhchem.min.js
|
||||
# lazysizes@5.3.2 https://github.com/aFarkas/lazysizes
|
||||
lazysizesJS: lazysizes@5.3.2/lazysizes.min.js
|
||||
# lightgallery.js@1.4.0 https://github.com/sachinchoolur/lightgallery.js
|
||||
# lg-thumbnail.js@1.4.0 https://github.com/sachinchoolur/lg-thumbnail.js
|
||||
# lg-zoom.js@1.3.0 https://github.com/sachinchoolur/lg-zoom.js
|
||||
lightgalleryCSS: lightgallery.js@1.4.0/dist/css/lightgallery.min.css
|
||||
lightgalleryJS: lightgallery.js@1.4.0/dist/js/lightgallery.min.js
|
||||
lightgalleryThumbnailJS: lg-thumbnail.js@1.2.0/dist/lg-thumbnail.min.js
|
||||
lightgalleryZoomJS: lg-zoom.js@1.3.0/dist/lg-zoom.min.js
|
||||
# lightgallery@2.6.1 https://github.com/sachinchoolur/lightgallery
|
||||
lightgalleryCSS: lightgallery@2.6.1/css/lightgallery-bundle.min.css
|
||||
lightgalleryJS: lightgallery@2.6.1/lightgallery.min.js
|
||||
lightgalleryThumbnailJS: lightgallery@2.6.1/plugins/thumbnail/lg-thumbnail.min.js
|
||||
lightgalleryZoomJS: lightgallery@2.6.1/plugins/zoom/lg-zoom.min.js
|
||||
# lunr.js@2.3.9 https://github.com/olivernn/lunr.js
|
||||
lunrJS: lunr@2.3.9/lunr.min.js
|
||||
# mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js
|
||||
mapboxGLCSS: mapbox-gl@2.8.2/dist/mapbox-gl.min.css
|
||||
mapboxGLJS: mapbox-gl@2.8.2/dist/mapbox-gl.min.js
|
||||
# TODO update
|
||||
# mermaid@8.13.3 https://github.com/knsv/mermaid
|
||||
mermaidJS: mermaid@8.13.3/dist/mermaid.min.js
|
||||
# mapbox-gl@2.10.0 https://docs.mapbox.com/mapbox-gl-js
|
||||
mapboxGLCSS: mapbox-gl@2.10.0/dist/mapbox-gl.css
|
||||
mapboxGLJS: mapbox-gl@2.10.0/dist/mapbox-gl.js
|
||||
# mermaid@9.1.7 https://github.com/mermaid-js/mermaid
|
||||
mermaidJS: mermaid@9.1.7/dist/mermaid.min.js
|
||||
# meting@2.0.1 https://github.com/metowolf/MetingJS
|
||||
metingJS: meting@2.0.1/dist/Meting.min.js
|
||||
# normalize.css@8.0.1 https://github.com/necolas/normalize.css
|
||||
normalizeCSS: normalize.css@8.0.1/normalize.min.css
|
||||
# object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
|
||||
objectFitImagesJS: object-fit-images@3.2.4/dist/ofi.min.js
|
||||
# pangu.js@4.0.7 https://github.com/vinta/pangu.js
|
||||
panguJS: pangu@4.0.7/dist/browser/pangu.min.js
|
||||
# pace-js@1.2.4 https://github.com/CodeByZach/pace
|
||||
paceJS: pace-js@1.2.4
|
||||
# sharer.js@0.4.2 https://github.com/ellisonleao/sharer.js
|
||||
sharerJS: sharer.js@0.5.1/sharer.min.js
|
||||
# twemoji@13.1.0 https://github.com/twitter/twemoji
|
||||
twemojiJS: twemoji@14.0.2/dist/twemoji.min.js
|
||||
# typeit@7.0.4 https://github.com/alexmacarthur/typeit
|
||||
typeitJS: typeit@7.0.4/dist/typeit.min.js
|
||||
# valine@1.4.16 https://github.com/xCss/Valine
|
||||
valineJS: valine@1.4.18/dist/Valine.min.js
|
||||
# waline@1.5.2 https://github.com/walinejs/waline
|
||||
# TODO update
|
||||
walineJS: "@waline/client@1.5.2/dist/Waline.min.js"
|
||||
# twikoo@1.6.8 https://github.com/imaegoo/twikoo
|
||||
twikooJS: twikoo@1.6.8/dist/twikoo.all.min.js
|
||||
# typeit@8.7.0 https://github.com/alexmacarthur/typeit
|
||||
typeitJS: typeit@8.7.0/dist/index.umd.js
|
||||
# valine@1.5.1 https://github.com/xCss/Valine
|
||||
valineJS: valine@1.5.1/dist/Valine.min.js
|
||||
# vconsole@3.14.6 https://github.com/Tencent/vConsole
|
||||
vconsoleJS: vconsole@3.14.6/dist/vconsole.min.js
|
||||
# waline@2.10.0 https://github.com/walinejs/waline
|
||||
walineCSS: '@waline/client@2.10.0/dist/waline.css'
|
||||
walineJS: '@waline/client@2.10.0/dist/waline.js'
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
# Tips: remove sourceMappingURL of local libraries to avoid source map 404 error.
|
||||
# See https://github.com/hugo-fixit/FixIt/issues/67
|
||||
|
||||
prefix:
|
||||
libFiles: https://unpkg.com/
|
||||
# simple-icons@7.12.0 https://github.com/simple-icons/simple-icons
|
||||
simpleIcons: https://unpkg.com/simple-icons@7.12.0/icons/
|
||||
libFiles:
|
||||
# algoliasearch@4.14.2 https://github.com/algolia/algoliasearch-client-javascript
|
||||
algoliasearchJS: algoliasearch@4.14.2/dist/algoliasearch-lite.umd.min.js
|
||||
# animate.css@4.1.1 https://github.com/daneden/animate.css
|
||||
animateCSS: animate.css@4.1.1/animate.min.css
|
||||
# aplayer@1.10.1 https://github.com/MoePlayer/APlayer
|
||||
aplayerCSS: aplayer@1.10.1/dist/APlayer.min.css
|
||||
aplayerJS: aplayer@1.10.1/dist/APlayer.min.js
|
||||
# artalk@2.3.4 https://github.com/ArtalkJS/Artalk
|
||||
artalkCSS: artalk@2.3.4/dist/Artalk.css
|
||||
artalkJS: artalk@2.3.4/dist/Artalk.js
|
||||
# autocomplete-js@0.38.1 https://github.com/algolia/autocomplete
|
||||
# TODO update autocompleteJS: '@algolia/autocomplete-js@1.7.1/dist/umd/index.production.js'
|
||||
autocompleteJS: autocomplete.js@0.38.1/dist/autocomplete.min.js
|
||||
# cell-watermark@1.0.3 https://github.com/Lruihao/watermark
|
||||
cellWatermarkJS: cell-watermark@1.0.3/src/watermark.min.js
|
||||
# cookieconsent@3.1.1 https://github.com/osano/cookieconsent
|
||||
cookieconsentCSS: cookieconsent@3.1.1/build/cookieconsent.min.css
|
||||
cookieconsentJS: cookieconsent@3.1.1/build/cookieconsent.min.js
|
||||
# crypto-js@4.1.1 https://github.com/brix/crypto-js
|
||||
cryptoCoreJS: crypto-js@4.1.1/core.js
|
||||
cryptoEncBase64JS: crypto-js@4.1.1/enc-base64.js
|
||||
cryptoMd5JS: crypto-js@4.1.1/md5.js
|
||||
cryptoSha256JS: crypto-js@4.1.1/sha256.js
|
||||
# echarts@5.3.3 https://github.com/apache/echarts
|
||||
echartsJS: echarts@5.3.3/dist/echarts.min.js
|
||||
# eruda@2.5.0 https://github.com/liriliri/eruda
|
||||
erudaJS: eruda@2.5.0/eruda.js
|
||||
# fontawesome-free@6.2.0 https://github.com/FortAwesome/Font-Awesome
|
||||
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@6.2.0/css/all.min.css'
|
||||
# fusejs@6.6.2 https://github.com/krisk/fuse
|
||||
fuseJS: fuse.js@6.6.2/dist/fuse.min.js
|
||||
# gitalk@1.7.2 https://github.com/gitalk/gitalk
|
||||
gitalkCSS: gitalk@1.7.2/dist/gitalk.min.css
|
||||
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
|
||||
# katex@0.16.2 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.16.2/dist/contrib/auto-render.min.js
|
||||
katexCopyTexJS: katex@0.16.2/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.16.2/dist/katex.min.css
|
||||
katexJS: katex@0.16.2/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.16.2/dist/contrib/mhchem.min.js
|
||||
# lazysizes@5.3.2 https://github.com/aFarkas/lazysizes
|
||||
lazysizesJS: lazysizes@5.3.2/lazysizes.min.js
|
||||
# lightgallery@2.6.1 https://github.com/sachinchoolur/lightgallery
|
||||
lightgalleryCSS: lightgallery@2.6.1/css/lightgallery-bundle.min.css
|
||||
lightgalleryJS: lightgallery@2.6.1/lightgallery.min.js
|
||||
lightgalleryThumbnailJS: lightgallery@2.6.1/plugins/thumbnail/lg-thumbnail.min.js
|
||||
lightgalleryZoomJS: lightgallery@2.6.1/plugins/zoom/lg-zoom.min.js
|
||||
# lunr.js@2.3.9 https://github.com/olivernn/lunr.js
|
||||
lunrJS: lunr@2.3.9/lunr.min.js
|
||||
# mapbox-gl@2.10.0 https://docs.mapbox.com/mapbox-gl-js
|
||||
mapboxGLCSS: mapbox-gl@2.10.0/dist/mapbox-gl.css
|
||||
mapboxGLJS: mapbox-gl@2.10.0/dist/mapbox-gl.js
|
||||
# mermaid@9.1.7 https://github.com/mermaid-js/mermaid
|
||||
mermaidJS: mermaid@9.1.7/dist/mermaid.min.js
|
||||
# meting@2.0.1 https://github.com/metowolf/MetingJS
|
||||
metingJS: meting@2.0.1/dist/Meting.min.js
|
||||
# object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
|
||||
objectFitImagesJS: object-fit-images@3.2.4/dist/ofi.min.js
|
||||
# pangu.js@4.0.7 https://github.com/vinta/pangu.js
|
||||
panguJS: pangu@4.0.7/dist/browser/pangu.min.js
|
||||
# pace-js@1.2.4 https://github.com/CodeByZach/pace
|
||||
paceJS: pace-js@1.2.4
|
||||
# sharer.js@0.4.2 https://github.com/ellisonleao/sharer.js
|
||||
sharerJS: sharer.js@0.5.1/sharer.min.js
|
||||
# twemoji@13.1.0 https://github.com/twitter/twemoji
|
||||
twemojiJS: twemoji@14.0.2/dist/twemoji.min.js
|
||||
# twikoo@1.6.8 https://github.com/imaegoo/twikoo
|
||||
twikooJS: twikoo@1.6.8/dist/twikoo.all.min.js
|
||||
# typeit@8.7.0 https://github.com/alexmacarthur/typeit
|
||||
typeitJS: typeit@8.7.0/dist/index.umd.js
|
||||
# valine@1.5.1 https://github.com/xCss/Valine
|
||||
valineJS: valine@1.5.1/dist/Valine.min.js
|
||||
# vconsole@3.14.6 https://github.com/Tencent/vConsole
|
||||
vconsoleJS: vconsole@3.14.6/dist/vconsole.min.js
|
||||
# waline@2.10.0 https://github.com/walinejs/waline
|
||||
walineCSS: '@waline/client@2.10.0/dist/waline.css'
|
||||
walineJS: '@waline/client@2.10.0/dist/waline.js'
|
||||
|
||||
+176
-67
@@ -4,7 +4,7 @@ github:
|
||||
Prefix: https://github.com/
|
||||
Title: GitHub
|
||||
Icon:
|
||||
Class: fab fa-github-alt fa-fw
|
||||
Class: fa-brands fa-github-alt fa-fw
|
||||
|
||||
# 002: LinkedIn
|
||||
linkedin:
|
||||
@@ -12,7 +12,7 @@ linkedin:
|
||||
Prefix: https://linkedin.com/in/
|
||||
Title: LinkedIn
|
||||
Icon:
|
||||
Class: fab fa-linkedin fa-fw
|
||||
Class: fa-brands fa-linkedin fa-fw
|
||||
|
||||
# 003: Twitter
|
||||
twitter:
|
||||
@@ -20,7 +20,7 @@ twitter:
|
||||
Prefix: https://twitter.com/
|
||||
Title: Twitter
|
||||
Icon:
|
||||
Class: fab fa-twitter fa-fw
|
||||
Class: fa-brands fa-twitter fa-fw
|
||||
|
||||
# 004: Instagram
|
||||
instagram:
|
||||
@@ -28,7 +28,7 @@ instagram:
|
||||
Prefix: https://www.instagram.com/
|
||||
Title: Instagram
|
||||
Icon:
|
||||
Class: fab fa-instagram fa-fw
|
||||
Class: fa-brands fa-instagram fa-fw
|
||||
|
||||
# 005: facebook
|
||||
facebook:
|
||||
@@ -36,7 +36,7 @@ facebook:
|
||||
Prefix: https://facebook.com/
|
||||
Title: facebook
|
||||
Icon:
|
||||
Class: fab fa-facebook fa-fw
|
||||
Class: fa-brands fa-facebook fa-fw
|
||||
|
||||
# 006: Telegram
|
||||
telegram:
|
||||
@@ -44,7 +44,7 @@ telegram:
|
||||
Prefix: https://t.me/
|
||||
Title: Telegram
|
||||
Icon:
|
||||
Class: fab fa-telegram-plane fa-fw
|
||||
Class: fa-brands fa-telegram-plane fa-fw
|
||||
|
||||
# 007: Medium
|
||||
medium:
|
||||
@@ -52,7 +52,7 @@ medium:
|
||||
Prefix: https://medium.com/
|
||||
Title: Medium
|
||||
Icon:
|
||||
Class: fab fa-medium fa-fw
|
||||
Class: fa-brands fa-medium fa-fw
|
||||
|
||||
# 008: GitLab
|
||||
gitlab:
|
||||
@@ -60,7 +60,7 @@ gitlab:
|
||||
Prefix: https://gitlab.com/
|
||||
Title: GitLab
|
||||
Icon:
|
||||
Class: fab fa-gitlab fa-fw
|
||||
Class: fa-brands fa-gitlab fa-fw
|
||||
|
||||
# 009: YouTube Legacy
|
||||
youtubelegacy:
|
||||
@@ -68,7 +68,7 @@ youtubelegacy:
|
||||
Prefix: https://www.youtube.com/user/
|
||||
Title: YouTube
|
||||
Icon:
|
||||
Class: fab fa-youtube fa-fw
|
||||
Class: fa-brands fa-youtube fa-fw
|
||||
|
||||
# 010: YouTube Custom
|
||||
youtubecustom:
|
||||
@@ -76,7 +76,7 @@ youtubecustom:
|
||||
Prefix: https://www.youtube.com/c/
|
||||
Title: YouTube
|
||||
Icon:
|
||||
Class: fab fa-youtube fa-fw
|
||||
Class: fa-brands fa-youtube fa-fw
|
||||
|
||||
# 011: YouTube Channel
|
||||
youtubechannel:
|
||||
@@ -84,7 +84,7 @@ youtubechannel:
|
||||
Prefix: https://www.youtube.com/channel/
|
||||
Title: YouTube
|
||||
Icon:
|
||||
Class: fab fa-youtube fa-fw
|
||||
Class: fa-brands fa-youtube fa-fw
|
||||
|
||||
# 012: Tumblr
|
||||
tumblr:
|
||||
@@ -92,7 +92,7 @@ tumblr:
|
||||
Template: https://%v.tumblr.com/
|
||||
Title: Tumblr
|
||||
Icon:
|
||||
Class: fab fa-tumblr fa-fw
|
||||
Class: fa-brands fa-tumblr fa-fw
|
||||
|
||||
# 013: Quora
|
||||
quora:
|
||||
@@ -100,7 +100,7 @@ quora:
|
||||
Prefix: https://www.quora.com/profile/
|
||||
Title: Quora
|
||||
Icon:
|
||||
Class: fab fa-quora fa-fw
|
||||
Class: fa-brands fa-quora fa-fw
|
||||
|
||||
# 014: Keybase
|
||||
keybase:
|
||||
@@ -108,7 +108,7 @@ keybase:
|
||||
Prefix: https://keybase.io/
|
||||
Title: Keybase
|
||||
Icon:
|
||||
Class: fab fa-keybase fa-fw
|
||||
Class: fa-brands fa-keybase fa-fw
|
||||
|
||||
# 015: Pinterest
|
||||
pinterest:
|
||||
@@ -116,7 +116,7 @@ pinterest:
|
||||
Prefix: https://www.pinterest.com/
|
||||
Title: Pinterest
|
||||
Icon:
|
||||
Class: fab fa-pinterest fa-fw
|
||||
Class: fa-brands fa-pinterest fa-fw
|
||||
|
||||
# 016: Reddit
|
||||
reddit:
|
||||
@@ -124,7 +124,7 @@ reddit:
|
||||
Prefix: https://www.reddit.com/user/
|
||||
Title: Reddit
|
||||
Icon:
|
||||
Class: fab fa-reddit fa-fw
|
||||
Class: fa-brands fa-reddit fa-fw
|
||||
|
||||
# 017: CodePen
|
||||
codepen:
|
||||
@@ -132,7 +132,7 @@ codepen:
|
||||
Prefix: https://codepen.io/
|
||||
Title: CodePen
|
||||
Icon:
|
||||
Class: fab fa-codepen fa-fw
|
||||
Class: fa-brands fa-codepen fa-fw
|
||||
|
||||
# 018: freeCodeCamp
|
||||
freecodecamp:
|
||||
@@ -140,7 +140,7 @@ freecodecamp:
|
||||
Prefix: https://freecodecamp.org/
|
||||
Title: freeCodeCamp
|
||||
Icon:
|
||||
Class: fab fa-free-code-camp fa-fw
|
||||
Class: fa-brands fa-free-code-camp fa-fw
|
||||
|
||||
# 019: Bitbucket
|
||||
bitbucket:
|
||||
@@ -148,7 +148,7 @@ bitbucket:
|
||||
Prefix: https://bitbucket.org/
|
||||
Title: Bitbucket
|
||||
Icon:
|
||||
Class: fab fa-bitbucket fa-fw
|
||||
Class: fa-brands fa-bitbucket fa-fw
|
||||
|
||||
# 020: Stack Overflow
|
||||
stackoverflow:
|
||||
@@ -156,7 +156,7 @@ stackoverflow:
|
||||
Prefix: https://stackoverflow.com/users/
|
||||
Title: Stack Overflow
|
||||
Icon:
|
||||
Class: fab fa-codepen fa-fw
|
||||
Class: fa-brands fa-stack-overflow fa-fw
|
||||
|
||||
# 021: 微博
|
||||
weibo:
|
||||
@@ -164,7 +164,7 @@ weibo:
|
||||
Prefix: https://weibo.com/
|
||||
Title: 微博
|
||||
Icon:
|
||||
Class: fab fa-weibo fa-fw
|
||||
Class: fa-brands fa-weibo fa-fw
|
||||
|
||||
# 022: OK.RU
|
||||
odnoklassniki:
|
||||
@@ -172,7 +172,7 @@ odnoklassniki:
|
||||
Prefix: https://ok.ru/
|
||||
Title: OK.RU
|
||||
Icon:
|
||||
Class: fab fa-odnoklassniki fa-fw
|
||||
Class: fa-brands fa-odnoklassniki fa-fw
|
||||
|
||||
# 023: VK
|
||||
vk:
|
||||
@@ -180,7 +180,7 @@ vk:
|
||||
Prefix: https://vk.com/
|
||||
Title: VK
|
||||
Icon:
|
||||
Class: fab fa-vk fa-fw
|
||||
Class: fa-brands fa-vk fa-fw
|
||||
|
||||
# 024: Flickr
|
||||
flickr:
|
||||
@@ -188,7 +188,7 @@ flickr:
|
||||
Prefix: https://www.flickr.com/photos/
|
||||
Title: Flickr
|
||||
Icon:
|
||||
Class: fab fa-flickr fa-fw
|
||||
Class: fa-brands fa-flickr fa-fw
|
||||
|
||||
# 025: Xing
|
||||
xing:
|
||||
@@ -196,7 +196,7 @@ xing:
|
||||
Prefix: https://www.xing.com/profile/
|
||||
Title: Xing
|
||||
Icon:
|
||||
Class: fab fa-xing fa-fw
|
||||
Class: fa-brands fa-xing fa-fw
|
||||
|
||||
# 026: Snapchat
|
||||
snapchat:
|
||||
@@ -204,7 +204,7 @@ snapchat:
|
||||
Prefix: https://www.snapchat.com/add/
|
||||
Title: Snapchat
|
||||
Icon:
|
||||
Class: fab fa-snapchat fa-fw
|
||||
Class: fa-brands fa-snapchat fa-fw
|
||||
|
||||
# 027: SoundCloud
|
||||
soundcloud:
|
||||
@@ -212,7 +212,7 @@ soundcloud:
|
||||
Prefix: https://soundcloud.com/
|
||||
Title: SoundCloud
|
||||
Icon:
|
||||
Class: fab fa-soundcloud fa-fw
|
||||
Class: fa-brands fa-soundcloud fa-fw
|
||||
|
||||
# 028: Spotify
|
||||
spotify:
|
||||
@@ -220,7 +220,7 @@ spotify:
|
||||
Prefix: https://open.spotify.com/user/
|
||||
Title: Spotify
|
||||
Icon:
|
||||
Class: fab fa-spotify fa-fw
|
||||
Class: fa-brands fa-spotify fa-fw
|
||||
|
||||
# 029: Bandcamp
|
||||
bandcamp:
|
||||
@@ -228,7 +228,7 @@ bandcamp:
|
||||
Template: https://%v.bandcamp.com/
|
||||
Title: Bandcamp
|
||||
Icon:
|
||||
Class: fab fa-bandcamp fa-fw
|
||||
Class: fa-brands fa-bandcamp fa-fw
|
||||
|
||||
# 030: PayPal
|
||||
paypal:
|
||||
@@ -236,7 +236,7 @@ paypal:
|
||||
Prefix: https://paypal.me/
|
||||
Title: PayPal
|
||||
Icon:
|
||||
Class: fab fa-paypal fa-fw
|
||||
Class: fa-brands fa-paypal fa-fw
|
||||
|
||||
# 031: 500px
|
||||
fivehundredpx:
|
||||
@@ -244,7 +244,7 @@ fivehundredpx:
|
||||
Prefix: https://500px.com/
|
||||
Title: 500px
|
||||
Icon:
|
||||
Class: fab fa-500px fa-fw
|
||||
Class: fa-brands fa-500px fa-fw
|
||||
|
||||
# 032: Mix
|
||||
mix:
|
||||
@@ -252,7 +252,7 @@ mix:
|
||||
Prefix: https://mix.com/
|
||||
Title: Mix
|
||||
Icon:
|
||||
Class: fab fa-mix fa-fw
|
||||
Class: fa-brands fa-mix fa-fw
|
||||
|
||||
# 033: Goodreads
|
||||
goodreads:
|
||||
@@ -260,7 +260,7 @@ goodreads:
|
||||
Prefix: https://www.goodreads.com/user/show/
|
||||
Title: Goodreads
|
||||
Icon:
|
||||
Class: fab fa-goodreads fa-fw
|
||||
Class: fa-brands fa-goodreads fa-fw
|
||||
|
||||
# 034: Last.fm
|
||||
lastfm:
|
||||
@@ -268,7 +268,7 @@ lastfm:
|
||||
Prefix: https://www.last.fm/user/
|
||||
Title: Last.fm
|
||||
Icon:
|
||||
Class: fab fa-lastfm fa-fw
|
||||
Class: fa-brands fa-lastfm fa-fw
|
||||
|
||||
# 035: Foursquare
|
||||
foursquare:
|
||||
@@ -276,7 +276,7 @@ foursquare:
|
||||
Prefix: https://foursquare.com/
|
||||
Title: Foursquare
|
||||
Icon:
|
||||
Class: fab fa-foursquare fa-fw
|
||||
Class: fa-brands fa-foursquare fa-fw
|
||||
|
||||
# 036: Hacker News
|
||||
hackernews:
|
||||
@@ -284,7 +284,7 @@ hackernews:
|
||||
Template: https://news.ycombinator.com/user?id=%v
|
||||
Title: Hacker News
|
||||
Icon:
|
||||
Class: fab fa-hacker-news fa-fw
|
||||
Class: fa-brands fa-hacker-news fa-fw
|
||||
|
||||
# 037: Kickstarter
|
||||
kickstarter:
|
||||
@@ -292,7 +292,7 @@ kickstarter:
|
||||
Prefix: https://kickstarter.com/profile/
|
||||
Title: Kickstarter
|
||||
Icon:
|
||||
Class: fab fa-kickstarter fa-fw
|
||||
Class: fa-brands fa-kickstarter fa-fw
|
||||
|
||||
# 038: Patreon
|
||||
patreon:
|
||||
@@ -300,7 +300,7 @@ patreon:
|
||||
Prefix: https://patreon.com/
|
||||
Title: Patreon
|
||||
Icon:
|
||||
Class: fab fa-patreon fa-fw
|
||||
Class: fa-brands fa-patreon fa-fw
|
||||
|
||||
# 039: Steam
|
||||
steam:
|
||||
@@ -308,7 +308,7 @@ steam:
|
||||
Prefix: https://steamcommunity.com/id/
|
||||
Title: Steam
|
||||
Icon:
|
||||
Class: fab fa-steam fa-fw
|
||||
Class: fa-brands fa-steam fa-fw
|
||||
|
||||
# 040: Twitch
|
||||
twitch:
|
||||
@@ -316,7 +316,7 @@ twitch:
|
||||
Prefix: https://www.twitch.tv/
|
||||
Title: Twitch
|
||||
Icon:
|
||||
Class: fab fa-twitch fa-fw
|
||||
Class: fa-brands fa-twitch fa-fw
|
||||
|
||||
# 041: Strava
|
||||
strava:
|
||||
@@ -324,7 +324,7 @@ strava:
|
||||
Prefix: https://www.strava.com/athletes/
|
||||
Title: Strava
|
||||
Icon:
|
||||
Class: fab fa-strava fa-fw
|
||||
Class: fa-brands fa-strava fa-fw
|
||||
|
||||
# 042: Skype
|
||||
skype:
|
||||
@@ -332,7 +332,7 @@ skype:
|
||||
Template: "skype:"
|
||||
Title: Skype
|
||||
Icon:
|
||||
Class: fab fa-skype fa-fw
|
||||
Class: fa-brands fa-skype fa-fw
|
||||
|
||||
# 043: WhatsApp
|
||||
whatsapp:
|
||||
@@ -340,7 +340,7 @@ whatsapp:
|
||||
Prefix: https://wa.me/
|
||||
Title: WhatsApp
|
||||
Icon:
|
||||
Class: fab fa-whatsapp fa-fw
|
||||
Class: fa-brands fa-whatsapp fa-fw
|
||||
|
||||
# 044: 知乎
|
||||
zhihu:
|
||||
@@ -348,7 +348,7 @@ zhihu:
|
||||
Prefix: https://www.zhihu.com/people/
|
||||
Title: 知乎
|
||||
Icon:
|
||||
Simpleicons: zhihu
|
||||
Class: fa-brands fa-zhihu fa-fw
|
||||
|
||||
# 045: 豆瓣
|
||||
douban:
|
||||
@@ -364,7 +364,7 @@ angellist:
|
||||
Prefix: https://angel.co/
|
||||
Title: Angellist
|
||||
Icon:
|
||||
Class: fab fa-angellist fa-fw
|
||||
Class: fa-brands fa-angellist fa-fw
|
||||
|
||||
# 047: SlideShare
|
||||
slideshare:
|
||||
@@ -372,7 +372,7 @@ slideshare:
|
||||
Prefix: https://slideshare.com/
|
||||
Title: SlideShare
|
||||
Icon:
|
||||
Class: fab fa-slideshare fa-fw
|
||||
Class: fa-brands fa-slideshare fa-fw
|
||||
|
||||
# 048: JSFiddle
|
||||
jsfiddle:
|
||||
@@ -380,7 +380,7 @@ jsfiddle:
|
||||
Prefix: https://jsfiddle.com/
|
||||
Title: JSFiddle
|
||||
Icon:
|
||||
Class: fab fa-jsfiddle fa-fw
|
||||
Class: fa-brands fa-jsfiddle fa-fw
|
||||
|
||||
# 049: DeviantArt
|
||||
deviantart:
|
||||
@@ -388,7 +388,7 @@ deviantart:
|
||||
Template: https://%v.deviantart.com/
|
||||
Title: DeviantArt
|
||||
Icon:
|
||||
Class: fab fa-deviantart fa-fw
|
||||
Class: fa-brands fa-deviantart fa-fw
|
||||
|
||||
# 050: Behance
|
||||
behance:
|
||||
@@ -396,7 +396,7 @@ behance:
|
||||
Prefix: https://behance.net/
|
||||
Title: Behance
|
||||
Icon:
|
||||
Class: fab fa-behance fa-fw
|
||||
Class: fa-brands fa-behance fa-fw
|
||||
|
||||
# 051: Dribbble
|
||||
dribbble:
|
||||
@@ -404,7 +404,7 @@ dribbble:
|
||||
Prefix: https://dribbble.com/
|
||||
Title: Dribbble
|
||||
Icon:
|
||||
Class: fab fa-dribbble fa-fw
|
||||
Class: fa-brands fa-dribbble fa-fw
|
||||
|
||||
# 052: WordPress
|
||||
wordpress:
|
||||
@@ -412,7 +412,7 @@ wordpress:
|
||||
Template: https://%v.wordpress.com/
|
||||
Title: WordPress
|
||||
Icon:
|
||||
Class: fab fa-wordpress fa-fw
|
||||
Class: fa-brands fa-wordpress fa-fw
|
||||
|
||||
# 053: Vine
|
||||
vine:
|
||||
@@ -420,7 +420,7 @@ vine:
|
||||
Prefix: https://vine.co/
|
||||
Title: Vine
|
||||
Icon:
|
||||
Class: fab fa-vine fa-fw
|
||||
Class: fa-brands fa-vine fa-fw
|
||||
|
||||
# 054: Google Scholar
|
||||
googlescholar:
|
||||
@@ -436,7 +436,7 @@ researchgate:
|
||||
Prefix: https://www.researchgate.net/profile/
|
||||
Title: ResearchGate
|
||||
Icon:
|
||||
Class: fab fa-researchgate fa-fw
|
||||
Class: fa-brands fa-researchgate fa-fw
|
||||
|
||||
# 056: Mastodon
|
||||
mastodon:
|
||||
@@ -444,7 +444,7 @@ mastodon:
|
||||
Prefix: https://mastodon.social/
|
||||
Title: Mastodon
|
||||
Icon:
|
||||
Class: fab fa-mastodon fa-fw
|
||||
Class: fa-brands fa-mastodon fa-fw
|
||||
|
||||
# 057: Thingiverse
|
||||
thingiverse:
|
||||
@@ -452,7 +452,7 @@ thingiverse:
|
||||
Prefix: https://www.thingiverse.com/
|
||||
Title: Thingiverse
|
||||
Icon:
|
||||
Src: svg/icons/thingiverse.svg
|
||||
Simpleicons: thingiverse
|
||||
|
||||
# 058: Dev.To
|
||||
devto:
|
||||
@@ -460,7 +460,7 @@ devto:
|
||||
Prefix: https://dev.to/
|
||||
Title: Dev.To
|
||||
Icon:
|
||||
Class: fab fa-dev fa-fw
|
||||
Class: fa-brands fa-dev fa-fw
|
||||
|
||||
# 059: Gitea
|
||||
gitea:
|
||||
@@ -491,7 +491,7 @@ bilibili:
|
||||
Prefix: https://space.bilibili.com/
|
||||
Title: bilibili
|
||||
Icon:
|
||||
Src: svg/icons/bilibili.svg
|
||||
Class: fa-brands fa-bilibili
|
||||
|
||||
# 063: ORCID
|
||||
orcid:
|
||||
@@ -499,7 +499,7 @@ orcid:
|
||||
Prefix: https://orcid.org/
|
||||
Title: ORCID
|
||||
Icon:
|
||||
Class: fab fa-orcid fa-fw
|
||||
Class: fa-brands fa-orcid fa-fw
|
||||
|
||||
# 064 Liberapay
|
||||
liberapay:
|
||||
@@ -541,13 +541,13 @@ qq:
|
||||
Icon:
|
||||
Simpleicons: tencentqq
|
||||
|
||||
# 069: QQGroup
|
||||
# 069: QQ Group
|
||||
qqgroup:
|
||||
Weight: 69
|
||||
Template: https://qm.qq.com/cgi-bin/qm/qr?k=%v&jump_from=webapi
|
||||
Title: QQGroup
|
||||
Title: QQ Group
|
||||
Icon:
|
||||
Class: fas fa-users
|
||||
Class: fa-solid fa-users
|
||||
|
||||
# 070: Diaspora
|
||||
diaspora:
|
||||
@@ -564,19 +564,128 @@ csdn:
|
||||
Icon:
|
||||
Src: svg/icons/csdn.svg
|
||||
|
||||
# 072: Email
|
||||
email:
|
||||
# 072: Discord User Profile
|
||||
discord:
|
||||
Weight: 72
|
||||
Prefix: https://discordapp.com/users/
|
||||
Title: Discord
|
||||
Icon:
|
||||
Class: fa-brands fa-discord fa-fw
|
||||
|
||||
# 073: Discord Server Invite Link
|
||||
discordInvite:
|
||||
Weight: 73
|
||||
Prefix: https://discord.gg/
|
||||
Title: Discord
|
||||
Icon:
|
||||
Class: fa-brands fa-discord fa-fw
|
||||
|
||||
# 074: Lichess user profile
|
||||
lichess:
|
||||
Weight: 74
|
||||
Prefix: https://lichess.org/@/
|
||||
Title: Lichess
|
||||
Icon:
|
||||
Simpleicons: lichess
|
||||
|
||||
# 075: Pleroma
|
||||
pleroma:
|
||||
Weight: 75
|
||||
Title: Pleroma
|
||||
Icon:
|
||||
Simpleicons: pleroma
|
||||
|
||||
# 076: Kaggle
|
||||
kaggle:
|
||||
Weight: 76
|
||||
Prefix: https://kaggle.com/
|
||||
Title: Kaggle
|
||||
Icon:
|
||||
Class: fa-brands fa-kaggle fa-fw
|
||||
|
||||
# 077: MediaWiki
|
||||
mediawiki:
|
||||
Weight: 77
|
||||
Title: MediaWiki
|
||||
Icon:
|
||||
Class: fa-brands fa-wikipedia-w fa-fw
|
||||
|
||||
# 078: Plume
|
||||
plume:
|
||||
Weight: 78
|
||||
Title: Plume
|
||||
Icon:
|
||||
Src: svg/icons/plume.svg
|
||||
|
||||
# 079: Hack The Box
|
||||
hackthebox:
|
||||
Weight: 79
|
||||
Title: Hack The Box
|
||||
Prefix: https://app.hackthebox.com/profile/
|
||||
Icon:
|
||||
Simpleicons: hackthebox
|
||||
|
||||
# 080: Root-Me
|
||||
rootme:
|
||||
Weight: 80
|
||||
Title: Root-Me
|
||||
Prefix: https://www.root-me.org/
|
||||
Icon:
|
||||
Src: svg/icons/rootme.svg
|
||||
|
||||
# 081: Feishu
|
||||
feishu:
|
||||
Weight: 81
|
||||
Title: Feishu
|
||||
Template: https://www.feishu.cn/invitation/page/add_contact/?token=%v
|
||||
Icon:
|
||||
Class: fa-solid fa-dove
|
||||
|
||||
# 082: TryHackMe
|
||||
tryhackme:
|
||||
Weight: 82
|
||||
Title: TryHackMe
|
||||
Prefix: https://tryhackme.com/p/
|
||||
Icon:
|
||||
Simpleicons: tryhackme
|
||||
|
||||
# 083 douyin
|
||||
douyin:
|
||||
Weight: 83
|
||||
Title: 抖音
|
||||
Prefix: https://www.douyin.com/user/
|
||||
Icon:
|
||||
Class: fa-brands fa-tiktok
|
||||
|
||||
# 084 TikTok
|
||||
tiktok:
|
||||
Weight: 84
|
||||
Title: TikTok
|
||||
Prefix: https://www.tiktok.com/
|
||||
Icon:
|
||||
Class: fa-brands fa-tiktok
|
||||
|
||||
# Phone
|
||||
phone:
|
||||
Weight: 997
|
||||
Template: tel:%v
|
||||
Title: Phone
|
||||
Icon:
|
||||
Class: fa-solid fa-phone fa-fw
|
||||
|
||||
# Email
|
||||
email:
|
||||
Weight: 998
|
||||
Template: mailto:%v
|
||||
Title: Email
|
||||
Icon:
|
||||
Class: far fa-envelope fa-fw
|
||||
Class: fa-regular fa-envelope fa-fw
|
||||
|
||||
# 073: RSS
|
||||
# RSS
|
||||
rss:
|
||||
Weight: 73
|
||||
Weight: 999
|
||||
Url: /index.xml
|
||||
Title: RSS
|
||||
Newtab: true
|
||||
Icon:
|
||||
Class: fas fa-rss fa-fw
|
||||
Class: fa-solid fa-rss fa-fw
|
||||
|
||||
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 968 B |
@@ -1,20 +1,20 @@
|
||||
/**
|
||||
* Custom javascript for FixIt site.
|
||||
* @author @Lruihao https://lruihao.cn
|
||||
* @description Custom javascript for the hugo theme FixIt.
|
||||
*/
|
||||
const CustomJS = new (function () {
|
||||
const FixItCustom = new (function () {
|
||||
/**
|
||||
* Hello World
|
||||
* You can define your own functions below.
|
||||
* @returns {CustomJS}
|
||||
* @returns {FixItCustom}
|
||||
*/
|
||||
this.hello = () => {
|
||||
// console.log('Hello CustomJS!');
|
||||
console.log('FixItCustom echo: Hello FixIt!');
|
||||
return this;
|
||||
}
|
||||
};
|
||||
/**
|
||||
* Initialize.
|
||||
* @returns {CustomJS}
|
||||
* @returns {FixItCustom}
|
||||
*/
|
||||
this.init = () => {
|
||||
// Custom infos.
|
||||
@@ -27,9 +27,9 @@ const CustomJS = new (function () {
|
||||
* Immediate.
|
||||
*/
|
||||
(() => {
|
||||
CustomJS.init();
|
||||
FixItCustom.init();
|
||||
// It will be executed when the DOM tree is built.
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// console.log('DOM content loaded!')
|
||||
// FixItCustom.init();
|
||||
});
|
||||
})();
|
||||
@@ -0,0 +1,223 @@
|
||||
/**
|
||||
* FixIt decryptor for encrypted pages and fixit-encryptor shortcode
|
||||
* @param {Object} options
|
||||
* @param {Function} [options.decrypted] [Lifecycle Hooks] handler after decrypting
|
||||
* @param {Function} [options.reset] [Lifecycle Hooks] handler after encrypting again
|
||||
* @param {Number} [options.duration=86400] number of seconds to cache decryption statistics. unit: s
|
||||
* @author @Lruihao https://lruihao.cn
|
||||
* @since v0.2.15
|
||||
*/
|
||||
FixItDecryptor = function (options = {}) {
|
||||
var _proto = FixItDecryptor.prototype;
|
||||
this.options = options || {};
|
||||
this.options.duration = this.options.duration || 24 * 60 * 60; // default cache one day
|
||||
this.decryptedEventSet = new Set();
|
||||
this.resetEventSet = new Set();
|
||||
this.$el = document.querySelector('.fixit-decryptor-container');
|
||||
|
||||
/**
|
||||
* decrypt content
|
||||
* @param {String} base64EncodeContent encrypted content
|
||||
*/
|
||||
var _decryptContent = (base64EncodeContent) => {
|
||||
try {
|
||||
this.$el.querySelector('.fixit-decryptor-loading').classList.add('d-none');
|
||||
this.$el.querySelector('#fixit-decryptor-input').classList.add('d-none');
|
||||
this.$el.querySelector('.fixit-encryptor-btn').classList.remove('d-none');
|
||||
document.querySelector('#content').insertAdjacentHTML(
|
||||
'afterbegin',
|
||||
CryptoJS.enc.Base64.parse(base64EncodeContent).toString(CryptoJS.enc.Utf8)
|
||||
);
|
||||
} catch (err) {
|
||||
return console.error(err);
|
||||
}
|
||||
// decrypted hook
|
||||
console.log(this.decryptedEventSet)
|
||||
for (const event of this.decryptedEventSet) {
|
||||
event();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* initialize FixIt decryptor
|
||||
*/
|
||||
_proto.init = () => {
|
||||
this.addEventListener('decrypted', this.options?.decrypted);
|
||||
this.addEventListener('reset', this.options?.reset);
|
||||
this.validateCache();
|
||||
|
||||
const _decryptor = this;
|
||||
this.$el.querySelector('#fixit-decryptor-input')?.addEventListener('keydown', function (e) {
|
||||
if (e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
const $content = document.querySelector('#content');
|
||||
const password = $content.getAttribute('data-password');
|
||||
const input = this.value.trim();
|
||||
const saltLen = input.length % 2 ? input.length : input.length + 1;
|
||||
const inputMd5 = CryptoJS.MD5(input).toString();
|
||||
const inputSha256 = CryptoJS.SHA256(input).toString();
|
||||
|
||||
this.value = '';
|
||||
this.blur();
|
||||
if (!input) {
|
||||
alert('Please enter the correct password!');
|
||||
return console.warn('Please enter the correct password!');
|
||||
}
|
||||
if (inputMd5 !== password) {
|
||||
alert(`Password error: ${input} not the correct password!`);
|
||||
return console.warn(`Password error: ${input} not the correct password!`);
|
||||
}
|
||||
// cache decryption statistics
|
||||
window.localStorage?.setItem(
|
||||
`fixit-decryptor/#${location.pathname}`,
|
||||
JSON.stringify({
|
||||
expiration: Math.ceil(Date.now() / 1000) + _decryptor.options.duration,
|
||||
md5: inputMd5,
|
||||
sha256: inputSha256.slice(saltLen)
|
||||
})
|
||||
);
|
||||
_decryptContent($content.getAttribute('data-content').replace(inputSha256.slice(saltLen), ''));
|
||||
}
|
||||
});
|
||||
|
||||
this.$el.querySelector('.fixit-encryptor-btn')?.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
this.classList.add('d-none')
|
||||
_decryptor.$el.querySelector('#fixit-decryptor-input').classList.remove('d-none');
|
||||
document.querySelector('#content').innerHTML = '';
|
||||
document.querySelector('#content').insertAdjacentElement(
|
||||
'afterbegin',
|
||||
_decryptor.$el
|
||||
);
|
||||
window.localStorage?.removeItem(`fixit-decryptor/#${location.pathname}`);
|
||||
// reset hook
|
||||
for (const event of _decryptor.resetEventSet) {
|
||||
event();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* initialize fixit-encryptor shortcodes
|
||||
*/
|
||||
_proto.initShortcodes = () => {
|
||||
// TODO TODO shortcode decrypted event
|
||||
// this.addEventListener('decrypted', this.options?.decrypted);
|
||||
const _decryptor = this;
|
||||
const $shortcodes = document.querySelectorAll('fixit-encryptor:not(.decrypted)');
|
||||
|
||||
$shortcodes.forEach($shortcode => {
|
||||
$shortcode.querySelector('.fixit-decryptor-input')?.addEventListener('keydown', function (e) {
|
||||
if (e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
const $decryptor = this.parentElement.parentElement;
|
||||
const $content = $decryptor.nextElementSibling;
|
||||
const password = $content.getAttribute('data-password');
|
||||
const input = this.value.trim();
|
||||
const saltLen = input.length % 2 ? input.length : input.length + 1;
|
||||
const inputMd5 = CryptoJS.MD5(input).toString();
|
||||
const inputSha256 = CryptoJS.SHA256(input).toString();
|
||||
|
||||
this.value = '';
|
||||
this.blur();
|
||||
if (!input) {
|
||||
alert('Please enter the correct password!');
|
||||
return console.warn('Please enter the correct password!');
|
||||
}
|
||||
if (inputMd5 !== password) {
|
||||
alert(`Password error: ${input} not the correct password!`);
|
||||
return console.warn(`Password error: ${input} not the correct password!`);
|
||||
}
|
||||
try {
|
||||
const base64EncodeContent = $content.getAttribute('data-content').replace(inputSha256.slice(saltLen), '');
|
||||
$decryptor.querySelector('.fixit-decryptor-input').classList.add('d-none');
|
||||
$content.insertAdjacentHTML(
|
||||
'afterbegin',
|
||||
CryptoJS.enc.Base64.parse(base64EncodeContent).toString(CryptoJS.enc.Utf8)
|
||||
);
|
||||
$decryptor.parentElement.classList.add('decrypted');
|
||||
} catch (err) {
|
||||
return console.error(err);
|
||||
}
|
||||
// TODO shortcode decrypted hook
|
||||
// for (const event of _decryptor.decryptedEventSet) {
|
||||
// event();
|
||||
// }
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* validate the cached decryption statistics in localStorage
|
||||
* @returns {FixItDecryptor}
|
||||
*/
|
||||
_proto.validateCache = () => {
|
||||
const $content = document.querySelector('#content');
|
||||
const password = $content.getAttribute('data-password');
|
||||
const cachedStat = JSON.parse(window.localStorage?.getItem(`fixit-decryptor/#${location.pathname}`));
|
||||
|
||||
if (!cachedStat) {
|
||||
this.$el.querySelector('.fixit-decryptor-loading').classList.add('d-none');
|
||||
this.$el.querySelector('#fixit-decryptor-input').classList.remove('d-none');
|
||||
return this;
|
||||
}
|
||||
if (cachedStat?.md5 !== password || Number(cachedStat?.expiration) < Math.ceil(Date.now() / 1000)) {
|
||||
this.$el.querySelector('.fixit-decryptor-loading').classList.add('d-none');
|
||||
this.$el.querySelector('#fixit-decryptor-input').classList.remove('d-none');
|
||||
window.localStorage?.removeItem(`fixit-decryptor/#${location.pathname}`);
|
||||
console.warn('The password has expired, please re-enter!');
|
||||
return this;
|
||||
}
|
||||
_decryptContent($content.getAttribute('data-content').replace(cachedStat.sha256, ''));
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* add event listener for FixIt Decryptor
|
||||
* @param {String} event event name
|
||||
* @param {Function} listener event handler
|
||||
* @returns {FixItDecryptor}
|
||||
*/
|
||||
_proto.addEventListener = (event, listener) => {
|
||||
if (typeof listener !== 'function') {
|
||||
return this;
|
||||
}
|
||||
switch (event) {
|
||||
case 'decrypted':
|
||||
this.decryptedEventSet.add(listener);
|
||||
break;
|
||||
case 'reset':
|
||||
this.resetEventSet.add(listener);
|
||||
break;
|
||||
default:
|
||||
console.warn(`Event ${event} not found in FixIt Decryptor!`);
|
||||
break;
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* remove event listener for FixIt Decryptor
|
||||
* @param {String} event event name
|
||||
* @param {Function} listener event handler
|
||||
* @returns {FixItDecryptor}
|
||||
*/
|
||||
_proto.removeEventListener = (event, listener) => {
|
||||
if (typeof listener !== 'function') {
|
||||
return this;
|
||||
}
|
||||
switch (event) {
|
||||
case 'decrypted':
|
||||
this.decryptedEventSet.delete(listener);
|
||||
break;
|
||||
case 'reset':
|
||||
this.resetEventSet.delete(listener);
|
||||
break;
|
||||
default:
|
||||
console.warn(`Event ${event} not found in FixIt Decryptor!`);
|
||||
break;
|
||||
}
|
||||
return this;
|
||||
};
|
||||
};
|
||||
@@ -1,17 +1,21 @@
|
||||
const CACHE_VERSION = 1;
|
||||
/**
|
||||
* Service Worker
|
||||
* imported from https://github.com/HEIGE-PCloud/DoIt/blob/v0.2.11/src/js/sw.js
|
||||
*/
|
||||
CACHE_VERSION = 1;
|
||||
|
||||
const BASE_CACHE_FILES = [
|
||||
'/css/style.min.css',
|
||||
'/js/theme.min.js',
|
||||
'/site.webmanifest',
|
||||
'/images/fixit.svg'
|
||||
'/fixit.min.svg'
|
||||
];
|
||||
|
||||
const OFFLINE_CACHE_FILES = [
|
||||
'/css/style.min.css',
|
||||
'/js/theme.min.js',
|
||||
'/site.webmanifest',
|
||||
'/images/fixit.svg',
|
||||
'/fixit.min.svg',
|
||||
'/offline/'
|
||||
];
|
||||
|
||||
@@ -19,7 +23,7 @@ const NOT_FOUND_CACHE_FILES = [
|
||||
'/css/style.min.css',
|
||||
'/js/theme.min.js',
|
||||
'/site.webmanifest',
|
||||
'/images/fixit.svg',
|
||||
'/fixit.min.svg',
|
||||
'/404.html'
|
||||
];
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+20
-16
@@ -1,28 +1,32 @@
|
||||
algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
|
||||
algoliasearch@4.14.2 https://github.com/algolia/algoliasearch-client-javascript
|
||||
animate.css@4.1.1 https://github.com/daneden/animate.css
|
||||
aplayer@1.10.1 https://github.com/MoePlayer/APlayer
|
||||
artalk@2.2.12 https://github.com/ArtalkJS/Artalk
|
||||
autocomplete.js@0.38.1 https://github.com/algolia/autocomplete.js
|
||||
artalk@2.3.4 https://github.com/ArtalkJS/Artalk
|
||||
autocomplete-js@0.38.1 https://github.com/algolia/autocomplete
|
||||
cell-watermark@1.0.3 https://github.com/Lruihao/watermark
|
||||
cookieconsent@3.1.1 https://github.com/osano/cookieconsent
|
||||
echarts@5.3.2 https://github.com/apache/echarts
|
||||
fontawesome-free@5.14.0 https://github.com/FortAwesome/Font-Awesome
|
||||
crypto-js@4.1.1 https://github.com/brix/crypto-js
|
||||
echarts@5.3.3 https://github.com/apache/echarts
|
||||
emoji-data@14.0.0 https://github.com/iamcal/emoji-data
|
||||
eruda@2.5.0 https://github.com/liriliri/eruda
|
||||
fontawesome-free@6.2.0 https://github.com/FortAwesome/Font-Awesome
|
||||
fusejs@6.6.2 https://github.com/krisk/fuse
|
||||
gitalk@1.7.2 https://github.com/gitalk/gitalk
|
||||
katex@0.15.3 https://github.com/KaTeX/KaTeX
|
||||
katex@0.16.2 https://github.com/KaTeX/KaTeX
|
||||
lazysizes@5.3.2 https://github.com/aFarkas/lazysizes
|
||||
lg-thumbnail.js@1.2.0 https://github.com/sachinchoolur/lg-thumbnail.js
|
||||
lg-zoom.js@1.3.0 https://github.com/sachinchoolur/lg-zoom.js
|
||||
lightgallery.js@1.4.0 https://github.com/sachinchoolur/lightgallery.js
|
||||
lightgallery@2.6.1 https://github.com/sachinchoolur/lightgallery
|
||||
lunr.js@2.3.9 https://github.com/olivernn/lunr.js
|
||||
mapbox-gl@2.8.2 https://github.com/mapbox/mapbox-gl-js
|
||||
mermaid@8.13.3 https://github.com/knsv/mermaid
|
||||
mapbox-gl@2.10.0 https://github.com/mapbox/mapbox-gl-js
|
||||
mermaid@9.1.7 https://github.com/mermaid-js/mermaid
|
||||
meting@2.0.1 https://github.com/metowolf/MetingJS
|
||||
normalize.css@8.0.1 https://github.com/necolas/normalize.css
|
||||
object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
|
||||
object-fit-images@3.2.4 https://github.com/fregante/object-fit-images [archived]
|
||||
pangu.js@4.0.7 https://github.com/vinta/pangu.js
|
||||
sharer.js@0.5.1 https://github.com/ellisonleao/sharer.js
|
||||
simple-icons@5.21.1 https://github.com/simple-icons/simple-icons
|
||||
simple-icons@7.12.0 https://github.com/simple-icons/simple-icons
|
||||
twemoji@14.0.2 https://github.com/twitter/twemoji
|
||||
typeit@7.0.4 https://github.com/alexmacarthur/typeit
|
||||
valine@1.4.18 https://github.com/xCss/Valine
|
||||
waline@1.5.2 https://github.com/walinejs/waline
|
||||
twikoo@1.6.8 https://github.com/imaegoo/twikoo
|
||||
typeit@8.7.0 https://github.com/alexmacarthur/typeit
|
||||
valine@1.5.1 https://github.com/xCss/Valine
|
||||
vconsole@3.14.6 https://github.com/Tencent/vConsole
|
||||
waline@2.10.0 https://github.com/walinejs/waline
|
||||
|
||||
+3
-3
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
[theme=dark] .aplayer {
|
||||
[data-theme='dark'] .aplayer {
|
||||
background: #212121;
|
||||
|
||||
&.aplayer-withlist {
|
||||
|
||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+2
-2
File diff suppressed because one or more lines are too long
@@ -0,0 +1,807 @@
|
||||
;(function (root, factory) {
|
||||
if (typeof exports === "object") {
|
||||
// CommonJS
|
||||
module.exports = exports = factory();
|
||||
}
|
||||
else if (typeof define === "function" && define.amd) {
|
||||
// AMD
|
||||
define([], factory);
|
||||
}
|
||||
else {
|
||||
// Global (browser)
|
||||
root.CryptoJS = factory();
|
||||
}
|
||||
}(this, function () {
|
||||
|
||||
/*globals window, global, require*/
|
||||
|
||||
/**
|
||||
* CryptoJS core components.
|
||||
*/
|
||||
var CryptoJS = CryptoJS || (function (Math, undefined) {
|
||||
|
||||
var crypto;
|
||||
|
||||
// Native crypto from window (Browser)
|
||||
if (typeof window !== 'undefined' && window.crypto) {
|
||||
crypto = window.crypto;
|
||||
}
|
||||
|
||||
// Native crypto in web worker (Browser)
|
||||
if (typeof self !== 'undefined' && self.crypto) {
|
||||
crypto = self.crypto;
|
||||
}
|
||||
|
||||
// Native crypto from worker
|
||||
if (typeof globalThis !== 'undefined' && globalThis.crypto) {
|
||||
crypto = globalThis.crypto;
|
||||
}
|
||||
|
||||
// Native (experimental IE 11) crypto from window (Browser)
|
||||
if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
|
||||
crypto = window.msCrypto;
|
||||
}
|
||||
|
||||
// Native crypto from global (NodeJS)
|
||||
if (!crypto && typeof global !== 'undefined' && global.crypto) {
|
||||
crypto = global.crypto;
|
||||
}
|
||||
|
||||
// Native crypto import via require (NodeJS)
|
||||
if (!crypto && typeof require === 'function') {
|
||||
try {
|
||||
crypto = require('crypto');
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
/*
|
||||
* Cryptographically secure pseudorandom number generator
|
||||
*
|
||||
* As Math.random() is cryptographically not safe to use
|
||||
*/
|
||||
var cryptoSecureRandomInt = function () {
|
||||
if (crypto) {
|
||||
// Use getRandomValues method (Browser)
|
||||
if (typeof crypto.getRandomValues === 'function') {
|
||||
try {
|
||||
return crypto.getRandomValues(new Uint32Array(1))[0];
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
// Use randomBytes method (NodeJS)
|
||||
if (typeof crypto.randomBytes === 'function') {
|
||||
try {
|
||||
return crypto.randomBytes(4).readInt32LE();
|
||||
} catch (err) {}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('Native crypto module could not be used to get secure random number.');
|
||||
};
|
||||
|
||||
/*
|
||||
* Local polyfill of Object.create
|
||||
|
||||
*/
|
||||
var create = Object.create || (function () {
|
||||
function F() {}
|
||||
|
||||
return function (obj) {
|
||||
var subtype;
|
||||
|
||||
F.prototype = obj;
|
||||
|
||||
subtype = new F();
|
||||
|
||||
F.prototype = null;
|
||||
|
||||
return subtype;
|
||||
};
|
||||
}());
|
||||
|
||||
/**
|
||||
* CryptoJS namespace.
|
||||
*/
|
||||
var C = {};
|
||||
|
||||
/**
|
||||
* Library namespace.
|
||||
*/
|
||||
var C_lib = C.lib = {};
|
||||
|
||||
/**
|
||||
* Base object for prototypal inheritance.
|
||||
*/
|
||||
var Base = C_lib.Base = (function () {
|
||||
|
||||
|
||||
return {
|
||||
/**
|
||||
* Creates a new object that inherits from this object.
|
||||
*
|
||||
* @param {Object} overrides Properties to copy into the new object.
|
||||
*
|
||||
* @return {Object} The new object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var MyType = CryptoJS.lib.Base.extend({
|
||||
* field: 'value',
|
||||
*
|
||||
* method: function () {
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
extend: function (overrides) {
|
||||
// Spawn
|
||||
var subtype = create(this);
|
||||
|
||||
// Augment
|
||||
if (overrides) {
|
||||
subtype.mixIn(overrides);
|
||||
}
|
||||
|
||||
// Create default initializer
|
||||
if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
|
||||
subtype.init = function () {
|
||||
subtype.$super.init.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
// Initializer's prototype is the subtype object
|
||||
subtype.init.prototype = subtype;
|
||||
|
||||
// Reference supertype
|
||||
subtype.$super = this;
|
||||
|
||||
return subtype;
|
||||
},
|
||||
|
||||
/**
|
||||
* Extends this object and runs the init method.
|
||||
* Arguments to create() will be passed to init().
|
||||
*
|
||||
* @return {Object} The new object.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var instance = MyType.create();
|
||||
*/
|
||||
create: function () {
|
||||
var instance = this.extend();
|
||||
instance.init.apply(instance, arguments);
|
||||
|
||||
return instance;
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes a newly created object.
|
||||
* Override this method to add some logic when your objects are created.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var MyType = CryptoJS.lib.Base.extend({
|
||||
* init: function () {
|
||||
* // ...
|
||||
* }
|
||||
* });
|
||||
*/
|
||||
init: function () {
|
||||
},
|
||||
|
||||
/**
|
||||
* Copies properties into this object.
|
||||
*
|
||||
* @param {Object} properties The properties to mix in.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* MyType.mixIn({
|
||||
* field: 'value'
|
||||
* });
|
||||
*/
|
||||
mixIn: function (properties) {
|
||||
for (var propertyName in properties) {
|
||||
if (properties.hasOwnProperty(propertyName)) {
|
||||
this[propertyName] = properties[propertyName];
|
||||
}
|
||||
}
|
||||
|
||||
// IE won't copy toString using the loop above
|
||||
if (properties.hasOwnProperty('toString')) {
|
||||
this.toString = properties.toString;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this object.
|
||||
*
|
||||
* @return {Object} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = instance.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
return this.init.prototype.extend(this);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
/**
|
||||
* An array of 32-bit words.
|
||||
*
|
||||
* @property {Array} words The array of 32-bit words.
|
||||
* @property {number} sigBytes The number of significant bytes in this word array.
|
||||
*/
|
||||
var WordArray = C_lib.WordArray = Base.extend({
|
||||
/**
|
||||
* Initializes a newly created word array.
|
||||
*
|
||||
* @param {Array} words (Optional) An array of 32-bit words.
|
||||
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.lib.WordArray.create();
|
||||
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
|
||||
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
|
||||
*/
|
||||
init: function (words, sigBytes) {
|
||||
words = this.words = words || [];
|
||||
|
||||
if (sigBytes != undefined) {
|
||||
this.sigBytes = sigBytes;
|
||||
} else {
|
||||
this.sigBytes = words.length * 4;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts this word array to a string.
|
||||
*
|
||||
* @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
|
||||
*
|
||||
* @return {string} The stringified word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var string = wordArray + '';
|
||||
* var string = wordArray.toString();
|
||||
* var string = wordArray.toString(CryptoJS.enc.Utf8);
|
||||
*/
|
||||
toString: function (encoder) {
|
||||
return (encoder || Hex).stringify(this);
|
||||
},
|
||||
|
||||
/**
|
||||
* Concatenates a word array to this word array.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array to append.
|
||||
*
|
||||
* @return {WordArray} This word array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* wordArray1.concat(wordArray2);
|
||||
*/
|
||||
concat: function (wordArray) {
|
||||
// Shortcuts
|
||||
var thisWords = this.words;
|
||||
var thatWords = wordArray.words;
|
||||
var thisSigBytes = this.sigBytes;
|
||||
var thatSigBytes = wordArray.sigBytes;
|
||||
|
||||
// Clamp excess bits
|
||||
this.clamp();
|
||||
|
||||
// Concat
|
||||
if (thisSigBytes % 4) {
|
||||
// Copy one byte at a time
|
||||
for (var i = 0; i < thatSigBytes; i++) {
|
||||
var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
|
||||
}
|
||||
} else {
|
||||
// Copy one word at a time
|
||||
for (var j = 0; j < thatSigBytes; j += 4) {
|
||||
thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
|
||||
}
|
||||
}
|
||||
this.sigBytes += thatSigBytes;
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes insignificant bits.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* wordArray.clamp();
|
||||
*/
|
||||
clamp: function () {
|
||||
// Shortcuts
|
||||
var words = this.words;
|
||||
var sigBytes = this.sigBytes;
|
||||
|
||||
// Clamp
|
||||
words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
|
||||
words.length = Math.ceil(sigBytes / 4);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this word array.
|
||||
*
|
||||
* @return {WordArray} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = wordArray.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
clone.words = this.words.slice(0);
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a word array filled with random bytes.
|
||||
*
|
||||
* @param {number} nBytes The number of random bytes to generate.
|
||||
*
|
||||
* @return {WordArray} The random word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.lib.WordArray.random(16);
|
||||
*/
|
||||
random: function (nBytes) {
|
||||
var words = [];
|
||||
|
||||
for (var i = 0; i < nBytes; i += 4) {
|
||||
words.push(cryptoSecureRandomInt());
|
||||
}
|
||||
|
||||
return new WordArray.init(words, nBytes);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Encoder namespace.
|
||||
*/
|
||||
var C_enc = C.enc = {};
|
||||
|
||||
/**
|
||||
* Hex encoding strategy.
|
||||
*/
|
||||
var Hex = C_enc.Hex = {
|
||||
/**
|
||||
* Converts a word array to a hex string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The hex string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hexString = CryptoJS.enc.Hex.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var hexChars = [];
|
||||
for (var i = 0; i < sigBytes; i++) {
|
||||
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
hexChars.push((bite >>> 4).toString(16));
|
||||
hexChars.push((bite & 0x0f).toString(16));
|
||||
}
|
||||
|
||||
return hexChars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a hex string to a word array.
|
||||
*
|
||||
* @param {string} hexStr The hex string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Hex.parse(hexString);
|
||||
*/
|
||||
parse: function (hexStr) {
|
||||
// Shortcut
|
||||
var hexStrLength = hexStr.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < hexStrLength; i += 2) {
|
||||
words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
|
||||
}
|
||||
|
||||
return new WordArray.init(words, hexStrLength / 2);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Latin1 encoding strategy.
|
||||
*/
|
||||
var Latin1 = C_enc.Latin1 = {
|
||||
/**
|
||||
* Converts a word array to a Latin1 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The Latin1 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
|
||||
// Convert
|
||||
var latin1Chars = [];
|
||||
for (var i = 0; i < sigBytes; i++) {
|
||||
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
latin1Chars.push(String.fromCharCode(bite));
|
||||
}
|
||||
|
||||
return latin1Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Latin1 string to a word array.
|
||||
*
|
||||
* @param {string} latin1Str The Latin1 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
|
||||
*/
|
||||
parse: function (latin1Str) {
|
||||
// Shortcut
|
||||
var latin1StrLength = latin1Str.length;
|
||||
|
||||
// Convert
|
||||
var words = [];
|
||||
for (var i = 0; i < latin1StrLength; i++) {
|
||||
words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
|
||||
}
|
||||
|
||||
return new WordArray.init(words, latin1StrLength);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* UTF-8 encoding strategy.
|
||||
*/
|
||||
var Utf8 = C_enc.Utf8 = {
|
||||
/**
|
||||
* Converts a word array to a UTF-8 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The UTF-8 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
try {
|
||||
return decodeURIComponent(escape(Latin1.stringify(wordArray)));
|
||||
} catch (e) {
|
||||
throw new Error('Malformed UTF-8 data');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a UTF-8 string to a word array.
|
||||
*
|
||||
* @param {string} utf8Str The UTF-8 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
|
||||
*/
|
||||
parse: function (utf8Str) {
|
||||
return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Abstract buffered block algorithm template.
|
||||
*
|
||||
* The property blockSize must be implemented in a concrete subtype.
|
||||
*
|
||||
* @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
|
||||
*/
|
||||
var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
|
||||
/**
|
||||
* Resets this block algorithm's data buffer to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* bufferedBlockAlgorithm.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Initial values
|
||||
this._data = new WordArray.init();
|
||||
this._nDataBytes = 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds new data to this block algorithm's buffer.
|
||||
*
|
||||
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* bufferedBlockAlgorithm._append('data');
|
||||
* bufferedBlockAlgorithm._append(wordArray);
|
||||
*/
|
||||
_append: function (data) {
|
||||
// Convert string to WordArray, else assume WordArray already
|
||||
if (typeof data == 'string') {
|
||||
data = Utf8.parse(data);
|
||||
}
|
||||
|
||||
// Append
|
||||
this._data.concat(data);
|
||||
this._nDataBytes += data.sigBytes;
|
||||
},
|
||||
|
||||
/**
|
||||
* Processes available data blocks.
|
||||
*
|
||||
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
|
||||
*
|
||||
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
|
||||
*
|
||||
* @return {WordArray} The processed data.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var processedData = bufferedBlockAlgorithm._process();
|
||||
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
|
||||
*/
|
||||
_process: function (doFlush) {
|
||||
var processedWords;
|
||||
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
var dataSigBytes = data.sigBytes;
|
||||
var blockSize = this.blockSize;
|
||||
var blockSizeBytes = blockSize * 4;
|
||||
|
||||
// Count blocks ready
|
||||
var nBlocksReady = dataSigBytes / blockSizeBytes;
|
||||
if (doFlush) {
|
||||
// Round up to include partial blocks
|
||||
nBlocksReady = Math.ceil(nBlocksReady);
|
||||
} else {
|
||||
// Round down to include only full blocks,
|
||||
// less the number of blocks that must remain in the buffer
|
||||
nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
|
||||
}
|
||||
|
||||
// Count words ready
|
||||
var nWordsReady = nBlocksReady * blockSize;
|
||||
|
||||
// Count bytes ready
|
||||
var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
|
||||
|
||||
// Process blocks
|
||||
if (nWordsReady) {
|
||||
for (var offset = 0; offset < nWordsReady; offset += blockSize) {
|
||||
// Perform concrete-algorithm logic
|
||||
this._doProcessBlock(dataWords, offset);
|
||||
}
|
||||
|
||||
// Remove processed words
|
||||
processedWords = dataWords.splice(0, nWordsReady);
|
||||
data.sigBytes -= nBytesReady;
|
||||
}
|
||||
|
||||
// Return processed words
|
||||
return new WordArray.init(processedWords, nBytesReady);
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a copy of this object.
|
||||
*
|
||||
* @return {Object} The clone.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var clone = bufferedBlockAlgorithm.clone();
|
||||
*/
|
||||
clone: function () {
|
||||
var clone = Base.clone.call(this);
|
||||
clone._data = this._data.clone();
|
||||
|
||||
return clone;
|
||||
},
|
||||
|
||||
_minBufferSize: 0
|
||||
});
|
||||
|
||||
/**
|
||||
* Abstract hasher template.
|
||||
*
|
||||
* @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
|
||||
*/
|
||||
var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
|
||||
/**
|
||||
* Configuration options.
|
||||
*/
|
||||
cfg: Base.extend(),
|
||||
|
||||
/**
|
||||
* Initializes a newly created hasher.
|
||||
*
|
||||
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hasher = CryptoJS.algo.SHA256.create();
|
||||
*/
|
||||
init: function (cfg) {
|
||||
// Apply config defaults
|
||||
this.cfg = this.cfg.extend(cfg);
|
||||
|
||||
// Set initial values
|
||||
this.reset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Resets this hasher to its initial state.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hasher.reset();
|
||||
*/
|
||||
reset: function () {
|
||||
// Reset data buffer
|
||||
BufferedBlockAlgorithm.reset.call(this);
|
||||
|
||||
// Perform concrete-hasher logic
|
||||
this._doReset();
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates this hasher with a message.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate The message to append.
|
||||
*
|
||||
* @return {Hasher} This hasher.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* hasher.update('message');
|
||||
* hasher.update(wordArray);
|
||||
*/
|
||||
update: function (messageUpdate) {
|
||||
// Append
|
||||
this._append(messageUpdate);
|
||||
|
||||
// Update the hash
|
||||
this._process();
|
||||
|
||||
// Chainable
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* Finalizes the hash computation.
|
||||
* Note that the finalize operation is effectively a destructive, read-once operation.
|
||||
*
|
||||
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = hasher.finalize();
|
||||
* var hash = hasher.finalize('message');
|
||||
* var hash = hasher.finalize(wordArray);
|
||||
*/
|
||||
finalize: function (messageUpdate) {
|
||||
// Final message update
|
||||
if (messageUpdate) {
|
||||
this._append(messageUpdate);
|
||||
}
|
||||
|
||||
// Perform concrete-hasher logic
|
||||
var hash = this._doFinalize();
|
||||
|
||||
return hash;
|
||||
},
|
||||
|
||||
blockSize: 512/32,
|
||||
|
||||
/**
|
||||
* Creates a shortcut function to a hasher's object interface.
|
||||
*
|
||||
* @param {Hasher} hasher The hasher to create a helper for.
|
||||
*
|
||||
* @return {Function} The shortcut function.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
|
||||
*/
|
||||
_createHelper: function (hasher) {
|
||||
return function (message, cfg) {
|
||||
return new hasher.init(cfg).finalize(message);
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {Hasher} hasher The hasher to use in this HMAC helper.
|
||||
*
|
||||
* @return {Function} The shortcut function.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
|
||||
*/
|
||||
_createHmacHelper: function (hasher) {
|
||||
return function (message, key) {
|
||||
return new C_algo.HMAC.init(hasher, key).finalize(message);
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Algorithm namespace.
|
||||
*/
|
||||
var C_algo = C.algo = {};
|
||||
|
||||
return C;
|
||||
}(Math));
|
||||
|
||||
|
||||
return CryptoJS;
|
||||
|
||||
}));
|
||||
@@ -0,0 +1,136 @@
|
||||
;(function (root, factory) {
|
||||
if (typeof exports === "object") {
|
||||
// CommonJS
|
||||
module.exports = exports = factory(require("./core"));
|
||||
}
|
||||
else if (typeof define === "function" && define.amd) {
|
||||
// AMD
|
||||
define(["./core"], factory);
|
||||
}
|
||||
else {
|
||||
// Global (browser)
|
||||
factory(root.CryptoJS);
|
||||
}
|
||||
}(this, function (CryptoJS) {
|
||||
|
||||
(function () {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var C_enc = C.enc;
|
||||
|
||||
/**
|
||||
* Base64 encoding strategy.
|
||||
*/
|
||||
var Base64 = C_enc.Base64 = {
|
||||
/**
|
||||
* Converts a word array to a Base64 string.
|
||||
*
|
||||
* @param {WordArray} wordArray The word array.
|
||||
*
|
||||
* @return {string} The Base64 string.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var base64String = CryptoJS.enc.Base64.stringify(wordArray);
|
||||
*/
|
||||
stringify: function (wordArray) {
|
||||
// Shortcuts
|
||||
var words = wordArray.words;
|
||||
var sigBytes = wordArray.sigBytes;
|
||||
var map = this._map;
|
||||
|
||||
// Clamp excess bits
|
||||
wordArray.clamp();
|
||||
|
||||
// Convert
|
||||
var base64Chars = [];
|
||||
for (var i = 0; i < sigBytes; i += 3) {
|
||||
var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
||||
var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
|
||||
var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
|
||||
|
||||
var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
|
||||
|
||||
for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
|
||||
base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
|
||||
}
|
||||
}
|
||||
|
||||
// Add padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
while (base64Chars.length % 4) {
|
||||
base64Chars.push(paddingChar);
|
||||
}
|
||||
}
|
||||
|
||||
return base64Chars.join('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a Base64 string to a word array.
|
||||
*
|
||||
* @param {string} base64Str The Base64 string.
|
||||
*
|
||||
* @return {WordArray} The word array.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var wordArray = CryptoJS.enc.Base64.parse(base64String);
|
||||
*/
|
||||
parse: function (base64Str) {
|
||||
// Shortcuts
|
||||
var base64StrLength = base64Str.length;
|
||||
var map = this._map;
|
||||
var reverseMap = this._reverseMap;
|
||||
|
||||
if (!reverseMap) {
|
||||
reverseMap = this._reverseMap = [];
|
||||
for (var j = 0; j < map.length; j++) {
|
||||
reverseMap[map.charCodeAt(j)] = j;
|
||||
}
|
||||
}
|
||||
|
||||
// Ignore padding
|
||||
var paddingChar = map.charAt(64);
|
||||
if (paddingChar) {
|
||||
var paddingIndex = base64Str.indexOf(paddingChar);
|
||||
if (paddingIndex !== -1) {
|
||||
base64StrLength = paddingIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert
|
||||
return parseLoop(base64Str, base64StrLength, reverseMap);
|
||||
|
||||
},
|
||||
|
||||
_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
|
||||
};
|
||||
|
||||
function parseLoop(base64Str, base64StrLength, reverseMap) {
|
||||
var words = [];
|
||||
var nBytes = 0;
|
||||
for (var i = 0; i < base64StrLength; i++) {
|
||||
if (i % 4) {
|
||||
var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
|
||||
var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
|
||||
var bitsCombined = bits1 | bits2;
|
||||
words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
|
||||
nBytes++;
|
||||
}
|
||||
}
|
||||
return WordArray.create(words, nBytes);
|
||||
}
|
||||
}());
|
||||
|
||||
|
||||
return CryptoJS.enc.Base64;
|
||||
|
||||
}));
|
||||
@@ -0,0 +1,268 @@
|
||||
;(function (root, factory) {
|
||||
if (typeof exports === "object") {
|
||||
// CommonJS
|
||||
module.exports = exports = factory(require("./core"));
|
||||
}
|
||||
else if (typeof define === "function" && define.amd) {
|
||||
// AMD
|
||||
define(["./core"], factory);
|
||||
}
|
||||
else {
|
||||
// Global (browser)
|
||||
factory(root.CryptoJS);
|
||||
}
|
||||
}(this, function (CryptoJS) {
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Constants table
|
||||
var T = [];
|
||||
|
||||
// Compute constants
|
||||
(function () {
|
||||
for (var i = 0; i < 64; i++) {
|
||||
T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
|
||||
}
|
||||
}());
|
||||
|
||||
/**
|
||||
* MD5 hash algorithm.
|
||||
*/
|
||||
var MD5 = C_algo.MD5 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init([
|
||||
0x67452301, 0xefcdab89,
|
||||
0x98badcfe, 0x10325476
|
||||
]);
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Swap endian
|
||||
for (var i = 0; i < 16; i++) {
|
||||
// Shortcuts
|
||||
var offset_i = offset + i;
|
||||
var M_offset_i = M[offset_i];
|
||||
|
||||
M[offset_i] = (
|
||||
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
|
||||
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
}
|
||||
|
||||
// Shortcuts
|
||||
var H = this._hash.words;
|
||||
|
||||
var M_offset_0 = M[offset + 0];
|
||||
var M_offset_1 = M[offset + 1];
|
||||
var M_offset_2 = M[offset + 2];
|
||||
var M_offset_3 = M[offset + 3];
|
||||
var M_offset_4 = M[offset + 4];
|
||||
var M_offset_5 = M[offset + 5];
|
||||
var M_offset_6 = M[offset + 6];
|
||||
var M_offset_7 = M[offset + 7];
|
||||
var M_offset_8 = M[offset + 8];
|
||||
var M_offset_9 = M[offset + 9];
|
||||
var M_offset_10 = M[offset + 10];
|
||||
var M_offset_11 = M[offset + 11];
|
||||
var M_offset_12 = M[offset + 12];
|
||||
var M_offset_13 = M[offset + 13];
|
||||
var M_offset_14 = M[offset + 14];
|
||||
var M_offset_15 = M[offset + 15];
|
||||
|
||||
// Working varialbes
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
|
||||
// Computation
|
||||
a = FF(a, b, c, d, M_offset_0, 7, T[0]);
|
||||
d = FF(d, a, b, c, M_offset_1, 12, T[1]);
|
||||
c = FF(c, d, a, b, M_offset_2, 17, T[2]);
|
||||
b = FF(b, c, d, a, M_offset_3, 22, T[3]);
|
||||
a = FF(a, b, c, d, M_offset_4, 7, T[4]);
|
||||
d = FF(d, a, b, c, M_offset_5, 12, T[5]);
|
||||
c = FF(c, d, a, b, M_offset_6, 17, T[6]);
|
||||
b = FF(b, c, d, a, M_offset_7, 22, T[7]);
|
||||
a = FF(a, b, c, d, M_offset_8, 7, T[8]);
|
||||
d = FF(d, a, b, c, M_offset_9, 12, T[9]);
|
||||
c = FF(c, d, a, b, M_offset_10, 17, T[10]);
|
||||
b = FF(b, c, d, a, M_offset_11, 22, T[11]);
|
||||
a = FF(a, b, c, d, M_offset_12, 7, T[12]);
|
||||
d = FF(d, a, b, c, M_offset_13, 12, T[13]);
|
||||
c = FF(c, d, a, b, M_offset_14, 17, T[14]);
|
||||
b = FF(b, c, d, a, M_offset_15, 22, T[15]);
|
||||
|
||||
a = GG(a, b, c, d, M_offset_1, 5, T[16]);
|
||||
d = GG(d, a, b, c, M_offset_6, 9, T[17]);
|
||||
c = GG(c, d, a, b, M_offset_11, 14, T[18]);
|
||||
b = GG(b, c, d, a, M_offset_0, 20, T[19]);
|
||||
a = GG(a, b, c, d, M_offset_5, 5, T[20]);
|
||||
d = GG(d, a, b, c, M_offset_10, 9, T[21]);
|
||||
c = GG(c, d, a, b, M_offset_15, 14, T[22]);
|
||||
b = GG(b, c, d, a, M_offset_4, 20, T[23]);
|
||||
a = GG(a, b, c, d, M_offset_9, 5, T[24]);
|
||||
d = GG(d, a, b, c, M_offset_14, 9, T[25]);
|
||||
c = GG(c, d, a, b, M_offset_3, 14, T[26]);
|
||||
b = GG(b, c, d, a, M_offset_8, 20, T[27]);
|
||||
a = GG(a, b, c, d, M_offset_13, 5, T[28]);
|
||||
d = GG(d, a, b, c, M_offset_2, 9, T[29]);
|
||||
c = GG(c, d, a, b, M_offset_7, 14, T[30]);
|
||||
b = GG(b, c, d, a, M_offset_12, 20, T[31]);
|
||||
|
||||
a = HH(a, b, c, d, M_offset_5, 4, T[32]);
|
||||
d = HH(d, a, b, c, M_offset_8, 11, T[33]);
|
||||
c = HH(c, d, a, b, M_offset_11, 16, T[34]);
|
||||
b = HH(b, c, d, a, M_offset_14, 23, T[35]);
|
||||
a = HH(a, b, c, d, M_offset_1, 4, T[36]);
|
||||
d = HH(d, a, b, c, M_offset_4, 11, T[37]);
|
||||
c = HH(c, d, a, b, M_offset_7, 16, T[38]);
|
||||
b = HH(b, c, d, a, M_offset_10, 23, T[39]);
|
||||
a = HH(a, b, c, d, M_offset_13, 4, T[40]);
|
||||
d = HH(d, a, b, c, M_offset_0, 11, T[41]);
|
||||
c = HH(c, d, a, b, M_offset_3, 16, T[42]);
|
||||
b = HH(b, c, d, a, M_offset_6, 23, T[43]);
|
||||
a = HH(a, b, c, d, M_offset_9, 4, T[44]);
|
||||
d = HH(d, a, b, c, M_offset_12, 11, T[45]);
|
||||
c = HH(c, d, a, b, M_offset_15, 16, T[46]);
|
||||
b = HH(b, c, d, a, M_offset_2, 23, T[47]);
|
||||
|
||||
a = II(a, b, c, d, M_offset_0, 6, T[48]);
|
||||
d = II(d, a, b, c, M_offset_7, 10, T[49]);
|
||||
c = II(c, d, a, b, M_offset_14, 15, T[50]);
|
||||
b = II(b, c, d, a, M_offset_5, 21, T[51]);
|
||||
a = II(a, b, c, d, M_offset_12, 6, T[52]);
|
||||
d = II(d, a, b, c, M_offset_3, 10, T[53]);
|
||||
c = II(c, d, a, b, M_offset_10, 15, T[54]);
|
||||
b = II(b, c, d, a, M_offset_1, 21, T[55]);
|
||||
a = II(a, b, c, d, M_offset_8, 6, T[56]);
|
||||
d = II(d, a, b, c, M_offset_15, 10, T[57]);
|
||||
c = II(c, d, a, b, M_offset_6, 15, T[58]);
|
||||
b = II(b, c, d, a, M_offset_13, 21, T[59]);
|
||||
a = II(a, b, c, d, M_offset_4, 6, T[60]);
|
||||
d = II(d, a, b, c, M_offset_11, 10, T[61]);
|
||||
c = II(c, d, a, b, M_offset_2, 15, T[62]);
|
||||
b = II(b, c, d, a, M_offset_9, 21, T[63]);
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
|
||||
var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
|
||||
var nBitsTotalL = nBitsTotal;
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
|
||||
(((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
|
||||
(((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
|
||||
(((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)
|
||||
);
|
||||
|
||||
data.sigBytes = (dataWords.length + 1) * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Shortcuts
|
||||
var hash = this._hash;
|
||||
var H = hash.words;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < 4; i++) {
|
||||
// Shortcut
|
||||
var H_i = H[i];
|
||||
|
||||
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
|
||||
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
|
||||
}
|
||||
|
||||
// Return final computed hash
|
||||
return hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
function FF(a, b, c, d, x, s, t) {
|
||||
var n = a + ((b & c) | (~b & d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function GG(a, b, c, d, x, s, t) {
|
||||
var n = a + ((b & d) | (c & ~d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function HH(a, b, c, d, x, s, t) {
|
||||
var n = a + (b ^ c ^ d) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
function II(a, b, c, d, x, s, t) {
|
||||
var n = a + (c ^ (b | ~d)) + x + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.MD5('message');
|
||||
* var hash = CryptoJS.MD5(wordArray);
|
||||
*/
|
||||
C.MD5 = Hasher._createHelper(MD5);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacMD5(message, key);
|
||||
*/
|
||||
C.HmacMD5 = Hasher._createHmacHelper(MD5);
|
||||
}(Math));
|
||||
|
||||
|
||||
return CryptoJS.MD5;
|
||||
|
||||
}));
|
||||
@@ -0,0 +1,199 @@
|
||||
;(function (root, factory) {
|
||||
if (typeof exports === "object") {
|
||||
// CommonJS
|
||||
module.exports = exports = factory(require("./core"));
|
||||
}
|
||||
else if (typeof define === "function" && define.amd) {
|
||||
// AMD
|
||||
define(["./core"], factory);
|
||||
}
|
||||
else {
|
||||
// Global (browser)
|
||||
factory(root.CryptoJS);
|
||||
}
|
||||
}(this, function (CryptoJS) {
|
||||
|
||||
(function (Math) {
|
||||
// Shortcuts
|
||||
var C = CryptoJS;
|
||||
var C_lib = C.lib;
|
||||
var WordArray = C_lib.WordArray;
|
||||
var Hasher = C_lib.Hasher;
|
||||
var C_algo = C.algo;
|
||||
|
||||
// Initialization and round constants tables
|
||||
var H = [];
|
||||
var K = [];
|
||||
|
||||
// Compute constants
|
||||
(function () {
|
||||
function isPrime(n) {
|
||||
var sqrtN = Math.sqrt(n);
|
||||
for (var factor = 2; factor <= sqrtN; factor++) {
|
||||
if (!(n % factor)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function getFractionalBits(n) {
|
||||
return ((n - (n | 0)) * 0x100000000) | 0;
|
||||
}
|
||||
|
||||
var n = 2;
|
||||
var nPrime = 0;
|
||||
while (nPrime < 64) {
|
||||
if (isPrime(n)) {
|
||||
if (nPrime < 8) {
|
||||
H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
|
||||
}
|
||||
K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
|
||||
|
||||
nPrime++;
|
||||
}
|
||||
|
||||
n++;
|
||||
}
|
||||
}());
|
||||
|
||||
// Reusable object
|
||||
var W = [];
|
||||
|
||||
/**
|
||||
* SHA-256 hash algorithm.
|
||||
*/
|
||||
var SHA256 = C_algo.SHA256 = Hasher.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new WordArray.init(H.slice(0));
|
||||
},
|
||||
|
||||
_doProcessBlock: function (M, offset) {
|
||||
// Shortcut
|
||||
var H = this._hash.words;
|
||||
|
||||
// Working variables
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
var d = H[3];
|
||||
var e = H[4];
|
||||
var f = H[5];
|
||||
var g = H[6];
|
||||
var h = H[7];
|
||||
|
||||
// Computation
|
||||
for (var i = 0; i < 64; i++) {
|
||||
if (i < 16) {
|
||||
W[i] = M[offset + i] | 0;
|
||||
} else {
|
||||
var gamma0x = W[i - 15];
|
||||
var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
|
||||
((gamma0x << 14) | (gamma0x >>> 18)) ^
|
||||
(gamma0x >>> 3);
|
||||
|
||||
var gamma1x = W[i - 2];
|
||||
var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
|
||||
((gamma1x << 13) | (gamma1x >>> 19)) ^
|
||||
(gamma1x >>> 10);
|
||||
|
||||
W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
|
||||
}
|
||||
|
||||
var ch = (e & f) ^ (~e & g);
|
||||
var maj = (a & b) ^ (a & c) ^ (b & c);
|
||||
|
||||
var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
|
||||
var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
|
||||
|
||||
var t1 = h + sigma1 + ch + K[i] + W[i];
|
||||
var t2 = sigma0 + maj;
|
||||
|
||||
h = g;
|
||||
g = f;
|
||||
f = e;
|
||||
e = (d + t1) | 0;
|
||||
d = c;
|
||||
c = b;
|
||||
b = a;
|
||||
a = (t1 + t2) | 0;
|
||||
}
|
||||
|
||||
// Intermediate hash value
|
||||
H[0] = (H[0] + a) | 0;
|
||||
H[1] = (H[1] + b) | 0;
|
||||
H[2] = (H[2] + c) | 0;
|
||||
H[3] = (H[3] + d) | 0;
|
||||
H[4] = (H[4] + e) | 0;
|
||||
H[5] = (H[5] + f) | 0;
|
||||
H[6] = (H[6] + g) | 0;
|
||||
H[7] = (H[7] + h) | 0;
|
||||
},
|
||||
|
||||
_doFinalize: function () {
|
||||
// Shortcuts
|
||||
var data = this._data;
|
||||
var dataWords = data.words;
|
||||
|
||||
var nBitsTotal = this._nDataBytes * 8;
|
||||
var nBitsLeft = data.sigBytes * 8;
|
||||
|
||||
// Add padding
|
||||
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
|
||||
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
|
||||
data.sigBytes = dataWords.length * 4;
|
||||
|
||||
// Hash final blocks
|
||||
this._process();
|
||||
|
||||
// Return final computed hash
|
||||
return this._hash;
|
||||
},
|
||||
|
||||
clone: function () {
|
||||
var clone = Hasher.clone.call(this);
|
||||
clone._hash = this._hash.clone();
|
||||
|
||||
return clone;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Shortcut function to the hasher's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
*
|
||||
* @return {WordArray} The hash.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hash = CryptoJS.SHA256('message');
|
||||
* var hash = CryptoJS.SHA256(wordArray);
|
||||
*/
|
||||
C.SHA256 = Hasher._createHelper(SHA256);
|
||||
|
||||
/**
|
||||
* Shortcut function to the HMAC's object interface.
|
||||
*
|
||||
* @param {WordArray|string} message The message to hash.
|
||||
* @param {WordArray|string} key The secret key.
|
||||
*
|
||||
* @return {WordArray} The HMAC.
|
||||
*
|
||||
* @static
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* var hmac = CryptoJS.HmacSHA256(message, key);
|
||||
*/
|
||||
C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
|
||||
}(Math));
|
||||
|
||||
|
||||
return CryptoJS.SHA256;
|
||||
|
||||
}));
|
||||
Vendored
+45
-45
File diff suppressed because one or more lines are too long
Vendored
-8
@@ -1,8 +0,0 @@
|
||||
/**
|
||||
* Minified by jsDelivr using Terser v5.10.0.
|
||||
* Original file: /npm/echarts@5.3.2/theme/macarons.js
|
||||
*
|
||||
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||
*/
|
||||
!function(e,o){"function"==typeof define&&define.amd?define(["exports","echarts"],o):"object"==typeof exports&&"string"!=typeof exports.nodeName?o(exports,require("echarts/lib/echarts")):o({},e.echarts)}(this,(function(e,o){var l;if(!o)return l="ECharts is not Loaded",void("undefined"!=typeof console&&console&&console.error&&console.error(l));var r=["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],t={color:r,title:{textStyle:{fontWeight:"normal",color:"#008acd"}},visualMap:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{iconStyle:{normal:{borderColor:r[0]}}},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{color:"#008acd",borderColor:"#008acd"},symbol:"emptyCircle",symbolSize:3},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},candlestick:{itemStyle:{color:"#d87a80",color0:"#2ec7c9"},lineStyle:{width:1,color:"#d87a80",color0:"#2ec7c9"},areaStyle:{color:"#2ec7c9",color0:"#b6a2de"}},scatter:{symbol:"circle",symbolSize:4},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"#fe994e"},label:{color:"#d87a80"}},graph:{itemStyle:{color:"#d87a80"},linkStyle:{color:"#2ec7c9"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}}};o.registerTheme("macarons",t)}));
|
||||
//# sourceMappingURL=/sm/aab77075497467da0c338b3cfd12882e055a23bac9e90d20c0fc6df304a8e6f7.map
|
||||
@@ -0,0 +1,273 @@
|
||||
# dark theme based on chalk theme
|
||||
color:
|
||||
- '#fc97af'
|
||||
- '#87f7cf'
|
||||
- '#f7f494'
|
||||
- '#72ccff'
|
||||
- '#f7c5a0'
|
||||
- '#d4a4eb'
|
||||
- '#d2f5a6'
|
||||
- '#76f2f2'
|
||||
backgroundColor: rgba(41,52,65,1)
|
||||
textStyle: {}
|
||||
title:
|
||||
textStyle:
|
||||
color: '#ffffff'
|
||||
subtextStyle:
|
||||
color: '#dddddd'
|
||||
line:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 6
|
||||
symbol: circle
|
||||
smooth: true
|
||||
radar:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 3
|
||||
symbol: circle
|
||||
smooth: true
|
||||
bar:
|
||||
itemStyle:
|
||||
barBorderWidth: 0
|
||||
barBorderColor: '#ccc'
|
||||
pie:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
scatter:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
boxplot:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
parallel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
sankey:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
funnel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
gauge:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
candlestick:
|
||||
itemStyle:
|
||||
color: '#fc97af'
|
||||
color0: transparent
|
||||
borderColor: '#fc97af'
|
||||
borderColor0: '#87f7cf'
|
||||
borderWidth: 1
|
||||
graph:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
lineStyle:
|
||||
width: 1
|
||||
color: '#ffffff'
|
||||
symbolSize: 3
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
color:
|
||||
- '#fc97af'
|
||||
- '#87f7cf'
|
||||
- '#f7f494'
|
||||
- '#72ccff'
|
||||
- '#f7c5a0'
|
||||
- '#d4a4eb'
|
||||
- '#d2f5a6'
|
||||
- '#76f2f2'
|
||||
label:
|
||||
color: '#293441'
|
||||
map:
|
||||
itemStyle:
|
||||
areaColor: '#f3f3f3'
|
||||
borderColor: '#999999'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#893448'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(255,178,72,1)
|
||||
borderColor: '#eb8146'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(137,52,72)
|
||||
geo:
|
||||
itemStyle:
|
||||
areaColor: '#f3f3f3'
|
||||
borderColor: '#999999'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#893448'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(255,178,72,1)
|
||||
borderColor: '#eb8146'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(137,52,72)
|
||||
categoryAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: false
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
valueAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
logAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: true
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
timeAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
toolbox:
|
||||
iconStyle:
|
||||
borderColor: '#999999'
|
||||
emphasis:
|
||||
iconStyle:
|
||||
borderColor: '#666666'
|
||||
legend:
|
||||
textStyle:
|
||||
color: '#999999'
|
||||
tooltip:
|
||||
axisPointer:
|
||||
lineStyle:
|
||||
color: '#cccccc'
|
||||
width: 1
|
||||
crossStyle:
|
||||
color: '#cccccc'
|
||||
width: 1
|
||||
timeline:
|
||||
lineStyle:
|
||||
color: '#87f7cf'
|
||||
width: 1
|
||||
itemStyle:
|
||||
color: '#87f7cf'
|
||||
borderWidth: 1
|
||||
controlStyle:
|
||||
color: '#87f7cf'
|
||||
borderColor: '#87f7cf'
|
||||
borderWidth: 0.5
|
||||
checkpointStyle:
|
||||
color: '#fc97af'
|
||||
borderColor: '#fc97af'
|
||||
label:
|
||||
color: '#87f7cf'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
color: '#f7f494'
|
||||
controlStyle:
|
||||
color: '#87f7cf'
|
||||
borderColor: '#87f7cf'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#87f7cf'
|
||||
visualMap:
|
||||
color:
|
||||
- '#fc97af'
|
||||
- '#87f7cf'
|
||||
dataZoom:
|
||||
backgroundColor: rgba(255,255,255,0)
|
||||
dataBackgroundColor: rgba(114,204,255,1)
|
||||
fillerColor: rgba(114,204,255,0.2)
|
||||
handleColor: '#72ccff'
|
||||
handleSize: 100%
|
||||
textStyle:
|
||||
color: '#333333'
|
||||
markPoint:
|
||||
label:
|
||||
color: '#293441'
|
||||
emphasis:
|
||||
label:
|
||||
color: '#293441'
|
||||
@@ -0,0 +1,297 @@
|
||||
# light theme based on macarons theme
|
||||
color:
|
||||
- '#2ec7c9'
|
||||
- '#b6a2de'
|
||||
- '#5ab1ef'
|
||||
- '#ffb980'
|
||||
- '#d87a80'
|
||||
- '#8d98b3'
|
||||
- '#e5cf0d'
|
||||
- '#97b552'
|
||||
- '#95706d'
|
||||
- '#dc69aa'
|
||||
- '#07a2a4'
|
||||
- '#9a7fd1'
|
||||
- '#588dd5'
|
||||
- '#f5994e'
|
||||
- '#c05050'
|
||||
- '#59678c'
|
||||
- '#c9ab00'
|
||||
- '#7eb00a'
|
||||
- '#6f5553'
|
||||
- '#c14089'
|
||||
backgroundColor: rgba(0,0,0,0)
|
||||
textStyle: {}
|
||||
title:
|
||||
textStyle:
|
||||
color: '#008acd'
|
||||
subtextStyle:
|
||||
color: '#aaaaaa'
|
||||
line:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 5
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
radar:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 3
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
bar:
|
||||
itemStyle:
|
||||
barBorderWidth: 0
|
||||
barBorderColor: '#ccc'
|
||||
pie:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
scatter:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
boxplot:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
parallel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
sankey:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
funnel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
gauge:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
candlestick:
|
||||
itemStyle:
|
||||
color: '#d87a80'
|
||||
color0: '#2ec7c9'
|
||||
borderColor: '#d87a80'
|
||||
borderColor0: '#2ec7c9'
|
||||
borderWidth: 1
|
||||
graph:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
lineStyle:
|
||||
width: 1
|
||||
color: '#aaaaaa'
|
||||
symbolSize: 3
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
color:
|
||||
- '#2ec7c9'
|
||||
- '#b6a2de'
|
||||
- '#5ab1ef'
|
||||
- '#ffb980'
|
||||
- '#d87a80'
|
||||
- '#8d98b3'
|
||||
- '#e5cf0d'
|
||||
- '#97b552'
|
||||
- '#95706d'
|
||||
- '#dc69aa'
|
||||
- '#07a2a4'
|
||||
- '#9a7fd1'
|
||||
- '#588dd5'
|
||||
- '#f5994e'
|
||||
- '#c05050'
|
||||
- '#59678c'
|
||||
- '#c9ab00'
|
||||
- '#7eb00a'
|
||||
- '#6f5553'
|
||||
- '#c14089'
|
||||
label:
|
||||
color: '#eeeeee'
|
||||
map:
|
||||
itemStyle:
|
||||
areaColor: '#dddddd'
|
||||
borderColor: '#eeeeee'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#d87a80'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(254,153,78,1)
|
||||
borderColor: '#444'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(100,0,0)
|
||||
geo:
|
||||
itemStyle:
|
||||
areaColor: '#dddddd'
|
||||
borderColor: '#eeeeee'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#d87a80'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(254,153,78,1)
|
||||
borderColor: '#444'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(100,0,0)
|
||||
categoryAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: false
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
valueAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: true
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
logAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: true
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
timeAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
toolbox:
|
||||
iconStyle:
|
||||
borderColor: '#2ec7c9'
|
||||
emphasis:
|
||||
iconStyle:
|
||||
borderColor: '#18a4a6'
|
||||
legend:
|
||||
textStyle:
|
||||
color: '#333333'
|
||||
tooltip:
|
||||
axisPointer:
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
width: 1
|
||||
crossStyle:
|
||||
color: '#008acd'
|
||||
width: 1
|
||||
timeline:
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
width: 1
|
||||
itemStyle:
|
||||
color: '#008acd'
|
||||
borderWidth: 1
|
||||
controlStyle:
|
||||
color: '#008acd'
|
||||
borderColor: '#008acd'
|
||||
borderWidth: 0.5
|
||||
checkpointStyle:
|
||||
color: '#2ec7c9'
|
||||
borderColor: '#2ec7c9'
|
||||
label:
|
||||
color: '#008acd'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
color: '#a9334c'
|
||||
controlStyle:
|
||||
color: '#008acd'
|
||||
borderColor: '#008acd'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#008acd'
|
||||
visualMap:
|
||||
color:
|
||||
- '#5ab1ef'
|
||||
- '#e0ffff'
|
||||
dataZoom:
|
||||
backgroundColor: rgba(47,69,84,0)
|
||||
dataBackgroundColor: '#efefff'
|
||||
fillerColor: rgba(182,162,222,0.2)
|
||||
handleColor: '#008acd'
|
||||
handleSize: 100%
|
||||
textStyle:
|
||||
color: '#333333'
|
||||
markPoint:
|
||||
label:
|
||||
color: '#eeeeee'
|
||||
emphasis:
|
||||
label:
|
||||
color: '#eeeeee'
|
||||
File diff suppressed because one or more lines are too long
+3
-2
File diff suppressed because one or more lines are too long
Vendored
+9
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var a={};return function(){n.d(a,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,a=0,i=e.length;n<t.length;){var o=t[n];if(a<=0&&t.slice(n,n+i)===e)return n;"\\"===o?n++:"{"===o?a++:"}"===o&&a--,n++}return-1},i=/^\\begin{/,o=function(e,t){for(var n,a=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(a.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=i.test(d)?d:e.slice(t[l].left.length,n);a.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&a.push({type:"text",data:e}),a},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var a=document.createDocumentFragment(),i=0;i<n.length;i++)if("text"===n[i].type)a.appendChild(document.createTextNode(n[i].data));else{var l=document.createElement("span"),d=n[i].data;r.displayMode=n[i].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[i].data+"` with ",e),a.appendChild(document.createTextNode(n[i].rawData));continue}a.appendChild(l)}return a},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var a=t.childNodes[n];if(3===a.nodeType){var i=l(a.textContent,r);i&&(n+=i.childNodes.length-1,t.replaceChild(i,a))}else 1===a.nodeType&&function(){var t=" "+a.className+" ";-1===r.ignoredTags.indexOf(a.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(a,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),a=a.default}()}));
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var i={};return function(){n.d(i,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,i=0,a=e.length;n<t.length;){var o=t[n];if(i<=0&&t.slice(n,n+a)===e)return n;"\\"===o?n++:"{"===o?i++:"}"===o&&i--,n++}return-1},a=/^\\begin{/,o=function(e,t){for(var n,i=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(i.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=a.test(d)?d:e.slice(t[l].left.length,n);i.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&i.push({type:"text",data:e}),i},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var i=document.createDocumentFragment(),a=0;a<n.length;a++)if("text"===n[a].type)i.appendChild(document.createTextNode(n[a].data));else{var l=document.createElement("span"),d=n[a].data;r.displayMode=n[a].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[a].data+"` with ",e),i.appendChild(document.createTextNode(n[a].rawData));continue}i.appendChild(l)}return i},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n];if(3===i.nodeType){for(var a=i.textContent,o=i.nextSibling,d=0;o&&o.nodeType===Node.TEXT_NODE;)a+=o.textContent,o=o.nextSibling,d++;var s=l(a,r);if(s){for(var f=0;f<d;f++)i.nextSibling.remove();n+=s.childNodes.length-1,t.replaceChild(s,i)}else n+=d}else 1===i.nodeType&&function(){var t=" "+i.className+" ";-1===r.ignoredTags.indexOf(i.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(i,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),i=i.default}()}));
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
.katex,.katex-display{-webkit-user-select:all;-moz-user-select:all;user-select:all}
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var l in n)("object"==typeof exports?exports:e)[l]=n[l]}}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={},t={inline:["$","$"],display:["$$","$$"]},n=function(e,n){void 0===n&&(n=t);for(var l=e.querySelectorAll(".katex-mathml + .katex-html"),r=0;r<l.length;r++){var i=l[r];i.remove?i.remove(null):i.parentNode.removeChild(i)}for(var o=e.querySelectorAll(".katex-mathml"),a=0;a<o.length;a++){var d=o[a],f=d.querySelector("annotation");f&&(d.replaceWith?d.replaceWith(f):d.parentNode.replaceChild(f,d),f.innerHTML=n.inline[0]+f.innerHTML+n.inline[1])}for(var c=e.querySelectorAll(".katex-display annotation"),s=0;s<c.length;s++){var p=c[s];p.innerHTML=n.display[0]+p.innerHTML.substr(n.inline[0].length,p.innerHTML.length-n.inline[0].length-n.inline[1].length)+n.display[1]}return e};return document.addEventListener("copy",(function(e){var t=window.getSelection();if(!t.isCollapsed){var l=t.getRangeAt(0).cloneContents();if(l.querySelector(".katex-mathml")){for(var r=[],i=0;i<l.childNodes.length;i++)r.push(l.childNodes[i].outerHTML);e.clipboardData.setData("text/html",r.join("")),e.clipboardData.setData("text/plain",n(l).textContent),e.preventDefault()}}})),e=e.default}()}));
|
||||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={},t={inline:["$","$"],display:["$$","$$"]};var n=function(e,n){void 0===n&&(n=t);for(var r=e.querySelectorAll(".katex-mathml + .katex-html"),a=0;a<r.length;a++){var o=r[a];o.remove?o.remove():o.parentNode&&o.parentNode.removeChild(o)}for(var i=e.querySelectorAll(".katex-mathml"),l=0;l<i.length;l++){var f=i[l],c=f.querySelector("annotation");c&&(f.replaceWith?f.replaceWith(c):f.parentNode&&f.parentNode.replaceChild(c,f),c.innerHTML=n.inline[0]+c.innerHTML+n.inline[1])}for(var d=e.querySelectorAll(".katex-display annotation"),s=0;s<d.length;s++){var p=d[s];p.innerHTML=n.display[0]+p.innerHTML.substr(n.inline[0].length,p.innerHTML.length-n.inline[0].length-n.inline[1].length)+n.display[1]}return e};function r(e){var t=e instanceof Element?e:e.parentElement;return t&&t.closest(".katex")}return document.addEventListener("copy",(function(e){var t=window.getSelection();if(!t.isCollapsed&&e.clipboardData){var a=e.clipboardData,o=t.getRangeAt(0),i=r(o.startContainer);i&&o.setStartBefore(i);var l=r(o.endContainer);l&&o.setEndAfter(l);var f=o.cloneContents();if(f.querySelector(".katex-mathml")){var c=Array.prototype.map.call(f.childNodes,(function(e){return e instanceof Text?e.textContent:e.outerHTML})).join("");a.setData("text/html",c),a.setData("text/plain",n(f).textContent),e.preventDefault()}}})),e=e.default}()}));
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user