Compare commits

...

475 Commits

Author SHA1 Message Date
Cell 15841f0b90 🔖 Chore(release): 0.2.17 2023-01-29 19:38:52 +08:00
github-actions[bot] 78de1a3df6 👥 Chore(contributor): contrib-readme-action has updated contributors.md 2023-01-29 19:08:05 +08:00
Mejituu 9dcd26b9b1 🐛 Fix: sitemap.xml link in robots.txt doesn't point to main sitemap (#276) 2023-01-29 19:07:47 +08:00
dependabot[bot] 3ae9eb7b98 chore(deps-dev): bump @babel/core from 7.19.6 to 7.20.12
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.19.6 to 7.20.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.12/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-29 13:30:42 +08:00
dependabot[bot] fb69b972c8 chore(deps): bump json5 from 2.2.1 to 2.2.3
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-29 13:29:31 +08:00
dependabot[bot] de34bfa144 chore(deps-dev): bump @babel/cli from 7.19.3 to 7.20.7
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.19.3 to 7.20.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.7/packages/babel-cli)

---
updated-dependencies:
- dependency-name: "@babel/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-29 13:28:08 +08:00
dependabot[bot] 7e03845cad chore(deps-dev): bump @babel/preset-env from 7.19.4 to 7.20.2
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.19.4 to 7.20.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.2/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-29 13:25:40 +08:00
dependabot[bot] be56be1cd6 chore(deps-dev): bump core-js from 3.26.0 to 3.27.2
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.26.0 to 3.27.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.27.2/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-29 12:45:07 +08:00
dependabot[bot] 7fa59dba79 chore(deps): bump actions/checkout from 2 to 3 (#273)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-29 12:26:15 +08:00
dependabot[bot] d61f060f9a chore(deps): bump wow-actions/auto-assign from 1 to 3 (#272)
Bumps [wow-actions/auto-assign](https://github.com/wow-actions/auto-assign) from 1 to 3.
- [Release notes](https://github.com/wow-actions/auto-assign/releases)
- [Changelog](https://github.com/wow-actions/auto-assign/blob/master/CHANGELOG.md)
- [Commits](https://github.com/wow-actions/auto-assign/compare/v1...v3)

---
updated-dependencies:
- dependency-name: wow-actions/auto-assign
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-29 12:25:54 +08:00
Cell f99344d024 📝 Docs: update docs submodule 2023-01-29 12:21:26 +08:00
Cell 973a2962c0 🔧 Chore: enable dependabot to update "github-actions" and "gitsubmodule" package ecosystem 2023-01-29 11:46:18 +08:00
Cell 9bfce6cbe6 📝 Docs: update README and docs submodule
Closes hugo-fixit/docs#4
2023-01-21 17:18:27 +08:00
n0tr00t c3b30118c9 📝 Docs: add TikTok social link (#264) (#267) 2023-01-10 19:49:57 +08:00
n0tr00teuorg fe1b070137 📝 Docs: add douyin social link (#264) 2023-01-10 18:51:09 +08:00
Cell bb00e33e2e 🔧 Chore: update config.toml and docs submodule 2023-01-08 13:11:29 +08:00
Cell f0d54fe6d5 Perf: remove redundant judgement 2023-01-07 13:05:53 +08:00
Cell b974fa56df ⬆️ Chore(libs): update Twikoo from 1.4.10 to 1.6.8 and add Katex support for it (#215 #243)
Closes #215
Closes #243
2023-01-07 12:56:18 +08:00
Cell bd785eb608 🐛 Fix(i18n): fix admonition translation error 2023-01-04 16:21:00 +08:00
Cell dc9956c807 🐛 Fix(pace): patch pace theme flat-top z-index error 2023-01-04 13:04:32 +08:00
Cell f57088b47a 🔥 Docs: remove non-FixIt sites 2023-01-03 17:19:43 +08:00
Cell 7042673dfe 📄 Docs: update Copyright year 2023-01-03 15:18:39 +08:00
Cell 3a888c41c4 🐛 Fix: can not disable params.footer.siteTime 2023-01-03 15:07:40 +08:00
Cell 48dc34cf11 ♻️ Refactor(i18n): hierarchize translation fields for supported languages 2023-01-02 13:31:27 +08:00
Cell 8d6e5277f9 🎨 Style: format toml files in folder i18n 2022-12-27 14:25:54 +08:00
Cell 0a67c51495 🚚 Feat: merge parameter footer.custom to custom file 2022-12-26 11:38:01 +08:00
Cell cb3f77f064 Feat: add [pace](https://github.com/CodeByZach/pace) support (#190) 2022-12-22 22:53:35 +08:00
Cell 238ec7ac33 🐛 Fix: pangu.js cdn error 2022-12-22 22:17:32 +08:00
Cell 7e2ae88187 Feat: add parameter params.footer.order to order footer lines 2022-12-18 23:13:27 +08:00
Cell aca8809ea5 Feat: refactor parameter params.footer.siteTime 2022-12-18 16:57:12 +08:00
Cell fc30159f47 Perf: enhance pangu spelling correction 2022-12-18 14:49:51 +08:00
Cell e3e152b2d0 🎉 Feat: add support for [Fusejs search](https://fusejs.io/) (#203) 2022-12-03 18:43:22 +08:00
Cell 5467baf56b Perf: optimize theme version detection 2022-12-02 10:24:57 +08:00
Cell 712b04fd4e 📝 Docs: update docs 2022-11-30 21:13:57 +08:00
Cell 269f376915 📝 Docs: update changelog 2022-11-22 10:15:39 +08:00
Jean-Emmanuel BAILLAT 0d1d45cdc5 Fix missing breakline 2022-11-22 08:18:03 +08:00
kapusch 6c17548d27 Add missing translations for French + enhancements 2022-11-22 08:18:03 +08:00
Cell ffb3888414 Perf: optimize code 2022-11-20 18:47:42 +08:00
Cell d31215044d 🐛 Fix: escape CJK character in tag and category (#245, #246) 2022-11-19 21:58:27 +08:00
Cell 203de93723 📝 Docs: update about page 2022-11-18 15:36:22 +08:00
Cell ac1cf9b252 📝 Docs: update documentation 2022-11-18 15:33:10 +08:00
Cell 908cb6946b 🐛 Fix: escape hashtag character # in tag and category (#245) 2022-11-18 12:58:02 +08:00
Cell 88ec9f6e8a 🐛 Fix: can't keep the static table of the contents in front of the post 2022-11-17 14:40:38 +08:00
Cell 6c25237a90 🐛 Style: fix css error 2022-11-16 17:39:05 +08:00
Cell 9a189af954 Perf: simplify post nav code 2022-11-14 14:12:36 +08:00
Cell ad93d92043 💄 Style: refactor css style 2022-11-14 12:26:42 +08:00
Cell b56d0a4e77 🚚 Feat: move assets/data/emoji to assets/lib/valine/emoji/ 2022-11-14 10:33:53 +08:00
Cell 4f767ebcb0 📝 Docs: fix typo 2022-11-09 16:11:16 +08:00
Cell 531b2b99d9 📝 Docs: update README 2022-11-08 15:21:21 +08:00
Cell c94db763bc 📝 Docs: update docs 2022-11-08 11:29:51 +08:00
Cell c1e51653da 🔥 Feat: remove example data file 2022-11-08 11:19:01 +08:00
github-actions[bot] 52f8caa1cd 👥 Chore(contributor): contrib-readme-action has updated contributors.md 2022-11-08 11:06:20 +08:00
WakeHuang 0174749857 add a FixIt demo site 2022-11-08 11:06:09 +08:00
Cell 856475640b 📝 Docs: update friends data 2022-11-08 11:05:23 +08:00
Cell 1b8daf3ca9 📝 Docs: update readme 2022-11-07 15:48:28 +08:00
Cell 561dd0ab3a 📝 Docs: update friends data 2022-11-07 15:43:42 +08:00
github-actions[bot] c6d0b13e11 👥 Chore(contributor): contrib-readme-action has updated contributors.md 2022-11-07 14:57:41 +08:00
niku 16af91dad2 add my site 2022-11-07 14:57:26 +08:00
Cell 37666132fb Perf: hide post count of tag when tagcloud is enabled 2022-11-06 03:15:28 +08:00
Cell d7edd8aab7 ✏️ Docs: fix typo 2022-11-05 04:17:53 +08:00
Cell 79f474b5b0 💄 Style:optimize tag cloud style (#235) 2022-11-05 03:55:46 +08:00
Cell 6df88b0283 Feat: add TagCloud config support for tags page, see parameter params.tagcloud (#235) 2022-11-05 03:44:21 +08:00
Cell 13f825b7c2 Feat: add parameter params.home.profile.avatarMenu 2022-11-04 22:37:31 +08:00
Cell c56b7d3d33 Feat: add custom templates and parameter params.customFilePath support 2022-11-04 15:15:39 +08:00
Cell f3ce0fd165 Perf: optimize sub menu position calculation in desktop header with css replace of javascript 2022-11-04 12:35:23 +08:00
Cell de823d47da 💄 Style: update home page stylesheet 2022-11-04 11:06:50 +08:00
Cell adb4a2bf3b 📝 Docs: update changelog 2022-11-02 11:33:55 +08:00
Cell f0062e5b4f Merge branch 'master' into dev 2022-11-02 11:30:28 +08:00
Cell a71ae78bf0 🔧 Chore(deps-dev):
- Bump @babel/cli from 7.18.10 to 7.19.3
  - Bump @babel/core from 7.19.1 to 7.19.6
  - Bump @babel/preset-env from 7.18.10 to 7.19.4
  - Bump core-js from 3.25.2 to 3.26.0

Closes #212
Closes #237
Closes #238
Closes #239
2022-11-02 11:26:03 +08:00
Cell ead88c34c6 ✏️ Docs: update docs 2022-10-28 22:27:46 +08:00
Cell 256c324bff Feat: add reward shortcode support (#216) 2022-10-28 22:07:31 +08:00
Cell 41050ee3db Feat: add feature end of post flag support (#236) 2022-10-28 16:52:18 +08:00
Cell 848704ee9f 🎨 Style: delete debug code 2022-10-28 16:06:53 +08:00
Cell 392c74934a Perf: optimize toc margin bottom calculation 2022-10-28 15:55:03 +08:00
Cell e736b89253 Feat(post-reward): add param position (#216)
💄 Style: update post footer, post reward and comments styles
2022-10-28 14:24:56 +08:00
Cell d7eb199407 Perf: add custom css variable --animation-reward (#216) 2022-10-28 09:59:13 +08:00
Cell c641344213 🐛 Fix(post-reward): invalid in Safari browser (#216) 2022-10-27 17:51:20 +08:00
Cell ffbdc5ba98 Feat: add feature post reward support (#216) 2022-10-27 17:06:49 +08:00
Cell 54650f62db 🔧 Chore: update contributors.yml 2022-10-21 11:30:23 +08:00
Cell c986050177 📝 Docs: update documentation and changelog 2022-10-21 11:13:19 +08:00
Cell 3a61933b80 Merge branch 'master' into dev 2022-10-21 11:06:22 +08:00
Cell 4e4f0fbdfb docs(contributor): contrib-readme-action has updated readme 2022-10-21 11:00:18 +08:00
Nico Rügheimer d893bac297 Bump fontawesome to 6.2.0 2022-10-20 01:21:57 +02:00
Cell b1adac1ab1 Perf: optimize close comment feature when the post has expired (#204) 2022-10-14 17:11:19 +08:00
Cell f6f905517c Feat: add params to close wordcount and readingTime in post (#209) 2022-10-11 17:56:01 +08:00
Cell 49866cbc49 🐛 Fix: image shortcode/plugin lose the support for svg type files (#210) 2022-10-11 14:55:52 +08:00
Cell 268bed75ad 🐛 Fix: logo image width error
image from assets
2022-10-06 23:08:47 +08:00
Cell eee891a00e 🚚 Feat: migrate parameter params.autoBookmark to params.page.autoBookmark (#55) 2022-10-05 20:15:04 +08:00
Cell 5efebec3ae 🐛 Fix: remove the leading and trailing whitespace of the code string (#205) 2022-10-05 19:35:22 +08:00
Cell 667d9c9b61 📝 Docs: add dev branch 2022-10-01 14:30:06 +08:00
Cell a0eca23c10 📝 Docs: add command to update theme to dev 2022-10-01 13:45:49 +08:00
Cell 12cd2847f0 🔧 Chore: to fix HttpError: Resource not accessible by integration 2022-10-01 10:03:48 +08:00
Cell 7ebb1d9fa2 📝 Docs: add a FixIt demo site
- https://github.com/hugo-fixit/hugo-fixit-blog-git
- https://github.com/hugo-fixit/hugo-fixit-blog-go
2022-09-30 17:56:32 +08:00
Cell 768dc8aad6 📝 Docs: update clone command 2022-09-30 15:46:43 +08:00
Cell dc8b3d6a25 📝 Docs: update default base menu config 2022-09-30 11:07:11 +08:00
Cell 0c3b7e3f36 📝 Docs: update default avatar using gravatar 2022-09-30 10:48:06 +08:00
Cell 69772a2556 Feat: add yml markdown code type 2022-09-28 12:31:59 +08:00
Cell ceb2a16104 📝 Docs: update relative path in README 2022-09-28 11:25:57 +08:00
Cell 8e8d9ce03a 🍱 Feat: update static images 2022-09-27 15:50:03 +08:00
Cell ad1f3fa803 📝 Docs: update README 2022-09-26 11:41:25 +08:00
Cell 3563649e09 ✏️ Docs: fix typo 2022-09-25 16:30:19 +08:00
Cell d4fdfc3ff2 🚧 Chore: update version to 0.2.17-RC 2022-09-24 23:11:38 +08:00
Cell f40297b8d9 🔖 Chore(release): 0.2.16 2022-09-24 22:57:28 +08:00
dependabot[bot] 4cc2a820e5 chore(deps-dev): bump @babel/core from 7.18.10 to 7.19.1
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.10 to 7.19.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.19.1/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-24 14:48:15 +00:00
dependabot[bot] 3fd8b130ac chore(deps-dev): bump core-js from 3.24.1 to 3.25.2
Bumps [core-js](https://github.com/zloirock/core-js) from 3.24.1 to 3.25.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.24.1...v3.25.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-24 14:38:59 +00:00
Cell 76288c53d5 🐛 Fix: image height error (#200) 2022-09-24 14:41:27 +08:00
Cell bd5b9a6328 🐛 Fix: image shortcode invalid params height and weight (#200) 2022-09-24 13:56:40 +08:00
Cell 22f7a226e3 ⬆️ Chore(libs): update third-party libraries
- 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
2022-09-23 22:40:41 +08:00
Cell d785162cba ⬆️ Chore(libs): update lightgallery from 2.6.0 to 2.6.1 2022-09-23 17:20:16 +08:00
Cell 64db19998f 🔧 Chore: add "Build" param for plugin script and refactor custom.js by js.build 2022-09-23 17:10:50 +08:00
Cell b50cfe0bd7 ⬆️ Chore(libs): update mapbox-gl from 2.8.2 to 2.10.0 2022-09-23 16:09:31 +08:00
Cell c9827ab7d4 ⬆️ Chore(libs): update mermaid from 9.1.6 to 9.1.7 2022-09-23 13:43:12 +08:00
Cell 0d44d5bc0f ⬆️ Chore(libs): update simple-icons from 7.8.0 to 7.12.0 2022-09-23 11:37:33 +08:00
Cell bc4ac5516b ⬆️ Chore(libs): update @waline/client from 2.6.1 to 2.10.0 2022-09-23 11:18:45 +08:00
Cell 162a448089 ⬆️ Chore(libs): update Valine from 1.5.0 to 1.5.1 2022-09-22 17:38:02 +08:00
Cell fe27a40bef 📝 Docs: update theme docs 2022-09-22 15:34:55 +08:00
Cell 87d0ad76b9 💄 Style: change line-break style of code element from anywhere to auto 2022-09-22 14:46:52 +08:00
Cell 2640471fdb 📝 Docs: update README.md 2022-09-22 13:44:01 +08:00
Cell 662533ae4e ♻️ Refactor: config (#187) 2022-09-22 13:01:25 +08:00
Cell 23bfb100cb 📝 Docs: add TryHackMe social link (#197) 2022-09-21 16:39:03 +08:00
Cell b61cd84c12 Chore: ignore console warning about a license key (lightGallery#1022) 2022-09-21 11:33:04 +08:00
Cell fd5ea5b7ab 💄 Style: add some base reboot styles 2022-09-18 14:53:40 +08:00
Cell 5a9aab3730 🔧 Chore: creating new go.mod: module github.com/hugo-fixit/FixIt 2022-09-18 12:40:15 +08:00
Cell b6433d197a 💄 Style: fix language and theme switch cursor style (#193) 2022-09-17 22:34:27 +08:00
Cell bce815db20 ✏️ Docs: typesetting 2022-09-17 22:21:18 +08:00
Cell 4684f6a429 🐛 Fix: bookmark scroll error when scroll top equal 0 2022-09-17 18:45:19 +08:00
Cell b236c27820 🎨 Style: unified code style 2022-09-17 18:40:31 +08:00
Cell 7f30aa822b 🔧 Chore(docs): update docs submodule 2022-09-17 17:17:02 +08:00
Cell 56468f9d94 🎨 Style: code format for theme.js 2022-09-17 17:09:15 +08:00
Cell 3403398bf2 Feat: add auto bookmark support (#55) 2022-09-17 16:54:25 +08:00
Cell 269038fd21 🎨 Style: delete debug code 2022-09-17 16:25:51 +08:00
Cell f93fa4e870 Perf: use scrollTop replace with srcollY 2022-09-17 15:04:20 +08:00
Cell d6d6638d92 Perf: optimize custom.js minify 2022-09-17 11:45:03 +08:00
Cell 74cecb1ff6 🔥 Feat: remove fixit_checker.sh 2022-09-17 11:41:34 +08:00
Cell 173f77d092 📝 Docs: update FUNDING.yml 2022-09-16 00:13:49 +08:00
Cell 2a034e9a2a 📝 Docs: add Gitee mirror repository 2022-09-16 00:01:51 +08:00
Cell 1d4147556e Add FUNDING.yml 2022-09-15 23:39:10 +08:00
Cell 7ff9f998ae 📝 Docs: add custom sponsor links 2022-09-15 22:41:50 +08:00
Cell a5ba1d0c09 🚚 Feat: migrate fixit.svg to assets 2022-09-15 16:38:32 +08:00
Cell 8db7727897 ♻️ Refactor: version.template.svg 2022-09-15 14:43:13 +08:00
Cell 72fa55f58e Feat: add 10 newly supported social links (#175) 2022-09-15 10:57:03 +08:00
Cell 17cb4e6a86 🎨 Style: change scss varible $prefix 2022-09-13 16:39:39 +08:00
Cell b67517c3d1 🐛 Fix: RelPermalink error in loading custom js (#189 #196) 2022-09-12 20:13:59 +08:00
Cell 5750079022 ♻️ Refactor: plugin script 2022-09-12 19:43:00 +08:00
Cell f9b92cbbd6 Perf: optimize reading progress bar (#191) 2022-09-12 15:02:18 +08:00
Cell 2eb7605437 🐛 Fix: component paginator style error (#188) 2022-09-12 14:09:02 +08:00
Cell 54a05223f0 Perf: optimize scrolling logic 2022-09-10 15:18:24 +08:00
Cell af2b4a1951 💄 Style: fix language and theme switch cursor style (#193) 2022-09-10 14:44:06 +08:00
Cell c149a60028 Feat: add noscript warning banner (#194) 2022-09-10 14:11:11 +08:00
Cell d8b62fc690 🎉 Feat: add b2t scroll percent support (#192) 2022-09-10 13:51:03 +08:00
Cell bb294e5d13 🎨 Style: simplify scss import 2022-09-10 10:28:12 +08:00
Cell c9db04a462 Perf: use native once listener 2022-09-10 10:16:04 +08:00
Cell 995f9558db 🎉 Feat: add reading progress bar support (#191) 2022-09-10 01:23:54 +08:00
Cell 0659a175ad 🎨 Style: add dark theme colors support (#185) 2022-09-09 16:36:35 +08:00
Cell 8265db32bc ♻️ Refactor: scss directory (#185) 2022-09-09 16:04:47 +08:00
Cell ae6a114761 Perf(btn): remove fixed buttons fadeOut animate at mobile mode 2022-09-09 10:06:33 +08:00
Cell cdccbb7637 ♻️ Refactor: custom.js rendering and remove params.customJS 2022-09-08 22:03:30 +08:00
Cell ea1e62419c 🔧 Chore: fix file name error 2022-09-08 15:27:38 +08:00
Cell 5102f8e526 🔧 Chore: add workflow auo-asign 2022-09-08 15:03:48 +08:00
Cell 1292d517b5 Revert "🔧 Chore: use on.push.paths-ignore can prevent Code Scanning annotating new alerts in your pull requests"
This reverts commit 6c585b34b1.
2022-09-08 14:16:03 +08:00
Cell 6c585b34b1 🔧 Chore: use on.push.paths-ignore can prevent Code Scanning annotating new alerts in your pull requests 2022-09-08 14:04:17 +08:00
Cell 1da9407ee3 🔧 Chore: fix CodeQL config error 2022-09-08 13:58:16 +08:00
Cell a4556a728e 🔧 Chore: add CodeQL config 2022-09-08 13:54:11 +08:00
Cell fef069d7f6 🔧 Chore: add paths-ignore for codeql-action 2022-09-08 12:56:57 +08:00
Cell 8da0d0f299 🔧 Chore: update codeql-action workflow to v2 2022-09-08 12:34:28 +08:00
Cell 0ebd630fd0 🐛 Fix: code scanning alert - Potentially unsafe external link (#186) 2022-09-08 11:42:04 +08:00
Cell fe0f7a6fcf ♻️ Refactor: back to top and scroll to comments 2022-09-08 11:04:28 +08:00
Cell 6ba5a09447 📝 Chore: update theme.toml 2022-09-06 17:25:39 +08:00
Cell d607e6653d 📝 Docs: update search engine supported list 2022-09-06 17:21:48 +08:00
Cell e32446b5be 🐛 Style: fix lazyloading image error width 2022-09-04 19:09:19 +08:00
Cell 7650a7f54d 📝 Docs: update images title and add markdown tests 2022-09-04 18:37:10 +08:00
Cell 35e25236bb ♻️ Refactor: image rendering 2022-09-04 18:29:33 +08:00
Cell e9b5e33b39 Perf: remove extra spaces in plugin link 2022-09-04 02:02:48 +08:00
Cell 2d2d6c4071 ✏️ Dcos: fix typo 2022-09-03 22:25:46 +08:00
Cell d2239acbb7 🐛 Fix: typeit shortcode prints consecutive spaces and newline errors 2022-09-03 21:49:51 +08:00
Cell d4a2962303 🐛 Fix: typeit shortcode invalid config duration = -1 and fix style 2022-09-03 18:16:14 +08:00
Cell 13161e78a0 🐛 Style: fix del style at inline code 2022-09-03 17:40:26 +08:00
Cell 87b9a42169 🐛 Style(img): fix content image height 2022-09-03 14:34:54 +08:00
Cell f2a39a7fdd 🎨 Style(link): modify external link icon color 2022-09-03 14:05:26 +08:00
Cell 84d4381388 📝 Docs: update changelog and docs submodule 2022-09-03 12:43:15 +08:00
Cell 339b17c8ab 🍱 Docs: fix docs images error 2022-09-03 12:19:12 +08:00
Cell 3b727ea541 🎨 Chore(style): merge normalize.css into style.css and rm from CDN list 2022-09-03 12:13:01 +08:00
Cell 587029647a 🐛 Fix: missing height and weight of img element and lazyload object-fit style 2022-09-03 12:02:59 +08:00
Cell 2b36f0ce88 ⬆️ Chore(libs): update lightgallery from 1.4.0 to 2.6.0 2022-09-03 11:38:56 +08:00
Cell b4982b34e4 🐛 Fix: missing "comment" class in Commento and Utterances div 2022-09-02 23:40:17 +08:00
Cell 30bae125f3 Feat: update echarts theme config 2022-09-02 23:18:52 +08:00
Cell d29f143eb5 ✏️ Docs: repo url knsv/mermaid -> mermaid-js/mermaid 2022-09-02 23:05:25 +08:00
Cell 781e7d466f Feat: add optional parameter noreferrer for the shortcode link 2022-08-31 17:16:45 +08:00
Cell 073d0ab221 📝 Docs: update docs 2022-08-31 16:08:08 +08:00
Cell b6b2f0518a ⬆️ Chore(libs): update typeit from 7.8.0 to 8.7.0 2022-08-30 15:20:02 +08:00
Cell 09542fb999 📝 Docs: set draft to true for tests 2022-08-30 10:55:42 +08:00
Cell b0d29bffe1 🎨 Style(format): use single quote 2022-08-29 20:53:05 +08:00
Cell a291890f51 Feat(highlight): add custom code type map 2022-08-29 19:13:09 +08:00
Cell f3211e9617 Perf(scss): remove duplicated css prefix language- 2022-08-29 18:30:04 +08:00
Cell eb345cd9ea ♻️ Refactor(scss): create scss map dir 2022-08-29 17:21:43 +08:00
Cell 9fc37b36eb Feat(highlight): add full support for Chroma highlighting languages in the [list](https://gohugo.io/content-management/syntax-highlighting/#list-of-chroma-highlighting-languages)
tool: https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js
2022-08-29 16:55:12 +08:00
Cell 7092455a16 ⬆️ Chore(libs): update mermaid from 9.1.3 to 9.1.6 2022-08-29 11:45:36 +08:00
Cell 4d4cda6955 ⬆️ Chore(libs): update emoji-data from 5.0.1 to 14.0.0 2022-08-29 11:12:11 +08:00
Cell f37622a155 🐛 Fix: menu item invalid params draft in submenu 2022-08-28 20:34:49 +08:00
Cell d061469497 Feat(menu): add params.type for menu items 2022-08-28 20:09:02 +08:00
Cell f77febb93d 🎨 Style(footer): remove extra spaces 2022-08-28 17:09:00 +08:00
Cell 10b530abe1 Feat(accessibility): use aria-hidden=true on icons that AT should ignore 2022-08-28 16:54:44 +08:00
Cell 16482da119 Feat(menu): add params.icon support for menu items 2022-08-28 15:04:31 +08:00
Cell 88db7c761a 📝 Docs: update FixIt theme Docs 2022-08-28 12:20:29 +08:00
Cell fe03e7b904 Feat: add raw shortcode 2022-08-28 01:01:00 +08:00
Cell dcd93f7c6c 🎨 Style: add single newline at end of the file 2022-08-27 20:07:56 +08:00
Abdul Halim Daud cd036e5625 fix center-quote shortcode when config unsafe = false
when config unsafe = false, center-quote without markdown works but shortcode with markdown doesn't work.

the following doesn't work when unsafe = false:
```
{{% center-quote %}}
**hello** *world*
this is a center-quote shortcode example.
{{% /center-quote %}}
```

with this fix, the following works with markdown when unsafe = false:
```
{{< center-quote >}}
**hello** *world*
this is a center-quote shortcode example.
{{< /center-quote >}}
```
2022-08-27 20:01:10 +08:00
Cell cd49374911 🐛 Fix: link shortcode newline 2022-08-27 18:52:05 +08:00
Cell e4ba7a346e Feat(accessibility): using aria-hidden=true on an icon font that AT should ignore 2022-08-27 14:46:34 +08:00
Cell 4608f96ad3 💄 Style: modify single-title and single-subtitle styles 2022-08-27 14:28:30 +08:00
Cell 88a6b0e37d Feat(math): add more block delimiter support for math
import from https://github.com/dillonzq/LoveIt/commit/264dd5b9d5079d4fe2f29bc3ffa7b43fbf937336
2022-08-27 14:05:19 +08:00
Cell 5af5e44e10 ✏️ Docs: fix typo 2022-08-27 13:04:42 +08:00
Cell 3e80259a07 ⬆️ Chore(libs): update simple-icons from 6.3.0 to 7.8.0 2022-08-27 12:53:09 +08:00
Cell 447f832a58 🔧 Chore(deps-dev): remove dependencies: babel-preset-minify 2022-08-27 12:44:29 +08:00
Cell 1359995948 🎨 Style: add single newline at end of the file 2022-08-27 12:37:57 +08:00
Cell d27a42dab2 🐛 Fix: attribute media not allowed on element meta in [name=theme-color]
🐛 Fix: support smooth migration from LoveIt to FixIt (#174 #182)
2022-08-27 01:43:54 +08:00
Cell 913a82fe18 Perf: simplify theme switching logic 2022-08-27 01:11:00 +08:00
Cell e19b71cc6a 🎨 Style: format code 2022-08-26 23:57:42 +08:00
Cell 19f7746516 🐛 Fix: element div not allowed as child of element h2 and avoid empty heading in .home-subtitle 2022-08-26 17:46:18 +08:00
Cell 2efcf947a7 🐛 Fix: the “type” attribute is unnecessary for JavaScript resources
The default `type` for `<script>` tags is `JavaScript`, so you don’t need to include the type for JS resources.
2022-08-26 17:16:20 +08:00
Cell 55e747e5f1 🐛 Fix: the itemprop attribute was specified, but the element is not a property of any item 2022-08-26 17:00:26 +08:00
Cell 0edd185b39 🐛 Fix: use data attributes or class replace for custom attributes 2022-08-26 16:48:11 +08:00
Cell dfbffa2ad5 🐛 Fix: remove unneeded meta tag
This was only needed for IE10 and lower (which are no longer supported) and chromeframe which was a Google plugin for IE8 and lower and was discontinued many years ago. So this meta tag can be safely removed.
2022-08-26 15:48:16 +08:00
Cell 3f3d5aee37 🐛 Fix(footer): define itemtype property
The properties copyrightYear and copyrightHolder refer to the nearest parent CreativeWork.
https://schema.org/CreativeWork
2022-08-26 15:42:02 +08:00
Cell 84d781d6a4 Perf: init search-dropdown dom if search is enabled 2022-08-26 15:21:21 +08:00
Cell d051dbd9c0 📝 Docs: add acknowledgements 2022-08-24 23:26:46 +08:00
Cell 3dbb46a6ec 🎨 Style: change the default icon of social link "Stack Overflow" 2022-08-14 23:28:37 +08:00
Cell 5dbb3e290e 🌐 Docs(i18n): update de in i18n
https://github.com/dillonzq/LoveIt/pull/405
2022-08-14 23:22:40 +08:00
Cell 504b4916d9 Merge branch 'master' into v0.2.16-RC 2022-08-14 23:06:19 +08:00
Cell 1fcb1e6504 Merge branch 'pr/xueweiwujxw/176' 2022-08-14 23:04:02 +08:00
Cell 4e81224052 docs(contributor): contrib-readme-action has updated readme 2022-08-14 23:00:59 +08:00
xueweiwujxw 33395f3e15 📃 Docs: add site: wlanxww's blog 2022-08-14 23:00:17 +08:00
Cell 2007fe5297 🐛 Fix(post-footer): guard post-info-license
https://github.com/dillonzq/LoveIt/pull/544
2022-08-14 22:38:01 +08:00
xueweiwujxw 7ba6611825 📃 Docs: add site: wlanxww's blog 2022-08-14 22:32:27 +08:00
Cell b575d23fe0 🌐 Docs(i18n): update pt-br in i18n
https://github.com/dillonzq/LoveIt/pull/637
2022-08-14 22:26:40 +08:00
Cell 87156110a6 🐛 Fix: author display error in post and markdown file 2022-08-14 14:45:13 +08:00
Cell 806572a817 🔍 Feat(seo): update robots.txt 2022-08-13 16:25:35 +08:00
Cell 07dcccae16 ✏️ Docs: add official website link 2022-08-13 15:57:03 +08:00
Cell 83a1f075ab Style: fontawesome use version 6 format 2022-08-13 15:36:32 +08:00
Cell 993cd26413 ✏️ Docs: update commit message format 2022-08-12 15:51:28 +08:00
Cell 84db100d99 🎨 Style: change the default icon of social link "知乎" 2022-08-07 17:19:56 +08:00
Cell 0054c28934 🔧 Chore: simplify scripts 2022-08-07 15:55:10 +08:00
Cell 267a21675d Feat: add custom aside template in post page (#172) 2022-08-06 14:11:19 +08:00
Cell a4cae812a8 Chore(deps-dev): remove minimist 2022-08-06 13:34:48 +08:00
Cell 08c995a295 🎨 Style: format source code 2022-08-06 13:02:39 +08:00
Cell 243706ebfb 🐛 Fix: add function doc2unix to unify new lines symbol between Windows and Unix/Mac OS 2022-08-05 23:57:36 +08:00
Cell 41a638def9 🔧 Chore: update algolia index only on push to path 'docs' 2022-08-05 20:19:59 +08:00
Cell dce144e4b6 🔧 Chore: modify babel config and optimize theme.js compilation and loading 2022-08-05 17:20:05 +08:00
Cell 08374c06e8 📝 Docs: update changelog and update version to v0.2.16-RC 2022-08-04 10:40:30 +08:00
Cell 5fd4be7aea 🔖 Chore: release v0.2.15 2022-08-04 10:25:29 +08:00
Cell cf61466629 🔧 Chore: change the giscus origins regex 2022-08-04 10:06:28 +08:00
Cell 65371a19a4 ♻️ Refactor: migrate theme js from src to assets by js.build 2022-08-03 11:10:49 +08:00
dependabot[bot] 7c8344ed08 build(deps-dev): bump @babel/core from 7.17.9 to 7.18.10
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.9 to 7.18.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.10/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 09:56:44 +00:00
dependabot[bot] 195ccf005d build(deps-dev): bump @babel/preset-env from 7.16.11 to 7.18.10
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.11 to 7.18.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.10/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 09:55:14 +00:00
dependabot[bot] 6bb0650597 build(deps-dev): bump core-js from 3.22.0 to 3.24.1
Bumps [core-js](https://github.com/zloirock/core-js) from 3.22.0 to 3.24.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.22.0...v3.24.1)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 09:50:58 +00:00
dependabot[bot] a38599955e build(deps-dev): bump @babel/cli from 7.17.6 to 7.18.10
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.17.6 to 7.18.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.10/packages/babel-cli)

---
updated-dependencies:
- dependency-name: "@babel/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 09:43:44 +00:00
dependabot[bot] c956dd1690 chore(deps-dev): bump babel-preset-minify from 0.5.1 to 0.5.2
Bumps [babel-preset-minify](https://github.com/babel/minify) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/babel/minify/releases)
- [Changelog](https://github.com/babel/minify/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/minify/compare/babel-preset-minify@0.5.1...babel-preset-minify@0.5.2)

---
updated-dependencies:
- dependency-name: babel-preset-minify
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 09:33:29 +00:00
Cell b9368668e4 🚚 Feat: ransfer repository from Lruihao to hugo-fixit 2022-08-02 16:37:33 +08:00
Cell 31b890b04f 🔧 Chore: update docs submodule
git submodule set-url docs https://github.com/hugo-fixit/docs.git
2022-08-02 14:33:45 +08:00
Cell da9e562fcc 🔧 Chore: remove default GitHub config 2022-08-02 10:50:46 +08:00
Cell bcc15163f1 🔧 Feat: change fixit_checker.sh 2022-07-30 18:24:52 +08:00
Cell 2c9dabe3e8 📝 Feat: add repost URL at the end of markdown 2022-07-30 17:11:43 +08:00
Cell 9de773ecb8 📝 Docs: update docs 2022-07-30 14:54:29 +08:00
Cell 3d602750c6 📝 Docs(config): change default configuration 2022-07-29 22:16:37 +08:00
Cell e5f32e91bf 🔧 Chore: add update docs submodule npm script 2022-07-24 17:29:45 +08:00
Cell b731ebfacb ♻️ Refactor: change the post edit url splicing rules 2022-07-24 17:27:58 +08:00
Cell 23f13f092a 🐛 Fix: link-to-edit URL splicing error (#139) 2022-07-24 16:46:53 +08:00
Cell 5cfbc87b0f ♻️ Refactor: migrate service-worker.js to js.build 2022-07-24 16:04:49 +08:00
Cell c380e5fb1a 📝 Docs: update docs 2022-07-24 13:40:04 +08:00
Cell 511eed6ef1 🎨 Style: change the version badge style form flat-square to flat 2022-07-24 12:44:31 +08:00
Cell 3961261011 🚚 Feat: migrate exampleSite to docs submodule 2022-07-24 12:12:28 +08:00
Cell 42f87544cd Feat: add theme core configuration settings file 2022-07-23 17:31:47 +08:00
Cell e8a27da175 📝 Feat: change version shortcode alt 2022-07-23 14:09:14 +08:00
Cell e622dc3cf4 🎨 Style: remove sourceMappingURL of local libraries to avoid source map 404 error (#164) 2022-07-22 00:33:15 +08:00
Cell 3b5b5b2894 Feat: add mobile devtools feature (#163) 2022-07-21 23:17:25 +08:00
Cell 28a46751c7 🍱 Feat: add resource and cdn of eruda and vconsole 2022-07-20 23:47:14 +08:00
Cell 495e8286bc ⚗️ Chore: preprocessing developer options 2022-07-20 20:42:01 +08:00
Cell 83baf0b0e0 Merge branch 'docs' 2022-07-20 14:03:50 +08:00
Cell 7ab30e5905 📝 Docs: split the document and reduce the length of a single post 2022-07-20 14:03:06 +08:00
Cell 982175b8db ✏️ Docs: fix typo 2022-07-20 11:29:55 +08:00
Cell 50e85ae825 ✏️ Docs: change waline.highlighter default value 2022-07-20 11:24:36 +08:00
Abdul Halim Daud 858fbf3eb8 fix waline config imageUploader = false & highlighter = false
imageUploader and highlighter is still enabled even though the config is set to false because waline's default setting for imageUploader & highlighter is enabled.
to disable imageUploader and highlighter, need to explicitly specify imageUploader: false and highlighter: false in the window.config.
2022-07-20 00:22:39 +08:00
Cell 9d72d72d13 📝 Style: docs typesetting 2022-07-19 15:15:46 +08:00
Cell 521097cec5 Perf: normalize parameter naming for developer options 2022-07-19 13:04:45 +08:00
Cell 3f2df1a588 🔧 Chore: change the theme minimum supported Hugo versions above **0.84.0** 2022-07-18 11:52:42 +08:00
Cell 690ffbb931 ✏️ Docs: update translation 2022-07-18 11:30:19 +08:00
Cell 26a257b6a4 📝 Docs: update changelog 2022-07-18 10:52:12 +08:00
Cell 6c7d872e0a contrib-readme-action has updated readme 2022-07-18 10:37:13 +08:00
Abdul Halim Daud 48da281259 fix typo rel noreferrer
There are typos in the rel attribute. It should be [noreferrer](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/noreferrer) instead of [noreffer](https://github.com/Lruihao/FixIt/search?q=noreffer).
2022-07-17 23:31:20 +08:00
Cell ff2170d3cf 📝 Docs: update README 2022-07-17 15:10:14 +08:00
Cell 624585267a Feat: add developer options 2022-07-17 15:03:23 +08:00
Cell c0346d18a7 🚚 Perf: subdivide FixIt initialization 2022-07-17 10:50:07 +08:00
Cell 53c7d5f301 Feat: get latest release version from remote 2022-07-17 01:21:24 +08:00
Cell 3ead60489d Merge branch 'feature/encryption' into v0.2.15-RC 2022-07-16 15:35:47 +08:00
Cell e62e3f1760 Feat: hide content of fixit-encryptor shortcodes from markdown source (#123) 2022-07-16 15:35:23 +08:00
Cell ca0cac5a92 🍱 Docs: add featured image for "Theme Documentation - Content Encryption" 2022-07-10 22:02:45 +08:00
Cell a2293f036c ✏️ Docs: modify the posts date to actual date published on this site 2022-07-10 21:43:01 +08:00
Cell 080bea00dd ✏️ Docs: rename mermaid post 2022-07-10 21:23:05 +08:00
Cell 35d54b22cb Feat: add repost feature (#156) 2022-07-10 18:21:35 +08:00
Cell 38314a5d0f 🎨 Style: add theme colors variables and add common color styles 2022-07-10 16:24:38 +08:00
Cell 46eefcebbc Perf: optimize keywords meta generation code 2022-07-10 15:03:14 +08:00
Cell 01b1d40d6c Feat: add Mermaid config 2022-07-10 14:51:34 +08:00
Cell e47abfde71 📝 Docs: update README 2022-07-10 00:24:55 +08:00
Cell 37dc7068d9 🐛 Style: fix that the width of mermaid image exceeds the post container 2022-07-09 20:11:41 +08:00
Cell 3ae17a26fe 🐛 Fix: JS variable declaration error 2022-07-09 18:11:57 +08:00
Cell 0794b565d2 📝 Docs: update documentation submenu items 2022-07-09 18:05:25 +08:00
Cell 753fa8f65a 📝 Docs: delete unuesd frontmatter 2022-07-09 17:43:11 +08:00
Cell eea2b4f53f ⬆️ Chore(libs): update mermaid from 8.13.3 to 9.1.3 2022-07-09 17:38:58 +08:00
Cell 8836574f21 🎨 Style: modify card link background filter 2022-07-09 12:28:43 +08:00
Cell 5e9bc5308a ✏️ fix typo 2022-07-06 11:26:08 +08:00
Cell c58d839df5 ✏️ Docs: simplified title 2022-07-03 18:26:21 +08:00
Cell 4907bde66f 🔧 Chore: update QQ group configs 2022-07-03 18:21:43 +08:00
Cell d58fcf99e7 ⬆️ Chore(libs): update Valine from 1.4.18 to 1.5.0 2022-07-03 15:46:36 +08:00
Cell f5e852441e ⬆️ Chore(libs): update Waline from 1.5.2 to 2.6.1 2022-07-03 15:36:11 +08:00
Cell 19c4bd4d82 ⬆️ Chore(libs): update Artalk from 2.2.12 to 2.3.4 (#150) 2022-07-02 23:36:34 +08:00
Cell c68e44a012 Docs: update README 2022-07-02 20:51:53 +08:00
Cell 7a654bef02 Merge branch 'feature/encryption' into v0.2.15-RC
# Conflicts:
#	assets/js/theme.min.js
#	assets/js/theme.min.js.map
2022-07-02 13:57:43 +08:00
Cell def5f4ec75 Perf: optimize fixit-encryptor shortcode and add documentations for it (#123) 2022-07-02 13:52:04 +08:00
Cell ef9063febe 🎉 Feat: add shortcode fixit-encryptor shortcode (#123) 2022-07-02 02:26:01 +08:00
Cell c2e515b457 🎉 Feat: add shortcode fixit-encryptor template (#123) 2022-06-13 10:35:20 +08:00
Cell 6cd89fe122 🐛 Fix: unable to show search bar of header at mobile mode (#143) 2022-06-11 16:40:20 +08:00
Cell 793f350db7 🔧 Feat(cdn): add unpkg cdn support 2022-05-30 16:57:27 +08:00
Cell 43294b5731 Revert "🔧 Chore: optimize npm scripts"
and add param --ignoreCache

This reverts commit 12e090f405.
2022-05-30 16:38:16 +08:00
Cell 6178bf1553 Merge branch 'feature/encryption' into v0.2.15-RC 2022-05-28 18:13:41 +08:00
Cell e88b740a06 📝 Docs: add content encryption documentations (#123) 2022-05-28 18:13:26 +08:00
Cell 832629cf84 🔧 Chore: update paginate of home page and change weight of posts 2022-05-28 12:20:11 +08:00
Cell 12e090f405 🔧 Chore: optimize npm scripts 2022-05-28 09:42:49 +08:00
Cell 6bbbc502be 🎨 Style(fixit-decryptor): add loading, lock icons and blur after entering(#123) 2022-05-28 09:41:31 +08:00
Cell eb01a90a7b Test: update test pages 2022-05-28 00:54:55 +08:00
Cell d9548a067d Merge branch 'feature/encryption' (#123) 2022-05-27 23:49:52 +08:00
Cell 77aa10b626 💄 Style(fixit-decryptor): add input and button css style (#123) 2022-05-27 22:56:15 +08:00
Cell 6a8f52e5e2 Feat(fixit-decryptor): add reset event and hook (#123) 2022-05-27 21:19:20 +08:00
Cell af54d781bb 🐛 Fix: remove extra space of class in plugin/link.html and use clamp fucntion for card link width 2022-05-27 17:40:41 +08:00
Cell c855841130 Feat(fixit-decryptor): add encrypt again feature (#123) 2022-05-27 17:33:14 +08:00
Cell 46a4c235b9 Perf(fixit-decryptor): optimize decrypt content logic and add special page encrypt support (#123) 2022-05-27 11:39:20 +08:00
Cell 27bceb444f Feat(fixit-decryptor): add param options.duration (#123)
* @param {Number} [options.duration] number of seconds to cache decryption statistics. unit: s
2022-05-26 17:54:38 +08:00
Cell d756349248 Perf(fixit-decryptor): rename hook name ondecrypted to decrypted (#123) 2022-05-26 16:40:48 +08:00
Cell b03ae3222e 🚧 Feat(fixit-decryptor): auto hide encrypted content from search (#123) 2022-05-26 16:22:49 +08:00
Cell 4fe21af5c3 🚧 Feat(fixit-decryptor): add remember stat feature (#123) 2022-05-26 14:29:19 +08:00
Cell e7b9f7600f 🚧 Feat: hide raw markdown content and hide related buttons for encrypted pages (#123) 2022-05-25 23:50:35 +08:00
Cell db70d55217 🚧 Fix: add Chinese and emoji decrypt support (#123) 2022-05-25 14:34:34 +08:00
Cell dc7f002260 🚧 Feat: hide toc before decrypting in encrypted pages (#123) 2022-05-25 11:08:20 +08:00
Cell 2a30b02644 🚧 Feat: execute some theme function on FixIt decryptor decypted (#123) 2022-05-25 10:02:13 +08:00
Cell 07ba13b4b1 🚧 Feat: add FixIt decryptor plugin (#123) 2022-05-24 16:31:57 +08:00
Cell 7b34985f3a Chore: add crypto-js@4.1.1 dependency (#123) 2022-05-23 20:42:05 +08:00
Cell 692973e9f5 🚧 Feat: add content encryption crude demo (#123) 2022-05-22 13:14:00 +08:00
Cell fcf13346af Perf: use build-in function hugo.IsProduction 2022-05-21 12:31:47 +08:00
Cell 8a90e43eb8 🐛 Fix: close comment system logic error when the article was expired 2022-05-20 23:01:54 +08:00
Cell 0f16e2b72c Perf: optimize path splicing (#139) 2022-05-20 17:02:13 +08:00
Cell 0963931d2e Perf(SEO): optimize DOM 2022-05-20 11:32:17 +08:00
Cell e82a6549a6 Feat: add total word count feature in section and remove from footer (#124) 2022-05-20 11:30:19 +08:00
Cell a7c305583a 🔧 Chore: delete deprecated parameters home.profile.gravatarSite and ibruce.siteTime 2022-05-19 21:37:16 +08:00
Cell 179cdbe18a Feat: add options to make output baidu_urls.txt file (#138) 2022-05-19 20:18:58 +08:00
Cell a91458eb7f 🐛 Fix: busuanzi logic error 2022-05-19 18:01:33 +08:00
Cell e301c2e600 📝 Docs: update README 2022-05-19 17:10:21 +08:00
Cell 8b977d102f Feat: add options to make output baidu_urls.txt file (#138) 2022-05-19 16:54:41 +08:00
Cell 9c7be57f21 ✏️ Style: fix typo 2022-05-19 12:20:37 +08:00
Cell d95541029c 📝 Docs: update config documentations 2022-05-19 10:31:02 +08:00
Cell a067d7bcd0 🔧 Chore: use specific discussion number for friends giscus 2022-05-18 14:03:17 +08:00
Cell bb7763b305 Feat: enhance auto toc feature (#104) 2022-05-17 20:46:49 +08:00
Cell fd1ebab6f0 🐛 Fix: Giscus comments invalid config inputPosition 2022-05-17 11:27:07 +08:00
Cell aa208e20b7 🎨 Style: add scroll bar for auto toc (#136) 2022-05-17 10:58:08 +08:00
Cell 791ff12e70 🔧 Chore: use fontawesome 6 2022-05-16 17:10:20 +08:00
Cell 79587fc756 Revert "chore(deps-dev): bump @babel/core from 7.17.9 to 7.17.10"
This reverts commit 006d6f894f.
2022-05-16 17:00:26 +08:00
Cell fa61e7878b Revert "chore(deps-dev): bump @babel/cli from 7.17.6 to 7.17.10"
This reverts commit 9aad78ae9c.
2022-05-16 17:00:19 +08:00
Cell ae3612bdd1 Revert "chore(deps-dev): bump core-js from 3.22.0 to 3.22.5"
This reverts commit ec487d55ab.
2022-05-16 16:57:12 +08:00
Cell c656087d3a Revert "chore(deps-dev): bump @babel/preset-env from 7.16.11 to 7.17.10"
This reverts commit bc74d149c1.
2022-05-16 16:56:58 +08:00
Cell bb7062aa38 ⬆️ Chore: update katex and lightgallery static files and bump fontawesome from 5.14.0 to 6.1.1 2022-05-16 14:34:27 +08:00
Cell db1903862f 🔖 Chore: update FixIt version to v0.2.14 2022-05-15 23:07:03 +08:00
Cell dd7f2c8a65 Merge commit '063f60ff54d03a410fb87010a35aba86da792d3a' 2022-05-15 23:03:39 +08:00
Cell 063f60ff54 ⬆️ Chore: update some third-party libraries 2022-05-15 22:57:12 +08:00
Cell bc74d149c1 chore(deps-dev): bump @babel/preset-env from 7.16.11 to 7.17.10
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.11 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
dependency-type: direct:development
update-type: version-update:semver-minor
...
2022-05-15 21:54:23 +08:00
dependabot[bot] ec487d55ab chore(deps-dev): bump core-js from 3.22.0 to 3.22.5
Bumps [core-js](https://github.com/zloirock/core-js) from 3.22.0 to 3.22.5.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.22.0...v3.22.5)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-15 13:07:20 +00:00
dependabot[bot] 9aad78ae9c chore(deps-dev): bump @babel/cli from 7.17.6 to 7.17.10
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.17.6 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-cli)

---
updated-dependencies:
- dependency-name: "@babel/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-15 12:53:19 +00:00
dependabot[bot] 006d6f894f chore(deps-dev): bump @babel/core from 7.17.9 to 7.17.10
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.9 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-15 20:52:15 +08:00
Cell 99685067f3 🎨 Style: modify css style of code tag and kbd tag 2022-05-15 20:51:46 +08:00
Cell bc41ae5503 📝 Docs: update shortcodes documentations and add test examples (#102 #105) 2022-05-14 12:56:00 +08:00
Cell 1e20aaedab Perf: use .RenderString instead of markdownify (#105) 2022-05-14 12:54:33 +08:00
Cell 05dd048b0a 🔧 Chore: add author link meta 2022-05-11 17:57:27 +08:00
Cell 272592c89d Test: add test examples (#102) 2022-05-10 11:44:31 +08:00
Cell 314fc909cd 🔧 Chore: inject a theme meta tag in the HTML head on the home page only 2022-05-09 14:51:10 +08:00
Cell adb8d5737e 🔧 Chore: change giscus dark theme and enable PWA 2022-05-09 11:11:20 +08:00
Cell 228f15fd5b 🔧 Chore: add additional configurations giscus.json for exampleSite (#130) 2022-05-09 10:58:56 +08:00
Cell 74afeda510 ✏️ Docs: add documentation for giscus comment system (#130) 2022-05-09 10:36:19 +08:00
Cell 6128f3f3dd Perf: complete giscus comment system (#130) 2022-05-08 23:35:59 +08:00
Cell ca9125f4e1 Feat: add giscus comment system (#130) 2022-05-08 13:18:32 +08:00
Cell fa885576cb contrib-readme-action has updated readme 2022-05-04 13:14:16 +08:00
hiifong 9cc53fe54e :memo:Docs add hiifong's blog demo site 2022-05-04 12:47:40 +08:00
Cell 3d918ae0be 🐛 Fix: disabled total word count feature to avoid scratch concurrency issues (#124) 2022-05-02 12:51:04 +08:00
Cell bde37f4d55 ✏️ Docs: fix pangu typo 2022-04-30 21:08:51 +08:00
Cell 857f689ca3 Perf: hide GitHub Corner in print view 2022-04-30 19:38:17 +08:00
Cell 4cee621fcb 📝 Docs: add snapshots in change log 2022-04-30 14:45:33 +08:00
Cell cac46b0c02 🚚 Chore: migrate partial comment.html to single folder 2022-04-30 14:32:34 +08:00
Cell 08d95cb578 Perf: add GitHub Corners full support (#106) 2022-04-30 14:30:42 +08:00
Cell 910fc5f3b0 Perf: add detail value for title of total word count (#124) 2022-04-29 01:17:06 +08:00
Cell e0dc4415ca Perf: humanize total word count number (#124) 2022-04-29 01:04:18 +08:00
Cell 96d0fcccb4 Feat: add total word count support in footer (#124) 2022-04-29 00:02:38 +08:00
Cell 66847cf6db 🚚 Feat: migrate ~~ibruce.siteTime~~ to footer.siteTime
*The parameter `ibruce.siteTime` is deprecated since v0.2.14, use `footer.siteTime` instead*
2022-04-28 20:25:46 +08:00
Cell cae2f87737 ✏️ Chore: update theme preview link 2022-04-28 11:11:55 +08:00
Cell 781b0b5ab5 📝 Docs: update front matter documentation 2022-04-28 10:17:02 +08:00
Cell c9fea85e99 Perf: add "alt" prop for theme images 2022-04-27 23:39:34 +08:00
Cell a02f3580e9 Feat: add new front matter authorEmail 2022-04-27 23:15:33 +08:00
Cell e0bbd7f7b8 Feat: add local avatar and gravatar support for post author (#125) 2022-04-27 23:13:30 +08:00
Cell 6682ceb4a2 🔧 Chore: modify documents toc auto option 2022-04-26 17:12:12 +08:00
Cell 81c1cc8c04 🔧 Chore: add deprecated parameter detection in cli 2022-04-26 16:56:26 +08:00
Cell 090583e437 Perf: add Gravatar config support 2022-04-26 16:55:17 +08:00
Cell bdc500b14c 🔧 Chore(i18n): add i18n support for console messages 2022-04-25 14:43:14 +08:00
Cell 57f1256811 ✏️ Dcos: update README 2022-04-22 17:42:37 +08:00
Cell 2e87d5f68a Perf: optimize recently-updated partial code 2022-04-22 17:05:23 +08:00
Cell 9dfa6ec837 Feat: add count badge for taxonomy (#122) 2022-04-22 17:01:06 +08:00
Cell ff0f60646e 🔧 Chore(i18n): improve translations for supported languages (#119) 2022-04-21 17:50:25 +08:00
Cell b92ef741bf Feat: add "Edit this page" button support (#103) 2022-04-21 11:06:08 +08:00
Cell 29f8b4fa26 Feat: modify draft menu item rendering logic in mobile header (#99) 2022-04-21 09:53:37 +08:00
Cell 8e43786695 📝 Docs: add draft menu example 2022-04-20 23:23:39 +08:00
Cell 302250b981 Feat: modify draft menu item rendering logic (#99) 2022-04-20 23:09:20 +08:00
Cell d6d303ccf5 Test: add test posts for FixIt feature 2022-04-20 17:59:35 +08:00
Cell 04a34c5788 💄 Style: modify blockquote CSS 2022-04-20 17:44:00 +08:00
Cell 4bb72e8f91 🔧 Chore: update contributors.md 2022-04-19 15:10:40 +08:00
Cell caae8a74a9 💄 Style: add the gap between and icon and text at blending typesetting (#118) 2022-04-19 14:55:41 +08:00
ctj12461 89f0f2c204 💄 Style: add spaces after some icons 2022-04-18 23:40:27 +08:00
Cell ea2b8e03d5 💄 Style: change backgroud color of toc title 2022-04-18 14:53:13 +08:00
Cell 010415e586 💄 Style: remove categories card item margin-top 2022-04-17 13:50:50 +08:00
Cell 9f3014b1c2 🎨 Perf: remove link icon extra space 2022-04-17 12:10:17 +08:00
Cell e7a52e2aef 🐛 Fix: white-space wrap in code element 2022-04-16 13:18:15 +08:00
Cell c3689a50fe Feat: add GitHub Corners support (#106) 2022-04-16 12:51:11 +08:00
dependabot[bot] dfeaefa192 chore(deps-dev): bump core-js from 3.21.1 to 3.22.0
Bumps [core-js](https://github.com/zloirock/core-js) from 3.21.1 to 3.22.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.21.1...v3.22.0)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-15 14:59:27 +00:00
Cell 438d086398 🔧 Chore: update contributing and contributors 2022-04-15 22:53:39 +08:00
Cell 2dcb180698 📝 Docs: modify longitude and latitude of mapbox example to Shenzhen 2022-04-15 20:07:03 +08:00
Cell 1b775f8ac6 🐛 Fix: ibruce and watermark option negative value error (#114) 2022-04-15 11:13:32 +08:00
Cell 1e03ea7711 💄 Style: modify deaktop menu delimiter style detail 2022-04-14 14:54:59 +08:00
Cell 052ee6f336 ✏️ Docs: modify friends page notice 2022-04-13 09:54:34 +08:00
Cell f1f6e376a2 🔧 Chore: enable post ibruce count for example site 2022-04-12 16:04:10 +08:00
Cell 5b5aeabd91 ✏️ Docs: update friends page note 2022-04-12 14:20:38 +08:00
Cell 10e3ba0bbb 📝 Docs: add a FixIt demo site 2022-04-12 14:13:51 +08:00
Cell c113b8195f 📝 Docs: revise README, offline page, friends page documentations, etc. 2022-04-12 14:07:18 +08:00
Cell 9f47e608ef Feat: link shortcode add external-icon option (#96) 2022-04-12 12:43:16 +08:00
Cell 8ad74ede2f 🐛 Fix: don't display external icon when links has icon suffix (#96) 2022-04-12 11:45:24 +08:00
Cell 8115059109 ✏️ Docs: add note for hugo serve (#110) 2022-04-11 23:03:09 +08:00
Cell b85c2e7d7e 🐛 Fix: exclude image links to display external icon (#96) 2022-04-11 21:40:52 +08:00
Cell b7f7d0c6a1 🐛 Fix: invalid front matter comment: true (#108) 2022-04-11 17:59:57 +08:00
Cell 93a6002290 Feat: add download icon for downloadable links (#96) 2022-04-11 15:43:14 +08:00
Cell 754547f113 Feat: add external icon for external links automatically (#96) 2022-04-11 14:37:45 +08:00
Cell b85d6aa5d6 💄 Style: remove categories-card margin-top 2022-04-11 10:42:16 +08:00
Cell fe3d983c46 Style: add some common CSS styles Class (#101) 2022-04-10 17:12:21 +08:00
Cell cc7d3a5d94 📝 Docs: add documentation for the new feature of menu (#31 #99) 2022-04-10 10:55:23 +08:00
Cell 28fe4dd019 🐛 Fix: Add "no more translations" judgment logic (#100) 2022-04-09 23:11:21 +08:00
Cell 22e67a0680 Feat: add user-defined content to menu items via the params field (#99) 2022-04-09 22:16:30 +08:00
Cell 8a634bf562 🐛 Fix: language selector bug in 404 page
💄 Style: modify dropdown-icon style
2022-04-09 19:20:08 +08:00
dependabot[bot] ab7cf6bc59 chore(deps-dev): bump @babel/core from 7.17.5 to 7.17.9
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.5 to 7.17.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.9/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-09 14:15:16 +08:00
Cell cb4d2ab264 ⬆️ Chore(deps-dev): bump minimist from 1.2.5 to 1.2.6 2022-04-09 14:12:29 +08:00
Cell e20fff11b7 🎉 Feat: add nested menu for example site 2022-04-09 13:57:34 +08:00
Cell 44211c0c39 Merge pull request #97 from Lruihao/feature/sub-menu
* 🎉 Feat: modify header dom for supportting sub menu (#31)

* 🎨 Style: debug style for sub menu (#31)

* Feat: adapt select-language with sub-menu

* 🚧 Developing and Debugging for sub menu feature
1. Fix: sub menu link error (#31)
2. Style: debug sub menu style (#31)
3. Feat: adjust language selector logic

* 🎉 Feat: add sub menu (nested menu) support (#31)

* 🎉 Feat: add nested menu support for mobile header (#31)

* 🎨 Style: mobile sub menu style debugging (#31)

* 🐛 Fix: fix sub menu position error in desktop header (#31)

* 🎨 Style: add sub menu min-width equal to menu item (#97)

Co-authored-by: doubleam <admin@biugle.cn>
2022-04-09 12:05:34 +08:00
Cell c86d5da433 Revert: revert logo style (#97) 2022-04-09 12:01:16 +08:00
Cell 87671ce72a 🎨 Style: add sub menu min-width equal to menu item (#97) 2022-04-09 11:18:08 +08:00
Cell 52f4527bf8 🐛 Fix: fix sub menu position error in desktop header (#31) 2022-04-09 00:01:52 +08:00
Cell 0d5f8c486e 🎨 Style: mobile sub menu style debugging (#31)
todo: add params option support by hugo
2022-04-09 00:01:07 +08:00
Cell 5e670973cc 🎉 Feat: add nested menu support for mobile header (#31) 2022-04-07 18:02:22 +08:00
Cell 23f142a4b8 🚧 Feat: developing nested menu for mobile header (#31) 2022-04-07 16:39:53 +08:00
Cell 3745713738 🎉 Feat: add sub menu (nested menu) support (#31)
TODO: compatibly support mobile header
2022-04-07 14:48:03 +08:00
Cell 1ef19d1b87 🚧 Developing and Debugging for sub menu feature
1. Fix: sub menu link error (#31)
2. Style: debug sub menu style (#31)
3. Feat: adjust language selector logic
2022-04-06 17:57:32 +08:00
doubleam eced169713 Feat: adapt select-language with sub-menu 2022-04-06 14:48:30 +08:00
Cell 855368f30d 🎨 Style: debug style for sub menu (#31) 2022-04-03 13:03:52 +08:00
Cell ece8c9ec10 🎉 Feat: modify header dom for supportting sub menu (#31) 2022-04-02 12:22:08 +08:00
Cell 69d42bb808 ✏️ Docs(theme-documentation-basics): modify keepStatic default value to false 2022-03-31 20:19:19 +08:00
Cell 50e244f9e1 🔧 Chore: add notes for function 2022-03-31 14:58:54 +08:00
Cell 680571d31f 🕯️ Mourning(3.21-mu5735): R.I.P 2022-03-28 11:30:37 +08:00
Cell 7c641c9722 🔧 Chore: add parameter --minify to build script 2022-03-28 11:00:53 +08:00
Cell fa54d5e471 ✏️ Docs: fix typo
https://fixit.lruihao.cn/theme-documentation-content/
2022-03-25 10:59:53 +08:00
Cell 2269e309af ✏️ Docs: fix typo 2022-03-23 20:56:36 +08:00
Cell c4b65a4c00 📝 Docs: update changelog 2022-03-20 21:52:21 +08:00
Daniel Bär 626635aaa6 🐛 Fix Highlight URI 2022-03-20 20:01:38 +08:00
Cell 22a615707c Perf: remove third-party library clipboard.js (#84) 2022-03-16 18:55:09 +08:00
Cell 66efd4dd06 🔧 Chore: update issue template 2022-03-15 23:10:01 +08:00
Cell f710921ddb Test: rename shortcode test page 2022-03-15 23:03:51 +08:00
Cell 20636fa7ac ✏️ Docs: update changelog 2022-03-15 14:47:02 +08:00
842 changed files with 32352 additions and 28990 deletions
+3 -2
View File
@@ -1,11 +1,12 @@
{
"comments": false,
"minified": true,
"presets": [
[
"@babel/preset-env",
{
"targets": "> 0.25%, not dead"
}
],
"minify"
]
]
}
+5
View File
@@ -0,0 +1,5 @@
custom: [
"https://paypal.me/Lruihao",
"https://lruihao.cn/images/alipay.gif",
"https://lruihao.cn/images/wechatpay.gif"
]
-41
View File
@@ -1,41 +0,0 @@
---
name: Bug Report 错误报告
about: Create a bug report 创建一个错误报告
title: "[BUG] Some problem..."
labels: bug
---
### Describe the bug 描述你遇到的错误
A clear and concise description of what the bug is.
一段简短的对于你遇到的错误的描述.
### Expected behavior 期待的行为
A clear and concise description of what you expected to happen.
一段简短的对于你期待的行为的描述.
### Screenshots 屏幕截图
If applicable, add screenshots to help explain your problem.
如果可以的话, 提供屏幕截图对解决问题很有帮助.
### Build Environment 构建环境
- OS: [e.g. Windows 10, macOS, Ubuntu]
- Theme version/commit [e.g. 0.2.0, 2ccba79]
- Hugo version [e.g. 0.69.0]
Please try to use Hugo **extended** version before opening the issue.
请在创建 issue 之前尝试使用 Hugo **extended** 版本.
### Preview Environment 预览环境
- OS: [e.g. Windows 10, macOS, Ubuntu, iOS, Android]
- Browser [e.g. Chrome, Safari, Firefox]
### Additional Information 补充信息
Configuration files or front matter code...
配置文件或者前置参数的代码...
+51
View File
@@ -0,0 +1,51 @@
name: "Bug Report 错误报告"
description: "Create a bug report 创建一个错误报告"
title: "[BUG] Some problem ..."
labels: ["bug"]
body:
- type: textarea
id: describe
attributes:
label: Describe the bug 描述你遇到的错误
description: |
A clear and concise description of what the bug is.
一段简短的对于你遇到的错误的描述。
- type: textarea
id: expected
attributes:
label: Expected behavior 期待的行为
description: |
A clear and concise description of what you expected to happen.
一段简短的对于你期待的行为的描述。
- type: textarea
id: screenshots
attributes:
label: Screenshots 屏幕截图
description: |
If applicable, add screenshots to help explain your problem.
如果可以的话,提供屏幕截图对解决问题很有帮助。
- type: textarea
id: environment
attributes:
label: Build Environment 构建环境
description: |
Please try to use Hugo **extended** version before opening the issue.
请在创建 issue 之前尝试使用 Hugo **extended** 版本。
placeholder: |
- OS: [e.g. Windows 10, macOS, Ubuntu]
- Theme version/commit [e.g. 0.2.0, 2ccba79]
- Hugo version [e.g. 0.69.0]
- type: textarea
id: preview
attributes:
label: Preview Environment 预览环境
placeholder: |
- OS: [e.g. Windows 10, macOS, Ubuntu, iOS, Android]
- Browser [e.g. Chrome, Safari, Firefox]
- type: textarea
id: additional
attributes:
label: Additional Information 补充信息
description: |
Configuration files or front matter code ...
配置文件或者前置参数的代码 ...
+9 -1
View File
@@ -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. 请先仔细阅读主题文档
-22
View File
@@ -1,22 +0,0 @@
---
name: Feature request 功能请求
about: Suggest an idea for this project 为这个项目提供一个建议
title: "[FEATURE] Some feature"
labels: enhancement
---
### Describe the feature you want 描述你的功能需求
- Feature 1 功能需求 1
I want this feature to solve ...
我希望这个功能解决 ...
- Feature 2 功能需求 2
I want this feature to solve ...
我希望这个功能解决 ...
- ...
### Useful reference 有价值的参考
If available, provide useful links to fulfill the feature.
如果可以的话, 提供实现这个功能的相关参考链接.
@@ -0,0 +1,22 @@
name: "Feature request 功能请求"
description: "Suggest an idea for this project 为这个项目提供一个建议"
title: "[FEATURE] Some feature"
labels: ["enhancement"]
body:
- type: textarea
id: describe
attributes:
label: Describe the feature you want 描述你的功能需求
description: |
Please submit new issues for different features.
请针对不同的功能建议提交新的 issue。
placeholder: |
I recommend adding this feature ...
我希望添加这样的一个功能 ...
- type: textarea
id: reference
attributes:
label: Useful reference 有价值的参考
description: |
If available, provide useful links to fulfill the feature.
如果可以的话,提供实现这个功能的相关参考链接。
+27
View File
@@ -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
+5
View File
@@ -0,0 +1,5 @@
name: "CodeQL config"
paths-ignore:
- assets/lib/**
- docs/**
+22
View File
@@ -10,3 +10,25 @@ updates:
schedule:
interval: "monthly"
open-pull-requests-limit: 1000
assignees:
- "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"
+5 -3
View File
@@ -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
+14
View File
@@ -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
+2 -2
View File
@@ -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
+11 -7
View File
@@ -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
+27
View File
@@ -0,0 +1,27 @@
name: Generate Contribute List
on:
push:
branches:
- master
workflow_dispatch:
jobs:
contrib-readme-job:
runs-on: ubuntu-latest
name: A job to automate contribute list in contributors.md file
steps:
- name: First Contribution Check
id: first-check
uses: sukki37/first-contribution-check-action@v1.0.0
env:
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
- name: Contribute List
uses: akhilmhdh/contributors-readme-action@master
if: ${{ steps.first-check.outputs.isNewContributor == 'true' }}
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
View File
@@ -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
+3
View File
@@ -0,0 +1,3 @@
[submodule "docs"]
path = docs
url = https://github.com/hugo-fixit/docs.git
+243 -42
View File
@@ -1,76 +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.
> Snapshot: <https://fixit-p1tg6tsml-lruihao.vercel.app>
- :recycle: Refactor: header layout
- :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/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/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/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: 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/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]
- :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))
> Improve and add some new features.
> Snapshot: <https://fixit-bbh5g5x90-lruihao.vercel.app>
- :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:** [`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.
> 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:** [`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:** [`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)
+32 -16
View File
@@ -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
```
@@ -19,16 +20,23 @@ And now you are ready to go!
Here are some useful commands.
```
npm run babel #build theme.js with babel
npm run build #build theme.js and then build the static site
npm run start #build theme.js and then run a local debugging server
npm run start:production #build theme.js and then run a local debugging server in production environment
npm run serve #run a local debugging server without building a new theme.js
npm run serve:production #run a local debugging server in production environment without building a new theme.js
```bash
# build theme.js with babel
npm run babel
# build theme.js and then build the static site
npm run build
# run a local debugging server with watch
npm run server
# run a local debugging server with watch in production environment
npm run server:production
# 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
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
@@ -37,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
@@ -51,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`
@@ -63,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 |
+1 -1
View File
@@ -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
+99 -79
View File
@@ -1,45 +1,41 @@
# FixIt Theme | Hugo
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/Lruihao/FixIt?style=flat-square)](https://github.com/Lruihao/FixIt/releases)
[![GitHub commits since tagged version](https://img.shields.io/github/commits-since/Lruihao/FixIt/v0.2.10?style=flat-square)](https://github.com/Lruihao/FixIt/compare/v0.2.10...master)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.62.0-ff4088?style=flat-square&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/Lruihao/FixIt?style=flat-square)](https://github.com/Lruihao/FixIt/blob/master/LICENSE)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/hugo-fixit/FixIt?style=flat)](https://github.com/hugo-fixit/FixIt/releases)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.84.0-ff4088?style=flat&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/hugo-fixit/FixIt?style=flat)](/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.
![Hugo Theme FixIt](https://fixit.lruihao.cn/images/Apple-Devices-Preview.jpg)
![Hugo Theme FixIt](https://github.com/Lruihao/FixIt/raw/master/images/Apple-Devices-Preview.png)
## [Getting started](https://fixit.lruihao.cn/categories/documentation/)
## Getting started
Head to this [documentation page](https://fixit.lruihao.cn/theme-documentation-basics/) for a complete guidence to get started with the FixIt theme.
### [Demo Site](https://fixit.lruihao.cn)
To see this theme in action, here is a live [demo site](https://fixit.lruihao.cn) which is rendered with **FixIt** theme.
### [Documentation](https://fixit.lruihao.cn/categories/documentation/)
Build Documentation Locally:
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 from LoveIt
## 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:
@@ -48,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
@@ -65,40 +55,26 @@ Now the migration is finished and everything is ready 🎉
## Why choose FixIt
* Custom **Header**
* 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](https://fixit.lruihao.cn/friends/) which are rendered with **FixIt** theme.
| 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
@@ -108,7 +84,7 @@ the FixIt theme may be more suitable for you.
* 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)
@@ -126,7 +102,7 @@ the FixIt theme may be more suitable for you.
* **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)
@@ -138,14 +114,19 @@ the FixIt theme may be more suitable for you.
* **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**
@@ -160,11 +141,8 @@ the FixIt theme may be more suitable for you.
* **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
@@ -173,6 +151,7 @@ FixIt supports the following languages:
* English
* Simplified Chinese
* Traditional Chinese
* French
* Polish
* Brazilian Portuguese
@@ -183,40 +162,50 @@ FixIt supports the following languages:
* Russian
* Romanian
* Vietnamese
* Traditional Chinese
* [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 [issue tracker](https://github.com/Lruihao/FixIt/issues).
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.
## License
## Contributing
FixIt is licensed under the **MIT** license. Check the [LICENSE file](https://github.com/Lruihao/FixIt/blob/master/LICENSE) for details.
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for getting started with the contribution.
Thanks to the authors of following resources included in the theme:
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)
## Acknowledgements
<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)
* [clipboard.js](https://github.com/zenorocha/clipboard.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)
@@ -225,11 +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! ❤️
+102 -79
View File
@@ -1,44 +1,43 @@
# FixIt 主题 | Hugo
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/Lruihao/FixIt?style=flat-square)](https://github.com/Lruihao/FixIt/releases)
[![GitHub commits since tagged version](https://img.shields.io/github/commits-since/Lruihao/FixIt/v0.2.10?style=flat-square)](https://github.com/Lruihao/FixIt/compare/v0.2.10...master)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.62.0-ff4088?style=flat-square&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/Lruihao/FixIt?style=flat-square)](https://github.com/Lruihao/FixIt/blob/master/LICENSE)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/hugo-fixit/FixIt?style=flat)](https://github.com/hugo-fixit/FixIt/releases)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.84.0-ff4088?style=flat&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/hugo-fixit/FixIt?style=flat)](/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) 来了解更多。
![Hugo Theme FixIt](https://github.com/Lruihao/FixIt/raw/master/images/Apple-Devices-Preview.png)
![Hugo Theme FixIt](https://fixit.lruihao.cn/images/Apple-Devices-Preview.jpg)
## [立即开始](https://fixit.lruihao.cn/zh-cn/categories/documentation/)
## 立即开始
前往这篇 [文档](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/),阅读关于安装与使用的详细指南。
### 主题 [预览](https://fixit.lruihao.cn/zh-cn/)
为了直观地浏览主题特性,这里有一个基于 **FixIt** 主题渲染的 [预览网站](https://fixit.lruihao.cn/zh-cn/)。
或者,在本地构建 [文档](https://fixit.lruihao.cn/zh-cn/)
> Gitee 镜像仓库:<https://gitee.com/lruihao/FixIt>
### [文档](https://fixit.lruihao.cn/zh-cn/categories/documentation/)
在本地构建文档:
```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 迁移
## 安装或迁移
如果你现在正在使用 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
```
之后,你可以在站点目录通过这条命令来将主题更新至最新版本:
@@ -47,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
@@ -64,40 +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** 主题渲染的 [预览网站](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) |
## 特性
@@ -107,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) 自动转换图片为**懒加载**
@@ -125,7 +104,7 @@ sh fixit_checker.sh
* 支持 **[Gravatar](https://gravatar.com)** 头像
* 支持本地**头像**
* 支持多达 **73** 种社交链接
* 支持多达 **87** 种社交链接
* 支持多达 **28** 种网站分享
* 支持 **[Disqus](https://disqus.com)** 评论系统
* 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统
@@ -137,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 语法
@@ -159,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
* 支持**友情链接**的页面模板
* ...
## 多语言和国际化
@@ -172,6 +153,7 @@ FixIt 支持下列语言:
* 英语
* 简体中文
* 繁体中文
* 法语
* 波兰语
* 巴西葡萄牙语
@@ -182,40 +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
## 问题、想法、bugs 和 PRs
所有的反馈都是欢迎的!详见 [issue tracker](https://github.com/Lruihao/FixIt/issues)。
所有的反馈都是欢迎的!详见 [议题](https://github.com/hugo-fixit/FixIt/issues) 或者 [讨论](https://github.com/hugo-fixit/FixIt/discussions)。
## 许可协议
## 参与贡献
FixIt 根据 **MIT** 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/Lruihao/FixIt/blob/master/LICENSE)
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解贡献该项目的基本信息
FixIt 主题中用到了以下项目,感谢它们的作者:
确保在贡献和参与讨论时遵守 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。
**贡献时,请先通过此存储库上的问题讨论您希望进行的更改,然后再进行实际更改**
## [所有贡献者](contributors.md)
## 致谢
<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)
* [clipboard.js](https://github.com/zenorocha/clipboard.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)
@@ -224,11 +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)
谢谢!❤️
+2 -2
View File
@@ -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. Warn: Website failure, stop maintenance and improper content may be cancelled!
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 >}}
+6 -1
View File
@@ -5,6 +5,7 @@ date: {{ .Date }}
draft: true
author: ""
authorLink: ""
authorEmail: ""
description: ""
keywords: ""
license: ""
@@ -34,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-->
+6 -1
View File
@@ -5,6 +5,7 @@ date: {{ .Date }}
draft: true
author: ""
authorLink: ""
authorEmail: ""
description: ""
keywords: ""
license: ""
@@ -34,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 -13
View File
@@ -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,26 +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/fixed-button';
@import '../_partial/cookieconsent';
@import '../_partials/mask';
@import '../_partials/img';
@import '../_partials/icon';
@import '../_partials/details';
@import '../_partials/widgets';
+66
View File
@@ -0,0 +1,66 @@
// ==============================
// Common Styles
// 常用样式
// ==============================
.text-truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.text-start {
text-align: left !important;
}
.text-end {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
.d-none {
display: none !important;
}
.d-none-desktop {
display: none;
}
.d-none-mobile {
display: block;
}
.ms-1,
.mx-1 {
margin-left: 0.25rem !important;
}
.me-1,
.mx-1 {
margin-right: 0.25rem !important;
}
.ps-1,
.px-1 {
padding-left: 0.25rem !important;
}
.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,12 +6,14 @@ footer {
padding: 1rem 0;
.footer-container {
display: flex;
flex-direction: column;
font-size: 0.875rem;
.footer-line {
width: 100%;
.footer-divider::before {
.footer-divider:not(:first-child)::before {
content: '|';
margin-left: 0.25rem;
margin-right: 0.25rem;
@@ -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;
}
@@ -34,7 +34,8 @@ header {
.logo {
min-height: 1.5em;
height: 1.5em;
vertical-align: text-bottom;
vertical-align: middle;
width: auto;
}
.header-title-text {
@@ -48,20 +49,43 @@ header {
}
}
.menu .menu-item {
position: relative;
}
.menu {
margin: 0;
padding: 0;
.language-select {
position: absolute;
opacity: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
.menu-item {
list-style: none;
&:hover {
cursor: pointer;
& .dropdown-icon {
margin-left: 0.25rem;
font-size: .875em;
color: $global-font-color;
[data-theme='dark'] & {
color: $global-font-color-dark;
}
&.open::before {
content: "\f078";
}
}
&.active {
>.menu-link,
>.nested-item>.menu-link {
font-weight: bold;
color: $menu-active-color;
[data-theme='dark'] & {
color: $menu-active-color-dark;
}
}
}
&.language,
&.theme-switch {
cursor: pointer;
}
}
}
@@ -72,17 +96,13 @@ header {
color: transparent;
box-sizing: border-box;
height: 2.5rem;
width: 2.5rem;
width: 1.25rem;
@include border-radius(0.5rem);
border: none;
outline: none;
background-color: $header-background-color;
background-color: transparent;
vertical-align: baseline !important;
@include transition(width 0.3s ease);
[theme='dark'] & {
background-color: $header-background-color-dark;
}
}
@include placeholder(transparent);
@@ -97,6 +117,10 @@ header {
.search-toggle {
left: 0.5rem;
right: auto;
#header-desktop.open & {
left: 1rem;
}
}
.search-loading {
@@ -115,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;
@@ -129,7 +153,7 @@ header {
.search-button {
color: $global-font-secondary-color;
[theme='dark'] & {
[data-theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -144,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 {
@@ -154,60 +185,95 @@ header {
top: 0;
height: $header-height;
line-height: $header-height;
box-sizing: border-box;
[header-desktop='normal'] & {
[data-header-desktop='normal'] & {
position: static;
}
nav {
overflow: hidden;
white-space: nowrap;
}
.header-wrapper {
padding: 0 2rem 0 10vh;
// use css native function to calculate max value
padding: 0 2rem 0 MAX(10vh, $header-height);
height: 100%;
&[data-github-corner='right'] {
padding-right: $header-height;
}
.header-title {
font-size: $header-title-font-size;
height: 100%;
}
.menu {
overflow: hidden;
white-space: nowrap;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
float: right;
.menu-inner {
float: right;
>.menu-item:hover {
& .sub-menu {
display: block;
transform: translateX(-0.5rem);
}
}
.menu-item {
margin: 0 0.5rem;
padding: 0 0.5rem;
&.delimiter {
border-left: 1.5px solid $global-font-color;
width: 0;
margin: 0.125rem 0.25rem;
padding: 0;
border-left: 1px dashed lighten($global-font-secondary-color, 20%);
[theme='dark'] & {
border-left-color: $global-border-color-dark;
[data-theme='dark'] & {
border-left-color: darken($global-font-secondary-color-dark, 20%);
}
}
&.language {
margin-right: 0;
}
&.search {
margin: 0 -0.5rem 0 0;
}
}
a.active {
font-weight: 900;
color: $header-hover-color;
.sub-menu {
z-index: 160;
position: absolute;
margin: 0;
padding: 0.25rem 0;
display: none;
top: calc(#{$header-height} - 0.75rem);
border-radius: $global-border-radius;
border: 1px solid $global-border-color;
background-color: $header-background-color;
@include transition(box-shadow 0.3s ease);
[theme='dark'] & {
color: $header-hover-color-dark;
[data-theme='dark'] & {
background-color: $header-background-color-dark;
border-color: $global-border-color-dark;
}
@include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));
.menu-item {
height: $header-height*0.5;
line-height: $header-height*0.5;
max-width: 15rem;
white-space: nowrap;
text-overflow: ellipsis;
overflow-x: hidden;
}
}
}
}
&.open .header-wrapper .menu .menu-item.search {
margin: 0 0.25rem 0 0.5rem;
input {
width: 24rem;
}
@@ -221,7 +287,7 @@ header {
min-height: $header-height;
line-height: $header-height;
[header-mobile='normal'] & {
[data-header-mobile='normal'] & {
position: static;
}
@@ -252,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;
}
}
@@ -282,11 +348,10 @@ header {
}
.menu {
text-align: center;
background: $header-background-color;
border-top: 2px solid $global-border-color;
display: none;
padding-top: 0.5rem;
padding: 0.5rem 0 0;
@include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));
.search-wrapper {
@@ -307,6 +372,11 @@ header {
}
}
.search-loading,
.search-clear {
right: 0.5rem;
}
.search-button {
top: 0;
}
@@ -318,14 +388,73 @@ header {
.menu-item {
display: block;
position: relative;
line-height: 2.5rem;
padding: 0 1rem;
&:hover {
background-color: lighten($global-font-secondary-color, 24%);
[data-theme='dark'] & {
background-color: darken($global-font-secondary-color-dark, 24%);
}
}
.menu-link {
display: block;
white-space: nowrap;
text-overflow: ellipsis;
overflow-x: hidden;
@include flex(4);
}
& .nested-item {
display: flex;
justify-content: space-between;
align-items: center;
.menu-link {
max-width: 80%;
}
}
&.theme-switch,
&.language {
text-align: center;
}
.language-select {
position: absolute;
opacity: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
}
.sub-menu {
padding-left: 0;
display: none;
&.open {
display: block;
}
.menu-item:hover {
background-color: lighten($global-font-secondary-color, 20%);
[data-theme='dark'] & {
background-color: darken($global-font-secondary-color-dark, 20%);
}
}
}
&.active {
display: block;
}
[theme='dark'] & {
[data-theme='dark'] & {
background: $header-background-color-dark;
border-top-color: $global-border-color-dark;
}
@@ -372,7 +501,7 @@ header {
right: 0 !important;
background-color: $global-background-color;
[theme='dark'] & {
[data-theme='dark'] & {
background-color: $global-background-color-dark;
}
@@ -399,7 +528,7 @@ header {
text-align: right;
color: $global-font-secondary-color;
[theme='dark'] & {
[data-theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -413,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;
}
}
@@ -422,7 +551,7 @@ header {
font-style: normal;
background-color: $selection-color;
[theme='dark'] & {
[data-theme='dark'] & {
background-color: $selection-color-dark;
}
}
@@ -430,7 +559,7 @@ header {
&.cursor {
background: darken($code-background-color, 5%);
[theme='dark'] & {
[data-theme='dark'] & {
background: lighten($code-background-color-dark, 5%);
}
}
@@ -448,7 +577,7 @@ header {
.search-query {
font-weight: bold;
[theme='dark'] & {
[data-theme='dark'] & {
color: #ddd;
}
}
@@ -460,7 +589,7 @@ header {
font-size: 0.8rem;
color: $global-font-secondary-color;
[theme='dark'] {
[data-theme='dark'] {
color: $global-font-secondary-color-dark;
}
+8
View File
@@ -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";
+27 -12
View File
@@ -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%;
}
}
@@ -91,16 +91,21 @@
display: none;
}
#header-mobile {
#header-mobile,
.d-none-desktop {
display: block;
}
.d-none-mobile {
display: none !important;
}
.page {
width: 100% !important;
.content {
[id] {
[header-mobile='normal'] & {
[data-header-mobile='normal'] & {
scroll-margin-top: 0;
}
}
@@ -118,6 +123,10 @@
font-size: 0.618rem;
}
}
.pagination .page-item {
margin: 0 5px;
}
}
@media only print {
@@ -150,11 +159,17 @@
header,
footer .footer-line:not(.powered):not(.copyright),
#toc-auto,
.comment-visitors,
.comment-count,
.code-header>.ellipses,
.code-header>.edit,
.code-header>.copy,
.post-info-share,
.post-info-more section:last-child,
.post-nav,
#fixed-buttons,
#comments {
.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%;
}
}
}
+11
View File
@@ -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%)};
}
}
-9
View File
@@ -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;
+30 -6
View File
@@ -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;
}
}
}
}
+15 -9
View File
@@ -1,21 +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;
}
sup {
color: $global-font-secondary-color;
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
.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
View File
@@ -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;
}
}
}
}
+1 -1
View File
@@ -5,7 +5,7 @@
[id] {
scroll-margin-top: $header-height;
[header-desktop='normal'] & {
[data-header-desktop='normal'] & {
scroll-margin-top: 0;
}
}
+79 -46
View File
@@ -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;
}
@@ -33,6 +44,21 @@
.author {
font-size: 1.05rem;
img.avatar {
width: 1.3rem;
height: 1.3rem;
border-radius: 50%;
vertical-align: text-bottom;
border: 0.25px solid $global-border-color;
box-sizing: border-box;
object-position: center;
@include object-fit(cover);
[data-theme='dark'] & {
border-color: $global-border-color-dark;
}
}
}
}
@@ -45,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 {
@@ -94,7 +129,7 @@
font-weight: bold;
margin: 1.2rem 0;
[theme='dark'] & {
[data-theme='dark'] & {
font-weight: bolder;
}
}
@@ -109,7 +144,7 @@
margin-right: 0.3125rem;
color: $single-link-color;
[theme='dark'] & {
[data-theme='dark'] & {
color: $single-link-color-dark;
}
}
@@ -127,7 +162,7 @@
strong {
font-weight: bold;
[theme='dark'] & {
[data-theme='dark'] & {
color: #ddd;
}
}
@@ -135,16 +170,17 @@
@include link(false, false);
a {
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;
}
@@ -165,7 +201,7 @@
color: $global-font-secondary-color;
}
[theme='dark'] & {
[data-theme='dark'] & {
background: $code-background-color-dark;
rt {
@@ -180,7 +216,7 @@
&::-webkit-scrollbar {
background-color: $table-background-color;
[theme='dark'] & {
[data-theme='dark'] & {
background-color: $table-background-color-dark;
}
}
@@ -193,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;
}
}
@@ -209,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%);
}
}
@@ -217,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%);
}
}
@@ -228,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%);
}
}
@@ -238,6 +274,13 @@
img {
max-width: 100%;
min-height: 1em;
&:not([data-h]) {
height: auto;
}
}
svg {
max-width: 100%;
}
figure {
@@ -256,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 {
@@ -278,7 +320,7 @@
padding-left: 1.5em;
}
[theme='dark'] & {
[data-theme='dark'] & {
color: $blockquote-color-dark;
border-left-color: $global-border-color-dark;
}
@@ -289,7 +331,7 @@
.footnotes {
color: $global-font-secondary-color;
[theme='dark'] & {
[data-theme='dark'] & {
color: $global-font-secondary-color-dark;
}
@@ -298,8 +340,8 @@
}
}
@import '../_partial/_single/code';
@import '../_shortcodes/index';
@import '../_partials/_single/code';
@import '../_shortcodes';
hr {
margin: 1rem 0;
@@ -307,24 +349,24 @@
border-top: 1px dashed $global-border-color;
border-bottom: none;
[theme='dark'] & {
[data-theme='dark'] & {
border-top: 1px dashed $global-border-color-dark;
}
}
kbd {
display: inline-block;
padding: 0.25rem;
padding: 0 0.25rem;
background-color: $global-background-color;
border: 1px solid $global-border-color;
border-bottom-color: $global-border-color;
@include border-radius(3px);
@include border-radius($global-border-radius);
@include box-shadow(inset 0 -1px 0 $global-border-color);
font-size: 0.8rem;
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;
@@ -333,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 {
-27
View File
@@ -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;
}
+69
View File
@@ -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;
}
}
}
@@ -1,6 +1,5 @@
.categories-card {
margin: 0 auto;
margin-top: 3rem;
display: flex;
align-items: flex-start;
justify-content: space-between;
@@ -14,11 +13,14 @@
width: 45%;
display: flex;
align-items: flex-start;
margin-top: 2rem;
min-height: 10rem;
padding: 0 2%;
position: relative;
&:nth-child(n+3){
margin-top: 2rem;
}
.card-item-wrapper {
width: 100%;
overflow: hidden;
@@ -58,7 +60,7 @@
background-color: transparent;
}
[theme='dark'] & {
[data-theme='dark'] & {
color: $global-link-color-dark;
&:hover {
@@ -73,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;
}
}
+12
View File
@@ -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;
+373
View File
@@ -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;
+17
View File
@@ -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.4rem;
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;
}
}
}
@@ -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;
}
@@ -37,9 +41,15 @@
.post-info-md {
font-size: 0.8rem;
width: 8rem;
width: fit-content;
@include link(false, false);
>span:not(:first-child)::before {
content: '|';
margin-left: 0.25rem;
margin-right: 0.25rem;
}
}
.post-info-share {
@@ -63,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));
}
}
}
}
@@ -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
*/
& {
+81
View File
@@ -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;
}
@@ -125,9 +138,9 @@
justify-content: space-between;
line-height: 2em;
padding: 0 0.75rem;
background: darken($code-background-color, 6%);
background: darken($code-background-color, 3%);
[theme='dark'] & {
[data-theme='dark'] & {
background: darken($code-background-color-dark, 6%);
}
}
@@ -140,16 +153,16 @@
padding: 0.4rem 1rem 0.4rem 1.8rem;
}
[theme='dark'] & {
[data-theme='dark'] & {
background-color: $code-background-color-dark;
}
}
&.open {
.toc-title {
background: darken($code-background-color, 3%);
background: darken($code-background-color, 6%);
[theme='dark'] & {
[data-theme='dark'] & {
background: darken($code-background-color-dark, 3%);
}
}
+6
View File
@@ -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';
@@ -7,7 +7,7 @@
background-color: #ccc;
}
[theme='dark'] & {
[data-theme='dark'] & {
color: $global-font-color;
&:hover,
@@ -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;
}
@@ -0,0 +1,46 @@
@keyframes octocat-wave {
0%,
100% {
transform: rotate(0);
}
20%,
60% {
transform: rotate(-25deg);
}
40%,
80% {
transform: rotate(10deg);
}
}
.github-corner {
position: fixed;
top: 0;
z-index: 150;
:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
svg {
width: $header-height;
height: $header-height;
border: 0;
color: $github-corner-color;
fill: $github-corner-fill;
[data-theme='dark'] & {
color: $github-corner-color-dark;
fill: $github-corner-fill-dark;
}
}
&.left {
left: 0;
svg {
transform: scale(-1, 1);
}
}
&.right {
right: 0;
}
}
@@ -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};
}
}
+29 -21
View File
@@ -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;
}
}
}
}
+4 -4
View File
@@ -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);
}
+3 -2
View File
@@ -4,6 +4,7 @@
padding: 0;
position: relative;
text-align: center;
color: initial;
&::after,
&::before {
@@ -22,7 +23,7 @@
font-family: 'Font Awesome 5 Free';
font-weight: 900;
[theme='dark'] & {
[data-theme='dark'] & {
border-top-color: $global-border-color-dark;
}
}
@@ -35,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 -1
View File
@@ -1,5 +1,5 @@
iframe.instagram-media {
[theme='dark'] & {
[data-theme='dark'] & {
border: none !important;
}
}
+40 -251
View File
@@ -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;
@@ -63,15 +66,23 @@ $header-background-color-dark: #252627 !default;
$header-title-font-family: $global-font-family !default;
$header-title-font-size: 1.5rem !default;
// Color of the hover header item
$header-hover-color: #161209 !default;
$header-hover-color-dark: #fff !default;
// Color of the active menu item
$menu-active-color: #161209 !default;
$menu-active-color-dark: #fff !default;
// Color of the search background
$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: #bbc2c8 !default;
$blockquote-color-dark: #808992 !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,249 +149,20 @@ $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;
// ========== GitHub Corners ========== //
// Color of the GitHub Corners
$github-corner-color: white !default;
$github-corner-color-dark: black !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 ========== //
// Color of the GitHub Corners background
$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 -10
View File
@@ -2,18 +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 "_custom";
+57 -44
View File
@@ -1,73 +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.11.0 https://github.com/algolia/algoliasearch-client-javascript
algoliasearchJS: algoliasearch@4.11.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.1.4/dist/Artalk.min.css
artalkJS: artalk@2.1.4/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
# clipboard.js@2.0.8 https://github.com/zenorocha/clipboard.js
clipboardJS: clipboard@2.0.8/dist/clipboard.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.2.2/dist/echarts.min.js
echartsMacaronsJS: echarts@5.2.2/theme/macarons.min.js
# 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.1/dist/contrib/auto-render.min.js
katexCopyTexCSS: katex@0.15.1/dist/contrib/copy-tex.min.css
katexCopyTexJS: katex@0.15.1/dist/contrib/copy-tex.min.js
katexCSS: katex@0.15.1/dist/katex.min.css
katexJS: katex@0.15.1/dist/katex.min.js
katexMhchemJS: katex@0.15.1/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@1.10.1 https://docs.mapbox.com/mapbox-gl-js
mapboxGLCSS: mapbox-gl@1.10.1/dist/mapbox-gl.min.css
mapboxGLJS: mapbox-gl@1.10.1/dist/mapbox-gl.min.js
# mermaid@8.5.1 https://github.com/knsv/mermaid
mermaidJS: mermaid@8.5.1/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.4.2/sharer.min.js
sharerJS: sharer.js@0.5.1/sharer.min.js
# twemoji@13.1.0 https://github.com/twitter/twemoji
twemojiJS: twemoji@13.0.0/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.16/dist/Valine.min.js
# waline@1.5.2 https://github.com/walinejs/waline
walineJS: "@waline/client@1.5.2/dist/Waline.min.js"
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'
+86
View File
@@ -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
View File
@@ -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();
});
})();
+223
View File
@@ -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'
];
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+22 -19
View File
@@ -1,29 +1,32 @@
algoliasearch@4.11.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.1.4 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
clipboard.js@2.0.8 https://github.com/zenorocha/clipboard.js
cookieconsent@3.1.1 https://github.com/osano/cookieconsent
echarts@5.2.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.1 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.3.1 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.4.2 https://github.com/ellisonleao/sharer.js
simple-icons@5.21.1 https://github.com/simple-icons/simple-icons
twemoji@13.1.0 https://github.com/twitter/twemoji
typeit@7.0.4 https://github.com/alexmacarthur/typeit
valine@1.4.16 https://github.com/xCss/Valine
waline@1.5.2 https://github.com/walinejs/waline
sharer.js@0.5.1 https://github.com/ellisonleao/sharer.js
simple-icons@7.12.0 https://github.com/simple-icons/simple-icons
twemoji@14.0.2 https://github.com/twitter/twemoji
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
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,4 +1,4 @@
[theme=dark] .aplayer {
[data-theme='dark'] .aplayer {
background: #212121;
&.aplayer-withlist {
+2 -2
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+807
View File
@@ -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;
}));
+136
View File
@@ -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;
}));
+268
View File
@@ -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;
}));
+199
View File
@@ -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;
}));
+2 -2
View File
File diff suppressed because one or more lines are too long
-240
View File
@@ -1,240 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['exports', 'echarts'], factory);
} else if (
typeof exports === 'object' &&
typeof exports.nodeName !== 'string'
) {
// CommonJS
factory(exports, require('echarts/lib/echarts'));
} else {
// Browser globals
factory({}, root.echarts);
}
})(this, function(exports, echarts) {
var log = function(msg) {
if (typeof console !== 'undefined') {
console && console.error && console.error(msg);
}
};
if (!echarts) {
log('ECharts is not Loaded');
return;
}
var colorPalette = [
'#2ec7c9',
'#b6a2de',
'#5ab1ef',
'#ffb980',
'#d87a80',
'#8d98b3',
'#e5cf0d',
'#97b552',
'#95706d',
'#dc69aa',
'#07a2a4',
'#9a7fd1',
'#588dd5',
'#f5994e',
'#c05050',
'#59678c',
'#c9ab00',
'#7eb00a',
'#6f5553',
'#c14089'
];
var theme = {
color: colorPalette,
title: {
textStyle: {
fontWeight: 'normal',
color: '#008acd'
}
},
visualMap: {
itemWidth: 15,
color: ['#5ab1ef', '#e0ffff']
},
toolbox: {
iconStyle: {
normal: {
borderColor: colorPalette[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: true,
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: true,
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: [
[0.2, '#2ec7c9'],
[0.8, '#5ab1ef'],
[1, '#d87a80']
],
width: 10
}
},
axisTick: {
splitNumber: 10,
length: 15,
lineStyle: {
color: 'auto'
}
},
splitLine: {
length: 22,
lineStyle: {
color: 'auto'
}
},
pointer: {
width: 5
}
}
};
echarts.registerTheme('macarons', theme);
});
+273
View File
@@ -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'
+297
View File
@@ -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
File diff suppressed because one or more lines are too long
+9
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -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}()}));
-1
View File
@@ -1 +0,0 @@
.katex,.katex-display{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}

Some files were not shown because too many files have changed in this diff Show More