Compare commits

...

509 Commits

Author SHA1 Message Date
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
Cell 8f3f22577b 💄 Style: modify detail style (#40) 2022-03-14 15:09:24 +08:00
Cell f697da6d08 💄 Style: modify watermark opacity to 1.25% for exmaple site 2022-03-14 12:35:10 +08:00
Cell 93c77a0cbf 🎨 Style: enhance table style (#40) 2022-03-14 12:25:04 +08:00
Cell c07f3a63c2 🚸 Feat: modify post lastmod dateformat in recently updated partial (#83) 2022-03-14 11:17:13 +08:00
Cell dd0fb4c16b 💄 Style: add Chinese style color (#40) 2022-03-12 16:15:52 +08:00
Cell 61bf1a1f2b 📝 Docs: add documentation for print style (#61) 2022-03-12 11:29:08 +08:00
Cell f7fe83fa39 🐛 Style: fix duplicate border radius of admonition title (#40) 2022-03-12 10:58:35 +08:00
Cell 759402b4a9 💄 Style: add global border radius for theme components (#40) 2022-03-12 02:01:08 +08:00
Cell 737ff5af5a 📝 Docs: modify friends template 2022-03-11 22:03:07 +08:00
Cell 13f00582c3 🎨 Style: code style typesetting 2022-03-11 22:02:07 +08:00
Cell c90577b6b4 🚸 Feat: focus code on unlock edit and blur code on lock edit (#76) 2022-03-11 21:23:12 +08:00
Cell 09b4443df8 📝 Docs: add documentation for page style usage (#62) 2022-03-11 21:12:57 +08:00
Cell f84dd1b8a4 🔧 Chore: migrate atomic-algolia into devDependencies 2022-03-11 20:26:33 +08:00
Cell 000e0d2359 💄 Style(media): add narrow option for page style (#80) 2022-03-11 01:03:05 +08:00
Cell 7b41adb0d4 🐛 Fix: remove extra space in class of plugin/link 2022-03-10 00:19:16 +08:00
Cell a6f0fb2eea ✏️ Docs: add code type for shortcode highlight 2022-03-08 23:20:16 +08:00
Cell 0f80352f07 🔧 Chore: optimize theme.js style (#32) 2022-03-08 22:39:08 +08:00
Cell 8e1af2add9 🔧 Chore: adjust npm script 2022-03-08 19:38:56 +08:00
Cell 23e53ca26e 🔧 Chore: remove husky 2022-03-08 19:34:03 +08:00
Cell 8b62b5c0b3 Feat: add center-quote shortcode (#69) 2022-03-07 23:48:34 +08:00
Cell d056c9b16a 💄 Style: refined blockquote style (#40) 2022-03-07 23:34:22 +08:00
Cell 715d1cedbe 🔧 Chore: add shortcode style single folder 2022-03-07 22:46:45 +08:00
Cell 3c45f9914d 🔧 Chore(update-libs): update animate.css 3.7.2 -> 4.1.1 (#74) 2022-03-06 19:25:24 +08:00
Cell 14df985a2d 🔧 Feat: modify code edit button (#76) 2022-03-06 14:24:12 +08:00
Cell 70e5793bb8 Feat: change option params.page.code.editableCode to params.page.code.edit (#76) 2022-03-06 14:03:09 +08:00
Cell 1114136800 Feat: add params.page.code.editableCode option support (#76) 2022-03-06 02:40:06 +08:00
Cell 2b19b5b016 Perf: trigger mask click on resize and scroll (#78 #32) 2022-03-05 19:22:17 +08:00
Cell 9742093e80 🐛 Fix: sticky invalid of mobile header (#75 #32) 2022-03-05 00:07:38 +08:00
Cell 19a932343f 📝 Docs: update theme documentations 2022-03-01 22:35:46 +08:00
Cell aa6d6db424 🐛 Fix: toc empty error 2022-03-01 22:11:39 +08:00
Cell f7844fd0d9 🔧 Chore: add logo fixit.svg to cache 2022-03-01 22:11:09 +08:00
Cell 4b23d8c1b8 Merge branch 'feature/highlight' into v0.2.13-RC 2022-03-01 20:04:13 +08:00
Cell b0825134af Merge master into v0.2.13-RC
# Conflicts:
#	package-lock.json
#	package.json
2022-03-01 20:03:45 +08:00
dependabot[bot] 07a9d6798c chore(deps-dev): bump core-js from 3.20.3 to 3.21.1
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.3 to 3.21.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.20.3...v3.21.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-03-01 19:57:33 +08:00
dependabot[bot] db2dc460dd chore(deps-dev): bump @babel/cli from 7.16.8 to 7.17.6
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.16.8 to 7.17.6.
- [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.6/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-03-01 19:56:45 +08:00
dependabot[bot] b2b6e3b748 chore(deps-dev): bump @babel/core from 7.16.12 to 7.17.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.12 to 7.17.5.
- [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.5/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-03-01 19:53:26 +08:00
Cell 8d24ccf0b9 🎨 Style: add github dark dimmed highlight style for gist and inline code (#43) 2022-03-01 19:49:37 +08:00
Cell ae23c42e7d 🎨 Style: perfect highlight style details (#43)
TODO:
1. gist highlight style
2. inline code style of github dark dimmed
2022-03-01 14:21:57 +08:00
Cell fd65f4fbd9 🎨 Style: add github dark dimmed highlight style (#43) 2022-03-01 12:13:01 +08:00
Cell 7ae8fa7104 🎨 Style: add github highlight style (#43) 2022-02-28 21:52:26 +08:00
Cell 8cae970b03 Perf: enhance highlight feature and fix some css bugs (#43) 2022-02-27 23:26:28 +08:00
Cell 0ebfc94c8f 🔧 Chore: remove husky and adjust npm script 2022-02-27 13:56:02 +08:00
Cell 4e783b2826 🔧 Chore: add atomic-algolia for exampleSite (#70) 2022-02-26 16:30:26 +08:00
Cell a5bf1daca9 🎨 Style: add placeholder for visitor count and commnet count 2022-02-26 15:19:44 +08:00
Cell dddf63daca 🐛 Fix: remove source map of local libraries to avoid 404 error (#67) 2022-02-26 12:19:24 +08:00
Cell 5fa479c73a 🎨 Style: fix typo 2022-02-25 21:26:24 +08:00
Cell 64204fd11e Feat: add markdown support for 'title' parameter of the admonition shortcode 2022-02-25 21:10:45 +08:00
Cell 4c4398ed5e Feat: add details shortcode (#68) 2022-02-25 20:54:07 +08:00
Cell 626b83a16b Feat: add archive count display (#33) 2022-02-25 15:10:04 +08:00
Cell f059fe9c9b Feat: add recently updated section (#50) 2022-02-25 14:17:28 +08:00
Cell 35a45e4b6d 🔍 Feat: add descriptive label to home link 2022-02-25 12:15:41 +08:00
Cell 5436358f3a 💄 Style: delete system variable $MAX_LENGTH 2022-02-25 11:46:50 +08:00
Cell 2bff39f9f9 Feat: add lightgallery support for twikoo content (#64) 2022-02-24 23:41:06 +08:00
Cell 34f2490792 Feat: add visitor count and comment count support 2022-02-23 14:00:45 +08:00
Cell 8a69d995d3 Feat: add 360 and sougou seo support 2022-02-22 22:14:31 +08:00
Cell 1044abd60a Feat: add article expiration reminder support (#51) 2022-02-22 21:49:06 +08:00
Cell 874b45f5a5 📝 Docs: update changelog version in exampleSite documentation 2022-02-21 12:29:08 +08:00
Cell 5db8fa5266 ✏️ Docs: update CHANGLOG 2022-02-21 11:10:34 +08:00
ctj12461 c8580018cb Feat: add Gravatar mirror site support 2022-02-21 11:09:08 +08:00
Cell 8447e6442b ✏️ update README 2022-02-20 17:10:31 +08:00
Cell b4d3a56809 ✏️ Docs: update changelog 2022-02-20 16:44:41 +08:00
Cell aae810b8ed 🐛 Fix: toc margin bottom calculate error 2022-02-20 16:33:50 +08:00
Cell 4eee19340b - 🎉 Feat: add Waline comment support (#36)
- 🎉 Feat: add Twikoo comment support (#64)
2022-02-20 16:01:55 +08:00
Cell e7e007308d 🔧 Chore: CDN of cell-watermark library supported 2022-02-20 13:20:10 +08:00
Cell 87664f8b64 🔧 Chore: update Watermark 1.0.3 2022-02-19 21:39:05 +08:00
Cell ae28aab4c1 🚚 Feat: migrate fixit.svg to images/ 2022-02-19 14:15:17 +08:00
Cell 0323e22d83 💄 Style: add radius of the scrollbar 2022-02-19 13:56:40 +08:00
Cell 7859589e4f Feat: add 9 newly supported social links (#17) 2022-02-19 13:50:27 +08:00
Cell 5d423c308b 🔧 Chore: set pageStyle to normal (#62) 2022-02-18 17:13:46 +08:00
Cell 8c36ed0554 Merge branch 'feature/refactor-layout' into v0.2.13-RC 2022-02-18 17:10:42 +08:00
Cell 24a2b10ba7 Feat: add calculate toc margin logic (#65) 2022-02-18 15:56:09 +08:00
Cell 0bf30a50d9 ♻️ Refactor: main layout and add toc.position option support (#65) 2022-02-18 12:53:26 +08:00
Cell 14168640f0 Feat: modify toc logic (#65) 2022-02-17 22:43:02 +08:00
Cell 8bcd9af913 💄 Style: adjust toc style (#65) 2022-02-17 18:01:22 +08:00
Cell d879da79d4 Feat: adjust header position value to 'sticky' (#65) 2022-02-17 17:25:17 +08:00
Cell 5e67406d8c 🐛 Fix: watermark params error cause of case insensitive for .Site.Params 2022-02-17 16:11:38 +08:00
Cell a5a05a6a95 📝 Docs: add documentation for customJS option 2022-02-17 14:36:33 +08:00
Cell 5932f1e2f2 💄 Style: adjust logo color 2022-02-17 14:15:05 +08:00
Cell e369458f09 Draft:
 Feat: add pageStyle option (#62)
TODO: refactor toc logic (#65)

> Tip: This commit needs to be improved and to be tested. Please don't update to it!
2022-02-17 12:20:12 +08:00
Cell 231cfc31cf 🔧 Chore: replace theme logo icon 2022-02-16 10:15:26 +08:00
Cell 5f6b08d383 ✏️ Style: fix css typo 2022-02-15 19:59:40 +08:00
Cell 5bf9fe89b0 Style: add media style for print view (#61) 2022-02-15 17:28:26 +08:00
Cell e7b65c47fa Perf: remove inline script (#32) 2022-02-13 15:53:37 +08:00
Cell 94a37b191b 🐛 Fix: "lightGallery is not defined" error of Artalk (#59) 2022-02-12 14:51:15 +08:00
Cell 6913be694a 📝 Docs: add lightgallery option for artalk (#59) 2022-02-09 14:51:51 +08:00
Cell c4a4faf506 ✏️ Style: fix typos 2022-02-09 14:38:30 +08:00
Cell 755061746e 🔒 Fix: potentially unsafe external link in footer 2022-02-07 17:39:48 +08:00
Cell d38f3b65c6 Feat: add lightgallery support for artalk content (#59) 2022-02-07 16:52:36 +08:00
Cell 381f26a16d 🔥 Feat: remove shortcode cardlink 2022-02-07 15:28:35 +08:00
Cell a47c006849 ✏️ Style: fix typo discription should be: description (#60) 2022-02-04 00:58:46 +08:00
Cell 12fbab8a29 🔧 Chore: fix typo 2022-02-02 02:27:20 +08:00
Cell db1c275564 🔧 Chore: add build workflows 2022-01-31 11:14:01 +08:00
Cell cd7155c077 🔒 Fix: potentially unsafe external link in post footer 2022-01-31 10:52:39 +08:00
Cell c64ebb4005 🐛 Fix: Artalk comment pageKey & pageTitle not effective (#54) 2022-01-31 10:37:42 +08:00
Cell c676b0dac0 🔧 Merge branch 'feature-artalk' into v0.2.13-RC (#54) 2022-01-30 22:49:03 +08:00
Cell 7d62af6ad2 Perf: optimize Artalk config (#54) 2022-01-30 22:41:26 +08:00
Cell 862d3130fe 🎉 Feat: add Artalk comment support (#54) 2022-01-30 21:59:32 +08:00
iuvhub 01f4009881 add Artalk comment system 2022-01-30 19:47:46 +08:00
Cell 88f0990b68 Feat: update watermark 1.0.3-RC (fontFamily support) 2022-01-30 19:33:07 +08:00
Cell 1228a0aaf4 📝 Docs: improve documentation for v0.2.12 2022-01-28 22:21:07 +08:00
dependabot[bot] 4a2b7102ac chore(deps): bump cached-path-relative from 1.0.2 to 1.1.0
Bumps [cached-path-relative](https://github.com/ashaffer/cached-path-relative) from 1.0.2 to 1.1.0.
- [Release notes](https://github.com/ashaffer/cached-path-relative/releases)
- [Commits](https://github.com/ashaffer/cached-path-relative/commits)

---
updated-dependencies:
- dependency-name: cached-path-relative
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-28 22:18:57 +08:00
Cell ce47a18c00 ✏️ Docs: publish pwa support post 2022-01-27 18:39:32 +08:00
Cell ceb2ea8420 🔧 Chore: add CI codeql-analysis (#41) 2022-01-27 17:31:55 +08:00
Cell 0680fcdcfb ✏️ Docs: add demo site url 2022-01-27 17:31:55 +08:00
Cell 0e96242730 📄 Docs: create CONTRIBUTING.md 2022-01-26 17:44:00 +08:00
Cell 46568dd85c ✏️ Style: fix typos 2022-01-26 17:38:28 +08:00
Cell 03e8f5f175 📄 Docs: create CODE_OF_CONDUCT.md 2022-01-26 17:32:05 +08:00
Cell 85473b3aa8 🔧 Chore: close comment system 2022-01-26 15:56:10 +08:00
Cell 6bf6fa1080 🔧 Chore: setup exampleSite algolia appid & appkey 2022-01-26 15:15:19 +08:00
Cell 16195e4cc7 🔧 Chore: exquisite logo icon 2022-01-26 12:55:35 +08:00
Cell 41d15586b8 ✏️ Docs: revise content "Theme Documentation - Content" 2022-01-26 12:50:18 +08:00
Cell 4593e81859 💄 Style: modify .categories-card align-items value 2022-01-26 12:23:42 +08:00
Cell 2b4e978a2f 📝 Docs: add documentation "pwa-support" (#37) 2022-01-26 11:33:43 +08:00
Cell bf446b1e6b ✏️ Style: fix typos 2022-01-26 11:31:51 +08:00
dependabot[bot] fbd272ac09 chore(deps-dev): bump @babel/core from 7.16.10 to 7.16.12
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.10 to 7.16.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.16.12/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-01-25 17:00:22 +08:00
dependabot[bot] d4a593acce chore(deps-dev): bump @babel/preset-env from 7.16.10 to 7.16.11
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.10 to 7.16.11.
- [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.16.11/packages/babel-preset-env)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-25 16:58:29 +08:00
Cell ce0d1ef130 🐛 Fix: set mermaid theme as 'default' when initialization (#38) 2022-01-25 16:39:46 +08:00
Cell 05bd918cde 🔧 Chore: update archetypes 2022-01-25 15:44:59 +08:00
Cell 29a09b5e0a ✏️ Docs: revise exampleSite content "Theme Documentation - Built-in Shortcodes" (#37 #38) 2022-01-25 15:38:02 +08:00
Cell 8c7c0e3e44 🔧 Chore: minify exampleSite static images 2022-01-25 14:59:06 +08:00
Cell 3fa5f21e80 🔧 Chore: set default license in exampleSite page 2022-01-25 12:47:10 +08:00
Cell 27163218e5 🔧 Chore: update archetypes 2022-01-25 12:30:39 +08:00
Cell fe9d7882bc ✏️ Style: fix typos 2022-01-25 11:25:46 +08:00
Cell 9fd6907bd1 🔧 Chore: modify schedule.interval to "monthly" 2022-01-25 11:13:48 +08:00
Cell 78696d2ea5 ✏️ Docs(content): revise the content "Theme Documentation - Content" (#37) 2022-01-25 11:08:02 +08:00
Cell f92721085d 🔧 Chore: update archetypes 2022-01-25 11:06:32 +08:00
Cell 12e2768851 📝 Docs(content): update "theme-documentation-basics" (#37) 2022-01-24 17:11:59 +08:00
Cell 47bcdf610c 💄 Style: archive-item-date use fixed width (#47) 2022-01-21 15:31:56 +08:00
Cell 43bc9f376f ✏️ Style: code typesttings 2022-01-21 00:52:11 +08:00
Cell 2d3e5ef0b0 ✏️ Docs: fix typos 2022-01-21 00:37:29 +08:00
Cell 45e19dd3ed 💄 Style: beautify link shortcode card style 2022-01-20 23:28:59 +08:00
Cell c90bcb2631 ✏️ Style: Chinese typesetting for content "basic-markdown-syntax" (#37) 2022-01-20 18:01:49 +08:00
Cell c1daaa505d Merge commit '11f7617cbc853ae460dff6dbafef5e9226b4591c' into develop 2022-01-20 16:24:26 +08:00
dependabot[bot] 11f7617cbc chore(deps-dev): bump @babel/preset-env from 7.16.8 to 7.16.10
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.8 to 7.16.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.16.10/packages/babel-preset-env)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-20 16:22:45 +08:00
dependabot[bot] f9c7b8ee22 chore(deps-dev): bump @babel/core from 7.16.7 to 7.16.10
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.7 to 7.16.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.16.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-01-20 16:17:00 +08:00
Cell d730e0671b 📝 Docs: update REAMDE (#37) 2022-01-20 16:15:45 +08:00
dependabot[bot] f058186530 chore(deps-dev): bump core-js from 3.20.2 to 3.20.3
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.2 to 3.20.3.
- [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.20.2...v3.20.3)

---
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-01-20 16:10:15 +08:00
Cell c28cbb4e86 ✏️ Docs: fix typo 2022-01-19 20:39:06 +08:00
Cell e2143869b7 Perf: clear site run time interva when document hidden 2022-01-19 20:33:55 +08:00
Cell b852c461c2 🔧 Chore: add frontmatter option 2022-01-19 20:06:00 +08:00
Cell ea43c72e47 📝 Docs(zh-cn): update emoji-support 2022-01-19 20:05:05 +08:00
Cell 4e242f1892 ✏️ Docs: update posts archetypes 2022-01-19 18:04:08 +08:00
Cell 12ac525fe2 📝 Docs: remove smooth-scroll in documentations 2022-01-19 15:44:09 +08:00
Cell 5780a7de9f ✏️ Docs: fix typo 2022-01-19 15:14:28 +08:00
Cell 6870dc8878 🚸 Feat: whatever the option 'dateFormat' is, show title with detail datetime 2022-01-19 14:25:26 +08:00
Cell 03b246342d 🔧 Docs(config): add languages.zh-cn.params.watermark conifg 2022-01-19 10:20:35 +08:00
Cell 01a39691b9 🐛 Fix: shortcode link without Icon 2022-01-19 01:08:24 +08:00
Cell 3862822d84 ✏️ Docs: fix markdown typo 2022-01-19 00:48:24 +08:00
Cell ff9b2b558d 🔧 Chore: add option --merge to checker command 2022-01-19 00:12:33 +08:00
Cell af34ed359f 🔧 Chore: watermark source replace of submodule 2022-01-18 23:48:33 +08:00
Cell 67044075d8 📝 Docs: update README.md and about page docs 2022-01-18 21:44:36 +08:00
Cell 3698ebf281 ✏️ Style: fix typos 2022-01-18 21:40:28 +08:00
Cell c92c646dba Docs: backup readme 2022-01-18 18:10:09 +08:00
Cell d9b2d262d6 💄 Style: remove useless style of offline page 2022-01-18 17:30:26 +08:00
Cell c16ecebbb0 Perf: add async and defer to random avatar javascript 2022-01-18 16:43:40 +08:00
Cell 437478b944 🙈 Chore: update .gitignore 2022-01-18 16:22:30 +08:00
Cell 60895d2b27 📄 Docs: update LICENSE 2022-01-18 16:04:23 +08:00
Cell fd411683e1 ✏️ Docs: fix typos 2022-01-18 15:58:01 +08:00
Cell e5e9e51a12 🔧 Chore: add commands fixit_checker.sh 2022-01-18 15:57:08 +08:00
Cell a26e2923ba Feat: add theme embedded archeTypes 2022-01-18 14:26:26 +08:00
Cell 1068f41b38 🐛 Fix(SEO): meta discripton and keywords content empty 2022-01-18 13:06:39 +08:00
Cell 1c817cd090 ✏️ Chore: fix typo 2022-01-18 13:05:05 +08:00
Cell 5dc1cf85f0 ✏️ Docs: update exampleSite friends info 2022-01-18 13:04:27 +08:00
Cell dd4ed78cf6 🔧 Chore: update servic.worker.js 2022-01-17 22:33:28 +08:00
Cell 054b9332c8 📝 Docs: add friend links example (#37) 2022-01-17 21:20:35 +08:00
Cell 7e313005ac Feat: add PWA i18n and add offline embedded tpl 2022-01-17 17:42:39 +08:00
Cell 9cb76d6025 📝 Docs: revised article about FixIt (#37) 2022-01-17 11:37:40 +08:00
Cell 3aa7bb021c 🐛 Fix: toc display error without content header (#21) 2022-01-16 23:11:23 +08:00
Cell 152ea41b7c 🐛 Fix: deformed numeric figure values of site run time 2022-01-16 15:35:39 +08:00
Cell 58e4397fbe 🔥 Chore(i18n): remove some customized translation (#37) 2022-01-16 14:06:53 +08:00
Cell f1fb13c8da 🔥 Docs: remove French documentation (#37) 2022-01-16 14:05:18 +08:00
Cell 7e5047ca07 🐛 Fix: add scroll-margin to all anchors of page content (#39) 2022-01-15 23:26:27 +08:00
Cell a5962caa2e 🔥 Style: remove page image margin 2022-01-14 17:08:34 +08:00
Cell b0413227db Perf: merge cardlink shortcode (deprecated v0.2.13) into link shortcode and add 'download' param (#42) 2022-01-14 16:17:10 +08:00
Cell 1d4e434bfc ✏️ Docs: fix typo 2022-01-13 21:09:55 +08:00
Cell 177487cd91 🐛 Fix: typeit print code error (#19) 2022-01-13 21:01:52 +08:00
Cell 39ec0606eb 🐛 Fix: site.webmanifest 404 2022-01-13 20:23:34 +08:00
Cell 85ec338b3d 💄 Style: modify ibruce icons 2022-01-13 20:10:19 +08:00
Cell e5ab464a60 Feat: add pangu.js support (#20) 2022-01-13 17:49:32 +08:00
Cell 119b5df83a 📝 Docs: update _custom.js notes 2022-01-13 17:38:41 +08:00
Cell e0d2858c6d 🐛 Fix: pre element overflow error (#29) 2022-01-13 15:42:24 +08:00
Cell 9c4f9c0075 🐛 Fix: clipboardJS load error (#29) 2022-01-13 15:20:17 +08:00
Cell ff3346ce2d 🎨 Perf: optimize assets code 2022-01-13 14:43:19 +08:00
Cell f001df4642 🐛 Chore: fix plugin script error while content is empty 2022-01-13 14:39:30 +08:00
Cell df735f6249 🤖 Feat(SEO): optimize SEO keywords meta (#30) 2022-01-13 10:30:03 +08:00
Cell 6a9b2a6a0e 📝 Docs: update exampleSite config 2022-01-12 23:52:37 +08:00
Cell 4a48a1bbc6 🤖 Feat(SEO): optimize SEO meta (#30) 2022-01-12 23:28:48 +08:00
Cell e921ab1420 🎨 Perf: optimize footer code 2022-01-11 15:19:33 +08:00
Cell 2e54fd70fb 🎨 Style: tabsize 4 => 2 2022-01-11 12:39:25 +08:00
Cell 9d57dd3bc3 Merge branch 'master' into develop 2022-01-11 10:12:22 +08:00
dependabot[bot] 263423594b chore(deps-dev): bump @babel/preset-env from 7.16.7 to 7.16.8
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.7 to 7.16.8.
- [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.16.8/packages/babel-preset-env)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-11 10:10:58 +08:00
dependabot[bot] 53408fc5ea chore(deps-dev): bump @babel/cli from 7.16.7 to 7.16.8
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.16.7 to 7.16.8.
- [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.16.8/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-01-11 10:00:10 +08:00
Cell c78666a87b ✏️ Docs: fix typo 2022-01-11 01:36:39 +08:00
Cell 187262aca8 🎨 Style: code format 2022-01-11 01:20:21 +08:00
Cell f804e7dc44 📝 Docs: update exampleSite 2022-01-11 00:46:11 +08:00
Cell 8a5777d3fe ♻️ Refactor: header title DOM and add subtitle option (#26) 2022-01-11 00:45:27 +08:00
Cell 4a4997a19c Feat(ING): add header subtitle option (#26) 2022-01-10 23:17:35 +08:00
Cell c7c5ec47ad 📝 Docs: update CHANGELOG.md 2022-01-10 00:25:24 +08:00
Cell ab078838e4 🎨 Style: fix icon img margin 2022-01-09 23:10:13 +08:00
Cell 1a8d4907ef Feat: add CustomJS option (#24) 2022-01-09 22:42:29 +08:00
Cell ae98fa7bb7 Perf: optimize JS loading (#25) 2022-01-09 21:49:10 +08:00
Cell 51af32dd7d ✏️ Docs: fix typo siteUV => sitePV 2022-01-09 20:40:26 +08:00
Cell b7d79b5127 ✏️ Docs: fix typo 2022-01-09 18:16:56 +08:00
Cell 3bd47c4eb8 🎉 Feat: add "不蒜子" count and site run time (#18) 2022-01-09 18:15:38 +08:00
Cell 3c4c0da5db 🎨 Style: modify global logo icon color 2022-01-09 05:38:49 +08:00
Cell 646d1d569f 🔧 Chore: update version to v0.2.12 2022-01-09 05:03:44 +08:00
Cell bf1e93466c Feat: add public network security config (only in China) (#15) 2022-01-09 04:53:53 +08:00
Cell 96d551ffd3 🎨 Style: add global logo color 2022-01-09 04:46:57 +08:00
Cell 14bdd6149a Merge branch 'develop' 2022-01-08 19:58:16 +08:00
Cell df364a6d84 🔧 Chore: update screenshot images 2022-01-08 19:57:38 +08:00
Cell f9cc4faed4 📝 Docs: update exampleSite 2022-01-08 18:53:54 +08:00
Cell 8cf8c53e2a 🐛 Fix: watermark.enable judge error 2022-01-08 18:38:17 +08:00
Cell f3ad7dbfb1 🔧 Chore: ignore OSX .hugo_build.lock 2022-01-08 18:37:30 +08:00
Cell c03530a115 🐛 Fix: watermark.enable judge error 2022-01-08 18:35:29 +08:00
Cell eb0258f9c8 📝 Docs: update theme.toml 2022-01-08 17:19:07 +08:00
Cell 452f9e5402 📝 Docs: update CHANGELOG.md 2022-01-08 16:53:30 +08:00
Cell dcd190949c 🎉 Feat: add Watermark support (#16) 2022-01-08 16:40:48 +08:00
Cell 80d63f6892 🐛 Fix: toc-auto display error (#21) 2022-01-07 17:43:08 +08:00
Cell f906bf13f0 🎨 Style: tabsize 4 => 2 2022-01-07 17:27:23 +08:00
Cell ba3d68314c Merge branch 'develop' 2022-01-03 13:01:53 +08:00
dependabot[bot] e05b37e7d2 chore(deps-dev): bump core-js from 3.20.1 to 3.20.2
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.1 to 3.20.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.20.1...v3.20.2)

---
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-01-03 13:00:38 +08:00
Cell 845e8a4dd3 📝 Docs: update CHANGELOG.md 2021-12-31 17:31:40 +08:00
Cell baa0461eb2 Merge branch 'develop' 2021-12-31 10:26:04 +08:00
Cell 2d8bc70378 ⬆️ Chore: update requires 2021-12-31 10:23:30 +08:00
dependabot[bot] db0c7faf30 chore(deps-dev): bump @babel/preset-env from 7.16.5 to 7.16.7
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.5 to 7.16.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.16.7/packages/babel-preset-env)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-31 02:02:42 +00:00
dependabot[bot] d594bf475a chore(deps-dev): bump @babel/cli from 7.16.0 to 7.16.7
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.16.0 to 7.16.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.16.7/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>
2021-12-31 10:02:02 +08:00
dependabot[bot] 8fd622d8ed chore(deps-dev): bump @babel/core from 7.16.5 to 7.16.7
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.16.5 to 7.16.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.16.7/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>
2021-12-31 09:59:11 +08:00
Cell 2748fa2a1f Revert: "⬆️ Chore: update requires" 2021-12-31 09:58:35 +08:00
Cell 5f7d516ab4 🎉 Feat: add PWA support 2021-12-30 20:39:39 +08:00
Cell a4805004d2 ⬆️ Chore: update requires 2021-12-29 20:58:55 +08:00
Cell c2a294aa34 Merge branch 'master' into develop
# Conflicts:
#	package-lock.json
2021-12-29 20:42:02 +08:00
dependabot[bot] b7c6f43269 chore(deps-dev): bump @babel/cli from 7.8.4 to 7.16.0
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.8.4 to 7.16.0.
- [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.16.0/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>
2021-12-29 20:34:15 +08:00
dependabot[bot] 886abd5c6e chore(deps-dev): bump browserify from 16.5.0 to 17.0.0
Bumps [browserify](https://github.com/browserify/browserify) from 16.5.0 to 17.0.0.
- [Release notes](https://github.com/browserify/browserify/releases)
- [Changelog](https://github.com/browserify/browserify/blob/master/changelog.markdown)
- [Commits](https://github.com/browserify/browserify/compare/v16.5.0...v17.0.0)

---
updated-dependencies:
- dependency-name: browserify
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 20:32:42 +08:00
dependabot[bot] dc740dce9b chore(deps-dev): bump @babel/core from 7.9.0 to 7.16.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.9.0 to 7.16.5.
- [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.16.5/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>
2021-12-29 20:31:50 +08:00
dependabot[bot] 67a7c461fd chore(deps-dev): bump core-js from 3.6.4 to 3.20.1
Bumps [core-js](https://github.com/zloirock/core-js) from 3.6.4 to 3.20.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.6.4...v3.20.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>
2021-12-29 20:31:07 +08:00
dependabot[bot] b12994f14b chore(deps-dev): bump husky from 4.2.3 to 7.0.4
Bumps [husky](https://github.com/typicode/husky) from 4.2.3 to 7.0.4.
- [Release notes](https://github.com/typicode/husky/releases)
- [Commits](https://github.com/typicode/husky/compare/v4.2.3...v7.0.4)

---
updated-dependencies:
- dependency-name: husky
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 20:29:46 +08:00
dependabot[bot] 6f4cf86c97 chore(deps-dev): bump @babel/preset-env from 7.9.0 to 7.16.5
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.9.0 to 7.16.5.
- [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.16.5/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>
2021-12-29 20:29:01 +08:00
Cell 5b3bd4380c Merge branch 'master' into develop 2021-12-29 20:25:19 +08:00
Cell f9d63f0e4b Update: dependabot.yml 2021-12-29 20:25:01 +08:00
Cell 2d08ef89fc Merge branch 'master' into develop
# Conflicts:
#	package-lock.json
2021-12-29 20:21:31 +08:00
Cell 64edf084d8 🔒 Chore: fix security alerts 2021-12-29 20:17:41 +08:00
Cell e741763f2b Merge pull request #3 from Lruihao/dependabot/npm_and_yarn/path-parse-1.0.7
chore(deps): bump path-parse from 1.0.6 to 1.0.7
2021-12-29 18:02:00 +08:00
Cell d873ff8d4d Merge pull request #4 from Lruihao/dependabot/npm_and_yarn/browserslist-4.19.1
chore(deps): bump browserslist from 4.11.0 to 4.19.1
2021-12-29 18:01:50 +08:00
Cell 26e2f42298 Merge pull request #2 from Lruihao/dependabot/npm_and_yarn/elliptic-6.5.4
chore(deps): bump elliptic from 6.5.2 to 6.5.4
2021-12-29 18:01:40 +08:00
Cell acd7f7117f Merge pull request #5 from Lruihao/dependabot/npm_and_yarn/lodash-4.17.21
chore(deps): bump lodash from 4.17.15 to 4.17.21
2021-12-29 18:01:24 +08:00
Cell 57c99d1d69 Create dependabot.yml 2021-12-29 17:59:47 +08:00
dependabot[bot] 2624753344 chore(deps): bump browserslist from 4.11.0 to 4.19.1
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.11.0 to 4.19.1.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.11.0...4.19.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 09:55:28 +00:00
dependabot[bot] 8985cbbdde chore(deps): bump lodash from 4.17.15 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 09:55:28 +00:00
dependabot[bot] e8e432cadf chore(deps): bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 09:55:27 +00:00
dependabot[bot] ab78efa61d chore(deps): bump elliptic from 6.5.2 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-29 09:55:26 +00:00
Cell 57e08501a5 📝 Docs: update README.md 2021-12-29 16:31:15 +08:00
Cell b346679cc7 🐛 Fix: Check if content is empty beforing passing 2021-12-28 21:30:45 +08:00
Cell b6bc9ceb65 🔧 Chore: add common npm command 2021-12-28 20:58:04 +08:00
Cell 94e22bffd7 🔧 Chore: replace titles and names 2021-12-28 20:56:55 +08:00
Cell 28229c03b8 💄 Style: change scroll-behavior to smooth 2021-12-28 20:38:59 +08:00
Cell e7470a9fa1 💄 Style: page image margin 2021-12-28 20:20:26 +08:00
Cell 9797ee86fa 🔧 Chore: minify image 2021-12-24 12:31:01 +08:00
Cell ebc53f6eea 🐛 Fix(RWD): add scroll-margin to headerlink 2021-12-24 00:30:01 +08:00
Cell 222436664e 📝 Docs: update CHANGELOG.md 2021-12-23 21:28:55 +08:00
Cell 24562f72b9 🔧 Chore: update scaffolding 2021-12-23 21:13:40 +08:00
Cell d1fd26e13f 🐛 Fix: add scroll-margin to headerlink 2021-12-23 21:12:08 +08:00
Cell 36d38599c6 🔥 Feat: remove lib smooth-scroll (#1) 2021-12-23 20:48:48 +08:00
Cell 225c12f6eb 🔧 Chore: add CHANGELOG.md 2021-12-23 20:21:10 +08:00
Cell 0903743080 🔧 Chore(i18n): add projects and years translations 2021-12-22 22:44:48 +08:00
Cell a5ed05a611 🔧 Chore(i18n): change some content in English instead of traditional Chinese 2021-12-21 23:46:06 +08:00
Cell af2f2a5b79 ⬆️ Chore: update all third-party libraries 2021-12-21 00:41:50 +08:00
Cell b5864abfa8 fix: add scroll-margin to headerlink 2021-12-20 21:34:33 +08:00
Cell 4223cd4d71 Merge branch 'develop' 2021-12-19 19:48:44 +08:00
Cell 3e34ae8ab5 ⬆️ Chore: update 0.2.11 2021-12-19 19:48:23 +08:00
Cell d6430874c2 📝 Docs: update README 2021-12-19 19:26:53 +08:00
Cell 9f4e1325ee Feat: LoveIt => FixIt 2021-12-19 19:23:31 +08:00
Cell c8a0208046 🎉 Feat: add friends layout template 2021-12-19 18:50:28 +08:00
Cell a5ecfc11b4 🐛 Fix: .params.author should be $params.author (https://github.com/Lruihao/hugo-blog/issues/1) 2021-12-19 18:39:05 +08:00
Cell 7358bf938d 🐛 Style: fix content h1 style (https://github.com/Lruihao/hugo-blog/issues/8) 2021-12-19 17:59:21 +08:00
Cell a42ba44fa2 🐛 Fix: mobile style (https://github.com/Lruihao/hugo-blog/issues/19) 2021-12-19 17:50:56 +08:00
Cell 62d21f5a90 🔧 Chore(i18n): add translations for Traditional Chinese (https://github.com/Lruihao/hugo-blog/commit/df9eca26af43287748fd8d4654014357a8269b0b) 2021-12-19 17:43:35 +08:00
Cell d01e1f06a9 Feat: add cardlink shoretcode (https://github.com/Lruihao/hugo-blog/commit/df9eca26af43287748fd8d4654014357a8269b0b) 2021-12-19 16:48:16 +08:00
Cell 56e224fe0c Merge branch 'develop' 2021-12-18 16:36:18 +08:00
Cell c20ae66361 Fix: misspelling 2021-12-18 16:36:01 +08:00
Cell ad0a87a1c2 Merge branch 'develop' 2021-12-18 16:31:12 +08:00
Cell 97edb86dde Docs: update README 2021-12-18 16:30:55 +08:00
Cell d052443ca2 Merge branch 'develop' 2021-12-18 16:15:45 +08:00
Cell 7945270509 Feat: LoveIt => FixIt 2021-12-18 16:15:22 +08:00
2632 changed files with 21939 additions and 35558 deletions
+1 -2
View File
@@ -5,7 +5,6 @@
{
"targets": "> 0.25%, not dead"
}
],
"minify"
]
]
}
-17
View File
@@ -1,17 +0,0 @@
version: 2.1
jobs:
build-check:
docker:
- image: cibuilds/hugo:0.62
working_directory: ~/LoveIt
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- run: hugo --source=exampleSite -v --gc
- run: htmlproofer exampleSite/public --check-html --allow-hash-href --empty-alt-ignore --disable-external
workflows:
build-check-exampleSite:
jobs:
- build-check
-1
View File
@@ -1 +0,0 @@
custom: https://paypal.me/dillonzq
-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 ...
配置文件或者前置参数的代码 ...
+10 -2
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://hugoloveit.com/categories/documentation/
about: Please read the documentation carefully. 请先仔细阅读主题文档.
url: https://fixit.lruihao.cn/categories/documentation/
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.
如果可以的话,提供实现这个功能的相关参考链接。
+16
View File
@@ -0,0 +1,16 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "monthly"
open-pull-requests-limit: 1000
assignees:
- "Lruihao"
labels:
- "dependencies"
+45
View File
@@ -0,0 +1,45 @@
name: Update Algolia Search Index
on:
push:
branches:
- master
workflow_dispatch:
jobs:
algolia-atomic:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
extended: true
- name: Build
run: |
npm install
npm run build
- name: Update Algolia Index (en)
env:
ALGOLIA_APP_ID: YKOM6PKLUY
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
ALGOLIA_INDEX_NAME: 'index.en'
ALGOLIA_INDEX_FILE: './docs/public/index.json'
run: |
npm run algolia
- name: Update Algolia Index (zh-cn)
env:
ALGOLIA_APP_ID: YKOM6PKLUY
ALGOLIA_ADMIN_KEY: ${{ secrets.ALGOLIA_ADMIN_KEY }}
ALGOLIA_INDEX_NAME: 'index.zh-cn'
ALGOLIA_INDEX_FILE: './docs/public/zh-cn/index.json'
run: |
npm run algolia
+21
View File
@@ -0,0 +1,21 @@
name: Hugo build check
on:
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
Actions-Hugo-Check:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
with:
submodules: recursive # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: latest
extended: true
- name: Build Hugo static files
run: hugo -v --source=docs --gc --minify
+65
View File
@@ -0,0 +1,65 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '45 0 * * 1'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# 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.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# 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
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
+24
View File
@@ -0,0 +1,24 @@
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
env:
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
+6 -2
View File
@@ -1,9 +1,9 @@
# Hugo default output directory
public/
/exampleSite/resources/
resources/
# NPM
node_modules/
build/
## OS Files
# Windows
@@ -17,3 +17,7 @@ $RECYCLE.BIN/
# 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
+172
View File
@@ -0,0 +1,172 @@
# Changelog
All notable changes to this project will be documented in this file.
<!-- Releases see https://github.com/hugo-fixit/FixIt/releases -->
## v0.2.15
## v0.2.15 [2022.8.4]
> Add content encryption feature(pages, partial), total word count, enhance auto toc, developer options and more.
> Snapshot:
- :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 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]
> 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/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/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/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/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/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/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/hugo-fixit/FixIt/issues/37))
- :wrench: Chore: add commands `fixit_checker.sh`
- :wrench: Chore(i18n): change some translations
- :arrow_up: Chore: update all third-party libraries
- **Full Changelog:** @Lruihao [`v0.2.11...v0.2.12`](https://github.com/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))
- :tada: Feat: add friends layout template
- :wrench: Chore(i18n): add translations for Traditional Chinese ([Lruihao/hugo-blog@`df9eca2`](https://github.com/Lruihao/hugo-blog/commit/b86157d8b84830bda415ab2488580afd843acac2))
- :bug: Fix: mobile style ([Lruihao/hugo-blog#19](https://github.com/Lruihao/hugo-blog/issues/19))
- :bug: Style: fix content h1 style ([Lruihao/hugo-blog#8](https://github.com/Lruihao/hugo-blog/issues/8))
- :bug: Fix: `.params.author` should be `$params.author` ([Lruihao/hugo-blog#1](https://github.com/Lruihao/hugo-blog/issues/1))
- **Full Changelog:** @Lruihao [`v0.2.10...v0.2.11`](https://github.com/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)
+128
View File
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
1024@lruihao.cn.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
+81
View File
@@ -0,0 +1,81 @@
## 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
```
Then, install the dev dependencies.
```
npm install
```
And now you are ready to go!
Here are some useful commands.
```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/hugo-fixit/FixIt/pulls to submit your contribution 🎉
## Git standard for developers
### Branches
| 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_ |
| single feature | _The branch to enhancements or fixes_ |
### Merge events
| event | merge |
| :-- | :-- |
| release | **RC branch => master:** `--rebase` |
| PR | **others:master => master:** `--rebase` |
| single feature| **feature branch => RC branch:** `--merge` |
### Commit message
#### Format
> {emoji} {type}: {subject within 50 words} (#{issue/pull request})
#### Emoji
- https://gitmoji.dev
- [vscode plugin](https://github.com/maixiaojie/git-emoji-zh.git)
- utools plugin `GitEmoji`
#### Message
| 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) |
| :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 |
| :recycle: | Refactor | Refactor: override {feature name} | It is neither a new function nor a code change to fix a bug. Simply rewriting the code of a function does not affect the function result |
| :zap: | Perf | Perf: improve performance {function name}, {improve content} | Optimize code performance |
| :rewind: | Revert | Revert: restore version {commit message of restore version} | Restore the version of one commit |
| :pencil: <br>:pencil2: | Docs | Docs: revise comments/update documents | Adjustment of documents and notes |
| :wrench: | Chore | Chore: update plugin version | Changes in the construction process or auxiliary tools |
+2 -1
View File
@@ -1,7 +1,8 @@
The MIT License (MIT)
Copyright (c) 2018 LIUZHICHAO.COM
Copyright (c) 2019 DILLONZQ.COM
Copyright (c) 2019-2020 DILLONZQ.COM
Copyright (c) 2021-2022 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
+118 -75
View File
@@ -1,60 +1,87 @@
# LoveIt Theme | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
# FixIt Theme | Hugo
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases)
[![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/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](https://app.circleci.com/pipelines/github/dillonzq/LoveIt)
[![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)](https://github.com/hugo-fixit/FixIt/blob/master/LICENSE)
English README | [简体中文说明](https://github.com/dillonzq/LoveIt/blob/master/README.zh-cn.md)
English README | [简体中文说明](https://github.com/hugo-fixit/FixIt/blob/master/README.zh-cn.md)
> **LoveIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
> **FixIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
It is based on the original [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), [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/Fastbyte01/KeepIt).
Since the three themes have a similar look, if you have questions about their differences,
read [Why choose LoveIt](#why-choose-loveit) so that you can choose the one that works best for you.
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.
![Hugo Theme LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
![Hugo Theme FixIt](https://github.com/hugo-fixit/FixIt/raw/master/images/Apple-Devices-Preview.png)
## [Demo Site](https://hugoloveit.com/)
## [Getting started](https://fixit.lruihao.cn/categories/documentation/)
To see this theme in action, here is a live [demo site](https://hugoloveit.com/) which is rendered with **LoveIt** theme.
Head to this [documentation page](https://fixit.lruihao.cn/theme-documentation-basics/) for a complete guidence to get started with the FixIt theme.
## Why choose LoveIt
Or run [Documentation Site](https://fixit.lruihao.cn) locally:
Compared to the original LeaveIt theme and the KeepIt theme, the LoveIt theme has the following modifications.
```bash
git clone --recursive https://github.com/hugo-fixit/FixIt.git FixIt
cd FixIt
hugo server --source=docs
```
* 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
* ...
In addition, there is the [FixIt wiki](https://github.com/hugo-fixit/FixIt/wiki).
In short,
if you prefer the design language and freedom of the LoveIt 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 LoveIt theme may be more suitable for you.
## Migrate and Update
I hope you will LoveIt ❤️!
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.
```bash
git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt
```
Next, go to the `config.toml` and change the default theme to `FixIt`.
```diff
- theme = "LoveIt"
+ theme = "FixIt"
```
Now the migration is finished and everything is ready 🎉
---
And later you can update the submodule in your site directory to the latest commit using this command:
```bash
git submodule update --remote --merge
```
Or this shell command:
```bash
sh themes/FixIt/fixit_checker.sh
```
## Why choose FixIt
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:
* Complete Chinese and English official documentations
* Community support: Theme official website, Discussions and official QQ group
* Continuously and actively update
* Constantly incorporate suggestions and ideas from all sides
* Highly open theme customizable section
In short, if you prefer the design language and freedom of the FixIt theme, and if you like to personalize your own themes as I do, the FixIt theme may be more suitable for you.
## Who used FixIt
To see this theme in action, here are some live demo sites which are rendered with **FixIt** theme.
* [FixIt Theme Official Website](https://fixit.lruihao.cn)
* [FixIt Theme Official Website - Preview](https://pre.fixit.lruihao.cn)
* [Lruihao's note](https://lruihao.cn)
* [hiifong's blog](https://52at.ml)
* Add a your site by [making a PR](https://github.com/hugo-fixit/FixIt/pulls) (e.g. [#111](https://github.com/hugo-fixit/FixIt/pull/111))
## Features
@@ -82,18 +109,26 @@ I hope you will LoveIt ❤️!
* **Gravatar** supported by [Gravatar](https://gravatar.com)
* Local **Avatar** supported
* Up to **64** social links supported
* Up to **73** 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)
* **Valine** comment system supported by [Valine](https://valine.js.org/)
* **Waline** comment system supported by [Waline](https://waline.js.org/)
* **Facebook comments** system supported by [Facebook](https://developers.facebook.com/docs/plugins/comments/)
* **Telegram comments** system supported by [Telegram Comments](https://comments.app/)
* **Commento** comment system supported by [Commento](https://commento.io/)
* **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
* **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/)
* **Twemoji** supported
* Automatically **highlighting** code
@@ -112,24 +147,18 @@ I hope you will LoveIt ❤️!
* **Custom style** shortcode
* **Custom script** shortcode
* **Animated typing** supported by [TypeIt](https://typeitjs.com/)
* **Dynamic scroll** supported by [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
* **Cookie consent banner** supported by [cookieconsent](https://github.com/osano/cookieconsent)
* **Web Watermark** supported by [cell-watermark](https://github.com/Lruihao/watermark)
* **Chinese typesetting** supported by [pangu.js](https://github.com/vinta/pangu.js)
* ...
## [Documentation](https://hugoloveit.com/categories/documentation/)
Build Documentation Locally:
```bash
hugo server --source=exampleSite
```
## Multilingual and i18n
LoveIt supports the following languages:
FixIt supports the following languages:
* English
* Simplified Chinese
* Traditional Chinese
* French
* Polish
* Brazilian Portuguese
@@ -140,27 +169,37 @@ LoveIt supports the following languages:
* Russian
* Romanian
* Vietnamese
* [Contribute with a new language](https://github.com/dillonzq/LoveIt/pulls)
* [Contribute with a new language](https://github.com/hugo-fixit/FixIt/pulls)
[Languages Compatibility](https://hugoloveit.com/theme-documentation-basics/#language-compatibility)
[Languages Compatibility](https://fixit.lruihao.cn/theme-documentation-basics/#language-compatibility)
## [Roadmap](https://github.com/dillonzq/LoveIt/projects/1)
## [Roadmap](https://github.com/hugo-fixit/FixIt/projects/1)
## [Changelog](https://github.com/hugo-fixit/FixIt/blob/master/CHANGELOG.md)
## Questions, ideas, bugs, pull requests
All feedback is welcome! Head over to the [issue tracker](https://github.com/dillonzq/LoveIt/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
LoveIt is licensed under the **MIT** license. Check the [LICENSE file](https://github.com/dillonzq/LoveIt/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>
<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/)
* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
* [autocomplete.js](https://github.com/algolia/autocomplete.js)
* [Lunr.js](https://lunrjs.com/)
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
@@ -168,7 +207,6 @@ Thanks to the authors of following resources included in the theme:
* [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)
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
* [TypeIt](https://typeitjs.com/)
* [KaTeX](https://katex.org/)
@@ -180,17 +218,22 @@ Thanks to the authors of following resources included in the theme:
* [Gitalk](https://github.com/gitalk/gitalk)
* [Valine](https://valine.js.org/)
* [cookieconsent](https://github.com/osano/cookieconsent)
* [cell-watermark](https://github.com/Lruihao/watermark)
* [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)
</details>
## License
FixIt is licensed under the **MIT** license. Check the [LICENSE file](https://github.com/hugo-fixit/FixIt/blob/master/LICENSE) for details.
## Author
[Dillon](https://dillonzq.com)
## Sponsor
If you enjoy the theme, please consider buying me a coffee ☕️.
* [PayPal](https://paypal.me/dillonzq)
* [Alipay](https://github.com/dillonzq/LoveIt/raw/master/images/Alipay.jpg)
* [Wechat](https://github.com/dillonzq/LoveIt/raw/master/images/Wechat.jpg)
Thanks! ❤️
[Lruihao](https://lruihao.cn)
+119 -72
View File
@@ -1,55 +1,86 @@
# LoveIt 主题 | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
# FixIt 主题 | Hugo
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases)
[![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/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](https://app.circleci.com/pipelines/github/dillonzq/LoveIt)
[![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)](https://github.com/hugo-fixit/FixIt/blob/master/LICENSE)
[English README](https://github.com/dillonzq/LoveIt/blob/master/README.md) | 简体中文说明
[English README](https://github.com/hugo-fixit/FixIt/blob/master/README.md) | 简体中文说明
> [LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
> [FixIt](https://github.com/hugo-fixit/FixIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/Fastbyte01/KeepIt)。
它的原型基于 [LoveIt 主题](https://github.com/dillonzq/LoveIt), [LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/Fastbyte01/KeepIt)。
由于三个主题外观的相似性,如果你对于它们的不同之处有疑问,请阅读 [为什么选择 LoveIt](#为什么选择-LoveIt),以便你能选择最适合你的一个
FixIt 主题继承了这些主题的优秀功能,并在此基础上添加了新的功能与优化,请阅读 [为什么选择 FixIt](#为什么选择-FixIt) 来了解更多
![Hugo 主题 LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
![Hugo Theme FixIt](https://github.com/hugo-fixit/FixIt/raw/master/images/Apple-Devices-Preview.png)
## 主题[预览](https://hugoloveit.com/zh-cn/)
## [立即开始](https://fixit.lruihao.cn/zh-cn/categories/documentation/)
为了直观地浏览主题特性,这里有一个基于 **LoveIt** 主题渲染的 [预览网站](https://hugoloveit.com/zh-cn/)
前往这篇 [文档](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/),阅读关于安装与使用的详细指南
## 为什么选择 LoveIt
或者,在本地构建 [文档](https://fixit.lruihao.cn/zh-cn/)
相较于 LeaveIt 主题 和 KeepIt 主题,LoveIt 主题主要有以下修改
```bash
git clone --recursive https://github.com/hugo-fixit/FixIt.git FixIt
cd FixIt
hugo server --source=docs
```
* 自定义**标题栏**
* 自定义**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**
* ...
除此之外,还有[FixIt 主题维基](https://github.com/hugo-fixit/FixIt/wiki)。
所以,如果你更偏好 LoveIt 主题的设计语言和自由度,如果你想便捷地使用扩展的 Font Awesome 图标,如果你想在文章内嵌数学公式、流程图、音乐或是 Bilibili 视频,
那么,LoveIt 主题可能是更适合你。
希望你会 LoveIt ❤️!
## 迁移和升级
如果你现在正在使用 LoveIt 主题(或者一些其他的主题),你可以很容易地迁移至 FixIt。
你可以将这个主题仓库添加为你的网站目录的子模块。
```bash
git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt
```
接着,前往 `config.toml` 并将默认主题更改为 `FixIt`
```diff
- theme = "LoveIt"
+ theme = "FixIt"
```
这样就完成了迁移工作,现在一切准备就绪 🎉
---
之后,你可以在站点目录通过这条命令来将主题更新至最新版本:
```bash
git submodule update --remote --merge
```
或者这条 shell 命令:
```bash
sh themes/FixIt/fixit_checker.sh
```
## 为什么选择 FixIt
FixIt 主题继承了 LoveIt 等主题的优秀功能,并在它们的基础上添加了新的功能与优化,详见 [特性](#特性)。除此之外,FixIt 主题还有以下优点:
* 完善的中英文官方文档
* 社区支持:主题官网、Discussions 和官方 QQ 群
* 持续积极地更新
* 不断收纳各方的建议和想法
* 高度开放主题可自定义部分
总之,如果你更偏好 FixIt 主题的设计语言和自由度,如果你和我一样喜欢个性化自定义主题,那么,FixIt 主题可能是更适合你。
## 谁在用 FixIt
为了直观地浏览主题特性,这里有一些基于 **FixIt** 主题渲染的预览网站。
* [FixIt 主题官网](https://fixit.lruihao.cn/zh-cn/)
* [FixIt 主题官网 - 预览](https://pre.fixit.lruihao.cn/zh-cn/)
* [李瑞豪的博客](https://lruihao.cn)
* [hiifong 的博客](https://52at.ml)
* 你可以通过 [提交 PR](https://github.com/hugo-fixit/FixIt/pulls) 添加你的网站(例如:[#111](https://github.com/hugo-fixit/FixIt/pull/111)
## 特性
@@ -77,18 +108,26 @@
* 支持 **[Gravatar](https://gravatar.com)** 头像
* 支持本地**头像**
* 支持多达 **64** 种社交链接
* 支持多达 **73** 种社交链接
* 支持多达 **28** 种网站分享
* 支持 **[Disqus](https://disqus.com)** 评论系统
* 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统
* 支持 **[Valine](https://valine.js.org/)** 评论系统
* 支持 **[Waline](https://waline.js.org/)** 评论系统
* 支持 **[Facebook](https://developers.facebook.com/docs/plugins/comments/) 评论**系统
* 支持 **[Telegram comments](https://comments.app/) 评论**系统
* 支持 **[Commento](https://commento.io/)** 评论系统
* 支持 **[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/) 的**搜索**
* 支持 **Twemoji**
* 支持**代码高亮**
@@ -107,24 +146,18 @@
* 支持**自定义样式**的 shortcode
* 支持**自定义脚本**的 shortcode
* 支持基于 [TypeIt](https://typeitjs.com/) 的**打字动画** shortcode
* 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的**滚动动画**
* 支持基于 [cookieconsent](https://github.com/osano/cookieconsent) 的 **Cookie 许可横幅**
* 支持基于 [cell-watermark](https://github.com/Lruihao/watermark) 的**网页水印**
* 支持基于 [pangu.js](https://github.com/vinta/pangu.js) 的**中文排版**
* ...
## [文档](https://hugoloveit.com/zh-cn/categories/documentation/)
在本地构建文档:
```bash
hugo server --source=exampleSite
```
## 多语言和国际化
LoveIt 支持下列语言:
FixIt 支持下列语言
* 英语
* 简体中文
* 繁体中文
* 法语
* 波兰语
* 巴西葡萄牙语
@@ -135,27 +168,37 @@ LoveIt 支持下列语言:
* 俄语
* 罗马尼亚语
* 越南语
* [贡献一种新的语言](https://github.com/dillonzq/LoveIt/pulls)
* [贡献一种新的语言](https://github.com/hugo-fixit/FixIt/pulls)
[语言兼容性](https://hugoloveit.com/zh-cn/theme-documentation-basics/#language-compatibility)
[语言兼容性](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/#language-compatibility)
## [路线图](https://github.com/dillonzq/LoveIt/projects/1)
## [路线图](https://github.com/hugo-fixit/FixIt/projects/1)
## 问题、想法、 bugs 和 PRs
## [更新日志](https://github.com/hugo-fixit/FixIt/blob/master/CHANGELOG.md)
所有的反馈都是欢迎的!详见 [issue tracker](https://github.com/dillonzq/LoveIt/issues)。
## 问题、想法、bugs 和 PRs
## 许可协议
所有的反馈都是欢迎的!详见 [议题](https://github.com/hugo-fixit/FixIt/issues) 或者 [讨论](https://github.com/hugo-fixit/FixIt/discussions)。
LoveIt 根据 **MIT** 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。
## 参与贡献
LoveIt 主题中用到了以下项目,感谢它们的作者:
请参阅 [CONTRIBUTING.md](/CONTRIBUTING.md) 以了解贡献该项目的基本信息。
确保在贡献和参与讨论时遵守 [CODE_OF_CONDUCT.md](/CODE_OF_CONDUCT.md)。
**贡献时,请先通过此存储库上的问题讨论您希望进行的更改,然后再进行实际更改**
## [所有贡献者](/contributors.md)
## 致谢
<details>
<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/)
* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
* [autocomplete.js](https://github.com/algolia/autocomplete.js)
* [Lunr.js](https://lunrjs.com/)
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
@@ -163,7 +206,6 @@ LoveIt 主题中用到了以下项目,感谢它们的作者:
* [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)
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
* [TypeIt](https://typeitjs.com/)
* [KaTeX](https://katex.org/)
@@ -175,17 +217,22 @@ LoveIt 主题中用到了以下项目,感谢它们的作者:
* [Gitalk](https://github.com/gitalk/gitalk)
* [Valine](https://valine.js.org/)
* [cookieconsent](https://github.com/osano/cookieconsent)
* [cell-watermark](https://github.com/Lruihao/watermark)
* [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)
</details>
## 许可协议
FixIt 根据 **MIT** 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/hugo-fixit/FixIt/blob/master/LICENSE)。
## 作者
[Dillon](https://dillonzq.com)
## 赞助支持
如果你喜爱这个主题, 请考虑给我买杯咖啡 ☕️.
* [PayPal](https://paypal.me/dillonzq)
* [支付宝](https://github.com/dillonzq/LoveIt/raw/master/images/Alipay.jpg)
* [微信支付](https://github.com/dillonzq/LoveIt/raw/master/images/Wechat.jpg)
谢谢! ❤️
[Lruihao](https://lruihao.cn)
+2 -22
View File
@@ -2,27 +2,7 @@
title: "{{ replace .TranslationBaseName "-" " " | title }}"
subtitle: ""
date: {{ .Date }}
lastmod: {{ .Date }}
draft: true
author: ""
authorLink: ""
description: ""
tags: []
categories: []
hiddenFromHomePage: false
hiddenFromSearch: false
featuredImage: ""
featuredImagePreview: ""
toc:
enable: true
math:
enable: false
lightgallery: false
license: ""
keywords: ""
comment: false
---
<!--more-->
+31
View File
@@ -0,0 +1,31 @@
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
subtitle: ""
type: "friends"
date: {{ .Date }}
description: "{{ .Site.Author.name }}'s friends"
keywords:
- Hugo
- friends tempalate
comment: false
---
<!-- When you set data `friends.yml` in `yourProject/data/` directory, it will be automatically loaded here. -->
---
<!-- You can define additional content below for this page. -->
## Base info
```yaml
- nickname: Lruihao
avatar: https://lruihao.cn/images/avatar.jpg
url: https://lruihao.cn
description: Lruihao's Note
```
## Friendly Reminder
{{< 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. :(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 >}}
+10
View File
@@ -0,0 +1,10 @@
---
type: "offline"
description: "{{ T "offlineTitle" }} - {{ .Site.Title }}"
keywords:
- PWA
- offline
- 离线
---
<!-- You need do nothing for this page. -->
+45
View File
@@ -0,0 +1,45 @@
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
subtitle: ""
date: {{ .Date }}
draft: true
author: ""
authorLink: ""
authorEmail: ""
description: ""
keywords: ""
license: ""
comment: false
weight: 0
tags:
- draft
categories:
- draft
hiddenFromHomePage: false
hiddenFromSearch: false
summary: ""
resources:
- name: featured-image
src: featured-image.jpg
- name: featured-image-preview
src: featured-image-preview.jpg
toc:
enable: true
math:
enable: false
lightgallery: false
seo:
images: []
repost:
enable: true
url: ""
# See details front matter: /theme-documentation-content/#front-matter
---
<!--more-->
+45
View File
@@ -0,0 +1,45 @@
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
subtitle: ""
date: {{ .Date }}
draft: true
author: ""
authorLink: ""
authorEmail: ""
description: ""
keywords: ""
license: ""
comment: false
weight: 0
tags:
- draft
categories:
- draft
hiddenFromHomePage: false
hiddenFromSearch: false
summary: ""
resources:
- name: featured-image
src: featured-image.jpg
- name: featured-image-preview
src: featured-image-preview.jpg
toc:
enable: true
math:
enable: false
lightgallery: false
seo:
images: []
repost:
enable: true
url: ""
# See details front matter: /theme-documentation-content/#front-matter
---
<!--more-->
+48
View File
@@ -0,0 +1,48 @@
// ==============================
// 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 {
margin-left: 0.25rem !important;
}
.me-1 {
margin-right: 0.25rem !important;
}
.ps-1 {
padding-left: 0.25rem !important;
}
.pe-1 {
padding-right: 0.25rem !important;
}
@each $color, $value in $theme-colors {
.text-#{$color} {
color: #{$value} !important;
}
}
+27 -14
View File
@@ -4,17 +4,26 @@ html {
font-display: swap;
font-size: $global-font-size;
line-height: $global-line-height;
width:100%;
width: 100%;
scroll-behavior: smooth;
overflow: overlay;
}
@media screen and (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
}
/* scrollbar, only support webkit */
::-webkit-scrollbar {
width: .5rem;
height: .5rem;
width: 0.5rem;
height: 0.5rem;
}
::-webkit-scrollbar-thumb {
background-color: $scrollbar-color;
@include border-radius($global-border-radius);
&:hover {
background-color: $scrollbar-hover-color;
@@ -24,7 +33,7 @@ html {
::selection {
background-color: $selection-color;
[theme=dark] & {
[theme='dark'] & {
background-color: $selection-color-dark;
}
}
@@ -35,21 +44,25 @@ body {
@include overflow-wrap(break-word);
scrollbar-color: auto;
&[theme=dark] {
&[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 {
@include border-radius($global-border-radius);
}
@include ms;
@include link(true, true);
@import "../_partial/mask";
@import "../_partial/icon";
@import "../_partial/details";
@import "../_partial/fixed-button";
@import "../_partial/cookieconsent";
img {
@include object-fit(contain);
}
@import '../_partial/mask';
@import '../_partial/icon';
@import '../_partial/details';
@import '../_partial/_widgets';
+13 -1
View File
@@ -8,8 +8,20 @@
main {
flex: 1 0 auto;
.container {
aside:first-child {
order: 2;
}
&.container {
display: flex;
align-items: flex-start;
justify-content: center;
padding: 0 1rem;
}
&.container-reverse {
@extend .container;
flex-direction: row-reverse;
}
}
}
+112 -21
View File
@@ -1,12 +1,62 @@
@media only screen and (min-width: 1441px) {
.page {
width: 60%;
[page-style='wide'] & {
width: 64%;
}
[page-style='narrow'] & {
max-width: 800px;
}
}
aside {
width: 20%;
[page-style='wide'] & {
width: 18%;
}
[page-style='narrow'] & {
width: calc(50% - 400px);
}
}
}
@media only screen and (max-width: 1440px) {
.page {
width: 56%;
[page-style='wide'] & {
width: 60%;
}
}
aside {
width: 22%;
[page-style='wide'] & {
width: 20%;
}
}
}
@media only screen and (max-width: 1200px) {
.page {
width: 52%;
[page-style='wide'] & {
width: 56%;
}
}
aside {
width: 24%;
[page-style='wide'] & {
width: 22%;
}
}
#header-desktop .header-wrapper {
@@ -19,8 +69,8 @@
}
@media only screen and (max-width: 960px) {
#toc-auto {
display: none;
aside {
display: none !important;
}
#toc-static {
@@ -28,7 +78,7 @@
}
.page {
width: 80%;
width: 80% !important;
}
#header-desktop .header-wrapper {
@@ -41,23 +91,24 @@
display: none;
}
#header-mobile {
#header-mobile,
.d-none-desktop {
display: block;
}
body.blur {
overflow: hidden;
.d-none-mobile {
display: none !important;
}
.page {
width: 100%;
width: 100% !important;
[header-mobile] & {
padding-top: $header-height;
}
[header-mobile=normal] & {
padding-top: 0;
.content {
[id] {
[header-mobile='normal'] & {
scroll-margin-top: 0;
}
}
}
.categories-card {
@@ -67,14 +118,54 @@
}
}
.copyright {
.copyright-line {
.icp-splitter {
display: none;
}
.icp-br {
display: block;
}
footer {
.footer-container {
font-size: 0.618rem;
}
}
}
@media only print {
@page {
size: A4 portrait;
margin: 1.27cm;
}
.page {
width: 100% !important;
padding-top: 0 !important;
.single-title,
.single-subtitle,
.post-meta {
text-align: center;
}
h1:not(.single-title),
.page-break-before {
page-break-before: always;
}
.page-break-after {
page-break-after: always;
}
}
.print-d-none,
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,
.github-corner {
display: none !important;
}
}
+4 -4
View File
@@ -47,19 +47,19 @@
}
@mixin placeholder($color) {
input::-webkit-input-placeholder{
input::-webkit-input-placeholder {
color: $color;
}
input:-moz-placeholder{
input:-moz-placeholder {
color: $color;
}
input::-moz-placeholder{
input::-moz-placeholder {
color: $color;
}
input:-ms-input-placeholder{
input:-ms-input-placeholder {
color: $color;
}
+2 -2
View File
@@ -1,7 +1,7 @@
@mixin details-transition-open {
@include transition(max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s);
@include transition(max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s);
}
@mixin details-transition-close {
@include transition(max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s);
@include transition(max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s);
}
+4 -4
View File
@@ -1,4 +1,4 @@
@import "_compatibility";
@import "_link";
@import "_blur";
@import "_details";
@import '_compatibility';
@import '_link';
@import '_blur';
@import '_details';
+5 -3
View File
@@ -1,10 +1,12 @@
@mixin link($light, $dark) {
a, a::before, a::after {
a,
a::before,
a::after {
text-decoration: none;
color: if($light, $global-link-color, $single-link-color);
[theme=dark] & {
[theme='dark'] & {
color: if($dark, $global-link-color-dark, $single-link-color-dark);
}
}
@@ -13,7 +15,7 @@
a:hover {
color: if($light, $global-link-hover-color, $single-link-hover-color);
[theme=dark] & {
[theme='dark'] & {
color: if($dark, $global-link-hover-color-dark, $single-link-hover-color-dark);
}
}
+17 -2
View File
@@ -1,13 +1,28 @@
.archive {
.single-title {
padding: 1rem 0 0.5rem;
margin: 0;
font-size: 1.6rem;
font-weight: bold;
line-height: 140%;
text-align: right;
}
.single-subtitle {
margin: 0.4rem 0;
font-size: 1.2rem;
font-weight: normal;
font-style: italic;
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 '../_partial/_archive/terms';
@import '../_partial/_archive/tags';
}
+63
View File
@@ -0,0 +1,63 @@
/**
* @Description: Style of layout named 'friends'.
* @Author: Lruihao <https://lruihao.cn>
* @Updated: 2022/3/11 21:36
*/
.friend-links {
margin-top: 1rem;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
}
@media (max-width: 576px) {
.friend-links {
justify-content: space-around;
}
}
.friend-link {
width: 150px;
height: 200px;
font-size: 1rem;
text-align: center;
background: rgba(255, 255, 255, 0.3);
box-sizing: border-box;
box-shadow: 3px 3px 5px #aaa;
@include border-radius($global-border-radius);
border: none;
transition-duration: 0.3s;
margin-bottom: 1rem;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.friend-link:hover {
background: #fff;
transform: scale(1.03);
box-shadow: 0 0 3px #aaa;
}
.friend-avatar {
object-fit: cover;
object-position: center;
width: 100% !important;
height: 150px !important;
@include border-radius($global-border-radius);
margin: 0;
padding: 0;
}
.friend-nickname {
display: block;
position: relative;
color: #2bbc8a;
font-weight: bold;
max-width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
line-height: 18px;
margin-bottom: 1rem;
}
.friend-nickname:hover {
color: #d480aa;
}
+21 -20
View File
@@ -1,11 +1,11 @@
.home {
.home-profile {
@include transform(translateY( 16vh));
padding: 0 0 .5rem;
@include transform(translateY(16vh));
padding: 0 0 0.5rem;
text-align: center;
.home-avatar {
padding: .5rem;
padding: 0.5rem;
img {
display: inline-block;
@@ -13,12 +13,12 @@
height: auto;
margin: 0 auto;
@include border-radius(100%);
@include box-shadow(0 0 0 .3618em rgba(0, 0, 0, .05));
@include box-shadow(0 0 0 0.3618em rgba(0, 0, 0, 0.05));
@include transition(all 0.4s ease);
&:hover {
position: relative;
@include transform(translateY(-.75rem));
@include transform(translateY(-0.75rem));
}
}
}
@@ -27,18 +27,18 @@
font-size: 1.25rem;
font-weight: bold;
margin: 0;
padding: .5rem;
padding: 0.5rem;
}
.home-subtitle {
font-size: 1rem;
font-weight: normal;
margin: 0;
padding: .5rem;
padding: 0.5rem;
}
.links {
padding: .5rem;
padding: 0.5rem;
font-size: 1.5rem;
a * {
@@ -47,7 +47,7 @@
img {
height: 1.5rem;
padding: 0 .25rem;
padding: 0 0.25rem;
}
}
@@ -56,10 +56,10 @@
line-height: 1.5rem;
font-weight: normal;
margin: 0;
padding: .5rem;
padding: 0.5rem;
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -78,11 +78,11 @@
.summary {
padding-top: 1rem;
padding-bottom: .8rem;
padding-bottom: 0.8rem;
color: $global-font-color;
border-bottom: 1px dashed $global-border-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-color-dark;
border-bottom: 1px dashed $global-border-color-dark;
}
@@ -121,14 +121,14 @@
.content {
@include box(vertical);
-webkit-line-clamp: 3;
margin-top: .3rem;
margin-top: 0.3rem;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
@include overflow-wrap(break-word);
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
@@ -143,7 +143,7 @@
display: inline;
&::after {
content: "\A";
content: '\A';
white-space: pre;
}
}
@@ -154,21 +154,22 @@
@include link(false, true);
b, strong {
b,
strong {
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
}
.post-footer {
margin-top: .4rem;
margin-top: 0.4rem;
display: flex;
justify-content: space-between;
align-items: center;
font-size: .875rem;
font-size: 0.875rem;
@include link(false, false);
+14 -13
View File
@@ -1,22 +1,23 @@
.page {
position: relative;
max-width: 800px;
width: 60%;
margin: 0 auto;
[header-desktop] & {
padding-top: $header-height;
}
.content {
[id] {
scroll-margin-top: $header-height;
[header-desktop=normal] & {
padding-top: 0;
[header-desktop='normal'] & {
scroll-margin-top: 0;
}
}
}
@include blur;
}
@import "_single";
@import "_special";
@import "_archive";
@import "_home";
@import "_404";
@import '_single';
@import '_special';
@import '_archive';
@import '_home';
@import '_404';
@import '_offline';
@import '_friends';
+19
View File
@@ -0,0 +1,19 @@
#content-offline {
@include transform(translateY(30vh));
text-align: center;
.offline-title {
font-size: 3.6rem;
}
.offline-subtitle {
margin: 0.4rem 0;
font-size: 1rem;
font-weight: normal;
font-style: italic;
line-height: 100%;
color: #57606a;
}
.error-text {
font-size: 1.2rem;
}
}
+107 -53
View File
@@ -1,15 +1,24 @@
@import "../_partial/_single/toc";
@import '../_partial/_single/toc';
@import '../_partial/_single/fixit-decryptor';
.single {
.single-title {
margin: 1rem 0 .5rem;
padding: 1rem 0 0.5rem;
margin: 0;
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;
}
}
.single-subtitle {
margin: .4rem 0;
margin: 0.4rem 0;
font-size: 1.2rem;
font-weight: normal;
font-style: italic;
@@ -17,14 +26,14 @@
}
.post-meta {
font-size: .875rem;
font-size: 0.875rem;
color: $global-font-secondary-color;
span {
display: inline-block;
}
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
@@ -32,11 +41,26 @@
.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);
[theme='dark'] & {
border-color: $global-border-color-dark;
}
}
}
}
.featured-image {
margin: .5rem 0 1rem 0;
margin: 0.5rem 0 1rem 0;
img {
display: block;
@@ -52,6 +76,7 @@
}
.content {
> h1,
> h2 {
font-size: 1.5rem;
@@ -92,7 +117,7 @@
font-weight: bold;
margin: 1.2rem 0;
[theme=dark] & {
[theme='dark'] & {
font-weight: bolder;
}
}
@@ -103,28 +128,29 @@
> h5,
> h6 {
> .header-mark::before {
content: "|";
margin-right: .3125rem;
content: '|';
margin-right: 0.3125rem;
color: $single-link-color;
[theme=dark] & {
[theme='dark'] & {
color: $single-link-color-dark;
}
}
}
> h2 > .header-mark::before {
content: "#";
content: '#';
}
p {
margin: .5rem 0;
margin: 0.5rem 0;
}
b, strong {
b,
strong {
font-weight: bold;
[theme=dark] & {
[theme='dark'] & {
color: #ddd;
}
}
@@ -132,19 +158,23 @@
@include link(false, false);
a {
white-space: normal;
@include overflow-wrap(break-word);
[theme=dark] & b, [theme=dark] & strong {
[theme='dark'] & b,
[theme='dark'] & strong {
color: $single-link-color-dark;
}
}
[theme=dark] a:hover b, [theme=dark] a:hover strong {
[theme='dark'] a:hover b,
[theme='dark'] a:hover strong {
color: $single-link-hover-color-dark;
}
ul, ol {
margin: .5rem 0;
ul,
ol {
margin: 0.5rem 0;
padding-left: 2.5rem;
}
@@ -159,7 +189,7 @@
color: $global-font-secondary-color;
}
[theme=dark] & {
[theme='dark'] & {
background: $code-background-color-dark;
rt {
@@ -174,7 +204,7 @@
&::-webkit-scrollbar {
background-color: $table-background-color;
[theme=dark] & {
[theme='dark'] & {
background-color: $table-background-color-dark;
}
}
@@ -182,28 +212,47 @@
> table {
width: 100%;
max-width: 100%;
margin: .625rem 0;
margin: 0.625rem 0;
border-spacing: 0;
background: $table-background-color;
border-collapse: collapse;
[theme=dark] & {
[theme='dark'] & {
background: $table-background-color-dark;
}
thead {
background: $table-thead-color;
[theme=dark] & {
[theme='dark'] & {
background-color: $table-thead-color-dark;
}
}
th, td {
padding: .3rem 1rem;
&:not([class]) tbody {
& tr:nth-child(odd) {
background: darken($table-background-color, 2.25%);
[theme='dark'] & {
background-color: lighten($table-background-color-dark, 2.75%);
}
}
& tr:hover {
background: darken($table-background-color, 4.5%);
[theme='dark'] & {
background-color: lighten($table-background-color-dark, 5.5%);
}
}
}
th,
td {
padding: 0.3rem 1rem;
border: 1px solid darken($table-thead-color, 2%);
[theme=dark] & {
[theme='dark'] & {
border-color: darken($table-thead-color-dark, 2%);
}
}
@@ -214,18 +263,21 @@
max-width: 100%;
min-height: 1em;
}
svg {
max-width: 100%;
}
figure {
margin: .5rem;
margin: 0.5rem;
text-align: center;
.image-caption:not(:empty) {
min-width: 20%;
max-width: 80%;
display: inline-block;
padding: .5rem;
padding: 0.5rem;
margin: 0 auto;
font-size: .875rem;
font-size: 0.875rem;
color: #969696;
}
@@ -243,36 +295,38 @@
blockquote {
display: block;
border-left: .5rem solid $blockquote-color;
background-color: rgba($blockquote-color, .2);
padding: .25rem .75rem;
border-left: 0.25em solid $global-border-color;
color: $blockquote-color;
padding: 0 1em;
margin: 1rem 0;
[theme=dark] & {
border-left-color: $blockquote-color-dark;
background-color: rgba($blockquote-color-dark, .2);
ul,
ol {
padding-left: 1.5em;
}
[theme='dark'] & {
color: $blockquote-color-dark;
border-left-color: $global-border-color-dark;
}
@include link(false, true);
}
.footnotes {
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
p {
margin: .25rem 0;
margin: 0.25rem 0;
}
}
@import "../_partial/_single/code";
@import "../_partial/_single/instagram";
@import "../_partial/_single/admonition";
@import "../_partial/_single/echarts";
@import "../_partial/_single/mapbox";
@import "../_partial/_single/music";
@import "../_partial/_single/bilibili";
@import '../_partial/_single/code';
@import '../_shortcodes/index';
hr {
margin: 1rem 0;
@@ -280,24 +334,24 @@
border-top: 1px dashed $global-border-color;
border-bottom: none;
[theme=dark] & {
[theme='dark'] & {
border-top: 1px dashed $global-border-color-dark;
}
}
kbd {
display: inline-block;
padding: .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: .8rem;
font-size: 0.8rem;
font-family: $code-font-family;
color: $code-color;
[theme=dark] & {
[theme='dark'] & {
background-color: $global-background-color-dark;
border: 1px solid $global-border-color-dark;
border-bottom-color: $global-border-color-dark;
@@ -308,8 +362,8 @@
.typeit {
.code {
padding: .375rem;
font-size: .875rem;
padding: 0.375rem;
font-size: 0.875rem;
font-family: $code-font-family;
font-weight: bold;
word-break: break-all;
@@ -322,8 +376,8 @@
}
}
@import "../_partial/_single/footer";
@import "../_partial/_single/comment";
@import '../_partial/_single/footer';
@import '../_partial/_single/comment';
}
.lg-toolbar .lg-icon::after {
+2 -1
View File
@@ -1,5 +1,6 @@
.special {
.single-title, .single-subtitle {
.single-title,
.single-subtitle {
text-align: right;
}
}
+1 -1
View File
@@ -19,7 +19,7 @@
sup {
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
+12 -9
View File
@@ -1,24 +1,26 @@
.categories-card {
margin: 0 auto;
margin-top: 3rem;
display: flex;
align-items: center;
align-items: flex-start;
justify-content: space-between;
flex-direction: row;
flex-wrap: wrap;
line-height: 1.6rem;
.card-item {
font-size: .875rem;
font-size: 0.875rem;
text-align: left;
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;
@@ -28,7 +30,7 @@
font-weight: bold;
display: inline-block;
margin-top: 1rem;
margin-bottom: .75rem;
margin-bottom: 0.75rem;
}
span {
@@ -44,7 +46,7 @@
justify-content: space-between;
align-items: center;
box-sizing: border-box;
margin: .25rem 0 .25rem 1.5rem;
margin: 0.25rem 0 0.25rem 1.5rem;
}
.archive-item-link {
@@ -58,7 +60,7 @@
background-color: transparent;
}
[theme=dark] & {
[theme='dark'] & {
color: $global-link-color-dark;
&:hover {
@@ -68,11 +70,12 @@
}
.archive-item-date {
width: 4em;
text-align: right;
color: $global-font-secondary-color;
white-space: nowrap;
font-variant-numeric: tabular-nums lining-nums;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
+9 -2
View File
@@ -1,5 +1,7 @@
.details {
.details-summary {
@include border-radius($global-border-radius);
&:hover {
cursor: pointer;
}
@@ -9,7 +11,7 @@
color: $global-font-secondary-color;
@include transition(transform 0.2s ease);
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -21,12 +23,17 @@
}
&.open {
.details-summary {
@include border-radius($global-border-radius $global-border-radius 0 0);
}
i.details-icon {
@include transform(rotate(90deg));
}
.details-content {
max-height: $MAX_LENGTH;
max-height: 100%;
@include border-radius(0 0 $global-border-radius $global-border-radius);
@include details-transition-close;
}
}
+43 -4
View File
@@ -1,21 +1,60 @@
footer {
height: 2rem;
height: auto;
width: 100%;
text-align: center;
line-height: 1.25rem;
padding: 1rem 0;
.footer-container {
font-size: .875rem;
font-size: 0.875rem;
.footer-line {
width: 100%;
.icp-br {
display: none;
.footer-divider:not(:first-child)::before {
content: '|';
margin-left: 0.25rem;
margin-right: 0.25rem;
}
.fixit-icon {
top: 0.25em;
}
.animate-icon {
color: #dc143c;
animation: icon-animate 1.33s ease-in-out infinite;
}
.run-times {
font-variant-numeric: tabular-nums lining-nums;
}
}
}
@include blur;
}
@keyframes icon-animate {
0%,
100% {
transform: scale(1);
}
10%,
30% {
transform: scale(0.9);
}
20%,
40%,
60%,
80% {
transform: scale(1.1);
}
50%,
70% {
transform: scale(1.1);
}
}
+210 -89
View File
@@ -4,26 +4,12 @@ header {
background-color: $header-background-color;
@include transition(box-shadow 0.3s ease);
[theme=dark] & {
[theme='dark'] & {
background-color: $header-background-color-dark;
}
.logo {
min-height: 1.5em;
height: 1.5em;
vertical-align: text-bottom;
}
.logo, .header-title-pre {
padding-right: .25rem;
}
.header-title-post {
padding-left: .25rem;
}
&:hover {
@include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, .1));
@include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));
}
}
@@ -38,28 +24,62 @@ header {
.header-title {
font-family: $header-title-font-family;
font-weight: bold;
margin-right: .5rem;
margin-right: 0.5rem;
min-width: 10%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
@include flex(10);
.logo {
min-height: 1.5em;
height: 1.5em;
vertical-align: middle;
}
.header-title-text {
margin-left: 0.25rem;
margin-right: 0.25rem;
}
.header-subtitle {
margin-left: 0.25rem;
font-size: 0.6em;
}
}
.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;
[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;
[theme='dark'] & {
color: $menu-active-color-dark;
}
}
}
}
}
@@ -70,17 +90,13 @@ header {
color: transparent;
box-sizing: border-box;
height: 2.5rem;
width: 2.5rem;
@include border-radius(.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);
@@ -93,8 +109,12 @@ header {
}
.search-toggle {
left: .5rem;
left: 0.5rem;
right: auto;
#header-desktop.open & {
left: 1rem;
}
}
.search-loading {
@@ -105,14 +125,15 @@ header {
display: none;
}
.open &, &.mobile {
.open &,
&.mobile {
input {
color: $global-font-color;
background-color: $search-background-color;
padding: 0 2rem 0 2rem;
}
[theme=dark] & {
[theme='dark'] & {
input {
color: $global-font-color-dark;
background-color: $search-background-color-dark;
@@ -126,7 +147,7 @@ header {
.search-button {
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -147,63 +168,98 @@ header {
#header-desktop {
display: block;
position: fixed;
position: sticky;
top: 0;
height: $header-height;
line-height: $header-height;
box-sizing: border-box;
[header-desktop=normal] & {
[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%;
&[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;
}
}
.menu-item {
margin: 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;
[theme='dark'] & {
border-left-color: darken($global-font-secondary-color-dark, 20%);
}
}
&.language {
margin-right: 0;
}
&.search {
margin: 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;
[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 .25rem 0 .5rem;
input {
width: 24rem;
}
@@ -212,11 +268,12 @@ header {
#header-mobile {
display: none;
position: fixed;
height: $header-height;
position: sticky;
top: 0;
min-height: $header-height;
line-height: $header-height;
[header-mobile=normal] & {
[header-mobile='normal'] & {
position: static;
}
@@ -247,42 +304,41 @@ header {
@include border-radius(3px);
@include transition(all 0.3s ease-in-out);
[theme=dark] & {
[theme='dark'] & {
background: $global-font-color-dark;
}
}
span:nth-child(1) {
margin-bottom: .5rem;
margin-bottom: 0.5rem;
}
span:nth-child(3) {
margin-top: .5rem;
margin-top: 0.5rem;
}
&.active {
span:nth-child(1) {
@include transform(rotate(45deg) translate(.4rem, .5rem));
@include transform(rotate(45deg) translate(0.4rem, 0.5rem));
}
span:nth-child(2) {
opacity: 0
opacity: 0;
}
span:nth-child(3) {
@include transform(rotate(-45deg) translate(.4rem, -.5rem));
@include transform(rotate(-45deg) translate(0.4rem, -0.5rem));
}
}
}
}
.menu {
text-align: center;
background: $header-background-color;
border-top: 2px solid $global-border-color;
display: none;
padding-top: .5rem;
@include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
padding: 0.5rem 0 0;
@include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));
.search-wrapper {
display: flex;
@@ -296,30 +352,95 @@ header {
.search {
flex-grow: 10;
.algolia-autocomplete, input {
.algolia-autocomplete,
input {
width: 100%;
}
}
.search-loading,
.search-clear {
right: 0.5rem;
}
.search-button {
top: 0;
}
.search-cancel {
display: none;
margin-left: .75rem;
margin-left: 0.75rem;
}
.menu-item {
display: block;
position: relative;
line-height: 2.5rem;
padding: 0 1rem;
&:hover {
background-color: lighten($global-font-secondary-color, 24%);
[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%);
[theme='dark'] & {
background-color: darken($global-font-secondary-color-dark, 20%);
}
}
}
&.active {
display: block;
}
[theme=dark] & {
[theme='dark'] & {
background: $header-background-color-dark;
border-top-color: $global-border-color-dark;
}
@@ -350,7 +471,7 @@ header {
position: fixed;
z-index: 200;
top: $header-height;
@include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
@include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));
&.desktop {
right: 2rem;
@@ -366,7 +487,7 @@ header {
right: 0 !important;
background-color: $global-background-color;
[theme=dark] & {
[theme='dark'] & {
background-color: $global-background-color-dark;
}
@@ -375,7 +496,7 @@ header {
max-height: calc(100vh - #{$header-height});
.suggestion {
padding: .75rem 1rem;
padding: 0.75rem 1rem;
.suggestion-title {
display: inline-block;
@@ -388,12 +509,12 @@ header {
}
.suggestion-date {
font-size: .875rem;
font-size: 0.875rem;
float: right;
text-align: right;
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -407,7 +528,7 @@ header {
@include overflow-wrap(break-word);
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
@@ -416,7 +537,7 @@ header {
font-style: normal;
background-color: $selection-color;
[theme=dark] & {
[theme='dark'] & {
background-color: $selection-color-dark;
}
}
@@ -424,7 +545,7 @@ header {
&.cursor {
background: darken($code-background-color, 5%);
[theme=dark] & {
[theme='dark'] & {
background: lighten($code-background-color-dark, 5%);
}
}
@@ -442,19 +563,19 @@ header {
.search-query {
font-weight: bold;
[theme=dark] & {
[theme='dark'] & {
color: #ddd;
}
}
}
.search-footer {
padding: .5rem 1rem;
padding: 0.5rem 1rem;
float: right;
font-size: .8rem;
font-size: 0.8rem;
color: $global-font-secondary-color;
[theme=dark] {
[theme='dark'] {
color: $global-font-secondary-color-dark;
}
+11 -2
View File
@@ -12,6 +12,15 @@ svg.icon {
img.emoji {
height: 1em;
width: 1em;
margin: 0 .05em 0 .1em;
vertical-align: -.1em;
margin: 0 0.05em 0 0.1em;
vertical-align: -0.1em;
}
.fixit-icon {
display: inline-block;
height: 1.5em;
width: 1.5em;
line-height: 1.5em;
position: relative;
vertical-align: text-bottom;
}
+1 -1
View File
@@ -11,6 +11,6 @@
.blur & {
z-index: 100;
background-color: rgba(0, 0, 0, .25);
background-color: rgba(0, 0, 0, 0.25);
}
}
+12 -9
View File
@@ -8,13 +8,17 @@
padding: 1rem 0 0;
a {
font-size: .8rem;
color: #bfbfbf;
letter-spacing: .1rem;
font-size: 0.8rem;
color: $pagination-link-color;
letter-spacing: 0.1rem;
font-weight: 700;
padding: 5px 5px;
text-decoration: none;
@include transition(0.3s);
[theme='dark'] & {
color: $pagination-link-color-dark;
}
}
li {
@@ -32,14 +36,14 @@
color: $pagination-link-hover-color;
}
[theme=dark] &:hover a {
[theme='dark'] &:hover a {
color: $pagination-link-hover-color-dark;
}
&:before,
&:after {
position: absolute;
content: "";
content: '';
width: 0;
height: 3px;
background: $pagination-link-hover-color;
@@ -47,8 +51,8 @@
bottom: 0px;
}
[theme=dark] &:before,
[theme=dark] &:after {
[theme='dark'] &:before,
[theme='dark'] &:after {
background: $pagination-link-hover-color-dark;
}
@@ -66,7 +70,6 @@
}
&:hover {
&:before,
&:after {
width: 50%;
@@ -78,7 +81,7 @@
color: $pagination-link-hover-color;
}
[theme=dark] & a {
[theme='dark'] & a {
color: $pagination-link-hover-color-dark;
}
+224 -259
View File
@@ -1,25 +1,48 @@
// inline code
code {
display:inline-block;
display: inline-block;
max-width: 100%;
padding: 0 .4rem;
@include overflow-wrap(break-word);
@include line-break(anywhere);
padding: 0 0.25rem;
font-size: $code-font-size;
font-family: $code-font-family;
color: $code-color;
background-color: rgba(175, 184, 193, 0.2);
@include border-radius($global-border-radius);
@include overflow-wrap(break-word);
@include line-break(anywhere);
[theme=dark] & {
[theme='dark'] & {
color: $code-color-dark;
background-color: rgba(99, 110, 123, 0.4);
}
}
// indented code
pre {
margin: 0;
padding: .25rem 0 .25rem .5rem;
line-height: 1.45em;
padding: 0.5rem;
overflow: auto;
font-size: $code-font-size;
font-family: $code-font-family;
@include border-radius($global-border-radius);
@include tab-size(4);
background-color: $code-background-color;
[theme='dark'] & {
background-color: $code-background-color-dark;
}
code {
padding: 0;
background-color: transparent;
@include border-radius(0);
@include max-content(min-width);
[theme='dark'] & {
background-color: transparent;
}
}
img {
@@ -29,17 +52,10 @@ pre {
}
}
code, pre, .highlight table, .highlight tr, .highlight td {
background: $code-background-color;
[theme=dark] & {
background: $code-background-color-dark;
}
}
.highlight, .gist {
font-family: $code-font-family;
.highlight,
.gist {
font-size: $code-font-size;
font-family: $code-font-family;
.table-wrapper {
> table,
@@ -54,9 +70,9 @@ code, pre, .highlight table, .highlight tr, .highlight td {
}
}
// block fenced code
.highlight {
line-height: 1.4em;
margin: .5rem 0;
margin: 0.5rem 0;
> .chroma {
position: relative;
@@ -69,12 +85,15 @@ code, pre, .highlight table, .highlight tr, .highlight td {
width: 100%;
font-family: $global-font-family;
font-weight: bold;
line-height: 1.4em;
color: $code-info-color;
background: darken($code-background-color, 8%);
background-color: darken($code-background-color, 3%);
@include border-radius($global-border-radius);
@include transition(border-radius 0.2s ease);
[theme=dark] & {
[theme='dark'] & {
color: $code-info-color-dark;
background: darken($code-background-color-dark, 6%);
background-color: darken($code-background-color-dark, 6%);
}
&:hover {
@@ -83,14 +102,38 @@ code, pre, .highlight table, .highlight tr, .highlight td {
.code-title {
width: 100%;
padding: .4rem;
padding: 0.4rem;
.arrow {
padding: 0 0.2rem;
@include transition(transform 0.2s ease);
}
}
.code-title::after {
padding-left: .2rem;
padding-left: 0.2rem;
content: 'Code';
}
.ellipses {
padding: 0.4rem;
}
.edit,
.copy {
display: none;
padding: 0.4rem;
&:hover {
cursor: pointer;
color: $global-link-hover-color;
[theme='dark'] & {
color: $global-link-hover-color-dark;
}
}
}
@each $type, $text in $code-type-map {
&.#{$type} .code-title::after {
content: $text;
@@ -98,80 +141,78 @@ code, pre, .highlight table, .highlight tr, .highlight td {
}
}
.lntd:first-child {
min-width: 1.6rem;
text-align: right;
}
.lntd:last-child {
width: 100%;
pre {
@include max-content(min-width);
}
}
.ln {
padding-right: .75rem;
}
.hl {
display: block;
background-color: darken($code-background-color, 10%);
[theme=dark] & {
background-color: darken($code-background-color-dark, 5%);
}
}
.ln, .lnt {
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
.arrow {
padding: 0 .2rem;
@include transition(transform 0.2s ease);
}
.ellipses {
padding: .4rem;
}
.copy {
display: none;
padding: .4rem;
&:hover {
cursor: pointer;
color: $global-link-hover-color;
[theme=dark] & {
color: $global-link-hover-color-dark;
}
}
}
// delayed loading table-wrapper
.table-wrapper {
max-height: 0;
overflow-y: hidden;
overflow: hidden;
@include border-radius(0 0 $global-border-radius $global-border-radius);
@include details-transition-open;
}
table {
border-spacing: 0;
width: auto;
overflow: auto;
display: block;
background-color: $code-background-color;
[theme='dark'] & {
background-color: $code-background-color-dark;
}
td {
vertical-align: top;
padding: 0;
}
pre {
padding: 0.25rem;
outline-offset: -1px;
@include border-radius(0);
}
/* lineNumbersInTable=false */
.ln {
min-width: 1.25rem;
}
// ========== lineNumbersInTable ========== //
// line numbers
.lntd:first-child {
min-width: 1.6rem;
text-align: right;
pre {
padding-right: 0;
}
}
// code content
.lntd:last-child {
width: 100%;
pre {
padding-left: 0.5rem;
padding-right: 0.5rem;
}
code {
width: 100%;
}
}
// ========== lineNumbersInTable ========== //
}
&.open {
.code-header {
background: darken($code-background-color, 3%);
background-color: darken($code-background-color, 6%);
@include border-radius($global-border-radius $global-border-radius 0 0);
[theme=dark] & {
background: darken($code-background-color-dark, 3%);
[theme='dark'] & {
background-color: darken($code-background-color-dark, 3%);
}
}
.table-wrapper {
max-height: $MAX_LENGTH;
max-height: 100%;
@include details-transition-close;
}
@@ -183,203 +224,127 @@ code, pre, .highlight table, .highlight tr, .highlight td {
display: none;
}
.edit,
.copy {
display: inline;
}
}
}
/* Comment */ .c,
/* CommentHashbang */ .ch,
/* CommentMultiline */ .cm,
/* CommentSingle */ .c1,
/* CommentSpecial */ .cs,
/* CommentPreproc */ .cp,
/* CommentPreprocFile */ .cpf { font-style: italic }
/* GenericUnderline */ .gl { text-decoration: underline }
/* LineHighlight */
.hl {
display: block;
background-color: $code-hightlight-color;
box-shadow: -0.5rem 0 0 $code-hightlight-color, 0.5rem 0 0 $code-hightlight-color;
@each $class, $color in $code-highlight-color-map {
.#{$class} { color: $color; }
}
[theme=dark] & {
@each $class, $color in $code-highlight-color-map-dark {
.#{$class} { color: $color; }
[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;
}
}
/* GenericUnderline */
.gl {
text-decoration: underline;
}
/* GenericStrong */
.gs {
font-weight: bold;
}
/* GenericEmph */
.ge {
font-style: italic;
}
/* lineNumbersInTable=false */
.ln {
padding-right: 0.5rem;
display: inline-block;
min-width: 1.1rem;
text-align: right;
}
/* LineNumbers */
.lnt,
.ln {
color: $global-font-secondary-color;
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
}
// ========== Higtlight Color ========== //
/* Error */
.err {
font-style: italic;
border-bottom: 1px dotted $code-error-color;
}
/* GenericDeleted */
.gd {
background-color: #ffebe9;
[theme='dark'] & {
background-color: #78191b;
}
}
/* GenericInserted */
.gi {
background-color: #dafbe1;
[theme='dark'] & {
background-color: #1b4721;
}
}
@each $class, $color in $code-highlight-color-map {
.#{$class} {
color: $color;
}
}
[theme='dark'] & {
@each $class, $color in $code-highlight-color-map-dark {
.#{$class} {
color: $color;
}
}
}
// ========== Higtlight Color ========== //
}
// gist shortcode
.gist {
.gist-file, .gist-data, .gist-meta {
.gist-file,
.gist-data,
.gist-meta {
border: none;
}
.gist-data {
background-color: transparent;
}
.gist-meta {
padding: .4rem .8rem;
padding: 0.4rem 0.8rem;
@include link(false, false);
background-color: darken($code-background-color, 5%);
@include link(false, false);
[theme=dark] & {
[theme='dark'] & {
background-color: darken($code-background-color-dark, 5%);
}
}
[theme=dark] & {
// imported from https://github.com/lonekorean/gist-syntax-themes/blob/master/stylesheets/one-dark.css
.highlight {
background: #141414;
}
.blob-num,
.blob-code-inner,
.table-wrapper {
.highlight,
.pl-enm,
.pl-ko,
.pl-mo,
.pl-mp1 .pl-sf,
.pl-ms,
.pl-pdc1,
.pl-scp,
.pl-smc,
.pl-som,
.pl-va,
.pl-vpf,
.pl-vpu,
.pl-mdr {
color: #aab1bf;
}
.pl-mb,
.pl-pdb {
font-weight: 700;
}
.pl-c,
.pl-c span,
.pl-pdc {
color: #5b6270;
font-style: italic;
}
.pl-sr .pl-cce {
color: #56b5c2;
font-weight: 400;
}
.pl-ef,
.pl-en,
.pl-enf,
.pl-eoai,
.pl-kos,
.pl-mh .pl-pdh,
.pl-mr {
color: #61afef;
}
.pl-ens,
.pl-vi {
color: #be5046;
}
.pl-enti,
.pl-mai .pl-sf,
.pl-ml,
.pl-sf,
.pl-sr,
.pl-sr .pl-sra,
.pl-src,
.pl-st,
.pl-vo {
color: #56b5c2;
}
.pl-eoi,
.pl-mri,
.pl-pds,
.pl-pse .pl-s1,
.pl-s,
.pl-s1 {
color: #97c279;
}
.pl-k,
.pl-kolp,
.pl-mc,
.pl-pde {
color: #c578dd;
}
.pl-mi,
.pl-pdi {
color: #c578dd;
font-style: italic;
}
.pl-mp,
.pl-stp {
color: #818896;
}
.pl-mdh,
.pl-mdi,
.pl-mdr {
font-weight: 400;
}
.pl-mdht,
.pl-mi1 {
color: #97c279;
background: #020;
}
.pl-md,
.pl-mdhf {
color: #df6b75;
background: #200;
}
.pl-corl {
color: #df6b75;
text-decoration: underline;
}
.pl-ib {
background: #df6b75;
}
.pl-ii {
background: #e0c184;
color: #fff;
}
.pl-iu {
background: #e05151;
}
.pl-ms1 {
color: #aab1bf;
background: #373b41;
}
.pl-c1,
.pl-cn,
.pl-e,
.pl-eoa,
.pl-eoac,
.pl-eoac .pl-pde,
.pl-kou,
.pl-mm,
.pl-mp .pl-s3,
.pl-mq,
.pl-s3,
.pl-sok,
.pl-sv,
.pl-mb {
color: #d19965;
}
.pl-enc,
.pl-entc,
.pl-pse .pl-s2,
.pl-s2,
.pl-sc,
.pl-smp,
.pl-sr .pl-sre,
.pl-stj,
.pl-v,
.pl-pdb {
color: #e4bf7a;
}
.pl-ent,
.pl-entl,
.pl-entm,
.pl-mh,
.pl-pdv,
.pl-smi,
.pl-sol,
.pl-mdh,
.pl-mdi {
color: #df6b75;
&::-webkit-scrollbar {
background-color: #f6f8fa;
[theme='dark'] & {
background-color: #2d333b;
}
}
}
[theme='dark'] & {
@import './github-dark-dimmed';
}
}
@@ -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;
transition: 0.1s;
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%);
[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%);
}
}
[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;
[theme='dark'] & {
background-color: $global-background-color-dark;
}
}
.fixit-encryptor-btn {
cursor: pointer;
transition: 0.1s;
padding: 0.6rem 1rem;
background-color: $header-background-color;
[theme='dark'] & {
background-color: $header-background-color-dark;
}
}
}
+10 -4
View File
@@ -5,7 +5,7 @@
border-bottom: 1px solid $global-border-color;
padding: 1rem 0 0.3rem;
[theme=dark] & {
[theme='dark'] & {
border-bottom: 1px solid $global-border-color-dark;
}
@@ -17,7 +17,7 @@
font-size: 0.8em;
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
@@ -28,7 +28,7 @@
font-size: 0.8em;
color: $global-font-secondary-color;
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
}
@@ -37,9 +37,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 {
@@ -0,0 +1,169 @@
/**
* Theme: GitHub Dark Dimmed
* Description: Dark Dimmed theme as seen on github.com
* Author: github.com
* Maintainer: https://github.com/hugo-fixit/FixIt
* Updated: 2022-03-01
*/
& {
--color-fg-default: #adbac7;
--color-prettylights-syntax-comment: #768390;
--color-prettylights-syntax-constant: #6cb6ff;
--color-prettylights-syntax-entity: #dcbdfb;
--color-prettylights-syntax-storage-modifier-import: #adbac7;
--color-prettylights-syntax-entity-tag: #8ddb8c;
--color-prettylights-syntax-keyword: #f47067;
--color-prettylights-syntax-string: #96d0ff;
--color-prettylights-syntax-variable: #f69d50;
--color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;
--color-prettylights-syntax-invalid-illegal-text: #cdd9e5;
--color-prettylights-syntax-invalid-illegal-bg: #922323;
--color-prettylights-syntax-carriage-return-text: #cdd9e5;
--color-prettylights-syntax-carriage-return-bg: #ad2e2c;
--color-prettylights-syntax-string-regexp: #8ddb8c;
--color-prettylights-syntax-markup-list: #eac55f;
--color-prettylights-syntax-markup-heading: #316dca;
--color-prettylights-syntax-markup-italic: #adbac7;
--color-prettylights-syntax-markup-bold: #adbac7;
--color-prettylights-syntax-markup-deleted-text: #ffd8d3;
--color-prettylights-syntax-markup-deleted-bg: #78191b;
--color-prettylights-syntax-markup-inserted-text: #b4f1b4;
--color-prettylights-syntax-markup-inserted-bg: #1b4721;
--color-prettylights-syntax-markup-changed-text: #ffddb0;
--color-prettylights-syntax-markup-changed-bg: #682d0f;
--color-prettylights-syntax-markup-ignored-text: #adbac7;
--color-prettylights-syntax-markup-ignored-bg: #255ab2;
--color-prettylights-syntax-meta-diff-range: #dcbdfb;
--color-prettylights-syntax-brackethighlighter-angle: #768390;
--color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;
--color-prettylights-syntax-constant-other-reference-link: #96d0ff;
.blob-num,
.blob-code-inner {
color: val(--color-fg-default);
}
.pl-c /* comment, punctuation.definition.comment, string.comment */ {
color: var(--color-prettylights-syntax-comment);
}
.pl-c1 /* constant, entity.name.constant, variable.other.constant, variable.language, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header, meta.output */,
.pl-s .pl-v /* string variable */ {
color: var(--color-prettylights-syntax-constant);
}
.pl-e /* entity */,
.pl-en /* entity.name */ {
color: var(--color-prettylights-syntax-entity);
}
.pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */,
.pl-s .pl-s1 /* string source */ {
color: var(--color-prettylights-syntax-storage-modifier-import);
}
.pl-ent /* entity.name.tag, markup.quote */ {
color: var(--color-prettylights-syntax-entity-tag);
}
.pl-k /* keyword, storage, storage.type */ {
color: var(--color-prettylights-syntax-keyword);
}
.pl-s /* string */,
.pl-pds /* punctuation.definition.string, source.regexp, string.regexp.character-class */,
.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
.pl-sr /* string.regexp */,
.pl-sr .pl-cce /* string.regexp constant.character.escape */,
.pl-sr .pl-sre /* string.regexp source.ruby.embedded */,
.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ {
color: var(--color-prettylights-syntax-string);
}
.pl-v /* variable */,
.pl-smw /* sublimelinter.mark.warning */ {
color: var(--color-prettylights-syntax-variable);
}
.pl-bu /* invalid.broken, invalid.deprecated, invalid.unimplemented, message.error, brackethighlighter.unmatched, sublimelinter.mark.error */ {
color: var(--color-prettylights-syntax-brackethighlighter-unmatched);
}
.pl-ii /* invalid.illegal */ {
color: var(--color-prettylights-syntax-invalid-illegal-text);
background-color: var(--color-prettylights-syntax-invalid-illegal-bg);
}
.pl-c2 /* carriage-return */ {
color: var(--color-prettylights-syntax-carriage-return-text);
background-color: var(--color-prettylights-syntax-carriage-return-bg);
}
.pl-c2::before /* carriage-return */ {
content: '^M';
}
.pl-sr .pl-cce /* string.regexp constant.character.escape */ {
font-weight: bold;
color: var(--color-prettylights-syntax-string-regexp);
}
.pl-ml /* markup.list */ {
color: var(--color-prettylights-syntax-markup-list);
}
.pl-mh /* markup.heading */,
.pl-mh .pl-en /* markup.heading entity.name */,
.pl-ms /* meta.separator */ {
font-weight: bold;
color: var(--color-prettylights-syntax-markup-heading);
}
.pl-mi /* markup.italic */ {
font-style: italic;
color: var(--color-prettylights-syntax-markup-italic);
}
.pl-mb /* markup.bold */ {
font-weight: bold;
color: var(--color-prettylights-syntax-markup-bold);
}
.pl-md /* markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted */ {
color: var(--color-prettylights-syntax-markup-deleted-text);
background-color: var(--color-prettylights-syntax-markup-deleted-bg);
}
.pl-mi1 /* markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted */ {
color: var(--color-prettylights-syntax-markup-inserted-text);
background-color: var(--color-prettylights-syntax-markup-inserted-bg);
}
.pl-mc /* markup.changed, punctuation.definition.changed */ {
color: var(--color-prettylights-syntax-markup-changed-text);
background-color: var(--color-prettylights-syntax-markup-changed-bg);
}
.pl-mi2 /* markup.ignored, markup.untracked */ {
color: var(--color-prettylights-syntax-markup-ignored-text);
background-color: var(--color-prettylights-syntax-markup-ignored-bg);
}
.pl-mdr /* meta.diff.range */ {
font-weight: bold;
color: var(--color-prettylights-syntax-meta-diff-range);
}
.pl-ba /* brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote */ {
color: var(--color-prettylights-syntax-brackethighlighter-angle);
}
.pl-sg /* sublimelinter.gutter-mark */ {
color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);
}
.pl-corl /* constant.other.reference.link, string.other.link */ {
text-decoration: underline;
color: var(--color-prettylights-syntax-constant-other-reference-link);
}
}
-4
View File
@@ -1,4 +0,0 @@
.mapbox {
margin: .5rem 0;
padding: .5rem 0;
}
-3
View File
@@ -1,3 +0,0 @@
meting-js {
margin: .5rem 0;
}
+46 -33
View File
@@ -9,17 +9,17 @@
font-size: $toc-content-font-size;
ul {
text-indent: -0.85rem;
padding-left: .8rem;
text-indent: -0.8rem;
padding-left: 0.8rem;
list-style: none;
a:first-child::before {
content: "|";
content: '|';
font-weight: bolder;
margin-right: .5rem;
margin-right: 0.5rem;
color: $single-link-color;
[theme=dark] & {
[theme='dark'] & {
color: $single-link-color-dark;
}
}
@@ -37,7 +37,7 @@
color: $global-font-secondary-color;
}
[theme=dark] & {
[theme='dark'] & {
background: $code-background-color-dark;
rt {
@@ -49,38 +49,51 @@
#toc-auto {
display: block;
position: absolute;
width: $MAX_LENGTH;
max-width: 0;
padding: 0 .8rem;
border-left: 4px solid $global-border-color;
position: sticky;
top: $header-height + 0.5rem;
padding-left: 1rem;
padding-right: 1rem;
@include overflow-wrap(break-word);
box-sizing: border-box;
top: 10rem;
left: 0;
visibility: hidden;
[header-desktop=normal] & {
top: 5rem;
}
@include blur;
[theme=dark] & {
border-left-color: $global-border-color-dark;
.toc-title {
margin: 0.5rem 0;
cursor: pointer;
&::before {
content: '|';
font-weight: bolder;
margin-right: 0.5rem;
color: $global-border-color;
[theme='dark'] & {
color: $global-border-color-dark;
}
}
i.toc-icon {
@include transition(transform 0.2s ease);
}
}
.toc-title {
margin: .8rem 0;
&.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: .625rem 0;
margin: 0;
}
ul {
@@ -97,14 +110,14 @@
font-weight: bold;
color: $single-link-color;
[theme=dark] & {
[theme='dark'] & {
color: $single-link-color-dark;
}
&::before {
color: $single-link-hover-color;
[theme=dark] & {
[theme='dark'] & {
color: $single-link-hover-color-dark;
}
}
@@ -114,9 +127,9 @@
#toc-static {
display: none;
margin: .8rem 0;
margin: 0.8rem 0;
&[kept=true] {
&[kept='true'] {
display: block;
}
@@ -124,10 +137,10 @@
display: flex;
justify-content: space-between;
line-height: 2em;
padding: 0 .75rem;
background: darken($code-background-color, 6%);
padding: 0 0.75rem;
background: darken($code-background-color, 3%);
[theme=dark] & {
[theme='dark'] & {
background: darken($code-background-color-dark, 6%);
}
}
@@ -137,19 +150,19 @@
> nav > ul {
margin: 0;
padding: .4rem 1rem .4rem 1.8rem;
padding: 0.4rem 1rem 0.4rem 1.8rem;
}
[theme=dark] & {
[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] & {
[theme='dark'] & {
background: darken($code-background-color-dark, 3%);
}
}
@@ -2,14 +2,16 @@
.cc-btn {
color: $global-font-color;
&:hover, &:focus {
&:hover,
&:focus {
background-color: #ccc;
}
[theme=dark] & {
[theme='dark'] & {
color: $global-font-color;
&:hover, &:focus {
&:hover,
&:focus {
background-color: #fff;
}
}
@@ -9,7 +9,7 @@
right: 1.5rem;
font-size: 1rem;
line-height: 1.3rem;
padding: .6rem .6rem;
padding: 0.6rem 0.6rem;
color: $global-font-secondary-color;
background: $header-background-color;
@include border-radius(2rem);
@@ -17,20 +17,24 @@
@include blur;
&:hover, &:active {
&:hover,
&:active {
color: $global-font-color;
cursor: pointer;
}
&:active, &:focus, &:hover {
&:active,
&:focus,
&:hover {
outline: none;
}
[theme=dark] & {
[theme='dark'] & {
color: $global-font-secondary-color-dark;
background: $header-background-color-dark;
&:hover, &:active {
&:hover,
&:active {
color: $global-font-color-dark;
}
}
@@ -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;
[theme='dark'] & {
color: $github-corner-color-dark;
fill: $github-corner-fill-dark;
}
}
&.left {
left: 0;
svg {
transform: scale(-1, 1);
}
}
&.right {
right: 0;
}
}
+3
View File
@@ -0,0 +1,3 @@
@import '_cookieconsent';
@import '_fixed-button';
@import '_github-corner';
+7
View File
@@ -0,0 +1,7 @@
:root {
// Note: Custom variable values only support SassScript inside `#{}`.
@each $color, $value in $theme-colors {
--#{$prefix}#{$color}: #{$value};
}
}
@@ -1,17 +1,19 @@
.admonition {
position: relative;
margin: 1rem 0;
padding: 0 .75rem;
padding: 0 0.75rem;
background-color: map-get($admonition-background-color-map, 'note');
border-left: .25rem solid map-get($admonition-color-map, 'note');
border-left: 0.25rem solid map-get($admonition-color-map, 'note');
overflow: auto;
@include border-radius($global-border-radius);
.admonition-title {
font-weight: bold;
margin: 0 -0.75rem;
padding: .25rem 1.8rem;
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);
@include border-radius(0);
}
&.open .admonition-title {
@@ -19,21 +21,21 @@
}
.admonition-content {
padding: .5rem 0;
padding: 0.5rem 0;
}
i.icon {
font-size: 0.85rem;
color: map-get($admonition-color-map, 'note');
position: absolute;
top: .6rem;
left: .4rem;
top: 0.6rem;
left: 0.4rem;
}
i.details-icon {
position: absolute;
top: .6rem;
right: .3rem;
top: 0.6rem;
right: 0.3rem;
}
@each $type, $color in $admonition-color-map {
@@ -62,6 +64,6 @@
}
&:last-child {
margin-bottom: .75rem;
margin-bottom: 0.75rem;
}
}
+99
View File
@@ -0,0 +1,99 @@
/**
* Card link style
* @author @Lruihao https://lruihao.cn
*/
.card-link {
position: relative;
display: block;
margin: 0.5rem auto;
box-sizing: border-box;
width: clamp(50%, 400px, 100%);
max-width: 100%;
overflow: hidden;
text-decoration: none;
border: none;
@include border-radius(0.75rem);
}
.cl- {
&backdrop {
position: absolute;
top: 0.75rem;
bottom: 0.75rem;
left: 0;
right: 0;
background-image: url('/images/fixit.svg');
background-repeat: no-repeat;
filter: blur(0.5rem);
opacity: 0.5;
background-size: contain;
background-position: center;
}
&content {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.75rem;
background-color: rgba(245, 245, 245, 0.88);
}
&text {
overflow: hidden;
}
&title {
display: -webkit-box;
-webkit-line-clamp: 2;
overflow: hidden;
max-height: calc(1rem * 1.25 * 2);
font-size: 1rem;
font-weight: 500;
line-height: 1.25;
color: $global-font-color;
}
&meta {
display: flex;
align-items: center;
margin-top: 0.25rem;
font-size: 0.825rem;
color: $global-font-secondary-color;
}
&icon-link {
width: 1rem;
height: 1rem;
flex-shrink: 0;
margin-right: 0.25rem;
}
&url {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&icon-globe {
width: 4rem;
height: 4rem;
flex-shrink: 0;
margin-left: 0.25rem;
}
[theme='dark'] & {
&content {
background-color: rgba(61, 62, 65, 0.88);
}
&title {
color: $global-font-color-dark;
}
&meta {
color: $global-font-secondary-color-dark;
}
}
}
+43
View File
@@ -0,0 +1,43 @@
.blockquote-center {
border-left: none;
margin: 40px 0;
padding: 0;
position: relative;
text-align: center;
color: initial;
&::after,
&::before {
left: 0;
line-height: 1;
opacity: 0.6;
position: absolute;
width: 100%;
}
&::before {
border-top: 1px solid $global-border-color;
text-align: left;
top: -20px;
content: '\f10d';
font-family: 'Font Awesome 5 Free';
font-weight: 900;
[theme='dark'] & {
border-top-color: $global-border-color-dark;
}
}
&::after {
border-bottom: 1px solid $global-border-color;
bottom: -20px;
text-align: right;
content: '\f10e';
font-family: 'Font Awesome 5 Free';
font-weight: 900;
[theme='dark'] & {
border-bottom-color: $global-border-color-dark;
}
}
}
@@ -1,4 +1,4 @@
.echarts {
margin: .5rem 0;
margin: 0.5rem 0;
text-align: center;
}
+7
View File
@@ -0,0 +1,7 @@
@import '_admonition';
@import '_bilibili';
@import '_cardlink';
@import '_center-quote';
@import '_echarts';
@import '_instagram';
@import '_mapbox';
@@ -1,5 +1,5 @@
iframe.instagram-media {
[theme=dark] & {
[theme='dark'] & {
border: none !important;
}
}
+5
View File
@@ -0,0 +1,5 @@
.mapbox {
margin: 0.5rem 0;
padding: 0.5rem 0;
@include border-radius($global-border-radius);
}
+218 -174
View File
@@ -3,35 +3,59 @@
// ==============================
// ========== 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;
// Radius of the border
$global-border-radius: 5px !default;
// Color of the background
$global-background-color: #fff !default;
$global-background-color-dark: #292a2d !default;
$global-background-color: #ffffff !default;
$global-background-color-dark: #292a2e !default;
// Color of the text
$global-font-color: #161209 !default;
$global-font-color-dark: #a9a9b3 !default;
$global-font-color-dark: #b1b1ba !default;
// Color of the secondary text
$global-font-secondary-color: #a9a9b3 !default;
$global-font-secondary-color-dark: #5d5d5f !default;
$global-font-secondary-color: #b1b1ba !default;
$global-font-secondary-color-dark: #909092 !default;
// Color of the link
$global-link-color: #161209 !default;
$global-link-color-dark: #a9a9b3 !default;
$global-link-color-dark: #b1b1ba !default;
// Color of the hover link
$global-link-hover-color: #2d96bd !default;
$global-link-hover-color: #2983bb !default; // 潮蓝
$global-link-hover-color-dark: #fff !default;
// Color of the border
$global-border-color: #f0f0f0 !default;
$global-border-color-dark: #363636 !default;
// 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;
// ========== Global ========== //
// ========== Scrollbar ========== //
@@ -39,7 +63,7 @@ $global-border-color-dark: #363636 !default;
$scrollbar-color: #87878d !default;
// Color of the hover scrollbar
$scrollbar-hover-color: #a9a9b3 !default;
$scrollbar-hover-color: #b1b1ba !default;
// ========== Scrollbar ========== //
// ========== Selection ========== //
@@ -60,9 +84,9 @@ $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;
@@ -75,12 +99,12 @@ $toc-title-font-size: 1.2rem !default;
$toc-content-font-size: 1rem !default;
// Color of the single link
$single-link-color: #2d96bd !default;
$single-link-color-dark: #55bde2 !default;
$single-link-color: #2376b7 !default; // 花青
$single-link-color-dark: #1781b5 !default; // 釉蓝
// Color of the hover single link
$single-link-hover-color: #ef3982 !default;
$single-link-hover-color-dark: #bdebfc !default;
$single-link-hover-color: #ea517f !default; // 莲瓣红
$single-link-hover-color-dark: #619ac3 !default; // 羽扇豆蓝
// Color of the table background
$table-background-color: #fff !default;
@@ -91,14 +115,14 @@ $table-thead-color: #ededed !default;
$table-thead-color-dark: #20252b !default;
// Color of the blockquote
$blockquote-color: #6bd6fd !default;
$blockquote-color-dark: #59c5ec !default;
$blockquote-color: #697681 !default;
$blockquote-color-dark: #9ba3aa !default;
// ========== Single Content ========== //
// ========== Pagination ========== //
// Color of the link in pagination
$pagination-link-color: #2d96bd !default;
$pagination-link-color-dark: #a9a9b3 !default;
$pagination-link-color: #bfbfbf !default;
$pagination-link-color-dark: #b1b1ba !default;
// Color of the hover link in pagination
$pagination-link-hover-color: #000 !default;
@@ -107,18 +131,24 @@ $pagination-link-hover-color-dark: #fff !default;
// ========== Code ========== //
// Color of the code
$code-color: #E74C3C !default;
$code-color-dark: #E5BF78 !default;
$code-color: #24292f !default;
$code-color-dark: #adbac7 !default;
// Color of the code background
$code-background-color: #f5f5f5 !default;
$code-background-color-dark: #272C34 !default;
$code-background-color: #f6f8fa !default;
$code-background-color-dark: #2d333b !default;
$code-error-color: #dc3545 !default;
// Color of the hightlight code
$code-hightlight-color: #fff8c5 !default;
$code-hightlight-color-dark: rgba(174, 124, 20, 0.15) !default;
$code-info-color: #9c9c9c !default;
$code-info-color-dark: #b1b0b0 !default;
// Font size of the code
$code-font-size: .875rem !default;
$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;
@@ -173,159 +203,165 @@ $code-type-map: (
language-typescript: 'TypeScript',
language-vue: 'Vue',
language-yml: 'YAML',
language-yaml: 'YAML',
language-yaml: 'YAML'
) !default;
// Color map of the code highlight
$code-highlight-color-map: (
/* Parentheses */ 'p': #a9a9b3,
/* Keyword */ 'k': #b501a9,
/* KeywordConstant */ 'kc': #b501a9,
/* KeywordDeclaration */ 'kd': #b501a9,
/* KeywordNamespace */ 'kn': #b501a9,
/* KeywordPseudo */ 'kp': #b501a9,
/* KeywordReserved */ 'kr': #b501a9,
/* KeywordType */ 'kt': #b501a9,
/* Name */ 'n': #333333,
/* NameAttribute */ 'na': #2b77fa,
/* NameBuiltin */ 'nb': #f74840,
/* NameBuiltinPseudo */ 'bp': #f74840,
/* NameClass */ 'nc': #cb8100,
/* NameConstant */ 'no': #2b77fa,
/* NameDecorator */ 'nd': #0086c1,
/* NameEntity */ 'ni': #2b77fa,
/* NameException */ 'ne': #2b77fa,
/* NameFunction */ 'nf': #2b77fa,
/* NameFunctionMagic */ 'fm': #1ccad6,
/* NameLabel */ 'nl': #2b77fa,
/* NameNamespace */ 'nn': #2b77fa,
/* NameOther */ 'nx': #333333,
/* NameProperty */ 'py': #2b77fa,
/* NameTag */ 'nt': #2b77fa,
/* NameVariable */ 'nv': #2b77fa,
/* NameVariableClass */ 'vc': #2b77fa,
/* NameVariableGlobal */ 'vg': #2b77fa,
/* NameVariableInstance */ 'vi': #2b77fa,
/* NameVariableMagic */ 'vm': #2b77fa,
/* Literal */ 'l': #2aa198,
/* LiteralDate */ 'ld': #2aa198,
/* LiteralString */ 's': #24a443,
/* LiteralStringAffix */ 'sa': #24a443,
/* LiteralStringBacktick */ 'sb': #24a443,
/* LiteralStringChar */ 'sc': #24a443,
/* LiteralStringDelimiter */ 'dl': #24a443,
/* LiteralStringDoc */ 'sd': #24a443,
/* LiteralStringDouble */ 's2': #24a443,
/* LiteralStringEscape */ 'se': #24a443,
/* LiteralStringHeredoc */ 'sh': #24a443,
/* LiteralStringInterpol */ 'si': #24a443,
/* LiteralStringOther */ 'sx': #24a443,
/* LiteralStringRegex */ 'sr': #24a443,
/* LiteralStringSingle */ 's1': #24a443,
/* LiteralStringSymbol */ 'ss': #24a443,
/* LiteralNumber */ 'm': #e2893c,
/* LiteralNumberBin */ 'mb': #e2893c,
/* LiteralNumberFloat */ 'mf': #e2893c,
/* LiteralNumberHex */ 'mh': #e2893c,
/* LiteralNumberInteger */ 'mi': #e2893c,
/* LiteralNumberIntegerLong */ 'il': #e2893c,
/* LiteralNumberOct */ 'mo': #e2893c,
/* Operator */ 'o': #f19b04,
/* OperatorWord */ 'ow': #b501a9,
/* Comment */ 'c': #a0a1a8,
/* CommentHashbang */ 'ch': #a0a1a8,
/* CommentMultiline */ 'cm': #a0a1a8,
/* CommentSingle */ 'c1': #a0a1a8,
/* CommentSpecial */ 'cs': #a0a1a8,
/* CommentPreproc */ 'cp': #a0a1a8,
/* CommentPreprocFile */ 'cpf': #a0a1a8,
/* Generic */ 'g': #e72d40,
/* GenericDeleted */ 'gd': #e72d40,
/* GenericEmph */ 'ge': #e72d40,
/* GenericError */ 'gr': #e72d40,
/* GenericHeading */ 'gh': #e72d40,
/* GenericInserted */ 'gi': #e72d40,
/* GenericOutput */ 'go': #e72d40,
/* GenericPrompt */ 'gp': #e72d40,
/* GenericStrong */ 'gs': #e72d40,
/* GenericSubheading */ 'gu': #e72d40,
/* GenericTraceback */ 'gt': #e72d40,
/* TextWhitespace */ 'w': #bbbbbb,
/* 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: (
/* Parentheses */ 'p': #a9a9b3,
/* Keyword */ 'k': #d371e3,
/* KeywordConstant */ 'kc': #d371e3,
/* KeywordDeclaration */ 'kd': #d371e3,
/* KeywordNamespace */ 'kn': #d371e3,
/* KeywordPseudo */ 'kp': #d371e3,
/* KeywordReserved */ 'kr': #d371e3,
/* KeywordType */ 'kt': #d371e3,
/* Name */ 'n': #a9b2c0,
/* NameAttribute */ 'na': #41b0f5,
/* NameBuiltin */ 'nb': #19b9c4,
/* NameBuiltinPseudo */ 'bp': #ecbf6f,
/* NameClass */ 'nc': #ecbf6f,
/* NameConstant */ 'no': #41b0f5,
/* NameDecorator */ 'nd': #ecbf6f,
/* NameEntity */ 'ni': #41b0f5,
/* NameException */ 'ne': #41b0f5,
/* NameFunction */ 'nf': #41b0f5,
/* NameFunctionMagic */ 'fm': #19b9c4,
/* NameLabel */ 'nl': #41b0f5,
/* NameNamespace */ 'nn': #41b0f5,
/* NameOther */ 'nx': #a9a9b3,
/* NameProperty */ 'py': #41b0f5,
/* NameTag */ 'nt': #41b0f5,
/* NameVariable */ 'nv': #41b0f5,
/* NameVariableClass */ 'vc': #41b0f5,
/* NameVariableGlobal */ 'vg': #41b0f5,
/* NameVariableInstance */ 'vi': #41b0f5,
/* NameVariableMagic */ 'vm': #41b0f5,
/* Literal */ 'l': #2aa198,
/* LiteralDate */ 'ld': #2aa198,
/* LiteralString */ 's': #8cc570,
/* LiteralStringAffix */ 'sa': #8cc570,
/* LiteralStringBacktick */ 'sb': #8cc570,
/* LiteralStringChar */ 'sc': #8cc570,
/* LiteralStringDelimiter */ 'dl': #8cc570,
/* LiteralStringDoc */ 'sd': #8cc570,
/* LiteralStringDouble */ 's2': #8cc570,
/* LiteralStringEscape */ 'se': #8cc570,
/* LiteralStringHeredoc */ 'sh': #8cc570,
/* LiteralStringInterpol */ 'si': #8cc570,
/* LiteralStringOther */ 'sx': #8cc570,
/* LiteralStringRegex */ 'sr': #8cc570,
/* LiteralStringSingle */ 's1': #8cc570,
/* LiteralStringSymbol */ 'ss': #8cc570,
/* LiteralNumber */ 'm': #db985c,
/* LiteralNumberBin */ 'mb': #db985c,
/* LiteralNumberFloat */ 'mf': #db985c,
/* LiteralNumberHex */ 'mh': #db985c,
/* LiteralNumberInteger */ 'mi': #db985c,
/* LiteralNumberIntegerLong */ 'il': #db985c,
/* LiteralNumberOct */ 'mo': #db985c,
/* Operator */ 'o': #ecbf6f,
/* OperatorWord */ 'ow': #d371e3,
/* Comment */ 'c': #7e848f,
/* CommentHashbang */ 'ch': #7e848f,
/* CommentMultiline */ 'cm': #7e848f,
/* CommentSingle */ 'c1': #7e848f,
/* CommentSpecial */ 'cs': #7e848f,
/* CommentPreproc */ 'cp': #7e848f,
/* CommentPreprocFile */ 'cpf': #7e848f,
/* Generic */ 'g': #f16372,
/* GenericDeleted */ 'gd': #f16372,
/* GenericEmph */ 'ge': #f16372,
/* GenericError */ 'gr': #f16372,
/* GenericHeading */ 'gh': #f16372,
/* GenericInserted */ 'gi': #f16372,
/* GenericOutput */ 'go': #f16372,
/* GenericPrompt */ 'gp': #f16372,
/* GenericStrong */ 'gs': #f16372,
/* GenericSubheading */ 'gu': #f16372,
/* GenericTraceback */ 'gt': #f16372,
/* TextWhitespace */ 'w': #bbbbbb,
/* 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 ========== //
@@ -343,7 +379,7 @@ $admonition-color-map: (
'danger': #ff1744,
'bug': #f50057,
'example': #651fff,
'quote': #9e9e9e,
'quote': #9e9e9e
) !default;
// Color map of the admonition background
@@ -359,8 +395,16 @@ $admonition-background-color-map: (
'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),
'quote': rgba(159, 159, 159, 0.1)
) !default;
// ========== Admonition ========== //
$MAX_LENGTH: 12000px;
// ========== GitHub Corners ========== //
// Color of the GitHub Corners
$github-corner-color: white !default;
$github-corner-color-dark: black !default;
// Color of the GitHub Corners background
$github-corner-fill: $header-background-color-dark !default;
$github-corner-fill-dark: $header-background-color !default;
// ========== GitHub Corners ========== //
+2
View File
@@ -5,6 +5,7 @@
@import "_mixin/index";
@import "_root";
@import "_core/base";
@import "_core/layout";
@@ -16,4 +17,5 @@
@import "_core/media";
@import "_common";
@import "_custom";
+75 -57
View File
@@ -1,66 +1,84 @@
# 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@2.14.0 https://github.com/simple-icons/simple-icons
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@2.14.0/icons/
# simple-icons@6.3.0 https://github.com/simple-icons/simple-icons
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@6.3.0/icons/
libFiles:
# normalize.css@8.0.1 https://github.com/necolas/normalize.css
normalizeCSS: normalize.css@8.0.1/normalize.min.css
# fontawesome-free@5.13.0 https://fontawesome.com/
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@5.13.0/css/all.min.css'
# animate.css@3.7.2 https://github.com/daneden/animate.css
animateCSS: animate.css@3.7.2/animate.min.css
# smooth-scroll@16.1.3 https://github.com/cferdinandi/smooth-scroll
smoothScrollJS: smooth-scroll@16.1.3/dist/smooth-scroll.min.js
# autocomplete.js@0.37.1 https://github.com/algolia/autocomplete.js
autocompleteJS: autocomplete.js@0.37.1/dist/autocomplete.min.js
# lunr.js@2.3.8 https://lunrjs.com/
lunrJS: lunr@2.3.8/lunr.min.js
# algoliasearch@4.2.0 https://github.com/algolia/algoliasearch-client-javascript
algoliasearchJS: algoliasearch@4.2.0/dist/algoliasearch-lite.umd.min.js
# lazysizes@5.2.2 https://github.com/aFarkas/lazysizes
lazysizesJS: lazysizes@5.2.2/lazysizes.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
# twemoji@13.0.0 https://github.com/twitter/twemoji
twemojiJS: twemoji@13.0.0/dist/twemoji.min.js
# lightgallery.js@1.2.0 https://github.com/sachinchoolur/lightgallery.js
# lg-thumbnail.js@1.2.0 https://github.com/sachinchoolur/lg-thumbnail.js
# lg-zoom.js@1.2.0 https://github.com/sachinchoolur/lg-zoom.js
lightgalleryCSS: lightgallery.js@1.2.0/dist/css/lightgallery.min.css
lightgalleryJS: lightgallery.js@1.2.0/dist/js/lightgallery.min.js
lightgalleryThumbnailJS: lg-thumbnail.js@1.2.0/dist/lg-thumbnail.min.js
lightgalleryZoomJS: lg-zoom.js@1.2.0/dist/lg-zoom.min.js
# clipboard.js@2.0.6 https://github.com/zenorocha/clipboard.js
clipboardJS: clipboard@2.0.6/dist/clipboard.min.js
# sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js
sharerJS: sharer.js@0.4.0/sharer.min.js
# typeit@7.0.4 https://github.com/alexmacarthur/typeit
typeitJS: typeit@7.0.4/dist/typeit.min.js
# katex@0.11.1 https://katex.org/
katexCSS: katex@0.11.1/dist/katex.min.css
katexJS: katex@0.11.1/dist/katex.min.js
katexAutoRenderJS: katex@0.11.1/dist/contrib/auto-render.min.js
katexCopyTexCSS: katex@0.11.1/dist/contrib/copy-tex.min.css
katexCopyTexJS: katex@0.11.1/dist/contrib/copy-tex.min.js
katexMhchemJS: katex@0.11.1/dist/contrib/mhchem.min.js
# mermaid@8.5.1 https://github.com/knsv/mermaid
mermaidJS: mermaid@8.5.1/dist/mermaid.min.js
# echarts@4.8.0 https://echarts.apache.org/
echartsJS: echarts@4.8.0/dist/echarts.min.js
echartsMacaronsJS: echarts@4.8.0/theme/macarons.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
# algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
algoliasearchJS: algoliasearch@4.13.0/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
# meting@2.0.1 https://github.com/metowolf/MetingJS
metingJS: meting@2.0.1/dist/Meting.min.js
# gitalk@1.6.2 https://github.com/gitalk/gitalk
gitalkCSS: gitalk@1.6.2/dist/gitalk.min.css
gitalkJS: gitalk@1.6.2/dist/gitalk.min.js
# valine@1.4.14 https://valine.js.org/
valineJS: valine@1.4.14/dist/Valine.min.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.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.2.2 https://github.com/apache/echarts
echartsJS: echarts@5.3.2/dist/echarts.min.js
echartsMacaronsJS: echarts@5.3.2/theme/macarons.min.js
# eruda@2.5.0 https://github.com/liriliri/eruda
erudaJS: eruda@2.5.0/eruda.js
# fontawesome-free@6.1.1 https://github.com/FortAwesome/Font-Awesome
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@6.1.1/css/all.min.css'
# gitalk@1.7.2 https://github.com/gitalk/gitalk
gitalkCSS: gitalk@1.7.2/dist/gitalk.min.css
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
# katex@0.15.1 https://github.com/KaTeX/KaTeX
katexAutoRenderJS: katex@0.15.3/dist/contrib/auto-render.min.js
katexCopyTexCSS: katex@0.15.3/dist/contrib/copy-tex.min.css
katexCopyTexJS: katex@0.15.3/dist/contrib/copy-tex.min.js
katexCSS: katex@0.15.3/dist/katex.min.css
katexJS: katex@0.15.3/dist/katex.min.js
katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js
# 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
# lunr.js@2.3.9 https://github.com/olivernn/lunr.js
lunrJS: lunr@2.3.9/lunr.min.js
# mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js
mapboxGLCSS: mapbox-gl@2.8.2/dist/mapbox-gl.min.css
mapboxGLJS: mapbox-gl@2.8.2/dist/mapbox-gl.min.js
# mermaid@9.1.3 https://github.com/knsv/mermaid
mermaidJS: mermaid@9.1.3/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
# sharer.js@0.4.2 https://github.com/ellisonleao/sharer.js
sharerJS: sharer.js@0.5.1/sharer.min.js
# twemoji@13.1.0 https://github.com/twitter/twemoji
twemojiJS: twemoji@14.0.2/dist/twemoji.min.js
# typeit@7.0.4 https://github.com/alexmacarthur/typeit
typeitJS: typeit@7.0.4/dist/typeit.min.js
# valine@1.5.0 https://github.com/xCss/Valine
valineJS: valine@1.5.0/dist/Valine.min.js
# vconsole@3.14.6 https://github.com/Tencent/vConsole
vconsoleJS: vconsole@3.14.6/dist/vconsole.min.js
# waline@2.6.1 https://github.com/walinejs/waline
walineCSS: '@waline/client@2.6.1/dist/waline.css'
walineJS: '@waline/client@2.6.1/dist/waline.js'
+84
View File
@@ -0,0 +1,84 @@
# 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@6.3.0 https://github.com/simple-icons/simple-icons
simpleIcons: https://unpkg.com/simple-icons@6.3.0/icons/
libFiles:
# algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
algoliasearchJS: algoliasearch@4.13.0/dist/algoliasearch-lite.umd.min.js
# 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.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.2.2 https://github.com/apache/echarts
echartsJS: echarts@5.3.2/dist/echarts.min.js
echartsMacaronsJS: echarts@5.3.2/theme/macarons.min.js
# eruda@2.5.0 https://github.com/liriliri/eruda
erudaJS: eruda@2.5.0/eruda.js
# fontawesome-free@6.1.1 https://github.com/FortAwesome/Font-Awesome
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@6.1.1/css/all.min.css'
# gitalk@1.7.2 https://github.com/gitalk/gitalk
gitalkCSS: gitalk@1.7.2/dist/gitalk.min.css
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
# katex@0.15.1 https://github.com/KaTeX/KaTeX
katexAutoRenderJS: katex@0.15.3/dist/contrib/auto-render.min.js
katexCopyTexCSS: katex@0.15.3/dist/contrib/copy-tex.min.css
katexCopyTexJS: katex@0.15.3/dist/contrib/copy-tex.min.js
katexCSS: katex@0.15.3/dist/katex.min.css
katexJS: katex@0.15.3/dist/katex.min.js
katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js
# 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
# lunr.js@2.3.9 https://github.com/olivernn/lunr.js
lunrJS: lunr@2.3.9/lunr.min.js
# mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js
mapboxGLCSS: mapbox-gl@2.8.2/dist/mapbox-gl.min.css
mapboxGLJS: mapbox-gl@2.8.2/dist/mapbox-gl.min.js
# mermaid@9.1.3 https://github.com/knsv/mermaid
mermaidJS: mermaid@9.1.3/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
# sharer.js@0.4.2 https://github.com/ellisonleao/sharer.js
sharerJS: sharer.js@0.5.1/sharer.min.js
# twemoji@13.1.0 https://github.com/twitter/twemoji
twemojiJS: twemoji@14.0.2/dist/twemoji.min.js
# typeit@7.0.4 https://github.com/alexmacarthur/typeit
typeitJS: typeit@7.0.4/dist/typeit.min.js
# valine@1.5.0 https://github.com/xCss/Valine
valineJS: valine@1.5.0/dist/Valine.min.js
# vconsole@3.14.6 https://github.com/Tencent/vConsole
vconsoleJS: vconsole@3.14.6/dist/vconsole.min.js
# waline@2.6.1 https://github.com/walinejs/waline
walineCSS: '@waline/client@2.6.1/dist/waline.css'
walineJS: '@waline/client@2.6.1/dist/waline.js'
-4
View File
@@ -4,10 +4,6 @@ theme:
- Promise
- fetch
- Element.prototype.after
smooth-scroll:
- Element.prototype.closest
- requestAnimationFrame
- CustomEvent
algoliasearch:
- Promise
- Object.entries
+132 -61
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-codepen 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:
@@ -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:
@@ -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,21 +491,92 @@ bilibili:
Prefix: https://space.bilibili.com/
Title: bilibili
Icon:
Src: svg/icons/bilibili.svg
Class: fa-brands fa-bilibili
# 063: Email
email:
# 063: ORCID
orcid:
Weight: 63
Prefix: https://orcid.org/
Title: ORCID
Icon:
Class: fa-brands fa-orcid fa-fw
# 064 Liberapay
liberapay:
Weight: 64
Prefix: https://liberapay.com/
Title: Liberapay
Icon:
Simpleicons: liberapay
# 065 Ko-Fi
ko-fi:
Weight: 65
Prefix: https://ko-fi.com/
Title: Ko-Fi
Icon:
Simpleicons: kofi
# 066: BuyMeaCoffee
buymeacoffee:
Weight: 66
Prefix: https://www.buymeacoffee.com/
Title: BuyMeaCoffee
Icon:
Simpleicons: buymeacoffee
# 067: Linktree
linktree:
Weight: 67
Prefix: https://linktr.ee/
Title: Linktree
Icon:
Simpleicons: linktree
# 068: QQ
qq:
Weight: 68
Template: https://wpa.qq.com/msgrd?v=3&uin=%v&site=qq&menu=yes
Title: QQ
Icon:
Simpleicons: tencentqq
# 069: QQ Group
qqgroup:
Weight: 69
Template: https://qm.qq.com/cgi-bin/qm/qr?k=%v&jump_from=webapi
Title: QQ Group
Icon:
Class: fa-solid fa-users
# 070: Diaspora
diaspora:
Weight: 70
Title: diaspora*
Icon:
Simpleicons: diaspora
# 071: CSDN
csdn:
Weight: 71
Prefix: https://blog.csdn.net/
Title: CSDN
Icon:
Src: svg/icons/csdn.svg
# 072: Email
email:
Weight: 72
Template: mailto:%v
Title: Email
Icon:
Class: far fa-envelope fa-fw
Class: fa-regular fa-envelope fa-fw
# 064: RSS
# 073: RSS
rss:
Weight: 64
Weight: 73
Url: /index.xml
Title: RSS
Newtab: true
Icon:
Class: fas fa-rss fa-fw
Class: fa-solid fa-rss fa-fw
+35
View File
@@ -0,0 +1,35 @@
/**
* @author @Lruihao https://lruihao.cn
* @description Custom javascript for the hugo theme FixIt.
*/
const CustomJS = new (function () {
/**
* Hello World
* You can define your own functions below.
* @returns {CustomJS}
*/
this.hello = () => {
// console.log('Hello CustomJS!');
return this;
}
/**
* Initialize.
* @returns {CustomJS}
*/
this.init = () => {
// Custom infos.
this.hello();
return this;
};
})();
/**
* Immediate.
*/
(() => {
CustomJS.init();
// It will be executed when the DOM tree is built.
document.addEventListener('DOMContentLoaded', () => {
// console.log('DOM content loaded!')
});
})();
+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;
};
};
+265
View File
@@ -0,0 +1,265 @@
const CACHE_VERSION = 1;
const BASE_CACHE_FILES = [
'/css/style.min.css',
'/js/theme.min.js',
'/site.webmanifest',
'/images/fixit.svg'
];
const OFFLINE_CACHE_FILES = [
'/css/style.min.css',
'/js/theme.min.js',
'/site.webmanifest',
'/images/fixit.svg',
'/offline/'
];
const NOT_FOUND_CACHE_FILES = [
'/css/style.min.css',
'/js/theme.min.js',
'/site.webmanifest',
'/images/fixit.svg',
'/404.html'
];
const OFFLINE_PAGE = '/offline/';
const NOT_FOUND_PAGE = '/404.html';
const CACHE_VERSIONS = {
assets: 'assets-v' + CACHE_VERSION,
content: 'content-v' + CACHE_VERSION,
offline: 'offline-v' + CACHE_VERSION,
notFound: '404-v' + CACHE_VERSION
};
// Define MAX_TTL's in SECONDS for specific file extensions
const MAX_TTL = {
'/': 3600,
html: 3600,
json: 86400,
js: 86400,
css: 86400
};
const CACHE_BLACKLIST = [
(str) => {
return !str.startsWith('http://localhost');
}
];
const SUPPORTED_METHODS = ['GET'];
/**
* isBlackListed
* @param {string} url
* @returns {boolean}
*/
function isBlacklisted(url) {
return CACHE_BLACKLIST.length > 0
? !CACHE_BLACKLIST.filter((rule) => {
if (typeof rule === 'function') {
return !rule(url);
} else {
return false;
}
}).length
: false;
}
/**
* getFileExtension
* @param {string} url
* @returns {string}
*/
function getFileExtension(url) {
const extension = url.split('.').reverse()[0].split('?')[0];
return extension.endsWith('/') ? '/' : extension;
}
/**
* getTTL
* @param {string} url
*/
function getTTL(url) {
if (typeof url === 'string') {
const extension = getFileExtension(url);
if (typeof MAX_TTL[extension] === 'number') {
return MAX_TTL[extension];
} else {
return null;
}
} else {
return null;
}
}
/**
* installServiceWorker
* @returns {Promise}
*/
function installServiceWorker() {
return Promise.all([
caches.open(CACHE_VERSIONS.assets).then((cache) => {
return cache.addAll(BASE_CACHE_FILES);
}),
caches.open(CACHE_VERSIONS.offline).then((cache) => {
return cache.addAll(OFFLINE_CACHE_FILES);
}),
caches.open(CACHE_VERSIONS.notFound).then((cache) => {
return cache.addAll(NOT_FOUND_CACHE_FILES);
})
]).then(() => {
return self.skipWaiting();
});
}
/**
* cleanupLegacyCache
* @returns {Promise}
*/
function cleanupLegacyCache() {
const currentCaches = Object.keys(CACHE_VERSIONS).map((key) => {
return CACHE_VERSIONS[key];
});
return new Promise((resolve, reject) => {
caches
.keys()
.then((keys) => {
return keys.filter((key) => {
return !~currentCaches.indexOf(key);
});
})
.then((legacy) => {
if (legacy.length) {
Promise.all(
legacy.map((legacyKey) => {
return caches.delete(legacyKey);
})
)
.then(() => {
resolve();
})
.catch((err) => {
reject(err);
});
} else {
resolve();
}
})
.catch((err) => {
reject(err);
});
});
}
self.addEventListener('install', (event) => {
event.waitUntil(Promise.all([installServiceWorker(), self.skipWaiting()]));
});
// The activate handler takes care of cleaning up old caches.
self.addEventListener('activate', (event) => {
event.waitUntil(
Promise.all([
cleanupLegacyCache(),
self.clients.claim(),
self.skipWaiting()
]).catch((err) => {
console.log(err);
self.skipWaiting();
})
);
});
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.open(CACHE_VERSIONS.content).then((cache) => {
return cache
.match(event.request)
.then((response) => {
if (response) {
const headers = response.headers.entries();
let date = null;
for (const pair of headers) {
if (pair[0] === 'date') {
date = new Date(pair[1]);
}
}
if (date) {
const age = parseInt(
(new Date().getTime() - date.getTime()) / 1000
);
const ttl = getTTL(event.request.url);
if (ttl && age > ttl) {
return new Promise((resolve) => {
return fetch(event.request.clone())
.then((updatedResponse) => {
if (updatedResponse) {
cache.put(event.request, updatedResponse.clone());
resolve(updatedResponse);
} else {
resolve(response);
}
})
.catch(() => {
resolve(response);
});
}).catch((err) => {
console.log(err);
return response;
});
} else {
return response;
}
} else {
return response;
}
} else {
return null;
}
})
.then((response) => {
if (response) {
return response;
} else {
return fetch(event.request.clone())
.then((response) => {
if (response.status < 400) {
if (
~SUPPORTED_METHODS.indexOf(event.request.method) &&
!isBlacklisted(event.request.url) &&
event.request.url.slice(0, 4) === 'http'
) {
cache.put(event.request, response.clone());
}
return response;
} else {
return caches.open(CACHE_VERSIONS.notFound).then((cache) => {
return cache.match(NOT_FOUND_PAGE);
});
}
})
.then((response) => {
if (response) {
return response;
}
})
.catch(() => {
return caches
.open(CACHE_VERSIONS.offline)
.then((offlineCache) => {
return offlineCache.match(OFFLINE_PAGE);
});
});
}
})
.catch((error) => {
console.error(' Error in fetch handler:', error);
throw error;
});
})
);
});
+1493
View File
File diff suppressed because it is too large Load Diff
-3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+29 -24
View File
@@ -1,26 +1,31 @@
normalize.css@8.0.1 https://github.com/necolas/normalize.css
fontawesome-free@5.13.0 https://fontawesome.com/
simple-icons@2.14.0 https://github.com/simple-icons/simple-icons
animate.css@3.7.2 https://github.com/daneden/animate.css
smooth-scroll@16.1.3 https://github.com/cferdinandi/smooth-scroll
autocomplete.js@0.37.1 https://github.com/algolia/autocomplete.js
lunr.js@2.3.8 https://lunrjs.com/
algoliasearch@4.2.0 https://github.com/algolia/algoliasearch-client-javascript
lazysizes@5.2.2 https://github.com/aFarkas/lazysizes
object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
twemoji@13.0.0 https://github.com/twitter/twemoji
lightgallery.js@1.2.0 https://github.com/sachinchoolur/lightgallery.js
lg-thumbnail.js@1.2.0 https://github.com/sachinchoolur/lg-thumbnail.js
lg-zoom.js@1.2.0 https://github.com/sachinchoolur/lg-zoom.js
clipboard.js@2.0.6 https://github.com/zenorocha/clipboard.js
sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js
typeit@7.0.4 https://github.com/alexmacarthur/typeit
katex@0.11.1 https://katex.org/
mermaid@8.5.1 https://github.com/knsv/mermaid
echarts@4.8.0 https://echarts.apache.org/
mapbox-gl@1.10.1 https://github.com/mapbox/mapbox-gl-js
algoliasearch@4.13.0 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
meting@2.0.1 https://github.com/metowolf/MetingJS
gitalk@1.6.2 https://github.com/gitalk/gitalk
valine@1.4.14 https://valine.js.org/
artalk@2.3.4 https://github.com/ArtalkJS/Artalk
autocomplete.js@0.38.1 https://github.com/algolia/autocomplete.js
cell-watermark@1.0.3 https://github.com/Lruihao/watermark
cookieconsent@3.1.1 https://github.com/osano/cookieconsent
crypto-js@4.1.1 https://github.com/brix/crypto-js
echarts@5.3.2 https://github.com/apache/echarts
eruda@2.5.0 https://github.com/liriliri/eruda
fontawesome-free@6.1.1 https://github.com/FortAwesome/Font-Awesome
gitalk@1.7.2 https://github.com/gitalk/gitalk
katex@0.15.3 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
lunr.js@2.3.9 https://github.com/olivernn/lunr.js
mapbox-gl@2.8.2 https://github.com/mapbox/mapbox-gl-js
mermaid@8.13.3 https://github.com/knsv/mermaid
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
pangu.js@4.0.7 https://github.com/vinta/pangu.js
sharer.js@0.5.1 https://github.com/ellisonleao/sharer.js
simple-icons@5.21.1 https://github.com/simple-icons/simple-icons
twemoji@14.0.2 https://github.com/twitter/twemoji
typeit@7.0.4 https://github.com/alexmacarthur/typeit
valine@1.5.0 https://github.com/xCss/Valine
vconsole@3.14.6 https://github.com/Tencent/vConsole
waline@2.6.1 https://github.com/walinejs/waline
File diff suppressed because one or more lines are too long
+5 -9
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
(function(e,t){"function"==typeof define&&define.amd?define([],t()):"object"==typeof module&&module.exports?module.exports=t():e.Watermark=t()})(this,function(){function e(t={}){var n=e.prototype;this.options=t,s(this),d(this,this.options),h(this),p(this),n.upload=function(e){if(e){o.disconnect(),i.disconnect(),this.options.content=e;for(const t of this._container.querySelectorAll(".cell-watermark"))t.innerHTML=e;o.observe(this._container.parentNode,{childList:!0,subtree:!0}),i.observe(this._container,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}},n.render=function(e={}){l(this,Object.assign(this.options,e))},n.destroy=function(){i.disconnect(),o.disconnect(),window.removeEventListener("resize",r),this._container.parentNode.removeChild(this._container)}}var t,n,i,o,r,c=window.outerWidth,a=window.outerHeight,s=function(e){e._container=document.createElement("div"),e._container.classList.add("cell-watermark-container"),e._container.style.cssText="display: block; pointer-events: none;",e._container.setAttribute("aria-hidden",!0),t=document.querySelector(e.options.appendTo)||document.body,t.appendChild(e._container)},d=function(e,t){t.rowSpacing=t.rowSpacing||60,t.colSpacing=t.colSpacing||30,t.width=t.width||150,t.height=t.height||20;let i=parseInt(a/(t.height+t.rowSpacing)),o=parseInt(c/(t.width+t.colSpacing)),r=(c-t.width*o-t.colSpacing*(o-1))/2,s=(a-t.height*i-t.rowSpacing*(i-1))/2,d=document.createElement("div");d.classList.add("cell-watermark"),d.style.cssText="transform: rotate(15deg); opacity: 0.1; font-size: 0.85rem; text-align: center;position: fixed; user-select: none; word-break: break-all; overflow: hidden; z-index: 999999;";for(let n=0;n<i;n++){let i=s+(t.rowSpacing+t.height)*n,c=o;n%2!=0&&c++;for(let n=0;n<c;n++){let a=r+(t.colSpacing+t.width)*n;c!==o&&(a-=(t.colSpacing+t.width)/2);let s=d.cloneNode();s.style.cssText+=`left: ${a}px; top: ${i}px; width: ${t.width}px; height: ${t.height}px`,s.style.transform=`rotate(${t.rotate}deg)`,s.style.opacity=t.opacity,s.style.fontSize=`${t.fontSize}rem`,s.style.fontFamily=t.fontFamily,s.innerHTML=t.content,e._container.appendChild(s)}}n=e._container},l=function(e,t){i.disconnect(),e._container.innerHTML="",d(e,t),i.observe(e._container,{attributes:!0,childList:!0,characterData:!0,subtree:!0})},h=function(e){i=new MutationObserver(function(t,n){l(e,e.options)}),i.observe(e._container,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),o=new MutationObserver(function(e){for(let i of e)"childList"===i.type&&i.removedNodes.length>0&&0===document.querySelectorAll(".cell-watermark-container").length&&t.appendChild(n)}),o.observe(e._container.parentNode,{childList:!0,subtree:!0})},p=function(e){r=function(){window.outerHeight===a&&window.outerWidth===c||(a=window.outerHeight,c=window.outerWidth,l(e,e.options))},window.addEventListener("resize",r)};return e});
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;
}));
+45 -22
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'));
} 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);
});
+7
View File
@@ -0,0 +1,7 @@
/**
* Minified by jsDelivr using Terser v5.10.0.
* Original file: /npm/echarts@5.3.2/theme/macarons.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
!function(e,o){"function"==typeof define&&define.amd?define(["exports","echarts"],o):"object"==typeof exports&&"string"!=typeof exports.nodeName?o(exports,require("echarts/lib/echarts")):o({},e.echarts)}(this,(function(e,o){var l;if(!o)return l="ECharts is not Loaded",void("undefined"!=typeof console&&console&&console.error&&console.error(l));var r=["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],t={color:r,title:{textStyle:{fontWeight:"normal",color:"#008acd"}},visualMap:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{iconStyle:{normal:{borderColor:r[0]}}},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{color:"#008acd",borderColor:"#008acd"},symbol:"emptyCircle",symbolSize:3},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},candlestick:{itemStyle:{color:"#d87a80",color0:"#2ec7c9"},lineStyle:{width:1,color:"#d87a80",color0:"#2ec7c9"},areaStyle:{color:"#2ec7c9",color0:"#b6a2de"}},scatter:{symbol:"circle",symbolSize:4},map:{itemStyle:{color:"#ddd"},areaStyle:{color:"#fe994e"},label:{color:"#d87a80"}},graph:{itemStyle:{color:"#d87a80"},linkStyle:{color:"#2ec7c9"}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}}};o.registerTheme("macarons",t)}));
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

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