mirror of
https://github.com/hugo-fixit/FixIt.git
synced 2026-08-31 10:42:41 +00:00
Compare commits
105 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 25e358d920 | |||
| 6cbb89875a | |||
| bcd6987910 | |||
| dd33cabe16 | |||
| 99dc099939 | |||
| de18e91146 | |||
| 537ad1df3f | |||
| 7c836776c0 | |||
| 9894d9900c | |||
| 9d32ba9d9e | |||
| affaea7ecb | |||
| 03e9b119cc | |||
| 3e2484e69b | |||
| 44b63ca817 | |||
| f44d89a52a | |||
| 2a53dbac37 | |||
| 9925af0808 | |||
| 07c40dbc3e | |||
| ec1debab38 | |||
| ee4441c3ea | |||
| 42f811de22 | |||
| f6911c4fd2 | |||
| 9bacfa92f4 | |||
| b3b0e6a4e0 | |||
| df7c7b9e18 | |||
| 419ade9c73 | |||
| 632243e60c | |||
| dc279b4346 | |||
| 26051115cd | |||
| f9a09e4610 | |||
| 2b2bde7ba8 | |||
| 6d9c6f5b93 | |||
| 45c71ef58e | |||
| e39d78965f | |||
| 3dcb3b1a98 | |||
| 906f3463ba | |||
| adf2acd22c | |||
| c021a53d15 | |||
| b067289648 | |||
| c18aac486b | |||
| 4f56a40653 | |||
| 061a3e3e2b | |||
| 44d0c7611d | |||
| cf91f230e8 | |||
| 052d128922 | |||
| 91b583817a | |||
| 9d1ab1a578 | |||
| ca73ca2066 | |||
| 678e2c0053 | |||
| 7e2e1006f1 | |||
| 256f491244 | |||
| 6eaae74708 | |||
| 5c4de3ae21 | |||
| 8db70c5829 | |||
| b4940f46ea | |||
| cbde3f0898 | |||
| 4c9e20b377 | |||
| 1a454de9d2 | |||
| b998371564 | |||
| 9679c3442a | |||
| d908af0a27 | |||
| b1f5515beb | |||
| 069355cc70 | |||
| 6cc4d44ef4 | |||
| 3c4284eb21 | |||
| a985b0e789 | |||
| 70afe3e883 | |||
| efd7b86b67 | |||
| d7c06360c2 | |||
| aa68514546 | |||
| 6b65ca8946 | |||
| 3e6dfc337b | |||
| d82fefa7dd | |||
| f13e95950a | |||
| df7443951b | |||
| 71e855ab08 | |||
| eb0acca980 | |||
| f32402dcdf | |||
| 3e60685d5a | |||
| 3682a2a1d3 | |||
| 4d07d872d5 | |||
| a1e123ac02 | |||
| 6c3c3d7a9a | |||
| a66bc4e0d1 | |||
| b7e9c6166b | |||
| df47c49726 | |||
| c881715c2a | |||
| b32370803b | |||
| 020a8fdbcc | |||
| b06b89cc11 | |||
| ba4b506b2f | |||
| 51bffc18b5 | |||
| 87f0fe68ae | |||
| c2d168c6d1 | |||
| c1b61c7997 | |||
| 5098685763 | |||
| 3c886553db | |||
| 84bca1af4f | |||
| 851b8e48cb | |||
| 89beb8fe4f | |||
| 462506cb92 | |||
| f6ed1ce8fe | |||
| b52b31a0cd | |||
| 12ada20fb8 | |||
| 39e6466d78 |
@@ -4,6 +4,7 @@
|
||||
"handlebarsSetup": ".auto-changelog/setup.js",
|
||||
"sortCommits": "relevance",
|
||||
"commitLimit": false,
|
||||
"ignoreCommitPattern": "\\(ignore\\)",
|
||||
"replaceText": {
|
||||
"^(Feat|feat):": ":sparkles: Feat:",
|
||||
"^(Fix|fix):": ":bug: Fix:",
|
||||
|
||||
@@ -44,7 +44,7 @@ All notable changes to this project will be documented in this file.
|
||||
- {{subject}} [`{{shorthash}}`]({{href}}) by {{githubUser author}}
|
||||
{{/commit-list}}
|
||||
|
||||
- **Full Changelog**: {{href}}
|
||||
**Full Changelog**: {{href}}
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
custom: [
|
||||
"https://paypal.me/Lruihao"
|
||||
]
|
||||
@@ -1,13 +1,9 @@
|
||||
blank_issues_enabled: false
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Questions 问题讨论
|
||||
url: https://github.com/hugo-fixit/FixIt/discussions/new
|
||||
about: Please ask questions in Discussion. 请在讨论中提问。
|
||||
|
||||
- name: 官方 QQ 群
|
||||
url: https://qm.qq.com/cgi-bin/qm/qr?k=awbwdTtSQ_-H5QGzeJxdWgv6JMbNehNM&jump_from=webapi
|
||||
about: '加入 FixIt 主题交流群: 814031017'
|
||||
|
||||
- name: Theme Documentation 主题文档
|
||||
url: https://fixit.lruihao.cn/categories/documentation/
|
||||
url: https://fixit.lruihao.cn/documentation/
|
||||
about: Please read the documentation carefully. 请先仔细阅读主题文档。
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
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
|
||||
uses: peaceiris/actions-hugo@v3
|
||||
with:
|
||||
hugo-version: latest
|
||||
extended: true
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
name: Generate Contribute List
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
contrib-readme-job:
|
||||
runs-on: ubuntu-latest
|
||||
name: A job to automate contribute list in contributors.md file
|
||||
steps:
|
||||
- name: First Contribution Check
|
||||
id: first-check
|
||||
uses: sukki37/first-contribution-check-action@v1.0.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
|
||||
- name: Contribute List
|
||||
uses: akhilmhdh/contributors-readme-action@master
|
||||
if: ${{ steps.first-check.outputs.isNewContributor == 'true' }}
|
||||
with:
|
||||
readme_path: "contributors.md"
|
||||
image_size: 100
|
||||
commit_message: ":busts_in_silhouette: Chore(contributor): contrib-readme-action has updated contributors.md"
|
||||
committer_username: "github-actions[bot]"
|
||||
committer_email: "github-actions[bot]@users.noreply.github.com"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
|
||||
@@ -1,7 +1,7 @@
|
||||
# FixIt Theme | Hugo
|
||||
|
||||
[](https://github.com/hugo-fixit/FixIt/releases)
|
||||
[](https://gohugo.io/)
|
||||
[](https://gohugo.io/)
|
||||
[](/LICENSE)
|
||||
|
||||
👉 English README | [简体中文说明](README.zh-cn.md)
|
||||
@@ -14,19 +14,19 @@ It is based on the original [LoveIt Theme](https://github.com/dillonzq/LoveIt),
|
||||
|
||||
## Getting started
|
||||
|
||||
- [Installation](https://fixit.lruihao.cn/documentation/installation/)
|
||||
- [Getting Started](https://fixit.lruihao.cn/documentation/getting-started/)
|
||||
- [Content Management](https://fixit.lruihao.cn/documentation/content-management/)
|
||||
- [Advanced Usage](https://fixit.lruihao.cn/documentation/advanced/)
|
||||
1. [Installation](https://fixit.lruihao.cn/documentation/installation/)
|
||||
2. [Getting Started](https://fixit.lruihao.cn/documentation/getting-started/)
|
||||
3. [Content Management](https://fixit.lruihao.cn/documentation/content-management/)
|
||||
4. [Advanced Usage](https://fixit.lruihao.cn/documentation/advanced/)
|
||||
|
||||
Alternatively, you can run the [documentation site](https://fixit.lruihao.cn/) locally. For more details, see [hugo-fixit/docs](https://github.com/hugo-fixit/docs).
|
||||
|
||||
## Template repository
|
||||
|
||||
- [hugo-fixit/hugo-fixit-start](https://github.com/hugo-fixit/hugo-fixit-start)
|
||||
- [hugo-fixit/hugo-fixit-start1](https://github.com/hugo-fixit/hugo-fixit-start1)
|
||||
- [hugo-fixit/docs](https://github.com/hugo-fixit/docs)
|
||||
- [Lruihao/hugo-blog](https://github.com/Lruihao/hugo-blog)
|
||||
- [hugo-fixit/hugo-fixit-start](https://github.com/hugo-fixit/hugo-fixit-start/generate)
|
||||
- [hugo-fixit/hugo-fixit-start1](https://github.com/hugo-fixit/hugo-fixit-start1/generate)
|
||||
- [hugo-fixit/docs](https://github.com/hugo-fixit/docs/generate)
|
||||
- [Lruihao/hugo-blog](https://github.com/Lruihao/hugo-blog/generate)
|
||||
|
||||
## Who used FixIt
|
||||
|
||||
@@ -86,11 +86,12 @@ To see this theme in action, here are some [live demo sites](https://fixit.lruih
|
||||
- Extended Markdown syntax for **ruby annotation**
|
||||
- Extended Markdown syntax for **fraction**
|
||||
- **Mathematical formula** supported by [KaTeX](https://katex.org/)
|
||||
- **Diagrams** shortcode supported by [mermaid](https://github.com/knsv/mermaid)
|
||||
- **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/)
|
||||
- **Diagrams** code fences extended and shortcode supported by [mermaid](https://github.com/knsv/mermaid)
|
||||
- **Interactive data visualization** shortcode and code fences extended supported by [ECharts](https://echarts.apache.org/)
|
||||
- **Timeline** code fences extended and shortcode supported
|
||||
- **Mapbox** shortcode supported by [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
- **Music player** shortcode supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
- **Bilibili player** shortcode
|
||||
- **Bilibili player** and **Douyin player** shortcode
|
||||
- Kinds of **admonitions** shortcode
|
||||
- **Custom style** shortcode
|
||||
- **Custom script** shortcode
|
||||
@@ -99,8 +100,13 @@ To see this theme in action, here are some [live demo sites](https://fixit.lruih
|
||||
- **Web Watermark** supported by [cell-watermark](https://github.com/Lruihao/watermark)
|
||||
- **Chinese typesetting** supported by [pangu.js](https://github.com/vinta/pangu.js)
|
||||
- Options to **cache remote image** locally
|
||||
- High **extensibility**
|
||||
- ...
|
||||
|
||||
### Theme Components
|
||||
|
||||
The FixIt theme balances **simplicity** and **extensibility** with extra [Hugo theme components](https://fixit.lruihao.cn/components/) for customization.
|
||||
|
||||
## Multilingual and i18n
|
||||
|
||||
FixIt supports the following languages:
|
||||
@@ -118,30 +124,41 @@ FixIt supports the following languages:
|
||||
- Russian
|
||||
- Romanian
|
||||
- Vietnamese
|
||||
- Hindi
|
||||
- [Contribute with a new language](https://github.com/hugo-fixit/FixIt/pulls)
|
||||
|
||||
[Languages Compatibility](https://fixit.lruihao.cn/documentation/basics/#language-compatibility)
|
||||
|
||||
## [Roadmap](https://github.com/hugo-fixit/FixIt/projects/1)
|
||||
## Community
|
||||
|
||||
## [Changelog](/CHANGELOG.md)
|
||||
All feedback is welcome! Head over to the [discussions][discussions], [Pull requests][pulls] and [issues][issues] tracker.
|
||||
|
||||
## Questions, ideas, bugs, pull requests
|
||||
| Community | Description |
|
||||
| :------------------------- | :------------------------------- |
|
||||
| [Discussions][discussions] | Official GitHub discussion forum |
|
||||
| [FixIt QQ group][qq-group] | Official QQ group: `814031017` |
|
||||
| [Hugo FixIt Planet][zsxq] | Official Knowledge Planet |
|
||||
|
||||
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.
|
||||
[discussions]: https://github.com/hugo-fixit/FixIt/discussions
|
||||
[pulls]: https://github.com/hugo-fixit/FixIt/pulls
|
||||
[issues]: https://github.com/hugo-fixit/FixIt/issues
|
||||
[qq-group]: https://qm.qq.com/cgi-bin/qm/qr?k=awbwdTtSQ_-H5QGzeJxdWgv6JMbNehNM&jump_from=webapi
|
||||
[zsxq]: https://t.zsxq.com/oZYCt
|
||||
|
||||
## Contributing
|
||||
|
||||
- [Roadmap of FixIt](https://github.com/orgs/hugo-fixit/projects/2)
|
||||
|
||||
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for getting started with the contribution.
|
||||
|
||||
Make sure that you follow [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) while contributing and engaging in the discussions.
|
||||
|
||||
**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
|
||||
|
||||
Thanks to all the [contributors](https://github.com/hugo-fixit/FixIt/graphs/contributors) for their support!
|
||||
|
||||
<details>
|
||||
<summary>Thanks to the authors of following resources included in the theme:</summary>
|
||||
|
||||
@@ -204,9 +221,9 @@ Follow [Lruihao](https://github.com/Lruihao "Follow me on GitHub")
|
||||
|
||||
If you enjoy the theme, please consider buying me a coffee ☕️. Thanks!
|
||||
|
||||
- [PayPal](https://paypal.me/Lruihao)
|
||||
- [Alipay](images/alipay.jpg)
|
||||
- [Wechat](images/wechatpay.jpg)
|
||||
- [Alipay](images/alipay.jpg)
|
||||
- [PayPal](https://paypal.me/Lruihao)
|
||||
|
||||
Don't forget to leave a ⭐️ if you like this theme, thanks!
|
||||
|
||||
|
||||
+38
-21
@@ -1,12 +1,12 @@
|
||||
# FixIt 主题 | Hugo
|
||||
|
||||
[](https://github.com/hugo-fixit/FixIt/releases)
|
||||
[](https://gohugo.io/)
|
||||
[](https://gohugo.io/)
|
||||
[](/LICENSE)
|
||||
|
||||
👉 [English README](README.md) | 简体中文说明
|
||||
|
||||
[FixIt](https://github.com/hugo-fixit/FixIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。[]
|
||||
[FixIt](https://github.com/hugo-fixit/FixIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
|
||||
|
||||
它的原型基于 [LoveIt 主题](https://github.com/dillonzq/LoveIt),[KeepIt 主题](https://github.com/Fastbyte01/KeepIt) 和 [LeaveIt 主题](https://github.com/liuzc/LeaveIt)。[^1]
|
||||
|
||||
@@ -14,19 +14,19 @@
|
||||
|
||||
## 主题文档
|
||||
|
||||
- [安装篇](https://fixit.lruihao.cn/zh-cn/documentation/installation/)
|
||||
- [入门篇](https://fixit.lruihao.cn/zh-cn/documentation/getting-started/)
|
||||
- [内容管理](https://fixit.lruihao.cn/zh-cn/documentation/content-management/)
|
||||
- [进阶篇](https://fixit.lruihao.cn/zh-cn/documentation/advanced/)
|
||||
1. [安装篇](https://fixit.lruihao.cn/zh-cn/documentation/installation/)
|
||||
2. [入门篇](https://fixit.lruihao.cn/zh-cn/documentation/getting-started/)
|
||||
3. [内容管理](https://fixit.lruihao.cn/zh-cn/documentation/content-management/)
|
||||
4. [进阶篇](https://fixit.lruihao.cn/zh-cn/documentation/advanced/)
|
||||
|
||||
或者在本地运行 [文档站点](https://fixit.lruihao.cn/zh-cn/),更多细节详见 [hugo-fixit/docs](https://github.com/hugo-fixit/docs)。
|
||||
|
||||
## 模板仓库
|
||||
|
||||
- [hugo-fixit/hugo-fixit-start](https://github.com/hugo-fixit/hugo-fixit-start)
|
||||
- [hugo-fixit/hugo-fixit-start1](https://github.com/hugo-fixit/hugo-fixit-start1)
|
||||
- [hugo-fixit/docs](https://github.com/hugo-fixit/docs)
|
||||
- [Lruihao/hugo-blog](https://github.com/Lruihao/hugo-blog)
|
||||
- [hugo-fixit/hugo-fixit-start](https://github.com/hugo-fixit/hugo-fixit-start/generate)
|
||||
- [hugo-fixit/hugo-fixit-start1](https://github.com/hugo-fixit/hugo-fixit-start1/generate)
|
||||
- [hugo-fixit/docs](https://github.com/hugo-fixit/docs/generate)
|
||||
- [Lruihao/hugo-blog](https://github.com/Lruihao/hugo-blog/generate)
|
||||
|
||||
## 谁在用 FixIt
|
||||
|
||||
@@ -86,11 +86,12 @@
|
||||
- 支持**上标注释**的扩展 Markdown 语法
|
||||
- 支持**分数**的扩展 Markdown 语法
|
||||
- 支持基于 [KaTeX](https://katex.org/) 的**数学公式**
|
||||
- 支持基于 [mermaid](https://github.com/knsv/mermaid) 的**图表** shortcode
|
||||
- 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化** shortcode
|
||||
- 支持基于 [mermaid](https://github.com/knsv/mermaid) 的**图表** 代码块扩展语法和 shortcode
|
||||
- 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化** 代码块扩展语法和 shortcode
|
||||
- 支持 **Timeline** 的代码块扩展语法和 shortcode
|
||||
- 支持基于 [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) 的 **Mapbox** shortcode
|
||||
- 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的**音乐播放器** shortcode
|
||||
- 支持 **Bilibili 视频** shortcode
|
||||
- 支持 **Bilibili 视频** 和 **抖音视频** shortcode
|
||||
- 支持多种**注释**的 shortcode
|
||||
- 支持**自定义样式**的 shortcode
|
||||
- 支持**自定义脚本**的 shortcode
|
||||
@@ -99,8 +100,13 @@
|
||||
- 支持基于 [cell-watermark](https://github.com/Lruihao/watermark) 的**网页水印**
|
||||
- 支持基于 [pangu.js](https://github.com/vinta/pangu.js) 的**中文排版**
|
||||
- 支持本地**缓存远程图床图片**
|
||||
- 高**扩展性**
|
||||
- ……
|
||||
|
||||
### 主题组件
|
||||
|
||||
FixIt 主题旨在在 **简洁性** 和 **可扩展性** 之间取得平衡。为此,我们开发了一系列额外的 [Hugo 主题组件](https://fixit.lruihao.cn/zh-cn/components/) 供用户选择。
|
||||
|
||||
## 多语言和国际化
|
||||
|
||||
FixIt 支持下列语言:
|
||||
@@ -118,34 +124,45 @@ FixIt 支持下列语言:
|
||||
- 俄语
|
||||
- 罗马尼亚语
|
||||
- 越南语
|
||||
- 印地语
|
||||
- [贡献一种新的语言](https://github.com/hugo-fixit/FixIt/pulls)
|
||||
|
||||
[语言兼容性](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics/#language-compatibility)
|
||||
|
||||
## [路线图](https://github.com/hugo-fixit/FixIt/projects/1)
|
||||
## 社区支持
|
||||
|
||||
## [更新日志](/CHANGELOG.md)
|
||||
所有的反馈都是欢迎的!详见 [Discussions][discussions]、[Pull requests][pulls] 和 [Issues][issues]。
|
||||
|
||||
## 问题、想法、bugs 和 PRs
|
||||
| 社区 | 说明 |
|
||||
| :--------------------------- | :---------------------- |
|
||||
| [Discussions][discussions] | 官方 GitHub 讨论区 |
|
||||
| [FixIt 主题交流群][qq-group] | 官方 QQ 群:`814031017` |
|
||||
| [Hugo FixIt 星球][zsxq] | 官方知识星球 |
|
||||
|
||||
所有的反馈都是欢迎的!详见 [议题](https://github.com/hugo-fixit/FixIt/issues) 或者 [讨论](https://github.com/hugo-fixit/FixIt/discussions) 或者加入 QQ 群:`814031017`。
|
||||
[discussions]: https://github.com/hugo-fixit/FixIt/discussions
|
||||
[pulls]: https://github.com/hugo-fixit/FixIt/pulls
|
||||
[issues]: https://github.com/hugo-fixit/FixIt/issues
|
||||
[qq-group]: https://qm.qq.com/cgi-bin/qm/qr?k=awbwdTtSQ_-H5QGzeJxdWgv6JMbNehNM&jump_from=webapi
|
||||
[zsxq]: https://t.zsxq.com/oZYCt
|
||||
|
||||
## 参与贡献
|
||||
|
||||
- [Hugo FixIt 路线图](https://github.com/orgs/hugo-fixit/projects/2)
|
||||
|
||||
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解贡献该项目的基本信息。
|
||||
|
||||
确保在贡献和参与讨论时遵守 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。
|
||||
|
||||
**贡献时,请先通过此存储库上的问题讨论你希望进行的更改,然后再进行实际更改**。
|
||||
|
||||
## [所有贡献者](contributors.md)
|
||||
|
||||
## 镜像
|
||||
|
||||
- Gitee 镜像仓库:<https://gitee.com/lruihao/FixIt>
|
||||
|
||||
## 致谢
|
||||
|
||||
感谢 [所有贡献者](https://github.com/hugo-fixit/FixIt/graphs/contributors) 的支持!
|
||||
|
||||
<details>
|
||||
<summary>FixIt 主题中用到了以下项目,感谢它们的作者:</summary>
|
||||
|
||||
@@ -208,9 +225,9 @@ Follow [Lruihao](https://github.com/Lruihao "在 GitHub 上关注我")
|
||||
|
||||
如果你喜爱这个主题,请考虑给我买杯咖啡 ☕️,谢谢!
|
||||
|
||||
- [PayPal](https://paypal.me/Lruihao)
|
||||
- [支付宝](images/alipay.jpg)
|
||||
- [微信支付](images/wechatpay.jpg)
|
||||
- [支付宝](images/alipay.jpg)
|
||||
- [PayPal](https://paypal.me/Lruihao)
|
||||
|
||||
如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢!
|
||||
|
||||
|
||||
+7
-3
@@ -2,12 +2,16 @@
|
||||
|
||||
## Supported Versions
|
||||
|
||||
| Version | Supported |
|
||||
| :-----------: | :----------------: |
|
||||
| 0.3.x | :white_check_mark: |
|
||||
|
||||
legacy and transitional versions:
|
||||
|
||||
| Version | Supported | LoveIt Compatibility |
|
||||
| :-----------: | :----------------: | :------------------: |
|
||||
| 0.1.x | :x: | :white_check_mark: |
|
||||
| 0.2.x ~ 0.5.x | :x: | :white_check_mark: |
|
||||
| 0.5.x ~ 1.0 | :white_check_mark: | :x: |
|
||||
| > 1.0 | :white_check_mark: | :x: |
|
||||
| 0.2.x | :x: | :white_check_mark: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
||||
+16
-7
@@ -11,7 +11,7 @@ keywords:
|
||||
comment: false
|
||||
---
|
||||
|
||||
<!-- When you set data `friends.yml` in `yourProject/data/` directory, it will be automatically loaded here. -->
|
||||
<!-- The `friends.yml` file placed in the `yourProject/data/` directory will be loaded automatically here. -->
|
||||
|
||||
---
|
||||
|
||||
@@ -19,18 +19,27 @@ comment: false
|
||||
|
||||
## Base info
|
||||
|
||||
```yaml
|
||||
- nickname: Lruihao
|
||||
avatar: https://lruihao.cn/images/avatar.jpg
|
||||
url: https://lruihao.cn
|
||||
description: Lruihao's Note
|
||||
```
|
||||
- avatar: https://lruihao.cn/images/avatar.jpg
|
||||
- url: https://lruihao.cn
|
||||
- description: Lruihao's Note
|
||||
|
||||
## Friendly Reminder
|
||||
|
||||
Comment like this:
|
||||
|
||||
````markdown
|
||||
```yaml
|
||||
- nickname: <your nickname>
|
||||
avatar: <your avatar>
|
||||
url: <your site link>
|
||||
description: <description of your site>
|
||||
```
|
||||
````
|
||||
|
||||
{{< 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)
|
||||
1. If you want to exchange link, please leave a comment as 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.
|
||||
|
||||
|
||||
@@ -40,4 +40,6 @@ repost:
|
||||
# See details front matter: https://fixit.lruihao.cn/documentation/content-management/introduction/#front-matter
|
||||
---
|
||||
|
||||
<!--more-->
|
||||
<!--more-->
|
||||
|
||||
<!-- Place resource files in the current article directory and reference them using relative paths, like this: ``. -->
|
||||
|
||||
@@ -17,21 +17,6 @@ html {
|
||||
}
|
||||
}
|
||||
|
||||
/* scrollbar, only support webkit */
|
||||
::-webkit-scrollbar {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: $selection-color;
|
||||
|
||||
@@ -43,26 +28,8 @@ html {
|
||||
body {
|
||||
background-color: $global-background-color;
|
||||
color: $global-font-color;
|
||||
scrollbar-color: auto;
|
||||
@include overflow-wrap(break-word);
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 0.75rem;
|
||||
height: 0.75rem;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: transparent;
|
||||
background-clip: content-box;
|
||||
border: 2px solid transparent;
|
||||
@include border-radius(0.5rem);
|
||||
}
|
||||
|
||||
&[data-scroll]::-webkit-scrollbar-thumb {
|
||||
background-color: $scrollbar-color;
|
||||
}
|
||||
|
||||
&[data-theme='dark'] {
|
||||
color: $global-font-color-dark;
|
||||
background-color: $global-background-color-dark;
|
||||
@@ -89,6 +56,7 @@ abbr[title] {
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
@import '../_partials/scrollbar';
|
||||
@import '../_partials/mask';
|
||||
@import '../_partials/img';
|
||||
@import '../_partials/icon';
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
@extend .text-secondary;
|
||||
color: var(--#{$prefix}secondary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,11 +47,7 @@
|
||||
|
||||
@each $color, $value in $theme-colors {
|
||||
.text-#{$color} {
|
||||
color: #{$value} !important;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: #{darken($value, 5%)} !important;
|
||||
}
|
||||
color: var(--#{$prefix}#{$color}) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,6 +58,17 @@ header {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.menu-item-divider {
|
||||
list-style: none;
|
||||
margin: 0.25rem 0.5rem;
|
||||
height: 1px;
|
||||
background-color: $menu-border-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: $menu-border-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
list-style: none;
|
||||
|
||||
@@ -262,20 +273,20 @@ header {
|
||||
display: none;
|
||||
top: calc(#{$header-height} - 0.75rem);
|
||||
border-radius: $global-border-radius;
|
||||
border: 1px solid $global-border-color;
|
||||
border: 1px solid $menu-border-color;
|
||||
background-color: $header-background-color;
|
||||
@include transition(box-shadow 0.3s ease);
|
||||
@include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: $header-background-color-dark;
|
||||
border-color: $global-border-color-dark;
|
||||
border-color: $menu-border-color-dark;
|
||||
@include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
height: $header-height*0.5;
|
||||
line-height: $header-height*0.5;
|
||||
height: $submenu-height;
|
||||
line-height: $submenu-height;
|
||||
max-width: 15rem;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
@@ -366,14 +377,11 @@ header {
|
||||
overflow-y: overlay;
|
||||
max-height: 70vh;
|
||||
@include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));
|
||||
@include scrollbar-width(none, 0);
|
||||
|
||||
[data-theme='dark'] & {
|
||||
@include box-shadow(0 0.125rem 0.25rem rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.search-wrapper {
|
||||
display: flex;
|
||||
|
||||
@@ -5,13 +5,31 @@
|
||||
@each $color, $value in $theme-colors {
|
||||
--#{$prefix}#{$color}: #{$value};
|
||||
}
|
||||
@each $color, $value in $theme-colors {
|
||||
--#{$prefix}#{$color}-dark: #{darken($value, 5%)};
|
||||
}
|
||||
|
||||
// Scroll margin top and Stack sticky top related
|
||||
--#{$prefix}scroll-mt: calc(#{$header-height} + #{$global-scroll-margin-top});
|
||||
|
||||
// Set breadcrumb height to 0px if breadcrumb is disabled
|
||||
--#{$prefix}breadcrumb-height: 0px;
|
||||
|
||||
// hr style
|
||||
--#{$prefix}hr-background-color: #{darken($global-border-color, 5%)};
|
||||
--#{$prefix}hr-before-color: #{lighten($single-link-hover-color, 4%)};
|
||||
|
||||
// Scrollbar related variables
|
||||
--#{$prefix}scrollbar-thumb-color: #{$scrollbar-color};
|
||||
--#{$prefix}scrollbar-thumb-hover-color: #{$scrollbar-hover-color};
|
||||
--#{$prefix}scrollbar-track-color: transparent;
|
||||
--#{$prefix}scrollbar-width: thin;
|
||||
--#{$prefix}scrollbar-width-legacy: 12px;
|
||||
}
|
||||
|
||||
// Dark theme
|
||||
[data-theme=dark] {
|
||||
@each $color, $value in $theme-colors {
|
||||
--#{$prefix}#{$color}: #{darken($value, 5%)};
|
||||
}
|
||||
|
||||
--#{$prefix}hr-background-color: #{lighten($global-border-color-dark, 5%)};
|
||||
--#{$prefix}hr-before-color: #{darken($global-link-hover-color-dark, 4%)};
|
||||
}
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
@import '_link';
|
||||
@import '_blur';
|
||||
@import '_details';
|
||||
@import '_scrollbar-width';
|
||||
@import '_z-index';
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
@mixin scrollbar-width($width: thin, $widthLegacy: 12px) {
|
||||
--#{$prefix}scrollbar-width: #{$width};
|
||||
--#{$prefix}scrollbar-width-legacy: #{$widthLegacy};
|
||||
}
|
||||
@@ -15,14 +15,14 @@
|
||||
width: max-content;
|
||||
transform: rotate(30deg);
|
||||
margin-right: 0.25em;
|
||||
@extend .text-danger;
|
||||
color: var(--#{$prefix}danger);
|
||||
}
|
||||
|
||||
.icon-repost {
|
||||
display: inline-block;
|
||||
width: max-content;
|
||||
margin-right: 0.25em;
|
||||
@extend .text-success;
|
||||
color: var(--#{$prefix}success);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,71 +94,101 @@
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
hr {
|
||||
position: relative;
|
||||
height: 1em;
|
||||
background: linear-gradient(to right, var(--#{$prefix}hr-background-color) 50%, transparent 50%);
|
||||
background-size: 10px 2px;
|
||||
background-position: center;
|
||||
background-repeat: repeat-x;
|
||||
border: none;
|
||||
|
||||
&.awesome-hr {
|
||||
margin-block: 0.5em;
|
||||
|
||||
&::before {
|
||||
display: inline-block;
|
||||
font-weight: 600;
|
||||
font-family: 'Font Awesome 6 Free';
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
position: absolute;
|
||||
left: 5%;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
z-index: 1;
|
||||
color: var(--#{$prefix}hr-before-color);
|
||||
content: '\f0c4';
|
||||
font-size: 20px;
|
||||
line-height: 1;
|
||||
transition: left 1s ease-in-out, color 0.3s ease, border-color 0.3s ease;
|
||||
}
|
||||
|
||||
&:hover::before {
|
||||
left: calc(95% - 20px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
> h1,
|
||||
> h2 {
|
||||
font-size: 1.5rem;
|
||||
|
||||
& code {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
font-size: 1.5em;
|
||||
padding-bottom: 0.3em;
|
||||
border-bottom: 1px solid $global-border-color;
|
||||
}
|
||||
|
||||
> h3 {
|
||||
font-size: 1.375rem;
|
||||
|
||||
& code {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
> h4 {
|
||||
font-size: 1.25rem;
|
||||
|
||||
& code {
|
||||
font-size: 1rem;
|
||||
}
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
> h5 {
|
||||
font-size: 1.125rem;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
|
||||
> h6 {
|
||||
font-size: 1rem;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
> .heading-element {
|
||||
display: flex;
|
||||
font-weight: bold;
|
||||
margin: 1.2rem 0;
|
||||
line-height: 1.25;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
|
||||
> h2,
|
||||
> h3,
|
||||
> h4,
|
||||
> h5,
|
||||
> h6 {
|
||||
> .heading-mark::before {
|
||||
content: '|';
|
||||
margin-right: 0.3125rem;
|
||||
color: $single-link-color;
|
||||
code {
|
||||
padding: 0 .2em;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $single-link-color-dark;
|
||||
&:hover,
|
||||
&:target {
|
||||
> .heading-mark {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> h2 > .heading-mark::before {
|
||||
content: '#';
|
||||
> .heading-mark {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
opacity: 0;
|
||||
padding-inline: 0.5rem;
|
||||
transition: all 0.2s ease-in-out;
|
||||
@include link(false, false);
|
||||
|
||||
svg {
|
||||
fill: currentColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
@@ -228,13 +258,10 @@
|
||||
|
||||
.table-wrapper {
|
||||
overflow-x: auto;
|
||||
--#{$prefix}scrollbar-thumb-color: #{$table-background-color};
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
background-color: $table-background-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: $table-background-color-dark;
|
||||
}
|
||||
[data-theme='dark'] & {
|
||||
--#{$prefix}scrollbar-thumb-color: #{$table-background-color-dark};
|
||||
}
|
||||
|
||||
> table {
|
||||
@@ -370,7 +397,7 @@
|
||||
@include link(false, true);
|
||||
}
|
||||
|
||||
sup[id^='fnref:']:has(.footnote-ref) {
|
||||
sup[id^='fnref']:has(.footnote-ref) {
|
||||
padding: 2px 4px;
|
||||
background-color: rgba(238, 238, 238, 0.7);
|
||||
color: #555555;
|
||||
@@ -411,17 +438,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
@import '../_partials/_single/code';
|
||||
@import '../_shortcodes';
|
||||
|
||||
hr {
|
||||
margin-block: 1em;
|
||||
position: relative;
|
||||
border-top: 1px dashed darken($global-border-color, 5%);
|
||||
border-bottom: none;
|
||||
margin-block: 0;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
border-top: 1px dashed lighten($global-border-color-dark, 5%);
|
||||
.footnotes {
|
||||
hr {
|
||||
background-color: var(--#{$prefix}hr-background-color);
|
||||
height: 1px;
|
||||
margin-block: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -443,6 +468,9 @@
|
||||
@include box-shadow(inset 0 -1px 0 $global-border-color-dark);
|
||||
}
|
||||
}
|
||||
|
||||
@import '../_partials/_single/code';
|
||||
@import '../_shortcodes';
|
||||
}
|
||||
|
||||
@import '../_partials/_single/reward';
|
||||
|
||||
@@ -180,8 +180,8 @@ $code-type-map: (
|
||||
"llvm": "LLVM",
|
||||
"lua": "Lua",
|
||||
"mako": "Mako",
|
||||
"md": "markdown",
|
||||
"mkd": "markdown",
|
||||
"md": "Markdown",
|
||||
"mkd": "Markdown",
|
||||
"mason": "Mason",
|
||||
"mathematica": "Mathematica",
|
||||
"mma": "Mathematica",
|
||||
@@ -368,6 +368,6 @@ $code-type-map: (
|
||||
"zed": "Zed",
|
||||
"zig": "Zig",
|
||||
// Custom code type
|
||||
"markdown": "markdown",
|
||||
"markdown": "Markdown",
|
||||
"yml": "YAML"
|
||||
) !default;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/* Modern browsers with `scrollbar-*` support (high priority) */
|
||||
@supports (scrollbar-width: auto) {
|
||||
* {
|
||||
scrollbar-color: var(--#{$prefix}scrollbar-thumb-color) var(--#{$prefix}scrollbar-track-color);;
|
||||
scrollbar-width: var(--#{$prefix}scrollbar-width);
|
||||
}
|
||||
}
|
||||
|
||||
/* Legacy browsers with `::-webkit-scrollbar-*` support */
|
||||
::-webkit-scrollbar {
|
||||
height: var(--#{$prefix}scrollbar-width-legacy);
|
||||
width: var(--#{$prefix}scrollbar-width-legacy);
|
||||
overflow: visible;
|
||||
}
|
||||
::-webkit-scrollbar-button {
|
||||
height: 0;
|
||||
width: 0;
|
||||
}
|
||||
::-webkit-scrollbar-corner {
|
||||
background-color: var(--#{$prefix}scrollbar-track-color);
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: var(--#{$prefix}scrollbar-thumb-color);
|
||||
&:hover {
|
||||
background-color: var(--#{$prefix}scrollbar-thumb-hover-color);
|
||||
}
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: var(--#{$prefix}scrollbar-track-color);
|
||||
}
|
||||
::-webkit-scrollbar-thumb,
|
||||
::-webkit-scrollbar-track {
|
||||
background-clip: padding-box;
|
||||
border: 3px solid transparent;
|
||||
border-radius: 100px;
|
||||
}
|
||||
@@ -58,6 +58,7 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
font-family: $code-font-family;
|
||||
|
||||
.table-wrapper {
|
||||
--#{$prefix}scrollbar-thumb-color: initial;
|
||||
> table,
|
||||
> table thead,
|
||||
> table tr,
|
||||
@@ -78,6 +79,7 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
position: relative;
|
||||
|
||||
.code-header {
|
||||
--#{$prefix}bg-code-header: #{darken($code-background-color, 3%)};
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -87,13 +89,20 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
font-weight: bold;
|
||||
line-height: 1.4em;
|
||||
color: $code-info-color;
|
||||
background-color: darken($code-background-color, 3%);
|
||||
background-color: var(--#{$prefix}bg-code-header);
|
||||
@include border-radius($global-border-radius);
|
||||
@include transition(border-radius 0.2s ease);
|
||||
|
||||
// delayed loading table-wrapper
|
||||
& + .table-wrapper {
|
||||
max-height: 0;
|
||||
@include border-radius(0 0 $global-border-radius $global-border-radius);
|
||||
@include details-transition-open;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
color: $code-info-color-dark;
|
||||
background-color: darken($code-background-color-dark, 6%);
|
||||
--#{$prefix}bg-code-header: #{darken($code-background-color-dark, 3%)};
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@@ -119,6 +128,13 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background-color: var(--#{$prefix}bg-code-header);
|
||||
padding-inline: 1em;
|
||||
max-width: 80%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@include z-index(0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,10 +171,8 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
|
||||
// delayed loading table-wrapper
|
||||
.table-wrapper {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
@include border-radius(0 0 $global-border-radius $global-border-radius);
|
||||
@include details-transition-open;
|
||||
@include border-radius($global-border-radius);
|
||||
}
|
||||
|
||||
table {
|
||||
@@ -217,11 +231,11 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
|
||||
&.open {
|
||||
.code-header {
|
||||
background-color: darken($code-background-color, 6%);
|
||||
--#{$prefix}bg-code-header: #{darken($code-background-color, 6%)};
|
||||
@include border-radius($global-border-radius $global-border-radius 0 0);
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: darken($code-background-color-dark, 3%);
|
||||
--#{$prefix}bg-code-header: #{darken($code-background-color-dark, 6%)};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,12 +362,11 @@ pre:not(.mermaid[data-processed='true']) {
|
||||
}
|
||||
|
||||
.table-wrapper {
|
||||
.highlight,
|
||||
&::-webkit-scrollbar {
|
||||
background-color: #f6f8fa;
|
||||
.highlight {
|
||||
background-color: $code-background-color;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: #2d333b;
|
||||
background-color: $code-background-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
|
||||
.collection-count {
|
||||
flex-shrink: 0;
|
||||
@extend .text-secondary;
|
||||
color: var(--#{$prefix}secondary);
|
||||
}
|
||||
|
||||
.details-icon {
|
||||
@@ -161,10 +161,7 @@
|
||||
list-style: none;
|
||||
overflow-y: scroll;
|
||||
max-height: 60vh;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 0;
|
||||
}
|
||||
@include scrollbar-width(none, 0);
|
||||
|
||||
.collection-item > a::before,
|
||||
.collection-item > span::before {
|
||||
|
||||
@@ -1,73 +1,79 @@
|
||||
/**
|
||||
* 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
|
||||
* GitHub Dark Dimmed
|
||||
* Copyright (c) 2012 - current GitHub, Inc.
|
||||
* Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE)
|
||||
* Maintained by @Lruihao for FixIt theme
|
||||
* Created on 2022-03-01
|
||||
* Updated on 2024-07-14
|
||||
*/
|
||||
& {
|
||||
--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 colors
|
||||
--#{$prefix}color-blob-num: #778491;
|
||||
--#{$prefix}color-blob-code-inner: #c5d1de;
|
||||
// Syntax colors
|
||||
--#{$prefix}color-prettylights-syntax-comment: #768390;
|
||||
--#{$prefix}color-prettylights-syntax-constant: #6cb6ff;
|
||||
--#{$prefix}color-prettylights-syntax-constant-other-reference-link: #96d0ff;
|
||||
--#{$prefix}color-prettylights-syntax-entity: #dcbdfb;
|
||||
--#{$prefix}color-prettylights-syntax-storage-modifier-import: #adbac7;
|
||||
--#{$prefix}color-prettylights-syntax-entity-tag: #8ddb8c;
|
||||
--#{$prefix}color-prettylights-syntax-keyword: #f47067;
|
||||
--#{$prefix}color-prettylights-syntax-string: #96d0ff;
|
||||
--#{$prefix}color-prettylights-syntax-variable: #f69d50;
|
||||
--#{$prefix}color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;
|
||||
--#{$prefix}color-prettylights-syntax-brackethighlighter-angle: #768390;
|
||||
--#{$prefix}color-prettylights-syntax-invalid-illegal-text: #cdd9e5;
|
||||
--#{$prefix}color-prettylights-syntax-invalid-illegal-bg: #922323;
|
||||
--#{$prefix}color-prettylights-syntax-carriage-return-text: #cdd9e5;
|
||||
--#{$prefix}color-prettylights-syntax-carriage-return-bg: #ad2e2c;
|
||||
--#{$prefix}color-prettylights-syntax-string-regexp: #8ddb8c;
|
||||
--#{$prefix}color-prettylights-syntax-markup-list: #eac55f;
|
||||
--#{$prefix}color-prettylights-syntax-markup-heading: #316dca;
|
||||
--#{$prefix}color-prettylights-syntax-markup-italic: #adbac7;
|
||||
--#{$prefix}color-prettylights-syntax-markup-bold: #adbac7;
|
||||
--#{$prefix}color-prettylights-syntax-markup-deleted-text: #ffd8d3;
|
||||
--#{$prefix}color-prettylights-syntax-markup-deleted-bg: #78191b;
|
||||
--#{$prefix}color-prettylights-syntax-markup-inserted-text: #b4f1b4;
|
||||
--#{$prefix}color-prettylights-syntax-markup-inserted-bg: #1b4721;
|
||||
--#{$prefix}color-prettylights-syntax-markup-changed-text: #ffddb0;
|
||||
--#{$prefix}color-prettylights-syntax-markup-changed-bg: #682d0f;
|
||||
--#{$prefix}color-prettylights-syntax-markup-ignored-text: #adbac7;
|
||||
--#{$prefix}color-prettylights-syntax-markup-ignored-bg: #255ab2;
|
||||
--#{$prefix}color-prettylights-syntax-meta-diff-range: #dcbdfb;
|
||||
--#{$prefix}color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;
|
||||
|
||||
.blob-num,
|
||||
.blob-num {
|
||||
color: var(--#{$prefix}color-blob-num);
|
||||
}
|
||||
.blob-code-inner {
|
||||
color: val(--color-fg-default);
|
||||
color: var(--#{$prefix}color-blob-code-inner);
|
||||
}
|
||||
|
||||
.pl-c /* comment, punctuation.definition.comment, string.comment */ {
|
||||
color: var(--color-prettylights-syntax-comment);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-constant);
|
||||
}
|
||||
|
||||
.pl-e /* entity */,
|
||||
.pl-en /* entity.name */ {
|
||||
color: var(--color-prettylights-syntax-entity);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-storage-modifier-import);
|
||||
}
|
||||
|
||||
.pl-ent /* entity.name.tag, markup.quote */ {
|
||||
color: var(--color-prettylights-syntax-entity-tag);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-entity-tag);
|
||||
}
|
||||
|
||||
.pl-k /* keyword, storage, storage.type */ {
|
||||
color: var(--color-prettylights-syntax-keyword);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-keyword);
|
||||
}
|
||||
|
||||
.pl-s /* string */,
|
||||
@@ -77,26 +83,26 @@
|
||||
.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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-string);
|
||||
}
|
||||
|
||||
.pl-v /* variable */,
|
||||
.pl-smw /* sublimelinter.mark.warning */ {
|
||||
color: var(--color-prettylights-syntax-variable);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-invalid-illegal-text);
|
||||
background-color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-carriage-return-text);
|
||||
background-color: var(--#{$prefix}color-prettylights-syntax-carriage-return-bg);
|
||||
}
|
||||
|
||||
.pl-c2::before /* carriage-return */ {
|
||||
@@ -105,65 +111,65 @@
|
||||
|
||||
.pl-sr .pl-cce /* string.regexp constant.character.escape */ {
|
||||
font-weight: bold;
|
||||
color: var(--color-prettylights-syntax-string-regexp);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-string-regexp);
|
||||
}
|
||||
|
||||
.pl-ml /* markup.list */ {
|
||||
color: var(--color-prettylights-syntax-markup-list);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-markup-heading);
|
||||
}
|
||||
|
||||
.pl-mi /* markup.italic */ {
|
||||
font-style: italic;
|
||||
color: var(--color-prettylights-syntax-markup-italic);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-markup-italic);
|
||||
}
|
||||
|
||||
.pl-mb /* markup.bold */ {
|
||||
font-weight: bold;
|
||||
color: var(--color-prettylights-syntax-markup-bold);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-markup-deleted-text);
|
||||
background-color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-markup-inserted-text);
|
||||
background-color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-markup-changed-text);
|
||||
background-color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-markup-ignored-text);
|
||||
background-color: var(--#{$prefix}color-prettylights-syntax-markup-ignored-bg);
|
||||
}
|
||||
|
||||
.pl-mdr /* meta.diff.range */ {
|
||||
font-weight: bold;
|
||||
color: var(--color-prettylights-syntax-meta-diff-range);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-brackethighlighter-angle);
|
||||
}
|
||||
|
||||
.pl-sg /* sublimelinter.gutter-mark */ {
|
||||
color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);
|
||||
color: var(--#{$prefix}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);
|
||||
color: var(--#{$prefix}color-prettylights-syntax-constant-other-reference-link);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,10 +111,7 @@
|
||||
.toc-content {
|
||||
overflow-y: scroll;
|
||||
max-height: calc(100vh - #{2*$header-height});
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 0;
|
||||
}
|
||||
@include scrollbar-width(none, 0);
|
||||
|
||||
&.always-active ul,
|
||||
&.always-active ol {
|
||||
|
||||
@@ -9,14 +9,5 @@
|
||||
}
|
||||
|
||||
--ti-cursor-font-family: #{$global-font-family};
|
||||
--ti-cursor-font-size: #{$global-font-size};
|
||||
--ti-cursor-font-style: normal;
|
||||
--ti-cursor-font-weight: #{$global-font-weight};
|
||||
--ti-cursor-line-height: #{$global-line-height};
|
||||
--ti-cursor-color: #{$global-font-color};
|
||||
--ti-cursor-transform: translateX(0);
|
||||
|
||||
[data-theme='dark'] & {
|
||||
--ti-cursor-color: #{$global-font-color-dark};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
margin: 1rem 0;
|
||||
padding: 0 0.75rem;
|
||||
border-left: .25rem solid;
|
||||
overflow: auto;
|
||||
overflow: hidden;
|
||||
@include border-radius($global-border-radius);
|
||||
|
||||
.admonition-title {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.bilibili {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding-bottom: 75%;
|
||||
margin: 3% auto;
|
||||
height: auto;
|
||||
aspect-ratio: 16 / 9;
|
||||
margin: 1rem auto;
|
||||
text-align: center;
|
||||
|
||||
iframe {
|
||||
|
||||
@@ -76,11 +76,28 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
&icon-globe {
|
||||
&shortcut-icon {
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
flex-shrink: 0;
|
||||
margin-left: 0.25rem;
|
||||
|
||||
&:is(i) {
|
||||
text-align: center;
|
||||
font-size: 3rem;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
&shortcut-image {
|
||||
width: 4rem;
|
||||
height: 4rem !important;
|
||||
flex-shrink: 0;
|
||||
margin-left: 0.25rem;
|
||||
object-fit: cover;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
.douyin {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding-bottom: 60.725%;
|
||||
margin: 1rem auto;
|
||||
text-align: center;
|
||||
|
||||
iframe {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 680px) {
|
||||
.douyin {
|
||||
width: 92%;
|
||||
margin-inline: 4%;
|
||||
padding-bottom: 190%;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
@import '_admonition';
|
||||
@import '_bilibili';
|
||||
@import '_douyin';
|
||||
@import '_cardlink';
|
||||
@import '_center-quote';
|
||||
@import '_echarts';
|
||||
@import '_instagram';
|
||||
@import '_mapbox';
|
||||
@import '_mermaid';
|
||||
@import '_timeline';
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
.#{$prefix}timeline {
|
||||
list-style: none;
|
||||
box-sizing: border-box;
|
||||
overflow: auto;
|
||||
margin: 1rem auto;
|
||||
--timeline-color: #{darken($global-border-color, 5%)};
|
||||
--timeline-circle-color: #FF735A;
|
||||
--timeline-circle-size: 10px;
|
||||
--timeline-width: 2px;
|
||||
|
||||
&[data-animation] {
|
||||
.#{$prefix}timeline-item::before {
|
||||
border-color: var(--timeline-color);
|
||||
animation-name: change-border-color;
|
||||
animation-duration: 0.9s;
|
||||
animation-direction: alternate;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
|
||||
animation-delay: calc(var(--timeline-index) * 0.3s);
|
||||
|
||||
@keyframes change-border-color {
|
||||
to {
|
||||
border-color: var(--timeline-circle-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.#{$prefix}timeline-item {
|
||||
position: relative;
|
||||
padding: 0.5rem 1.75rem;
|
||||
|
||||
@each $color, $value in $theme-colors {
|
||||
&[data-type='#{$color}'] {
|
||||
--timeline-circle-color: var(--#{$prefix}#{$color});
|
||||
}
|
||||
}
|
||||
|
||||
.#{$prefix}timeline-item__timestamp {
|
||||
font-size: 0.8125rem;
|
||||
line-height: 1;
|
||||
color: var(--#{$prefix}secondary);
|
||||
|
||||
&.is-top {
|
||||
margin-bottom: 0.25rem;
|
||||
padding-top: 0.34375rem;
|
||||
}
|
||||
&.is-bottom {
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.#{$prefix}timeline-item__content {
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
&[data-node='dot']::before {
|
||||
background-color: var(--timeline-circle-color) !important;
|
||||
}
|
||||
&[data-size='small']::before {
|
||||
transform: scale(0.8) translateY(-50%);
|
||||
}
|
||||
&[data-size='large']::before {
|
||||
transform: scale(1.2) translateY(-50%);
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 1.25rem;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
width: var(--timeline-circle-size);
|
||||
height: var(--timeline-circle-size);
|
||||
font-size: var(--timeline-circle-size);
|
||||
line-height: var(--timeline-circle-size);
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
border-width: var(--timeline-width);
|
||||
border-style: solid;
|
||||
border-color: var(--timeline-circle-color);
|
||||
background-color: $global-background-color;
|
||||
color: transparent;
|
||||
z-index: 1;
|
||||
|
||||
[data-theme='dark'] & {
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
}
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: calc(var(--timeline-circle-size) / 2 + var(--timeline-width) / 2);
|
||||
width: var(--timeline-width);
|
||||
height: 100%;
|
||||
background-color: var(--timeline-color);
|
||||
}
|
||||
|
||||
[data-theme='dark'] & {
|
||||
--timeline-color: #{darken($global-border-color, 50%)};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -45,10 +45,10 @@ $global-border-color-dark: #363636 !default;
|
||||
|
||||
// ========== Scrollbar ========== //
|
||||
// Color of the scrollbar
|
||||
$scrollbar-color: #87878d !default;
|
||||
$scrollbar-color: #a6a6a6 !default;
|
||||
|
||||
// Color of the hover scrollbar
|
||||
$scrollbar-hover-color: #b1b1ba !default;
|
||||
$scrollbar-hover-color: #7d7d7d !default;
|
||||
// ========== Scrollbar ========== //
|
||||
|
||||
// ========== Selection ========== //
|
||||
@@ -73,6 +73,13 @@ $header-title-font-size: 1.5rem !default;
|
||||
$menu-active-color: #161209 !default;
|
||||
$menu-active-color-dark: #fff !default;
|
||||
|
||||
// Border color of the menu item
|
||||
$menu-border-color: darken($global-border-color, 5%) !default;
|
||||
$menu-border-color-dark: lighten($global-border-color-dark, 5%) !default;
|
||||
|
||||
// Height of the submenu item of desktop header
|
||||
$submenu-height: $header-height * 0.5 !default;
|
||||
|
||||
// Color of the search background
|
||||
$search-background-color: #e9e9e9 !default;
|
||||
$search-background-color-dark: #363636 !default;
|
||||
|
||||
@@ -24,11 +24,11 @@ libFiles:
|
||||
# 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
|
||||
# crypto-js@4.2.0 https://github.com/brix/crypto-js
|
||||
cryptoCoreJS: crypto-js@4.2.0/core.js
|
||||
cryptoEncBase64JS: crypto-js@4.2.0/enc-base64.js
|
||||
cryptoMd5JS: crypto-js@4.2.0/md5.js
|
||||
cryptoSha256JS: crypto-js@4.2.0/sha256.js
|
||||
# echarts@5.3.3 https://github.com/apache/echarts
|
||||
echartsJS: echarts@5.3.3/dist/echarts.min.js
|
||||
# eruda@3.0.1 https://github.com/liriliri/eruda
|
||||
@@ -42,12 +42,12 @@ libFiles:
|
||||
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
|
||||
# instant.page@5.2.0 https://github.com/instantpage/instant.page
|
||||
instantPage: instant.page@5.2.0/instantpage.min.js
|
||||
# katex@0.16.9 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.16.9/dist/contrib/auto-render.min.js
|
||||
katexCopyTexJS: katex@0.16.9/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.16.9/dist/katex.min.css
|
||||
katexJS: katex@0.16.9/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.16.9/dist/contrib/mhchem.min.js
|
||||
# katex@0.16.10 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.16.10/dist/contrib/auto-render.min.js
|
||||
katexCopyTexJS: katex@0.16.10/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.16.10/dist/katex.min.css
|
||||
katexJS: katex@0.16.10/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.16.10/dist/contrib/mhchem.min.js
|
||||
# lightgallery@2.7.2 https://github.com/sachinchoolur/lightgallery
|
||||
lightgalleryCSS: lightgallery@2.7.2/css/lightgallery-bundle.min.css
|
||||
lightgalleryJS: lightgallery@2.7.2/lightgallery.min.js
|
||||
|
||||
+11
-11
@@ -24,11 +24,11 @@ libFiles:
|
||||
# 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
|
||||
# crypto-js@4.2.0 https://github.com/brix/crypto-js
|
||||
cryptoCoreJS: crypto-js@4.2.0/core.js
|
||||
cryptoEncBase64JS: crypto-js@4.2.0/enc-base64.js
|
||||
cryptoMd5JS: crypto-js@4.2.0/md5.js
|
||||
cryptoSha256JS: crypto-js@4.2.0/sha256.js
|
||||
# echarts@5.3.3 https://github.com/apache/echarts
|
||||
echartsJS: echarts@5.3.3/dist/echarts.min.js
|
||||
# eruda@3.0.1 https://github.com/liriliri/eruda
|
||||
@@ -42,12 +42,12 @@ libFiles:
|
||||
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
|
||||
# instant.page@5.2.0 https://github.com/instantpage/instant.page
|
||||
instantPage: instant.page@5.2.0/instantpage.js
|
||||
# katex@0.16.9 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.16.9/dist/contrib/auto-render.min.js
|
||||
katexCopyTexJS: katex@0.16.9/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.16.9/dist/katex.min.css
|
||||
katexJS: katex@0.16.9/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.16.9/dist/contrib/mhchem.min.js
|
||||
# katex@0.16.10 https://github.com/KaTeX/KaTeX
|
||||
katexAutoRenderJS: katex@0.16.10/dist/contrib/auto-render.min.js
|
||||
katexCopyTexJS: katex@0.16.10/dist/contrib/copy-tex.min.js
|
||||
katexCSS: katex@0.16.10/dist/katex.min.css
|
||||
katexJS: katex@0.16.10/dist/katex.min.js
|
||||
katexMhchemJS: katex@0.16.10/dist/contrib/mhchem.min.js
|
||||
# lightgallery@2.7.2 https://github.com/sachinchoolur/lightgallery
|
||||
lightgalleryCSS: lightgallery@2.7.2/css/lightgallery-bundle.min.css
|
||||
lightgalleryJS: lightgallery@2.7.2/lightgallery.min.js
|
||||
|
||||
@@ -14,13 +14,13 @@ linkedin:
|
||||
Icon:
|
||||
Class: fa-brands fa-linkedin fa-fw
|
||||
|
||||
# 003: Twitter
|
||||
# 003: Twitter (X)
|
||||
twitter:
|
||||
Weight: 3
|
||||
Prefix: https://twitter.com/
|
||||
Title: Twitter
|
||||
Title: X
|
||||
Icon:
|
||||
Class: fa-brands fa-twitter fa-fw
|
||||
Class: fa-brands fa-x-twitter fa-fw
|
||||
|
||||
# 004: Instagram
|
||||
instagram:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" version="1.1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" version="1.1" width="16" height="16">
|
||||
<defs>
|
||||
<style>.fixit-ban{opacity:.9;}</style>
|
||||
</defs>
|
||||
|
||||
|
Before Width: | Height: | Size: 1004 B After Width: | Height: | Size: 1.0 KiB |
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 370 391" xml:space="preserve">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 370 391" xml:space="preserve" width="16" height="16">
|
||||
<style type="text/css">
|
||||
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FF4088;stroke:#C9177E;stroke-width:27;}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||
|
||||
|
Before Width: | Height: | Size: 787 B After Width: | Height: | Size: 808 B |
@@ -89,13 +89,13 @@ FixItDecryptor = function (options = {}) {
|
||||
|
||||
const decryptorHandler = () => {
|
||||
const $content = document.querySelector('#content');
|
||||
_validatePassword(this.$el, $content, (password, salt) => {
|
||||
_validatePassword(this.$el, $content, (passwordMD5, salt) => {
|
||||
// cache decryption statistics
|
||||
window.localStorage?.setItem(
|
||||
`fixit-decryptor/#${location.pathname}`,
|
||||
JSON.stringify({
|
||||
expiration: Math.ceil(Date.now() / 1000) + this.options.duration,
|
||||
password,
|
||||
password: passwordMD5,
|
||||
salt,
|
||||
})
|
||||
);
|
||||
@@ -147,7 +147,7 @@ FixItDecryptor = function (options = {}) {
|
||||
const decryptorHandler = () => {
|
||||
const $decryptor = $shortcode.querySelector('.fixit-decryptor-container');
|
||||
const $content = $shortcode.querySelector('[data-password][data-content]');
|
||||
_validatePassword($decryptor, $content, (password, salt) => {
|
||||
_validatePassword($decryptor, $content, (passwordMD5, salt) => {
|
||||
_decryptContent($content, salt, false);
|
||||
});
|
||||
};
|
||||
|
||||
+65
-25
@@ -362,7 +362,15 @@ class FixIt {
|
||||
}
|
||||
}
|
||||
|
||||
initHighlight() {
|
||||
/**
|
||||
* init code wrapper
|
||||
*/
|
||||
initCodeWrapper() {
|
||||
if (!this.config.code) {
|
||||
this.initCopyCode();
|
||||
return
|
||||
}
|
||||
// if markup.highlight.lineNumbersInTable set to false
|
||||
this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), ($preChroma) => {
|
||||
const $chroma = document.createElement('div');
|
||||
$chroma.className = $preChroma.className;
|
||||
@@ -377,7 +385,13 @@ class FixIt {
|
||||
$preChroma.parentElement.replaceChild($chroma, $preChroma);
|
||||
$td.appendChild($preChroma);
|
||||
});
|
||||
this.util.forEach(document.querySelectorAll('.highlight > .chroma:not(:has(.code-header))'), ($chroma) => {
|
||||
// render code header
|
||||
this.util.forEach(document.querySelectorAll('.highlight > .chroma:not([data-init])'), ($chroma) => {
|
||||
$chroma.dataset.init = 'true';
|
||||
if ($chroma.parentElement.classList.contains('no-header')) {
|
||||
this.initCopyCode($chroma);
|
||||
return;
|
||||
}
|
||||
const $codeElements = $chroma.querySelectorAll('pre.chroma > code');
|
||||
if ($codeElements.length) {
|
||||
const $code = $codeElements[$codeElements.length - 1];
|
||||
@@ -437,8 +451,15 @@ class FixIt {
|
||||
$copy.insertAdjacentHTML('afterbegin', '<i class="fa-regular fa-copy fa-fw" aria-hidden="true"></i>');
|
||||
$copy.classList.add('copy');
|
||||
// remove the leading and trailing whitespace of the code string
|
||||
const code = $code.innerText.trim();
|
||||
if (this.config.code.maxShownLines < 0 || code.split('\n').length < this.config.code.maxShownLines + 2) {
|
||||
let code = $code.innerText.trim();
|
||||
// in the details element, the code string cannot be gotten directly.
|
||||
if ($chroma.closest('details') !== null) {
|
||||
const _tempEl = document.createElement('div');
|
||||
_tempEl.appendChild($code.cloneNode(true));
|
||||
code = _tempEl.innerText.trim();
|
||||
}
|
||||
const forceOpen = $chroma.parentElement.dataset.open ? JSON.parse($chroma.parentElement.dataset.open) : void 0;
|
||||
if (forceOpen ?? (this.config.code.maxShownLines < 0 || code.split('\n').length < this.config.code.maxShownLines + 2)) {
|
||||
$chroma.classList.add('open');
|
||||
}
|
||||
$copy.title = this.config.code.copyTitle;
|
||||
@@ -465,20 +486,23 @@ class FixIt {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* init simple copy code when there is no code header
|
||||
* https://github.com/github/clipboard-copy-element
|
||||
* @param {ELement} singleCode single code block
|
||||
*/
|
||||
initCopyCode(singleCode) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
/**
|
||||
* init table of contents
|
||||
*/
|
||||
initToc() {
|
||||
let $tocCore = document.getElementById('TableOfContents');
|
||||
const $tocCore = document.getElementById('TableOfContents');
|
||||
if ($tocCore === null) {
|
||||
return;
|
||||
}
|
||||
// It's a dirty hack to fix the bug of APlayer, see https://github.com/hugo-fixit/FixIt/issues/292
|
||||
if (typeof APlayer === 'function') {
|
||||
const $newTocCore = $tocCore.cloneNode(true);
|
||||
$tocCore.parentElement.replaceChild($newTocCore, $tocCore);
|
||||
$tocCore = $newTocCore;
|
||||
}
|
||||
if (document.getElementById('toc-static').dataset.kept === 'true' || this.util.isTocStatic()) {
|
||||
const $tocContentStatic = document.getElementById('toc-content-static');
|
||||
if ($tocCore.parentElement !== $tocContentStatic) {
|
||||
@@ -549,6 +573,27 @@ class FixIt {
|
||||
}, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* It's a dirty hack to fix the bug of APlayer and smoothScroll.
|
||||
* see https://github.com/hugo-fixit/FixIt/issues/292
|
||||
*/
|
||||
fixTocScroll() {
|
||||
if (typeof APlayer === 'function') {
|
||||
// remove APlayer click event listener of the toc link
|
||||
let $tocCore = document.getElementById('TableOfContents');
|
||||
if ($tocCore) {
|
||||
const $newTocCore = $tocCore.cloneNode(true);
|
||||
$tocCore.parentElement.replaceChild($newTocCore, $tocCore);
|
||||
$tocCore = $newTocCore;
|
||||
}
|
||||
// remove APlayer click event listener of the heading mark
|
||||
this.util.forEach(document.querySelectorAll('.heading-mark'), ($headingMark) => {
|
||||
const $newHeadingMark = $headingMark.cloneNode(true);
|
||||
$headingMark.parentElement.replaceChild($newHeadingMark, $headingMark);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
initMath(target = document.body) {
|
||||
if (this.config.math) {
|
||||
renderMathInElement(target, this.config.math);
|
||||
@@ -854,7 +899,7 @@ class FixIt {
|
||||
const giscusConfig = this.config.comment.giscus;
|
||||
this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {
|
||||
const message = { setConfig: { theme: this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme }};
|
||||
document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
|
||||
document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, giscusConfig.origin);
|
||||
});
|
||||
this.switchThemeEventSet.add(this._giscusOnSwitchTheme);
|
||||
this.giscus2parentMsg = window.addEventListener('message', (event) => {
|
||||
@@ -869,7 +914,7 @@ class FixIt {
|
||||
}
|
||||
|
||||
initCookieconsent() {
|
||||
this.config.cookieconsent && cookieconsent.initialise(this.config.cookieconsent);
|
||||
this.config.cookieconsent && window.cookieconsent?.initialise(this.config.cookieconsent);
|
||||
}
|
||||
|
||||
getSiteTime = () => {
|
||||
@@ -960,7 +1005,7 @@ class FixIt {
|
||||
this.initTwemoji();
|
||||
this.initDetails();
|
||||
this.initLightGallery();
|
||||
this.initHighlight();
|
||||
this.initCodeWrapper();
|
||||
this.initTable();
|
||||
this.initMath();
|
||||
this.initMermaid();
|
||||
@@ -970,6 +1015,7 @@ class FixIt {
|
||||
this.initToc();
|
||||
this.initTocListener();
|
||||
this.initPangu();
|
||||
this.fixTocScroll();
|
||||
this.util.forEach(document.querySelectorAll('.encrypted-hidden'), ($element) => {
|
||||
$element.classList.replace('encrypted-hidden', 'decrypted-shown');
|
||||
});
|
||||
@@ -978,7 +1024,7 @@ class FixIt {
|
||||
this.initTwemoji($content);
|
||||
this.initDetails($content);
|
||||
this.initLightGallery();
|
||||
this.initHighlight();
|
||||
this.initCodeWrapper();
|
||||
this.initTable($content);
|
||||
this.initMath($content);
|
||||
this.initMermaid();
|
||||
@@ -1039,9 +1085,9 @@ class FixIt {
|
||||
return;
|
||||
}
|
||||
window.addEventListener('beforeunload', () => {
|
||||
window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());
|
||||
window.sessionStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());
|
||||
});
|
||||
const scrollTop = Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));
|
||||
const scrollTop = Number(window.sessionStorage?.getItem(`fixit-bookmark/#${location.pathname}`));
|
||||
// If the page opens with a specific hash, just jump out
|
||||
if (scrollTop && location.hash === '') {
|
||||
window.scrollTo({
|
||||
@@ -1087,7 +1133,6 @@ class FixIt {
|
||||
const $fixedButtons = document.querySelector('.fixed-buttons');
|
||||
const $backToTop = document.querySelector('.back-to-top');
|
||||
const $readingProgressBar = document.querySelector('.reading-progress-bar');
|
||||
let scrollTimer = void 0;
|
||||
if (document.body.dataset.headerDesktop === 'auto') {
|
||||
$headers.push(document.getElementById('header-desktop'));
|
||||
}
|
||||
@@ -1106,12 +1151,6 @@ class FixIt {
|
||||
const $mask = document.getElementById('mask');
|
||||
this.newScrollTop = this.util.getScrollTop();
|
||||
const scroll = this.newScrollTop - this.oldScrollTop;
|
||||
// body scrollbar style
|
||||
document.body.toggleAttribute('data-scroll', true);
|
||||
scrollTimer && window.clearTimeout(scrollTimer);
|
||||
scrollTimer = window.setTimeout(() => {
|
||||
document.body.toggleAttribute('data-scroll');
|
||||
}, 500);
|
||||
// header animation
|
||||
this.util.forEach($headers, ($header) => {
|
||||
if (scroll > ACCURACY) {
|
||||
@@ -1206,7 +1245,7 @@ class FixIt {
|
||||
this.initTwemoji();
|
||||
this.initDetails();
|
||||
this.initLightGallery();
|
||||
this.initHighlight();
|
||||
this.initCodeWrapper();
|
||||
this.initTable();
|
||||
this.initMath();
|
||||
this.initMermaid();
|
||||
@@ -1234,6 +1273,7 @@ class FixIt {
|
||||
if (!this.config.encryption?.all) {
|
||||
this.initToc();
|
||||
this.initTocListener();
|
||||
this.fixTocScroll();
|
||||
}
|
||||
this.onScroll();
|
||||
this.onResize();
|
||||
|
||||
Vendored
+2
-2
@@ -5,7 +5,7 @@ artalk@latest https://github.com/ArtalkJS/Artalk
|
||||
autocomplete-js@0.38.1 https://github.com/algolia/autocomplete
|
||||
cell-watermark@1.0.3 https://github.com/Lruihao/watermark
|
||||
cookieconsent@3.1.1 https://github.com/osano/cookieconsent
|
||||
crypto-js@4.1.1 https://github.com/brix/crypto-js
|
||||
crypto-js@4.2.0 https://github.com/brix/crypto-js
|
||||
echarts@5.3.3 https://github.com/apache/echarts
|
||||
TODO update emoji-data to 15.x
|
||||
emoji-data@14.0.0 https://github.com/iamcal/emoji-data
|
||||
@@ -14,7 +14,7 @@ fontawesome-free@6.4.2 https://github.com/FortAwesome/Font-Awesome
|
||||
fusejs@6.6.2 https://github.com/krisk/fuse
|
||||
gitalk@1.7.2 https://github.com/gitalk/gitalk
|
||||
instant.page@5.2.0 https://github.com/instantpage/instant.page
|
||||
katex@0.16.9 https://github.com/KaTeX/KaTeX
|
||||
katex@0.16.10 https://github.com/KaTeX/KaTeX
|
||||
lightgallery@2.7.2 https://github.com/sachinchoolur/lightgallery
|
||||
mapbox-gl@2.10.0 https://github.com/mapbox/mapbox-gl-js
|
||||
meting@2.0.1 https://github.com/metowolf/MetingJS
|
||||
|
||||
Vendored
-8
@@ -48,14 +48,6 @@
|
||||
.aplayer-list {
|
||||
background-color: #212121;
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #bbb;
|
||||
}
|
||||
|
||||
li {
|
||||
color: #fff;
|
||||
border-top-color: #666;
|
||||
|
||||
Vendored
+1
-1
@@ -75,7 +75,7 @@
|
||||
var M_offset_14 = M[offset + 14];
|
||||
var M_offset_15 = M[offset + 15];
|
||||
|
||||
// Working varialbes
|
||||
// Working variables
|
||||
var a = H[0];
|
||||
var b = H[1];
|
||||
var c = H[2];
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var i={};return function(){n.d(i,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,i=0,a=e.length;n<t.length;){var o=t[n];if(i<=0&&t.slice(n,n+a)===e)return n;"\\"===o?n++:"{"===o?i++:"}"===o&&i--,n++}return-1},a=/^\\begin{/,o=function(e,t){for(var n,i=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(i.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=a.test(d)?d:e.slice(t[l].left.length,n);i.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&i.push({type:"text",data:e}),i},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var i=document.createDocumentFragment(),a=0;a<n.length;a++)if("text"===n[a].type)i.appendChild(document.createTextNode(n[a].data));else{var l=document.createElement("span"),d=n[a].data;r.displayMode=n[a].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[a].data+"` with ",e),i.appendChild(document.createTextNode(n[a].rawData));continue}i.appendChild(l)}return i},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n];if(3===i.nodeType){for(var a=i.textContent,o=i.nextSibling,d=0;o&&o.nodeType===Node.TEXT_NODE;)a+=o.textContent,o=o.nextSibling,d++;var s=l(a,r);if(s){for(var f=0;f<d;f++)i.nextSibling.remove();n+=s.childNodes.length-1,t.replaceChild(s,i)}else n+=d}else 1===i.nodeType&&function(){var t=" "+i.className+" ";-1===r.ignoredTags.indexOf(i.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(i,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),i=i.default}()}));
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};return function(){r.d(o,{default:function(){return d}});var e=r(771),t=r.n(e);const n=function(e,t,n){let r=n,o=0;const i=e.length;for(;r<t.length;){const n=t[r];if(o<=0&&t.slice(r,r+i)===e)return r;"\\"===n?r++:"{"===n?o++:"}"===n&&o--,r++}return-1},i=/^\\begin{/;var a=function(e,t){let r;const o=[],a=new RegExp("("+t.map((e=>e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))).join("|")+")");for(;r=e.search(a),-1!==r;){r>0&&(o.push({type:"text",data:e.slice(0,r)}),e=e.slice(r));const a=t.findIndex((t=>e.startsWith(t.left)));if(r=n(t[a].right,e,t[a].left.length),-1===r)break;const l=e.slice(0,r+t[a].right.length),s=i.test(l)?l:e.slice(t[a].left.length,r);o.push({type:"math",data:s,rawData:l,display:t[a].display}),e=e.slice(r+t[a].right.length)}return""!==e&&o.push({type:"text",data:e}),o};const l=function(e,n){const r=a(e,n.delimiters);if(1===r.length&&"text"===r[0].type)return null;const o=document.createDocumentFragment();for(let e=0;e<r.length;e++)if("text"===r[e].type)o.appendChild(document.createTextNode(r[e].data));else{const i=document.createElement("span");let a=r[e].data;n.displayMode=r[e].display;try{n.preProcess&&(a=n.preProcess(a)),t().render(a,i,n)}catch(i){if(!(i instanceof t().ParseError))throw i;n.errorCallback("KaTeX auto-render: Failed to parse `"+r[e].data+"` with ",i),o.appendChild(document.createTextNode(r[e].rawData));continue}o.appendChild(i)}return o},s=function(e,t){for(let n=0;n<e.childNodes.length;n++){const r=e.childNodes[n];if(3===r.nodeType){let o=r.textContent,i=r.nextSibling,a=0;for(;i&&i.nodeType===Node.TEXT_NODE;)o+=i.textContent,i=i.nextSibling,a++;const s=l(o,t);if(s){for(let e=0;e<a;e++)r.nextSibling.remove();n+=s.childNodes.length-1,e.replaceChild(s,r)}else n+=a}else if(1===r.nodeType){const e=" "+r.className+" ";-1===t.ignoredTags.indexOf(r.nodeName.toLowerCase())&&t.ignoredClasses.every((t=>-1===e.indexOf(" "+t+" ")))&&s(r,t)}}};var d=function(e,t){if(!e)throw new Error("No element provided to render");const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},s(e,n)}}(),o=o.default}()}));
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={},t={inline:["$","$"],display:["$$","$$"]};var n=function(e,n){void 0===n&&(n=t);for(var r=e.querySelectorAll(".katex-mathml + .katex-html"),a=0;a<r.length;a++){var o=r[a];o.remove?o.remove():o.parentNode&&o.parentNode.removeChild(o)}for(var i=e.querySelectorAll(".katex-mathml"),l=0;l<i.length;l++){var f=i[l],c=f.querySelector("annotation");c&&(f.replaceWith?f.replaceWith(c):f.parentNode&&f.parentNode.replaceChild(c,f),c.innerHTML=n.inline[0]+c.innerHTML+n.inline[1])}for(var d=e.querySelectorAll(".katex-display annotation"),s=0;s<d.length;s++){var p=d[s];p.innerHTML=n.display[0]+p.innerHTML.substr(n.inline[0].length,p.innerHTML.length-n.inline[0].length-n.inline[1].length)+n.display[1]}return e};function r(e){var t=e instanceof Element?e:e.parentElement;return t&&t.closest(".katex")}return document.addEventListener("copy",(function(e){var t=window.getSelection();if(!t.isCollapsed&&e.clipboardData){var a=e.clipboardData,o=t.getRangeAt(0),i=r(o.startContainer);i&&o.setStartBefore(i);var l=r(o.endContainer);l&&o.setEndAfter(l);var f=o.cloneContents();if(f.querySelector(".katex-mathml")){var c=Array.prototype.map.call(f.childNodes,(function(e){return e instanceof Text?e.textContent:e.outerHTML})).join("");a.setData("text/html",c),a.setData("text/plain",n(f).textContent),e.preventDefault()}}})),e=e.default}()}));
|
||||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={};const t={inline:["$","$"],display:["$$","$$"]};var n=function(e,n){void 0===n&&(n=t);const o=e.querySelectorAll(".katex-mathml + .katex-html");for(let e=0;e<o.length;e++){const t=o[e];t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}const r=e.querySelectorAll(".katex-mathml");for(let e=0;e<r.length;e++){const t=r[e],o=t.querySelector("annotation");o&&(t.replaceWith?t.replaceWith(o):t.parentNode&&t.parentNode.replaceChild(o,t),o.innerHTML=n.inline[0]+o.innerHTML+n.inline[1])}const l=e.querySelectorAll(".katex-display annotation");for(let e=0;e<l.length;e++){const t=l[e];t.innerHTML=n.display[0]+t.innerHTML.substr(n.inline[0].length,t.innerHTML.length-n.inline[0].length-n.inline[1].length)+n.display[1]}return e};function o(e){const t=e instanceof Element?e:e.parentElement;return t&&t.closest(".katex")}return document.addEventListener("copy",(function(e){const t=window.getSelection();if(t.isCollapsed||!e.clipboardData)return;const r=e.clipboardData,l=t.getRangeAt(0),i=o(l.startContainer);i&&l.setStartBefore(i);const a=o(l.endContainer);a&&l.setEndAfter(a);const s=l.cloneContents();if(!s.querySelector(".katex-mathml"))return;const c=Array.prototype.map.call(s.childNodes,(e=>e instanceof Text?e.textContent:e.outerHTML)).join("");r.setData("text/html",c),r.setData("text/plain",n(s).textContent),e.preventDefault()})),e=e.default}()}));
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
-330
@@ -1,330 +0,0 @@
|
||||
# Contributors-Readme
|
||||
## [Contributors](https://github.com/hugo-fixit/FixIt/graphs/contributors)
|
||||
|
||||
<!-- readme: contributors,d-baer -start -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Lruihao">
|
||||
<img src="https://avatars.githubusercontent.com/u/33419593?v=4" width="100;" alt="Lruihao"/>
|
||||
<br />
|
||||
<sub><b>Cell</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/dillonzq">
|
||||
<img src="https://avatars.githubusercontent.com/u/30786232?v=4" width="100;" alt="dillonzq"/>
|
||||
<br />
|
||||
<sub><b>Dillon</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Fastbyte01">
|
||||
<img src="https://avatars.githubusercontent.com/u/16869546?v=4" width="100;" alt="Fastbyte01"/>
|
||||
<br />
|
||||
<sub><b>Giuseppe Pignataro</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Programazing">
|
||||
<img src="https://avatars.githubusercontent.com/u/11393826?v=4" width="100;" alt="Programazing"/>
|
||||
<br />
|
||||
<sub><b>Christopher C. Johnson</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/astropenguin">
|
||||
<img src="https://avatars.githubusercontent.com/u/13254278?v=4" width="100;" alt="astropenguin"/>
|
||||
<br />
|
||||
<sub><b>Akio Taniguchi</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/DaveA-W">
|
||||
<img src="https://avatars.githubusercontent.com/u/6415842?v=4" width="100;" alt="DaveA-W"/>
|
||||
<br />
|
||||
<sub><b>Dave A-W</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/yureiita">
|
||||
<img src="https://avatars.githubusercontent.com/u/26035759?v=4" width="100;" alt="yureiita"/>
|
||||
<br />
|
||||
<sub><b>Abdul Halim Daud</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/psi59">
|
||||
<img src="https://avatars.githubusercontent.com/u/15508203?v=4" width="100;" alt="psi59"/>
|
||||
<br />
|
||||
<sub><b>Sangil Park</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Fedomn">
|
||||
<img src="https://avatars.githubusercontent.com/u/6177727?v=4" width="100;" alt="Fedomn"/>
|
||||
<br />
|
||||
<sub><b>Frank Ma</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Mejituu">
|
||||
<img src="https://avatars.githubusercontent.com/u/36153418?v=4" width="100;" alt="Mejituu"/>
|
||||
<br />
|
||||
<sub><b>Mejituu</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/ctj12461">
|
||||
<img src="https://avatars.githubusercontent.com/u/42143810?v=4" width="100;" alt="ctj12461"/>
|
||||
<br />
|
||||
<sub><b>Justin Chen</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/edte">
|
||||
<img src="https://avatars.githubusercontent.com/u/50194671?v=4" width="100;" alt="edte"/>
|
||||
<br />
|
||||
<sub><b>Edte</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/solarpowerinncr">
|
||||
<img src="https://avatars.githubusercontent.com/u/37186560?v=4" width="100;" alt="solarpowerinncr"/>
|
||||
<br />
|
||||
<sub><b>Solarpowerinncr</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/xueweiwujxw">
|
||||
<img src="https://avatars.githubusercontent.com/u/45992640?v=4" width="100;" alt="xueweiwujxw"/>
|
||||
<br />
|
||||
<sub><b>Xuewei Wu</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/youngxhui">
|
||||
<img src="https://avatars.githubusercontent.com/u/16971804?v=4" width="100;" alt="youngxhui"/>
|
||||
<br />
|
||||
<sub><b>Youngxhui</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Kapusch">
|
||||
<img src="https://avatars.githubusercontent.com/u/9576733?v=4" width="100;" alt="Kapusch"/>
|
||||
<br />
|
||||
<sub><b>Jean-Emmanuel BAILLAT</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/0x020B">
|
||||
<img src="https://avatars.githubusercontent.com/u/106423923?v=4" width="100;" alt="0x020B"/>
|
||||
<br />
|
||||
<sub><b>N0tr00t</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/dogukanerel">
|
||||
<img src="https://avatars.githubusercontent.com/u/19349444?v=4" width="100;" alt="dogukanerel"/>
|
||||
<br />
|
||||
<sub><b>Doğukan Erel</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/devandreacarratta">
|
||||
<img src="https://avatars.githubusercontent.com/u/46504271?v=4" width="100;" alt="devandreacarratta"/>
|
||||
<br />
|
||||
<sub><b>Andrea Carratta</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/cmpsoares91">
|
||||
<img src="https://avatars.githubusercontent.com/u/4914211?v=4" width="100;" alt="cmpsoares91"/>
|
||||
<br />
|
||||
<sub><b>Carlos Manuel Soares</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/AutomationD">
|
||||
<img src="https://avatars.githubusercontent.com/u/1790594?v=4" width="100;" alt="AutomationD"/>
|
||||
<br />
|
||||
<sub><b>Dmitry Kireev</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/thejayhaykid">
|
||||
<img src="https://avatars.githubusercontent.com/u/9452325?v=4" width="100;" alt="thejayhaykid"/>
|
||||
<br />
|
||||
<sub><b>Jake Hayes</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/markdluethje">
|
||||
<img src="https://avatars.githubusercontent.com/u/31922494?v=4" width="100;" alt="markdluethje"/>
|
||||
<br />
|
||||
<sub><b>Mark-Daniel Lüthje</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/mathieu-gilloots">
|
||||
<img src="https://avatars.githubusercontent.com/u/1282351?v=4" width="100;" alt="mathieu-gilloots"/>
|
||||
<br />
|
||||
<sub><b>Mathieu GILLOOTS</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/NicoDreamzZ">
|
||||
<img src="https://avatars.githubusercontent.com/u/12086166?v=4" width="100;" alt="NicoDreamzZ"/>
|
||||
<br />
|
||||
<sub><b>Nico Rügheimer</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/ramrodo">
|
||||
<img src="https://avatars.githubusercontent.com/u/2797052?v=4" width="100;" alt="ramrodo"/>
|
||||
<br />
|
||||
<sub><b>Rodolfo Martínez Vega</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/SilkeHenderickx">
|
||||
<img src="https://avatars.githubusercontent.com/u/28140438?v=4" width="100;" alt="SilkeHenderickx"/>
|
||||
<br />
|
||||
<sub><b>Silke Henderickx</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/stefanoginobili">
|
||||
<img src="https://avatars.githubusercontent.com/u/67482642?v=4" width="100;" alt="stefanoginobili"/>
|
||||
<br />
|
||||
<sub><b>Stefano Ginobili</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/tlereste">
|
||||
<img src="https://avatars.githubusercontent.com/u/12964583?v=4" width="100;" alt="tlereste"/>
|
||||
<br />
|
||||
<sub><b>Thibault Le Reste</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/vanildosouto">
|
||||
<img src="https://avatars.githubusercontent.com/u/1603028?v=4" width="100;" alt="vanildosouto"/>
|
||||
<br />
|
||||
<sub><b>Vanildo Souto Mangueira</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/victor-pogor">
|
||||
<img src="https://avatars.githubusercontent.com/u/24962085?v=4" width="100;" alt="victor-pogor"/>
|
||||
<br />
|
||||
<sub><b>Victor Pogor</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/wtchangdm">
|
||||
<img src="https://avatars.githubusercontent.com/u/1546333?v=4" width="100;" alt="wtchangdm"/>
|
||||
<br />
|
||||
<sub><b>W.T. Chang</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/anup92k">
|
||||
<img src="https://avatars.githubusercontent.com/u/51033013?v=4" width="100;" alt="anup92k"/>
|
||||
<br />
|
||||
<sub><b>Anup</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/codedge">
|
||||
<img src="https://avatars.githubusercontent.com/u/4409904?v=4" width="100;" alt="codedge"/>
|
||||
<br />
|
||||
<sub><b>Holger Lösken</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/hiifong">
|
||||
<img src="https://avatars.githubusercontent.com/u/89133723?v=4" width="100;" alt="hiifong"/>
|
||||
<br />
|
||||
<sub><b>Hiifong</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/nikusaikou">
|
||||
<img src="https://avatars.githubusercontent.com/u/32993922?v=4" width="100;" alt="nikusaikou"/>
|
||||
<br />
|
||||
<sub><b>Niku</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/onisuly">
|
||||
<img src="https://avatars.githubusercontent.com/u/8399827?v=4" width="100;" alt="onisuly"/>
|
||||
<br />
|
||||
<sub><b>Onisuly</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/quyleanh">
|
||||
<img src="https://avatars.githubusercontent.com/u/9365035?v=4" width="100;" alt="quyleanh"/>
|
||||
<br />
|
||||
<sub><b>Quy Le Anh</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/sarathsp06">
|
||||
<img src="https://avatars.githubusercontent.com/u/964542?v=4" width="100;" alt="sarathsp06"/>
|
||||
<br />
|
||||
<sub><b>Sarath Sadasivan Pillai</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/tomaja-linuxo">
|
||||
<img src="https://avatars.githubusercontent.com/u/37209662?v=4" width="100;" alt="tomaja-linuxo"/>
|
||||
<br />
|
||||
<sub><b>Tomaja</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/ziobron">
|
||||
<img src="https://avatars.githubusercontent.com/u/4595135?v=4" width="100;" alt="ziobron"/>
|
||||
<br />
|
||||
<sub><b>Łukasz Ziobroń</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/d-baer">
|
||||
<img src="https://avatars.githubusercontent.com/u/22482986?v=4" width="100;" alt="d-baer"/>
|
||||
<br />
|
||||
<sub><b>D-baer</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!-- readme: contributors,d-baer -end -->
|
||||
|
||||
## Bots
|
||||
|
||||
<!-- readme: bots -start -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/dependabot[bot]">
|
||||
<img src="https://avatars.githubusercontent.com/in/29110?v=4" width="100;" alt="dependabot[bot]"/>
|
||||
<br />
|
||||
<sub><b>dependabot[bot]</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/github-actions[bot]">
|
||||
<img src="https://avatars.githubusercontent.com/in/15368?v=4" width="100;" alt="github-actions[bot]"/>
|
||||
<br />
|
||||
<sub><b>github-actions[bot]</b></sub>
|
||||
</a>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!-- readme: bots -end -->
|
||||
@@ -2,6 +2,12 @@
|
||||
title: My First Post
|
||||
date: 2023-02-20T20:14:22+08:00
|
||||
draft: false
|
||||
categories:
|
||||
- blog
|
||||
collections:
|
||||
- blog
|
||||
tags:
|
||||
- blog
|
||||
---
|
||||
|
||||
A blog (a truncation of "weblog") is an informational website published on the World Wide Web consisting of discrete, often informal diary-style text entries (posts). Posts are typically displayed in reverse chronological order so that the most recent post appears first, at the top of the web page. Until 2009, blogs were usually the work of a single individual,[citation needed] occasionally of a small group, and often covered a single subject or topic. In the 2010s, "multi-author blogs" (MABs) emerged, featuring the writing of multiple authors and sometimes professionally edited. MABs from newspapers, other media outlets, universities, think tanks, advocacy groups, and similar institutions account for an increasing quantity of blog traffic. The rise of Twitter and other "microblogging" systems helps integrate MABs and single-author blogs into the news media. Blog can also be used as a verb, meaning to maintain or add content to a blog.
|
||||
|
||||
+17
-35
@@ -1,48 +1,30 @@
|
||||
# -------------------------------------------------------------------------------------
|
||||
# =====================================================================================
|
||||
# The following is a necessary configuration for the FixIt theme.
|
||||
# =====================================================================================
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Hugo Configuration
|
||||
# See: https://gohugo.io/getting-started/configuration/
|
||||
# -------------------------------------------------------------------------------------
|
||||
|
||||
title = "My Hugo FixIt Site"
|
||||
title = "Hugo FixIt Demo"
|
||||
baseURL = "http://example.org/"
|
||||
# Change the default theme to be use when building the site with Hugo
|
||||
# theme = "FixIt"
|
||||
|
||||
[markup]
|
||||
# Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
|
||||
[markup.highlight]
|
||||
########## necessary configurations ##########
|
||||
# https://github.com/hugo-fixit/FixIt/issues/43
|
||||
codeFences = true
|
||||
lineNos = true
|
||||
lineNumbersInTable = true
|
||||
noClasses = false
|
||||
########## necessary configurations ##########
|
||||
guessSyntax = true
|
||||
# Goldmark is from Hugo 0.60 the default library used for Markdown
|
||||
[markup.goldmark]
|
||||
[markup.goldmark.extensions]
|
||||
definitionList = true
|
||||
footnote = true
|
||||
linkify = true
|
||||
strikethrough = true
|
||||
table = true
|
||||
taskList = true
|
||||
typographer = true
|
||||
[markup.goldmark.renderer]
|
||||
# whether to use HTML tags directly in the document
|
||||
unsafe = true
|
||||
# Table Of Contents settings
|
||||
[markup.tableOfContents]
|
||||
ordered = false
|
||||
startLevel = 2
|
||||
endLevel = 6
|
||||
_merge = "shallow"
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "JSON", "archives"]
|
||||
page = ["HTML", "MarkDown"]
|
||||
section = ["HTML", "RSS"]
|
||||
taxonomy = ["HTML"]
|
||||
term = ["HTML", "RSS"]
|
||||
_merge = "shallow"
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Taxonomies Configuration
|
||||
# See: https://gohugo.io/content-management/taxonomies/#configure-taxonomies
|
||||
# -------------------------------------------------------------------------------------
|
||||
|
||||
[taxonomies]
|
||||
_merge = "shallow"
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Theme Core Configuration
|
||||
|
||||
+1
-1
@@ -10,5 +10,5 @@
|
||||
"https://docs-[A-z0-9]{9}-cell-x\\.vercel\\.app",
|
||||
"http://localhost:[0-9]+"
|
||||
],
|
||||
"defaultCommentOrder": "oldest"
|
||||
"defaultCommentOrder": "newest"
|
||||
}
|
||||
@@ -63,6 +63,8 @@ enableEmoji = true
|
||||
icon = "fa-solid fa-archive"
|
||||
# FixIt 0.2.16 | NEW set menu item type, optional values: ["mobile", "desktop"]
|
||||
type = ""
|
||||
# FixIt 0.3.9 | NEW whether to show the submenu item divider line
|
||||
divided = false
|
||||
[[menu.main]]
|
||||
identifier = "categories"
|
||||
parent = ""
|
||||
@@ -133,7 +135,7 @@ enableEmoji = true
|
||||
[module]
|
||||
[module.hugoVersion]
|
||||
extended = true
|
||||
min = "0.112.0"
|
||||
min = "0.127.0"
|
||||
|
||||
# -------------------------------------------------------------------------------------
|
||||
# Markup related configuration in Hugo
|
||||
@@ -152,18 +154,41 @@ enableEmoji = true
|
||||
########## necessary configurations ##########
|
||||
guessSyntax = true
|
||||
# Goldmark is from Hugo 0.60 the default library used for Markdown
|
||||
# https://gohugo.io/getting-started/configuration-markup/#goldmark
|
||||
[markup.goldmark]
|
||||
duplicateResourceFiles = false
|
||||
[markup.goldmark.extensions]
|
||||
definitionList = true
|
||||
footnote = true
|
||||
linkify = true
|
||||
strikethrough = true
|
||||
linkifyProtocol = 'https'
|
||||
strikethrough = false
|
||||
table = true
|
||||
taskList = true
|
||||
typographer = true
|
||||
# https://gohugo.io/getting-started/configuration-markup/#extras
|
||||
[markup.goldmark.extensions.extras]
|
||||
[markup.goldmark.extensions.extras.delete]
|
||||
enable = true
|
||||
[markup.goldmark.extensions.extras.insert]
|
||||
enable = true
|
||||
[markup.goldmark.extensions.extras.mark]
|
||||
enable = true
|
||||
[markup.goldmark.extensions.extras.subscript]
|
||||
enable = true
|
||||
[markup.goldmark.extensions.extras.superscript]
|
||||
enable = true
|
||||
# TODO passthrough refactor https://gohugo.io/getting-started/configuration-markup/#parserattributeblock
|
||||
# TODO hugo 0.122.0 https://gohugo.io/content-management/mathematics/
|
||||
[markup.goldmark.parser]
|
||||
[markup.goldmark.parser.attribute]
|
||||
block = true
|
||||
title = true
|
||||
[markup.goldmark.renderer]
|
||||
hardWraps = false
|
||||
# whether to use HTML tags directly in the document
|
||||
unsafe = true
|
||||
xhtml = false
|
||||
# Table Of Contents settings
|
||||
[markup.tableOfContents]
|
||||
ordered = false
|
||||
@@ -422,9 +447,6 @@ enableEmoji = true
|
||||
# Footer config
|
||||
[params.footer]
|
||||
enable = true
|
||||
# FixIt 0.2.17 | CHANGED Custom content (HTML format is supported)
|
||||
# For advanced use, see parameter `params.customFilePath.footer`
|
||||
custom = ""
|
||||
# whether to show copyright info
|
||||
copyright = true
|
||||
# whether to show the author
|
||||
@@ -615,6 +637,179 @@ enableEmoji = true
|
||||
Phone = ""
|
||||
Email = ""
|
||||
RSS = true
|
||||
# custom social links like the following
|
||||
# [params.social.twitter]
|
||||
# id = "lruihao"
|
||||
# weight = 3
|
||||
# prefix = "https://twitter.com/"
|
||||
# Title = "Twitter"
|
||||
# [social.twitter.icon]
|
||||
# class = "fa-brands fa-x-twitter fa-fw"
|
||||
|
||||
# TypeIt config
|
||||
[params.typeit]
|
||||
# typing speed between each step (measured in milliseconds)
|
||||
speed = 100
|
||||
# blinking speed of the cursor (measured in milliseconds)
|
||||
cursorSpeed = 1000
|
||||
# character used for the cursor (HTML format is supported)
|
||||
cursorChar = "|"
|
||||
# cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited)
|
||||
duration = -1
|
||||
# FixIt 0.2.18 | NEW whether your strings will continuously loop after completing
|
||||
loop = false
|
||||
|
||||
# FixIt 0.2.15 | NEW Mermaid config
|
||||
[params.mermaid]
|
||||
# For values, see https://mermaid.js.org/config/theming.html#available-themes
|
||||
themes = ["default", "dark"]
|
||||
|
||||
# FixIt 0.2.12 | NEW PanguJS config
|
||||
[params.pangu]
|
||||
# For Chinese writing
|
||||
enable = false
|
||||
selector = "article" # FixIt 0.2.17 | NEW
|
||||
|
||||
# FixIt 0.2.12 | NEW Watermark config
|
||||
# Detail config see https://github.com/Lruihao/watermark#readme
|
||||
[params.watermark]
|
||||
enable = false
|
||||
# watermark's text (HTML format is supported)
|
||||
content = ""
|
||||
# watermark's transparency
|
||||
opacity = 0.1
|
||||
# watermark's width. unit: px
|
||||
width = 150
|
||||
# watermark's height. unit: px
|
||||
height = 20
|
||||
# row spacing of watermarks. unit: px
|
||||
rowSpacing = 60
|
||||
# col spacing of watermarks. unit: px
|
||||
colSpacing = 30
|
||||
# watermark's tangent angle. unit: deg
|
||||
rotate = 15
|
||||
# watermark's fontSize. unit: rem
|
||||
fontSize = 0.85
|
||||
# FixIt 0.2.13 | NEW watermark's fontFamily
|
||||
fontFamily = "inherit"
|
||||
|
||||
# FixIt 0.2.12 | NEW Busuanzi count
|
||||
[params.ibruce]
|
||||
enable = false
|
||||
# Enable in post meta
|
||||
enablePost = false
|
||||
|
||||
# Site verification code config for Google/Bing/Yandex/Pinterest/Baidu/360/Sogou
|
||||
[params.verification]
|
||||
google = ""
|
||||
bing = ""
|
||||
yandex = ""
|
||||
pinterest = ""
|
||||
baidu = ""
|
||||
so = ""
|
||||
sogou = ""
|
||||
|
||||
# Site SEO config
|
||||
[params.seo]
|
||||
# image URL
|
||||
image = ""
|
||||
# thumbnail URL
|
||||
thumbnailUrl = ""
|
||||
|
||||
# Analytics config
|
||||
[params.analytics]
|
||||
enable = false
|
||||
# Google Analytics
|
||||
[params.analytics.google]
|
||||
id = ""
|
||||
# whether to anonymize IP
|
||||
anonymizeIP = true
|
||||
# Fathom Analytics
|
||||
[params.analytics.fathom]
|
||||
id = ""
|
||||
# server url for your tracker if you're self hosting
|
||||
server = ""
|
||||
|
||||
# Cookie consent config
|
||||
[params.cookieconsent]
|
||||
enable = true
|
||||
# text strings used for Cookie consent banner
|
||||
[params.cookieconsent.content]
|
||||
message = ""
|
||||
dismiss = ""
|
||||
link = ""
|
||||
|
||||
# CDN config for third-party library files
|
||||
[params.cdn]
|
||||
# CDN data file name, disabled by default ["jsdelivr.yml", "unpkg.yml", ...]
|
||||
# located in "themes/FixIt/assets/data/cdn/" directory
|
||||
# you can store your own data files in the same path under your project: "assets/data/cdn/"
|
||||
data = ""
|
||||
|
||||
# Compatibility config
|
||||
[params.compatibility]
|
||||
# whether to use Polyfill.io to be compatible with older browsers
|
||||
polyfill = false
|
||||
# whether to use object-fit-images to be compatible with older browsers
|
||||
objectFit = false
|
||||
|
||||
# FixIt 0.2.14 | NEW GitHub banner in the top-right or top-left corner
|
||||
[params.githubCorner]
|
||||
enable = false
|
||||
permalink = "https://github.com/hugo-fixit/FixIt"
|
||||
title = "View source on GitHub"
|
||||
position = "right" # ["left", "right"]
|
||||
|
||||
# FixIt 0.2.14 | NEW Gravatar config
|
||||
[params.gravatar]
|
||||
# FixIt 0.2.18 | NEW Depends on the author's email, if the author's email is not set, the local avatar will be used
|
||||
enable = false
|
||||
# Gravatar host, default: "www.gravatar.com"
|
||||
host = "www.gravatar.com" # ["cravatar.cn", "gravatar.loli.net", ...]
|
||||
style = "" # ["", "mp", "identicon", "monsterid", "wavatar", "retro", "blank", "robohash"]
|
||||
|
||||
# FixIt 0.2.16 | NEW Back to top
|
||||
[params.backToTop]
|
||||
enable = true
|
||||
# Scroll percent label in b2t button
|
||||
scrollpercent = false
|
||||
|
||||
# FixIt 0.2.16 | NEW Reading progress bar
|
||||
[params.readingProgress]
|
||||
enable = false
|
||||
# Available values: ["left", "right"]
|
||||
start = "left"
|
||||
# Available values: ["top", "bottom"]
|
||||
position = "top"
|
||||
reversed = false
|
||||
light = ""
|
||||
dark = ""
|
||||
height = "2px"
|
||||
|
||||
# FixIt 0.2.17 | NEW Progress bar in the top during page loading.
|
||||
# For more information: https://github.com/CodeByZach/pace
|
||||
[params.pace]
|
||||
enable = false
|
||||
# All available colors:
|
||||
# ["black", "blue", "green", "orange", "pink", "purple", "red", "silver", "white", "yellow"]
|
||||
color = "blue"
|
||||
# All available themes:
|
||||
# ["barber-shop", "big-counter", "bounce", "center-atom", "center-circle", "center-radar", "center-simple",
|
||||
# "corner-indicator", "fill-left", "flash", "flat-top", "loading-bar", "mac-osx", "material", "minimal"]
|
||||
theme = "minimal"
|
||||
|
||||
# FixIt 0.2.15 | NEW Developer options
|
||||
# Select the scope named `public_repo` to generate personal access token,
|
||||
# Configure with environment variable `HUGO_PARAMS_GHTOKEN=xxx`, see https://gohugo.io/functions/os/getenv/#examples
|
||||
[params.dev]
|
||||
enable = false
|
||||
# Check for updates
|
||||
c4u = false
|
||||
# Mobile Devtools config
|
||||
[params.dev.mDevtools]
|
||||
enable = false
|
||||
# "vConsole", "eruda" supported
|
||||
type = "vConsole"
|
||||
|
||||
# Page config
|
||||
[params.page]
|
||||
@@ -630,8 +825,9 @@ enableEmoji = true
|
||||
hiddenFromRelated = false
|
||||
# whether to enable twemoji
|
||||
twemoji = false
|
||||
# whether to enable lightgallery
|
||||
# FixIt 0.2.18 | CHANGED if set to "force", images in the content will be forced to shown as the gallery.
|
||||
# FixIt 0.2.18 | CHANGED whether to enable lightgallery
|
||||
# set to true, images in the content will be shown as the gallery if the image has a title, e.g. 
|
||||
# set to "force", images in the content will be forced to shown as the gallery regardless of the image has a title or not, e.g. 
|
||||
lightgallery = false
|
||||
# whether to enable the ruby extended syntax
|
||||
ruby = true
|
||||
@@ -694,6 +890,8 @@ enableEmoji = true
|
||||
closeComment = false
|
||||
# FixIt 0.3.0 | NEW page heading config
|
||||
[params.page.heading]
|
||||
# FixIt 0.3.3 | NEW whether to capitalize automatic text of headings
|
||||
capitalize = false
|
||||
# used with `markup.tableOfContents.ordered` parameter
|
||||
[params.page.heading.number]
|
||||
# whether to enable auto heading numbering
|
||||
@@ -720,11 +918,13 @@ enableEmoji = true
|
||||
copyTex = true
|
||||
# KaTeX extension mhchem
|
||||
mhchem = true
|
||||
# Code config
|
||||
# Code wrapper config
|
||||
[params.page.code]
|
||||
# whether to show the copy button of the code block
|
||||
# FixIt 0.3.9 | NEW whether to enable the code wrapper
|
||||
enable = true
|
||||
# whether to show the copy button of the code wrapper
|
||||
copy = true
|
||||
# FixIt 0.2.13 | NEW whether to show the edit button of the code block
|
||||
# FixIt 0.2.13 | NEW whether to show the edit button of the code wrapper
|
||||
edit = true
|
||||
# the maximum number of lines of displayed code by default
|
||||
maxShownLines = 10
|
||||
@@ -875,6 +1075,7 @@ enableEmoji = true
|
||||
texRenderer = false # FixIt 0.2.16 | NEW
|
||||
search = false # FixIt 0.2.16 | NEW
|
||||
recaptchaV3Key = "" # FixIt 0.2.16 | NEW
|
||||
turnstileKey = "" # FixIt 0.3.8 | NEW
|
||||
reaction = false # FixIt 0.2.18 | NEW
|
||||
# Facebook comment config (https://developers.facebook.com/docs/plugins/comments)
|
||||
[params.page.comment.facebook]
|
||||
@@ -925,11 +1126,13 @@ enableEmoji = true
|
||||
category = ""
|
||||
categoryId = ""
|
||||
mapping = ""
|
||||
origin = "https://giscus.app" # FixIt NEW | 0.3.7 Or set it to your self-hosted domain
|
||||
strict = "0" # FixIt NEW | 0.2.18
|
||||
term = ""
|
||||
reactionsEnabled = "1"
|
||||
emitMetadata = "0"
|
||||
inputPosition = "bottom" # ["top", "bottom"]
|
||||
lang = ""
|
||||
lightTheme = "light"
|
||||
darkTheme = "dark"
|
||||
lazyLoad = true
|
||||
@@ -953,175 +1156,3 @@ enableEmoji = true
|
||||
[params.page.seo.publisher]
|
||||
name = ""
|
||||
logoUrl = ""
|
||||
|
||||
# TypeIt config
|
||||
[params.typeit]
|
||||
# typing speed between each step (measured in milliseconds)
|
||||
speed = 100
|
||||
# blinking speed of the cursor (measured in milliseconds)
|
||||
cursorSpeed = 1000
|
||||
# character used for the cursor (HTML format is supported)
|
||||
cursorChar = "|"
|
||||
# cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited)
|
||||
duration = -1
|
||||
# FixIt 0.2.18 | NEW whether your strings will continuously loop after completing
|
||||
loop = false
|
||||
|
||||
# FixIt 0.2.15 | NEW Mermaid config
|
||||
[params.mermaid]
|
||||
# For values, see https://mermaid.js.org/config/theming.html#available-themes
|
||||
themes = ["default", "dark"]
|
||||
|
||||
# FixIt 0.2.12 | NEW PanguJS config
|
||||
[params.pangu]
|
||||
# For Chinese writing
|
||||
enable = false
|
||||
selector = "article" # FixIt 0.2.17 | NEW
|
||||
|
||||
# FixIt 0.2.12 | NEW Watermark config
|
||||
# Detail config see https://github.com/Lruihao/watermark#readme
|
||||
[params.watermark]
|
||||
enable = false
|
||||
# watermark's text (HTML format is supported)
|
||||
content = ""
|
||||
# watermark's transparency
|
||||
opacity = 0.1
|
||||
# watermark's width. unit: px
|
||||
width = 150
|
||||
# watermark's height. unit: px
|
||||
height = 20
|
||||
# row spacing of watermarks. unit: px
|
||||
rowSpacing = 60
|
||||
# col spacing of watermarks. unit: px
|
||||
colSpacing = 30
|
||||
# watermark's tangent angle. unit: deg
|
||||
rotate = 15
|
||||
# watermark's fontSize. unit: rem
|
||||
fontSize = 0.85
|
||||
# FixIt 0.2.13 | NEW watermark's fontFamily
|
||||
fontFamily = "inherit"
|
||||
|
||||
# FixIt 0.2.12 | NEW Busuanzi count
|
||||
[params.ibruce]
|
||||
enable = false
|
||||
# Enable in post meta
|
||||
enablePost = false
|
||||
|
||||
# Site verification code config for Google/Bing/Yandex/Pinterest/Baidu/360/Sogou
|
||||
[params.verification]
|
||||
google = ""
|
||||
bing = ""
|
||||
yandex = ""
|
||||
pinterest = ""
|
||||
baidu = ""
|
||||
so = ""
|
||||
sogou = ""
|
||||
|
||||
# Site SEO config
|
||||
[params.seo]
|
||||
# image URL
|
||||
image = ""
|
||||
# thumbnail URL
|
||||
thumbnailUrl = ""
|
||||
|
||||
# Analytics config
|
||||
[params.analytics]
|
||||
enable = false
|
||||
# Google Analytics
|
||||
[params.analytics.google]
|
||||
id = ""
|
||||
# whether to anonymize IP
|
||||
anonymizeIP = true
|
||||
# Fathom Analytics
|
||||
[params.analytics.fathom]
|
||||
id = ""
|
||||
# server url for your tracker if you're self hosting
|
||||
server = ""
|
||||
|
||||
# Cookie consent config
|
||||
[params.cookieconsent]
|
||||
enable = true
|
||||
# text strings used for Cookie consent banner
|
||||
[params.cookieconsent.content]
|
||||
message = ""
|
||||
dismiss = ""
|
||||
link = ""
|
||||
|
||||
# CDN config for third-party library files
|
||||
[params.cdn]
|
||||
# CDN data file name, disabled by default ["jsdelivr.yml", "unpkg.yml", ...]
|
||||
# located in "themes/FixIt/assets/data/cdn/" directory
|
||||
# you can store your own data files in the same path under your project: "assets/data/cdn/"
|
||||
data = ""
|
||||
|
||||
# Compatibility config
|
||||
[params.compatibility]
|
||||
# whether to use Polyfill.io to be compatible with older browsers
|
||||
polyfill = false
|
||||
# whether to use object-fit-images to be compatible with older browsers
|
||||
objectFit = false
|
||||
|
||||
# FixIt 0.2.14 | NEW GitHub banner in the top-right or top-left corner
|
||||
[params.githubCorner]
|
||||
enable = false
|
||||
permalink = "https://github.com/hugo-fixit/FixIt"
|
||||
title = "View source on GitHub"
|
||||
position = "right" # ["left", "right"]
|
||||
|
||||
# FixIt 0.2.14 | NEW Gravatar config
|
||||
[params.gravatar]
|
||||
# FixIt 0.2.18 | NEW Depends on the author's email, if the author's email is not set, the local avatar will be used
|
||||
enable = false
|
||||
# Gravatar host, default: "www.gravatar.com"
|
||||
host = "www.gravatar.com" # ["cn.gravatar.com", "gravatar.loli.net", ...]
|
||||
style = "" # ["", "mp", "identicon", "monsterid", "wavatar", "retro", "blank", "robohash"]
|
||||
|
||||
# FixIt 0.2.16 | NEW Back to top
|
||||
[params.backToTop]
|
||||
enable = true
|
||||
# Scroll percent label in b2t button
|
||||
scrollpercent = false
|
||||
|
||||
# FixIt 0.2.16 | NEW Reading progress bar
|
||||
[params.readingProgress]
|
||||
enable = false
|
||||
# Available values: ["left", "right"]
|
||||
start = "left"
|
||||
# Available values: ["top", "bottom"]
|
||||
position = "top"
|
||||
reversed = false
|
||||
light = ""
|
||||
dark = ""
|
||||
height = "2px"
|
||||
|
||||
# FixIt 0.2.17 | NEW Progress bar in the top during page loading.
|
||||
# For more information: https://github.com/CodeByZach/pace
|
||||
[params.pace]
|
||||
enable = false
|
||||
# All available colors:
|
||||
# ["black", "blue", "green", "orange", "pink", "purple", "red", "silver", "white", "yellow"]
|
||||
color = "blue"
|
||||
# All available themes:
|
||||
# ["barber-shop", "big-counter", "bounce", "center-atom", "center-circle", "center-radar", "center-simple",
|
||||
# "corner-indicator", "fill-left", "flash", "flat-top", "loading-bar", "mac-osx", "material", "minimal"]
|
||||
theme = "minimal"
|
||||
|
||||
# FixIt 0.2.17 | NEW Define custom file paths
|
||||
# Create your custom files in site directory `layouts/partials/custom` and uncomment needed files below
|
||||
[params.customFilePath]
|
||||
# aside = "custom/aside.html"
|
||||
# profile = "custom/profile.html"
|
||||
# footer = "custom/footer.html"
|
||||
|
||||
# FixIt 0.2.15 | NEW Developer options
|
||||
[params.dev]
|
||||
enable = false
|
||||
# Check for updates
|
||||
c4u = false
|
||||
# Please do not expose to public!
|
||||
githubToken = ""
|
||||
# Mobile Devtools config
|
||||
[params.dev.mDevtools]
|
||||
enable = false
|
||||
# "vConsole", "eruda" supported
|
||||
type = "vConsole"
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ quicklyUpgrade = "Quickly upgrade use command: "
|
||||
[baseof]
|
||||
backToTop = "Back to Top"
|
||||
viewComments = "View Comments"
|
||||
noscript = "Theme FixIt works best with JavaScript enabled."
|
||||
noscript = "This website works best with JavaScript enabled."
|
||||
# === baseof ===
|
||||
|
||||
# === Taxonomy ===
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ quicklyUpgrade = "La mise à jour rapide utilise la commande: "
|
||||
[baseof]
|
||||
backToTop = "Retour en Haut"
|
||||
viewComments = "Afficher les Commentaires"
|
||||
noscript = "Le thème FixIt fonctionne mieux quand JavaScript est activé."
|
||||
noscript = "Ce site Web fonctionne mieux quand JavaScript est activé."
|
||||
# === baseof ===
|
||||
|
||||
# === Taxonomy ===
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ quicklyUpgrade = "शीघ्रता से अपग्रेड यह क
|
||||
[baseof]
|
||||
backToTop = "वापस शीर्ष पर"
|
||||
viewComments = "टिप्पणियाँ देखें"
|
||||
noscript = "फिक्सइट थीम जावास्क्रिप्ट सक्षम होने पर सबसे अच्छा काम करता है।"
|
||||
noscript = "यह वेबसाइट जेएस को चालू करके बेहतर काम करती है।"
|
||||
# === baseof ===
|
||||
|
||||
# === Taxonomy ===
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ quicklyUpgrade = "使用命令快速升级:"
|
||||
[baseof]
|
||||
backToTop = "回到顶部"
|
||||
viewComments = "查看评论"
|
||||
noscript = "FixIt 主题在启用 JavaScript 的情况下效果最佳。"
|
||||
noscript = "该网站在启用 JavaScript 的情况下效果最佳。"
|
||||
# === baseof ===
|
||||
|
||||
# === Taxonomy ===
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ quicklyUpgrade = "使用命令快速升級:"
|
||||
[baseof]
|
||||
backToTop = "回到頂部"
|
||||
viewComments = "查看評論"
|
||||
noscript = "FixIt 主題在啟用 JavaScript 的情況下效果最佳。"
|
||||
noscript = "該網站在啟用 JavaScript 的情況下效果最佳。"
|
||||
# === baseof ===
|
||||
|
||||
# === Taxonomy ===
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
{{- dict "Options" .Attributes "Inner" .Inner | partial "plugin/echarts.html" -}}
|
||||
{{- .Page.Store.Set "hasEcharts" true -}}
|
||||
@@ -1,5 +1,2 @@
|
||||
<pre class="mermaid">
|
||||
{{- .Inner | safeHTML }}
|
||||
</pre>
|
||||
<template>{{- .Inner | safeHTML }}</template>
|
||||
{{- dict "Options" .Attributes "Inner" .Inner | partial "plugin/mermaid.html" -}}
|
||||
{{- .Page.Store.Set "hasMermaid" true -}}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{{- dict "Options" .Attributes "Inner" .Inner | partial "plugin/timeline.html" -}}
|
||||
@@ -13,9 +13,7 @@
|
||||
{{- end -}}
|
||||
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading-element">
|
||||
<a href="#{{ .Anchor | safeURL }}" class="heading-mark"></a>
|
||||
|
||||
|
||||
{{- $title := .Text -}}
|
||||
{{- /* Only enable in main section pages */ -}}
|
||||
{{- $onlyMainSection := cond $params.heading.number.onlyMainSection (eq .Page.Type "posts") true -}}
|
||||
{{- if $params.heading.number.enable | and $onlyMainSection -}}
|
||||
@@ -33,7 +31,7 @@
|
||||
{{- $h6 := "6" | index $headingMap | int | string -}}
|
||||
|
||||
{{- /* Apply the level based on the format */ -}}
|
||||
{{- $title := "" -}}
|
||||
{{- $title = "" -}}
|
||||
{{- if .Level | eq 1 -}}
|
||||
{{- $title = $h1Format -}}
|
||||
{{- else if .Level | eq 2 -}}
|
||||
@@ -55,10 +53,13 @@
|
||||
{{- $title = replace $title "{h5}" $h5 -}}
|
||||
{{- $title = replace $title "{h6}" $h6 -}}
|
||||
{{- $title = replace $title "{title}" .Text -}}
|
||||
{{- $title | safeHTML -}}
|
||||
|
||||
{{- else -}}
|
||||
{{- .Text | safeHTML -}}
|
||||
{{- end -}}
|
||||
{{- if $params.heading.capitalize -}}
|
||||
{{- $title = replace $title .PlainText (title .PlainText) -}}
|
||||
{{- end -}}
|
||||
<span>{{ $title | safeHTML }}</span>
|
||||
<a href="#{{ .Anchor | safeURL }}" class="heading-mark">
|
||||
<svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>
|
||||
</a>
|
||||
</h{{ .Level }}>
|
||||
{{- /* EOF */ -}}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{{- partial "init/index.html" . -}}
|
||||
{{- partial "custom.html" . -}}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html itemscope itemtype="http://schema.org/WebPage" lang="{{ .Site.LanguageCode }}">
|
||||
@@ -14,6 +15,8 @@
|
||||
{{- partial "head/meta.html" . -}}
|
||||
{{- partial "head/link.html" . -}}
|
||||
{{- partial "head/seo.html" . -}}
|
||||
{{- /* Custom head */ -}}
|
||||
{{- block "custom-head" . }}{{ end -}}
|
||||
</head>
|
||||
<body data-header-desktop="{{ .Site.Params.header.desktopMode }}" data-header-mobile="{{ .Site.Params.header.mobileMode }}">
|
||||
{{- /* Check theme isDark before body rendering */ -}}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{- define "title" -}}
|
||||
{{- .Params.Title | default (T .Section) | default .Section | dict "Some" | T "allSome" -}}
|
||||
{{- title (.Params.Title | default ((T .Section) | default .Section | dict "Some" | T "allSome")) -}}
|
||||
{{- if .Site.Params.withSiteTitle }} {{ .Site.Params.titleDelimiter }} {{ .Site.Title }}{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -8,8 +8,12 @@
|
||||
<div class="header">
|
||||
{{- /* Title */ -}}
|
||||
<h1 class="single-title animate__animated animate__pulse animate__faster">
|
||||
{{- dict "Class" "fa-solid fa-feather fa-fw me-1" | partial "plugin/icon.html" -}}
|
||||
{{- .Params.Title | default (T .Section) | default .Section | dict "Some" | T "allSome" }} <sup>{{ .Pages.Len }}</sup>
|
||||
{{- $titleIcon := "fa-solid fa-feather" -}}
|
||||
{{- with .Params.titleIcon -}}
|
||||
{{- $titleIcon = . -}}
|
||||
{{- end -}}
|
||||
{{- dict "Class" (add $titleIcon " fa-fw me-1") | partial "plugin/icon.html" -}}
|
||||
{{- title (.Params.Title | default ((T .Section) | default .Section | dict "Some" | T "allSome")) }} <sup>{{ .Pages.Len }}</sup>
|
||||
</h1>
|
||||
{{- /* Total word count */ -}}
|
||||
{{- /* See https://github.com/hugo-fixit/FixIt/issues/124 */ -}}
|
||||
@@ -49,7 +53,7 @@
|
||||
{{- if eq $repost.enable true -}}
|
||||
{{- dict "Class" "fa-solid fa-share fa-fw text-success me-1" | partial "plugin/icon.html" -}}
|
||||
{{- end -}}
|
||||
{{- .LinkTitle -}}
|
||||
{{- title .LinkTitle -}}
|
||||
</a>
|
||||
<span class="archive-item-date" title='{{ "2006-01-02 15:04:05" | .Date.Format }}'>
|
||||
{{- .Date | dateFormat ($.Site.Params.section.dateFormat | default "01-02") -}}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{- define "title" -}}
|
||||
{{- .Title -}}
|
||||
{{- title .Title -}}
|
||||
{{- if .Site.Params.withSiteTitle }} {{ .Site.Params.titleDelimiter }} {{ .Site.Title }}{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<article class="page single special">
|
||||
<div class="header">
|
||||
{{- /* Title */ -}}
|
||||
<h1 class="single-title animate__animated animate__pulse animate__faster">{{- .Title -}}</h1>
|
||||
<h1 class="single-title animate__animated animate__pulse animate__faster">{{- title .Title -}}</h1>
|
||||
|
||||
{{- /* Subtitle */ -}}
|
||||
{{- with $params.subtitle -}}<p class="single-subtitle animate__animated animate__fadeIn">{{ . }}</p>{{- end -}}
|
||||
@@ -17,7 +17,7 @@
|
||||
{{- /* Content */ -}}
|
||||
{{- $content := dict "Content" .Content "Ruby" $params.ruby "Fraction" $params.fraction "Fontawesome" $params.fontawesome | partial "function/content.html" | safeHTML -}}
|
||||
{{- if $params.password -}}
|
||||
{{- $saltLen := strings.RuneCount (trim $params.password "") -}}
|
||||
{{- $saltLen := strings.RuneCount (trim $params.password " ") -}}
|
||||
{{- $saltLen = cond (eq (mod $saltLen 2) 0) (add $saltLen 1) $saltLen -}}
|
||||
{{- $base64EncodeContent := $content | base64Encode -}}
|
||||
{{- $content = printf "%v%v%v"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{{- $params := partial "function/params.html" -}}
|
||||
{{- $author := .Store.Get "author" -}}
|
||||
# {{ .Title }}
|
||||
# {{ title .Title }}
|
||||
|
||||
{{ if $params.password -}}
|
||||
***{{ T "single.encryptedAbstract" }}***
|
||||
_**{{ T "single.encryptedAbstract" }}**_
|
||||
{{- else -}}
|
||||
{{ .RawContent | replaceRE "\n?{{% fixit-encryptor .+ %}}((\n|.)*){{% /fixit-encryptor %}}\n?" "" }}
|
||||
{{- end }}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{{- with $image -}}
|
||||
<div class="featured-image-preview">
|
||||
<a href="{{ $.RelPermalink }}" aria-label="{{ $.Title }}">
|
||||
{{- dict "Src" . "Title" $.Description "Alt" $.Title "Resources" $.Resources | partial "plugin/image.html" -}}
|
||||
{{- dict "Src" . "Title" $.Description "Alt" $.Title "Resources" $.Resources "Width" "50%" "Height" "50%" | partial "plugin/image.html" -}}
|
||||
</a>
|
||||
</div>
|
||||
{{- end -}}
|
||||
@@ -31,7 +31,7 @@
|
||||
<span title="{{ $title }}" class="icon-repost">{{- $icon | partial "plugin/icon.html" -}}</span>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
|
||||
<a href="{{ .RelPermalink }}">{{ title .Title }}</a>
|
||||
</h2>
|
||||
|
||||
{{- /* Meta */ -}}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
{{- /* TODO remove this template */ -}}
|
||||
{{- warnf "The `type:friends` in front matter is deprecated. Use `layout:friends` instead.\n" -}}
|
||||
{{- warnf "Front matter 参数 `type:friends` 已弃用。请改用 `layout:friends`。" -}}
|
||||
{{- define "title" -}}
|
||||
{{- .Title -}}
|
||||
{{- if .Site.Params.withSiteTitle }} {{ .Site.Params.titleDelimiter }} {{ .Site.Title }}{{- end -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- define "content" -}}
|
||||
{{- $params := partial "function/params.html" -}}
|
||||
<article class="page single special friends">
|
||||
<div class="header">
|
||||
{{- /* Title */ -}}
|
||||
<h1 class="single-title animate__animated animate__pulse animate__faster">{{- .Title -}}</h1>
|
||||
{{- /* Subtitle */ -}}
|
||||
{{- with $params.subtitle -}}<p class="single-subtitle animate__animated animate__fadeIn">{{ . }}</p>{{- end -}}
|
||||
</div>
|
||||
|
||||
{{- /* Friend links */ -}}
|
||||
<script src="//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js" async defer></script>
|
||||
<div class="friend-links">
|
||||
{{ range $index, $friend := .Site.Data.friends }}
|
||||
<a class="friend-link" title="{{ $friend.description }}" href="{{ $friend.url | safeURL }}" rel="external noopener noreferrer" target="_blank">
|
||||
{{ if $friend.avatar }}
|
||||
{{- dict "Src" $friend.avatar "Alt" $friend.nickname "Class" "friend-avatar" | partial "plugin/image.html" -}}
|
||||
{{ else }}
|
||||
<svg class="friend-avatar" aria-hidden="true">
|
||||
<use xlink:href="#icon-{{ add 1 $index }}"></use>
|
||||
</svg>
|
||||
{{ end }}
|
||||
<span class="friend-nickname" title="{{ $friend.nickname }}">@{{ $friend.nickname }}</span>
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{- /* Content */ -}}
|
||||
<div class="content" id="content">
|
||||
{{- dict "Content" .Content "Ruby" $params.ruby "Fraction" $params.fraction "Fontawesome" $params.fontawesome | partial "function/content.html" | safeHTML -}}
|
||||
</div>
|
||||
|
||||
{{- /* Comment */ -}}
|
||||
{{- partial "single/comment.html" . -}}
|
||||
</article>
|
||||
{{- end -}}
|
||||
@@ -51,7 +51,8 @@
|
||||
{{- if eq $repost.enable true -}}
|
||||
{{- dict "Class" "fa-solid fa-share fa-fw text-success me-1" | partial "plugin/icon.html" -}}
|
||||
{{- end -}}
|
||||
{{- .LinkTitle -}}
|
||||
{{- /* Use the original title after archiving the articles */ -}}
|
||||
{{- title .Title -}}
|
||||
</a>
|
||||
<span class="archive-item-date" title='{{ "2006-01-02 15:04:05" | .Date.Format }}'>
|
||||
{{- .Date | dateFormat ($.Site.Params.archives.dateFormat | default "01-02") -}}
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{ end }}
|
||||
{{- range .Scratch.Get "mainSectionPages" | first (.Site.Params.home.rss | default 10) -}}
|
||||
{{- $params := partial "function/params.html" -}}
|
||||
{{- /* TODO 0.4.0 待重构为去掉 `.page` 改用 hugo 推荐的 .Param 方法获取页面参数 */ -}}
|
||||
{{- $params := .Params | merge site.Params.page -}}
|
||||
{{- if $params.password | or $params.hiddenFromRss }}{{ continue }}{{ end -}}
|
||||
{{- dict "Page" . "Site" .Site | partial "rss/item.html" -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{- define "title" -}}
|
||||
{{- .Title -}}
|
||||
{{- title .Title -}}
|
||||
{{- if .Site.Params.withSiteTitle }} {{ .Site.Params.titleDelimiter }} {{ .Site.Title }}{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<article class="page single special friends">
|
||||
<div class="header">
|
||||
{{- /* Title */ -}}
|
||||
<h1 class="single-title animate__animated animate__pulse animate__faster">{{- .Title -}}</h1>
|
||||
<h1 class="single-title animate__animated animate__pulse animate__faster">{{- title .Title -}}</h1>
|
||||
{{- /* Subtitle */ -}}
|
||||
{{- with $params.subtitle -}}<p class="single-subtitle animate__animated animate__fadeIn">{{ . }}</p>{{- end -}}
|
||||
</div>
|
||||
@@ -19,7 +19,7 @@
|
||||
{{ range $index, $friend := .Site.Data.friends }}
|
||||
<a class="friend-link" title="{{ $friend.description }}" href="{{ $friend.url | safeURL }}" rel="external noopener noreferrer" target="_blank">
|
||||
{{ if $friend.avatar }}
|
||||
{{- dict "Src" $friend.avatar "Alt" $friend.nickname "Class" "friend-avatar" | partial "plugin/image.html" -}}
|
||||
{{- dict "Src" $friend.avatar "Alt" $friend.nickname "Title" $friend.description "Class" "friend-avatar" | partial "plugin/image.html" -}}
|
||||
{{ else }}
|
||||
<svg class="friend-avatar" aria-hidden="true">
|
||||
<use xlink:href="#icon-{{ add 1 $index }}"></use>
|
||||
|
||||
@@ -51,17 +51,16 @@
|
||||
{{- $config = dict "lightgallery" true | merge $config -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Code wrapper */ -}}
|
||||
{{- $code := $params.code | default dict -}}
|
||||
{{- $config = cond (ne $code.maxShownLines nil) $code.maxShownLines 10 | dict "maxShownLines" | dict "code" | merge $config -}}
|
||||
|
||||
{{- /* edit code */ -}}
|
||||
{{- if ne $code.edit false -}}
|
||||
{{- $config = dict "editable" true "editLockTitle" (T "assets.editLockTitle") "editUnLockTitle" (T "assets.editUnLockTitle") | dict "code" | merge $config -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* copy code */ -}}
|
||||
{{- if ne $code.copy false -}}
|
||||
{{- $config = T "assets.copyToClipboard" | dict "copyTitle" | dict "code" | merge $config -}}
|
||||
{{- if $code.enable -}}
|
||||
{{- $config = $code.maxShownLines | dict "maxShownLines" | dict "code" | merge $config -}}
|
||||
{{- if ne $code.edit false -}}
|
||||
{{- $config = dict "editable" true "editLockTitle" (T "assets.editLockTitle") "editUnLockTitle" (T "assets.editUnLockTitle") | dict "code" | merge $config -}}
|
||||
{{- end -}}
|
||||
{{- if ne $code.copy false -}}
|
||||
{{- $config = T "assets.copyToClipboard" | dict "copyTitle" | dict "code" | merge $config -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Sharer.js */ -}}
|
||||
@@ -124,7 +123,7 @@
|
||||
{{- end -}}
|
||||
|
||||
{{- /* ECharts */ -}}
|
||||
{{- if .HasShortcode "echarts" -}}
|
||||
{{- if .Store.Get "hasEcharts" -}}
|
||||
{{- $source := $cdn.echartsJS | default "lib/echarts/echarts.min.js" -}}
|
||||
{{- dict "Source" $source "Fingerprint" $fingerprint "Defer" true | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}}
|
||||
{{- $lightTheme := resources.Get "lib/echarts/theme/light.yml" | transform.Unmarshal -}}
|
||||
@@ -284,6 +283,9 @@
|
||||
{{- end -}}
|
||||
{{- dict "Source" (resources.Get "js/theme.js") "Build" $options "Fingerprint" $fingerprint "Defer" true | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}}
|
||||
|
||||
{{- /* Custom Assets */ -}}
|
||||
{{- block "custom-assets" . }}{{ end -}}
|
||||
|
||||
{{- /* Custom script */ -}}
|
||||
{{- with ((resources.Get "js/custom.js") | default (resources.Get "js/_custom.js")) -}}
|
||||
{{- $options := dict "targetPath" "js/custom.min.js" "minify" hugo.IsProduction -}}
|
||||
|
||||
@@ -2,11 +2,31 @@
|
||||
<nav aria-label="breadcrumb" class="breadcrumb-container{{ if .Site.Params.breadcrumb.sticky }} sticky{{ end }}">
|
||||
<ol class="breadcrumb">
|
||||
{{- range .Ancestors.Reverse -}}
|
||||
{{- if or .Site.Params.breadcrumb.showHome (not .IsHome) -}}
|
||||
<li class="breadcrumb-item"><a href="{{ .RelPermalink }}" title="{{ with .Description }}{{ . }}{{ else }}{{ if .IsPage | and .Summary }}{{ .Summary }}{{ else }}{{ .LinkTitle }}{{ end }}{{ end }}">{{ cond (and .Site.Params.breadcrumb.showHome .IsHome) (T "single.home") ((lower .LinkTitle | T) | default .LinkTitle) }}</a></li>
|
||||
{{- if .IsHome | and (not .Site.Params.breadcrumb.showHome) -}}
|
||||
{{- continue -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $title := "" -}}
|
||||
{{- with .Description -}}
|
||||
{{- $title = . -}}
|
||||
{{- else -}}
|
||||
{{- $title = title .LinkTitle -}}
|
||||
{{- if .IsPage | and .Summary -}}
|
||||
{{- $title = .Summary -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $innerText := "" -}}
|
||||
{{- if .IsHome -}}
|
||||
{{- $innerText = T "single.home" -}}
|
||||
{{- else -}}
|
||||
{{- $innerText = ((T (add .TranslationKey ".breadcrumbTitle")) | default (lower .LinkTitle | T) | default .LinkTitle) | title -}}
|
||||
{{- end -}}
|
||||
|
||||
<li class="breadcrumb-item"><a href="{{ .RelPermalink }}" title="{{ $title }}">{{ $innerText }}</a></li>
|
||||
{{- end -}}
|
||||
<li class="breadcrumb-item active" aria-current="page">{{ .LinkTitle }}</li>
|
||||
|
||||
<li class="breadcrumb-item active" aria-current="page">{{ (T (add .TranslationKey ".breadcrumbTitle")) | default (lower .LinkTitle | T) | default .LinkTitle | title }}</li>
|
||||
</ol>
|
||||
</nav>
|
||||
{{- end -}}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{{- /*
|
||||
To avoid upgrade conflicts and facilitate the reference of theme components,
|
||||
it's strongly recommended to copy this file from the theme to your project and override it.
|
||||
*/ -}}
|
||||
|
||||
{{- define "custom-head" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom-profile" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom-aside" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom-footer" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom-widgets" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom-assets" -}}
|
||||
{{- end -}}
|
||||
@@ -1 +0,0 @@
|
||||
{{- /* Custom aside html */ -}}
|
||||
@@ -1,6 +0,0 @@
|
||||
{{- /* Custom footer html */ -}}
|
||||
{{- with .Site.Params.footer.custom -}}
|
||||
<div class="footer-line custom">
|
||||
{{- safeHTML . -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
@@ -1 +0,0 @@
|
||||
{{- /* Custom profile html at home page */ -}}
|
||||
@@ -3,8 +3,8 @@
|
||||
{{- if ne $footerConfig.enable false -}}
|
||||
<footer class="footer">
|
||||
<div class="footer-container">
|
||||
{{- /* Custom Content */ -}}
|
||||
{{- partial (.Scratch.Get "customFilePath").footer . -}}
|
||||
{{- /* Custom Footer */ -}}
|
||||
{{- block "custom-footer" . }}{{ end -}}
|
||||
|
||||
{{- /* Powered by Hugo and Theme - FixIt */ -}}
|
||||
{{- if ne $footerConfig.powered.enable false -}}
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
{{- /* cache remote image locally */ -}}
|
||||
{{- $resource := 0 -}}
|
||||
{{- $suffixList := slice ".jpeg" ".jpg" ".png" ".gif" ".bmp" ".tif" ".tiff" ".webp" ".avif" ".svg" -}}
|
||||
{{- $suffixValid := (dict "Path" . "Suffixes" $suffixList | partial "function/suffix-validation.html") -}}
|
||||
{{- $suffixValid := (dict "Path" .Path "Suffixes" $suffixList | partial "function/suffix-validation.html") -}}
|
||||
{{- /* maybe could add domain validation */ -}}
|
||||
{{- $pass := $suffixValid | or .Pass -}}
|
||||
|
||||
{{- if $suffixValid -}}
|
||||
{{- with $remoteResource := resources.GetRemote . -}}
|
||||
{{- if $pass -}}
|
||||
{{- with $remoteResource := resources.GetRemote .Path -}}
|
||||
{{- with .Err -}}
|
||||
{{- warnf "%s" . -}}
|
||||
{{ else }}
|
||||
{{- erroridf "error-get-remote-image" "%s" . -}}
|
||||
{{- else -}}
|
||||
{{- if eq $remoteResource.ResourceType "image" -}}
|
||||
{{- /* placed remote image in public/images/remote/ */ -}}
|
||||
{{- $resource = $remoteResource | resources.Copy (add "/images/remote/" $remoteResource.Name) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- erroridf "error-get-remote-image" "Unable to get remote image %q" .Path -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- return $resource -}}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{{- else -}}
|
||||
{{- $cacheRemoteImages := .CacheRemoteImages | default false -}}
|
||||
{{- if $cacheRemoteImages -}}
|
||||
{{- $resource = partial "function/get-remote-image.html" .Path -}}
|
||||
{{- $resource = partial "function/get-remote-image.html" (dict "Path" .Path) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<a href="{{ $homeRelPermalink }}" title="{{ .Site.Title }}">
|
||||
{{- with .Site.Params.header.title -}}
|
||||
{{- with .logo -}}
|
||||
{{- dict "Src" . "Class" "logo" "Alt" $.Site.Title | partial "plugin/image.html" -}}
|
||||
{{- dict "Src" . "Class" "logo" "Alt" $.Site.Title "Width" 26 "Height" 26 | partial "plugin/image.html" -}}
|
||||
{{- end -}}
|
||||
{{- with .pre -}}
|
||||
<span class="header-title-pre">{{ . | safeHTML }}</span>
|
||||
@@ -58,25 +58,28 @@
|
||||
{{- if .HasChildren -}}
|
||||
{{ dict "Class" "dropdown-icon fa-solid fa-chevron-down" | partial "plugin/icon.html" }}
|
||||
<ul class="sub-menu">
|
||||
{{ range .Children }}
|
||||
{{- $url := .URL | relLangURL -}}
|
||||
{{- with .Page -}}
|
||||
{{- range $k, $v := .Children -}}
|
||||
{{- $url := $v.URL | relLangURL -}}
|
||||
{{- with $v.Page -}}
|
||||
{{- $url = .RelPermalink -}}
|
||||
{{- end -}}
|
||||
{{- if (ne .Params.Draft true) | or $buildDrafts | and (ne .Params.Type "mobile") -}}
|
||||
{{- if (ne $v.Params.Draft true) | or $buildDrafts | and (ne $v.Params.Type "mobile") -}}
|
||||
{{- if $k | and $v.Params.Divided -}}
|
||||
<li class="menu-item-divider" aria-hidden="true"></li>
|
||||
{{- end -}}
|
||||
<li
|
||||
class="menu-item{{ if $.IsMenuCurrent `main` . | or ($.HasMenuCurrent `main` .) | or (eq $.RelPermalink $url) }} active{{ end }}{{ with .Params.Class }} {{ . }}{{ end }}"
|
||||
class="menu-item{{ if $.IsMenuCurrent `main` $v | or ($.HasMenuCurrent `main` $v) | or (eq $.RelPermalink $url) }} active{{ end }}{{ with $v.Params.Class }} {{ . }}{{ end }}"
|
||||
>
|
||||
<a
|
||||
class="menu-link"
|
||||
href="{{ $url }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
{{ with $v.Title }}title="{{ . }}"{{ end }}
|
||||
{{ if (urls.Parse $url).Host }}rel="noopener noreferrer" target="_blank"{{ end }}
|
||||
>
|
||||
{{- with .Pre -}}{{- . | safeHTML }} {{ end }}
|
||||
{{- with .Params.Icon -}}{{ dict "Class" (printf "%v fa-fw fa-sm" .) | partial "plugin/icon.html" }} {{ end }}
|
||||
{{- .Name }}
|
||||
{{- with .Post }} {{ . | safeHTML -}}{{- end -}}
|
||||
{{- with $v.Pre -}}{{- . | safeHTML }} {{ end }}
|
||||
{{- with $v.Params.Icon -}}{{ dict "Class" (printf "%v fa-fw fa-sm" .) | partial "plugin/icon.html" }} {{ end }}
|
||||
{{- $v.Name }}
|
||||
{{- with $v.Post }} {{ . | safeHTML -}}{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
@@ -106,7 +109,7 @@
|
||||
<li class="menu-item theme-switch" title="{{ T "header.switchTheme" }}">
|
||||
{{ dict "Class" "fa-solid fa-adjust fa-fw" | partial "plugin/icon.html" }}
|
||||
</li>
|
||||
{{- if .Site.IsMultiLingual -}}
|
||||
{{- if hugo.IsMultilingual -}}
|
||||
<li class="menu-item language-switch">
|
||||
<span role="button" aria-label="{{ T "header.selectLanguage" }}" title="{{ T "header.selectLanguage" }}">
|
||||
{{- dict "Class" "fa-solid fa-language fa-fw" | partial "plugin/icon.html" -}}
|
||||
@@ -156,7 +159,7 @@
|
||||
<a href="{{ $homeRelPermalink }}" title="{{ .Site.Title }}">
|
||||
{{- with .Site.Params.header.title -}}
|
||||
{{- with .logo -}}
|
||||
{{- dict "Src" . "Class" "logo" | partial "plugin/image.html" -}}
|
||||
{{- dict "Src" . "Class" "logo" "Alt" $.Site.Title "Width" 26 "Height" 26 | partial "plugin/image.html" -}}
|
||||
{{- end -}}
|
||||
{{- with .pre -}}
|
||||
<span class="header-title-pre">{{ . | safeHTML }}</span>
|
||||
@@ -234,25 +237,28 @@
|
||||
{{ dict "Class" "dropdown-icon fa-solid fa-chevron-right" | partial "plugin/icon.html" }}
|
||||
</span>
|
||||
<ul class="sub-menu">
|
||||
{{ range .Children }}
|
||||
{{- $url := .URL | relLangURL -}}
|
||||
{{- with .Page -}}
|
||||
{{- range $k, $v := .Children -}}
|
||||
{{- $url := $v.URL | relLangURL -}}
|
||||
{{- with $v.Page -}}
|
||||
{{- $url = .RelPermalink -}}
|
||||
{{- end -}}
|
||||
{{- if (ne .Params.Draft true) | or $buildDrafts | and (ne .Params.Type "desktop") -}}
|
||||
{{- if (ne $v.Params.Draft true) | or $buildDrafts | and (ne $v.Params.Type "desktop") -}}
|
||||
{{- if $k | and $v.Params.Divided -}}
|
||||
<li class="menu-item menu-item-divider" aria-hidden="true"></li>
|
||||
{{- end -}}
|
||||
<li
|
||||
class="menu-item{{ if $.IsMenuCurrent `main` . | or ($.HasMenuCurrent `main` .) | or (eq $.RelPermalink $url) }} active{{ end }}{{ with .Params.Class }} {{ . }}{{ end }}"
|
||||
class="menu-item{{ if $.IsMenuCurrent `main` $v | or ($.HasMenuCurrent `main` $v) | or (eq $.RelPermalink $url) }} active{{ end }}{{ with $v.Params.Class }} {{ . }}{{ end }}"
|
||||
>
|
||||
<a
|
||||
class="menu-link"
|
||||
href="{{ $url }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
{{ with $v.Title }}title="{{ . }}"{{ end }}
|
||||
{{ if (urls.Parse $url).Host }}rel="noopener noreferrer" target="_blank"{{ end }}
|
||||
>
|
||||
{{- with .Pre -}}{{- . | safeHTML }} {{ end }}
|
||||
{{- with .Params.Icon -}}{{ dict "Class" (printf "%v fa-fw fa-sm" .) | partial "plugin/icon.html" }} {{ end }}
|
||||
{{- .Name }}
|
||||
{{- with .Post }} {{ . | safeHTML -}}{{- end -}}
|
||||
{{- with $v.Pre -}}{{- . | safeHTML }} {{ end }}
|
||||
{{- with $v.Params.Icon -}}{{ dict "Class" (printf "%v fa-fw fa-sm" .) | partial "plugin/icon.html" }} {{ end }}
|
||||
{{- $v.Name }}
|
||||
{{- with $v.Post }} {{ . | safeHTML -}}{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
@@ -276,7 +282,7 @@
|
||||
{{- end -}}
|
||||
<li class="menu-item menu-system">
|
||||
<span class="menu-system-item theme-switch" title="{{ T "header.switchTheme" }}">{{ dict "Class" "fa-solid fa-adjust fa-fw" | partial "plugin/icon.html" }}</span>
|
||||
{{- if .Site.IsMultiLingual -}}
|
||||
{{- if hugo.IsMultilingual -}}
|
||||
<span class="menu-system-item language-switch">
|
||||
<span role="button" aria-label="{{ T "header.selectLanguage" }}" title="{{ T "header.selectLanguage" }}">
|
||||
{{- .Language.LanguageName -}}
|
||||
|
||||
@@ -28,10 +28,10 @@
|
||||
{{- $url = .RelPermalink -}}
|
||||
{{- end -}}
|
||||
<a href="{{ $url }}"{{ with .Title | default .Name }} title="{{ . }}"{{ end }}{{ if (urls.Parse $url).Host }} rel="noopener noreferrer" target="_blank"{{ end }}>
|
||||
{{- dict "Src" $avatar "Alt" $.Site.Params.author.name | partial "plugin/image.html" -}}
|
||||
{{- dict "Src" $avatar "Alt" $.Site.Params.author.name "Width" 96 "Height" 96 | partial "plugin/image.html" -}}
|
||||
</a>
|
||||
{{- else -}}
|
||||
{{- dict "Src" $avatar "Alt" $.Site.Params.author.name | partial "plugin/image.html" -}}
|
||||
{{- dict "Src" $avatar "Alt" $.Site.Params.author.name "Width" 96 "Height" 96 | partial "plugin/image.html" -}}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
@@ -108,6 +108,6 @@
|
||||
</h3>
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Custom Content */ -}}
|
||||
{{- partial (.Scratch.Get "customFilePath").profile . -}}
|
||||
{{- /* Custom Profile */ -}}
|
||||
{{- block "custom-profile" . }}{{ end -}}
|
||||
</div>
|
||||
|
||||
@@ -2,24 +2,18 @@
|
||||
{{- $warns := slice -}}
|
||||
{{- $errors := slice -}}
|
||||
|
||||
{{- with .Site.Params.home.profile.gravatarSite -}}
|
||||
{{- $warns = $warns | append "The parameter `home.profile.gravatarSite` is deprecated since v0.2.14, use `gravatar.host` instead." -}}
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.ibruce.siteTime -}}
|
||||
{{- $warns = $warns | append "The parameter `ibruce.siteTime` is deprecated since v0.2.14, use `footer.siteTime` instead." -}}
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.autoBookmark -}}
|
||||
{{- $warns = $warns | append "The parameter `autoBookmark` is deprecated since v0.2.17, use `page.autoBookmark` instead." -}}
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.footer.siteTime -}}
|
||||
{{- if not (reflect.IsMap .) -}}
|
||||
{{- $warns = $warns | append "The parameter `footer.siteTime` has changed to a Map since v0.2.17. Please correct the format!" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.gitRepo | or .Site.Params.page.edit -}}
|
||||
{{- $warns = $warns | append "The parameter `params.gitRepo` and `params.page.edit` is deprecated since v0.3.0, use `params.gitInfo` instead." -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- with .Site.Params.customFilePath -}}
|
||||
{{- $warns = $warns | append "The parameter `params.customFilePath` is deprecated since v0.3.7, use `layouts/partials/custom.html` instead." -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- with .Site.Params.footer.custom -}}
|
||||
{{- $warns = $warns | append "The parameter `params.footer.custom` is deprecated since v0.3.7, use `layouts/partials/custom.html` instead." -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if len $warns -}}
|
||||
{{- warnf "Deprecated parameter detection until %v\n - %v\n\n" (.Scratch.Get "version") (delimit $warns "\n - ") -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
{{- if ne .Site.Params.dev.enable true -}}
|
||||
{{- .Scratch.Set "devOpts" dict -}}
|
||||
{{- end -}}
|
||||
{{- if eq .Site .Sites.First -}}
|
||||
{{- if eq .Site .Sites.Default -}}
|
||||
{{- warnf "FixIt %v\n%v\n\n" (.Scratch.Get "version") (T "init.devEnvWarn") -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{{- end -}}
|
||||
|
||||
{{- /* FixIt theme version detection */ -}}
|
||||
{{- if eq .Site .Sites.First -}}
|
||||
{{- if eq .Site .Sites.Default -}}
|
||||
{{- if not .Site.Params.version -}}
|
||||
{{- errorf "FixIt %v\n%v\n\n" $version (T "init.configurationError") -}}
|
||||
{{- else if gt "0.2.0" (strings.TrimPrefix "v" .Site.Params.version) -}}
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
{{- /* Set customFilePath default value */ -}}
|
||||
{{- $customFilePath := .Site.Params.customFilePath -}}
|
||||
{{- $customFilePath = dict "aside" ($customFilePath.aside | default "custom/aside.html") | merge $customFilePath -}}
|
||||
{{- $customFilePath = dict "profile" ($customFilePath.profile | default "custom/profile.html") | merge $customFilePath -}}
|
||||
{{- $customFilePath = dict "footer" ($customFilePath.footer | default "custom/footer.html") | merge $customFilePath -}}
|
||||
{{- .Scratch.Set "customFilePath" $customFilePath -}}
|
||||
|
||||
{{- /* Set site home relative permalink */ -}}
|
||||
{{- $homeRelPermalink := .Site.Home.RelPermalink -}}
|
||||
{{- $homeRelPermalink = strings.TrimSuffix "archives/" $homeRelPermalink -}}
|
||||
@@ -15,9 +8,9 @@
|
||||
{{- $pages := where .Site.RegularPages "Type" "posts" -}}
|
||||
{{- .Scratch.Set "mainSectionPages" $pages -}}
|
||||
|
||||
{{- /* Select the scope named "public_repo" to generate personal access token */ -}}
|
||||
{{- /* Select the scope named `public_repo` to generate personal access token */ -}}
|
||||
{{- $header := dict "Authorization" "" -}}
|
||||
{{- with .Site.Params.dev.githubtoken -}}
|
||||
{{- with (getenv "HUGO_PARAMS_GHTOKEN") -}}
|
||||
{{- $header = dict "Authorization" (printf "token %v" .) -}}
|
||||
{{- end -}}
|
||||
{{- .Scratch.Set "githubTokenHeader" $header -}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{- .Scratch.Set "version" "v0.3.4" -}}
|
||||
{{- .Scratch.Set "version" "v0.3.9" -}}
|
||||
{{- .Scratch.Set "this" dict -}}
|
||||
|
||||
{{- partial "init/detection-env.html" . -}}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{{- /* Echarts support for code fences extended and shortcodes. */ -}}
|
||||
{{- $width := .Options.width | default "100%" -}}
|
||||
{{- $height := .Options.height | default "30rem" -}}
|
||||
{{- $attrs := printf `style="width: %v; height: %v;"` $width $height -}}
|
||||
<div class="echarts" {{ $attrs | safeHTMLAttr }}></div>
|
||||
<template>{{ .Inner | transform.Unmarshal | jsonify }}</template>
|
||||
{{- /* EOF */ -}}
|
||||
@@ -4,7 +4,8 @@
|
||||
{{- if eq .Noreferrer false -}}
|
||||
{{- $noreferrer = false -}}
|
||||
{{- end -}}
|
||||
{{- if (urls.Parse .Destination).Host | or .Newtab -}}
|
||||
{{- $url := urls.Parse .Destination -}}
|
||||
{{- if $url.IsAbs | or .Newtab -}}
|
||||
{{- $rel = cond $noreferrer "external nofollow noopener noreferrer" "external nofollow" -}}
|
||||
{{- $external = true -}}
|
||||
{{- end -}}
|
||||
@@ -40,7 +41,19 @@
|
||||
{{- dict "Class" "fa-solid fa-download fa-fw ms-1 text-secondary" | partial "plugin/icon.html" -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
<span class="cl-backdrop" {{ printf "style=\"--cl-bg-url: url(%v);\"" (resources.Get "images/fixit.svg" | minify).RelPermalink | safeHTMLAttr }}></span>
|
||||
{{- $cardIcon := .CardIcon -}}
|
||||
{{- if $url.Host | and (eq .CardIcon true) -}}
|
||||
{{- $cardIcon = false -}}
|
||||
{{- /* 实验性功能:中国大陆地区无法使用,如果你有更好的 API 或者方案,欢迎 PR! */ -}}
|
||||
{{- $favicon := partial "function/get-remote-image.html" (dict "Path" (add "https://www.google.com/s2/favicons?sz=64&domain=" $url.Host) "Pass" true) -}}
|
||||
{{- with $favicon -}}
|
||||
{{- $cardIcon = .RelPermalink -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $attrs := `class="cl-backdrop"` -}}
|
||||
{{- $attrs = printf ` style="--cl-bg-url: url(%v);"` (resources.Get "images/fixit.svg" | minify).RelPermalink | add $attrs -}}
|
||||
<span {{ $attrs | safeHTMLAttr }}></span>
|
||||
<span class="cl-content">
|
||||
<span class="cl-text">
|
||||
<span class="cl-title">
|
||||
@@ -59,9 +72,17 @@
|
||||
</span>
|
||||
</span>
|
||||
{{- if .Download -}}
|
||||
<svg class="cl-icon-download" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M824.32 473.6c-15.36-2.56-25.6-15.36-25.6-30.72 0-112.64-71.68-217.6-179.2-250.88-148.48-46.08-289.28 38.4-332.8 166.4-2.56 10.24-12.8 17.92-23.04 20.48C143.36 401.92 51.2 509.44 51.2 637.44v2.56c0 115.2 97.28 204.8 209.92 204.8h524.8c102.4-2.56 184.32-84.48 184.32-186.88 2.56-89.6-61.44-163.84-145.92-184.32z m-273.92 225.28c-12.8 12.8-30.72 15.36-46.08 10.24H501.76c-5.12-2.56-10.24-5.12-15.36-10.24L366.08 578.56c-15.36-15.36-15.36-43.52 0-58.88 15.36-15.36 43.52-15.36 58.88 0l51.2 51.2V352.4608c0-23.04 17.92-40.96 40.96-40.96 23.04 0 40.96 17.92 40.96 40.96v218.4192l51.2-51.2c17.92-17.92 43.52-17.92 61.44 0 17.92 15.36 17.92 40.96 0 58.88l-120.32 120.32z" fill="#4FC089"></path></svg>
|
||||
<svg class="cl-shortcut-icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M824.32 473.6c-15.36-2.56-25.6-15.36-25.6-30.72 0-112.64-71.68-217.6-179.2-250.88-148.48-46.08-289.28 38.4-332.8 166.4-2.56 10.24-12.8 17.92-23.04 20.48C143.36 401.92 51.2 509.44 51.2 637.44v2.56c0 115.2 97.28 204.8 209.92 204.8h524.8c102.4-2.56 184.32-84.48 184.32-186.88 2.56-89.6-61.44-163.84-145.92-184.32z m-273.92 225.28c-12.8 12.8-30.72 15.36-46.08 10.24H501.76c-5.12-2.56-10.24-5.12-15.36-10.24L366.08 578.56c-15.36-15.36-15.36-43.52 0-58.88 15.36-15.36 43.52-15.36 58.88 0l51.2 51.2V352.4608c0-23.04 17.92-40.96 40.96-40.96 23.04 0 40.96 17.92 40.96 40.96v218.4192l51.2-51.2c17.92-17.92 43.52-17.92 61.44 0 17.92 15.36 17.92 40.96 0 58.88l-120.32 120.32z" fill="#4FC089"></path></svg>
|
||||
{{- else -}}
|
||||
<svg class="cl-icon-globe" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg>
|
||||
{{- with $cardIcon -}}
|
||||
{{- if (strings.HasPrefix . "fa") -}}
|
||||
<i class="{{ . }} cl-shortcut-icon"></i>
|
||||
{{- else -}}
|
||||
<img src="{{ . }}" alt="card image" class="cl-shortcut-image">
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
<svg class="cl-shortcut-icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</span>
|
||||
{{- end -}}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{{- /* Mermaid support for code fences extended and shortcodes. */ -}}
|
||||
<pre class="mermaid">{{ .Inner | safeHTML }}</pre>
|
||||
<template>{{ .Inner | safeHTML }}</template>
|
||||
{{- /* EOF */ -}}
|
||||
@@ -6,7 +6,10 @@
|
||||
<div class="post-reward">
|
||||
<div class="comment">{{ $reward.comment }}</div>
|
||||
<input type="checkbox" class="reward-input" name="reward" id="{{ $id }}" hidden />
|
||||
<label class="reward-button" for="{{ $id }}">{{ T "single.reward.donate" }}</label>
|
||||
<label class="reward-button" for="{{ $id }}">
|
||||
{{- dict "Class" "fa-solid fa-qrcode fa-fw" | partial "plugin/icon.html" -}}
|
||||
{{- T "single.reward.donate" -}}
|
||||
</label>
|
||||
<div class="reward-ways"{{ with $reward.mode }} data-mode="{{ . }}"{{ end }}>
|
||||
{{- range $way, $image := $reward.ways -}}
|
||||
{{- with T (printf "single.reward.%v" $way) -}}{{ $way = . }}{{- end -}}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{{- $share := (partial "function/params.html").share | default dict -}}
|
||||
|
||||
{{- if $share.enable -}}
|
||||
{{- $title := title .Title -}}
|
||||
{{- /* 001: Twitter */ -}}
|
||||
{{- if $share.Twitter -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Twitter" data-sharer="twitter" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.tags }} data-hashtags="{{ delimit . `,` }}"{{ end }}>
|
||||
{{- dict "Class" "fa-brands fa-twitter fa-fw" | partial "plugin/icon.html" -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} X" data-sharer="twitter" data-url="{{ .Permalink }}" data-title="{{ $title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.tags }} data-hashtags="{{ delimit . `,` }}"{{ end }}>
|
||||
{{- dict "Class" "fa-brands fa-x-twitter fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
@@ -24,14 +25,14 @@
|
||||
|
||||
{{- /* 004: WhatsApp */ -}}
|
||||
{{- if $share.Whatsapp -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} WhatsApp" data-sharer="whatsapp" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-web>
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} WhatsApp" data-sharer="whatsapp" data-url="{{ .Permalink }}" data-title="{{ $title }}" data-web>
|
||||
{{- dict "Class" "fa-brands fa-whatsapp fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 005: Viber */ -}}
|
||||
{{- if $share.Viber -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Viber" data-sharer="viber" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Viber" data-sharer="viber" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-viber fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
@@ -45,14 +46,14 @@
|
||||
|
||||
{{- /* 007: Tumblr */ -}}
|
||||
{{- if $share.Tumblr -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Tumblr" data-sharer="tumblr" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.tags }} data-tags="{{ delimit . `,` }}"{{ end }}>
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Tumblr" data-sharer="tumblr" data-url="{{ .Permalink }}" data-title="{{ $title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.tags }} data-tags="{{ delimit . `,` }}"{{ end }}>
|
||||
{{- dict "Class" "fa-brands fa-tumblr fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 008: Hacker News */ -}}
|
||||
{{- if $share.Hackernews -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Hacker News" data-sharer="hackernews" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Hacker News" data-sharer="hackernews" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-hacker-news fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
@@ -66,35 +67,35 @@
|
||||
|
||||
{{- /* 010: VK */ -}}
|
||||
{{- if $share.VK -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} VK" data-sharer="vk" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}>
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} VK" data-sharer="vk" data-url="{{ .Permalink }}" data-title="{{ $title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}>
|
||||
{{- dict "Class" "fa-brands fa-vk fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 011: Buffer */ -}}
|
||||
{{- if $share.Buffer -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Buffer" data-sharer="buffer" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-picture="{{ . }}"{{ end }}>
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Buffer" data-sharer="buffer" data-url="{{ .Permalink }}" data-title="{{ $title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-picture="{{ . }}"{{ end }}>
|
||||
{{- dict "Class" "fa-brands fa-buffer fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 012: Xing */ -}}
|
||||
{{- if $share.Xing -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Xing" data-sharer="xing" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Xing" data-sharer="xing" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-xing fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 013: Line */ -}}
|
||||
{{- if $share.Line -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Line" data-sharer="line" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Line" data-sharer="line" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Simpleicons" "line" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 014: Instapaper */ -}}
|
||||
{{- if $share.Instapaper -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Instapaper" data-sharer="instapaper" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Instapaper" data-sharer="instapaper" data-url="{{ .Permalink }}" data-title="{{ $title }}" data-description="{{ .Description }}">
|
||||
{{- dict "Simpleicons" "instapaper" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
@@ -114,14 +115,14 @@
|
||||
|
||||
{{- /* 018: Flipboard */ -}}
|
||||
{{- if $share.Flipboard -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Flipboard" data-sharer="flipboard" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Flipboard" data-sharer="flipboard" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-flipboard fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 019: 微博 */ -}}
|
||||
{{- if $share.Weibo -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} 微博" data-sharer="weibo" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}{{ with .Site.Params.Social.Weibo }} data-ralateuid="{{ . }}"{{ end }}>
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} 微博" data-sharer="weibo" data-url="{{ .Permalink }}" data-title="{{ $title }}"{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}{{ with .Site.Params.Social.Weibo }} data-ralateuid="{{ . }}"{{ end }}>
|
||||
{{- dict "Class" "fa-brands fa-weibo fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
@@ -131,56 +132,56 @@
|
||||
|
||||
{{- /* 021: Myspace */ -}}
|
||||
{{- if $share.Myspace -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Myspace" data-sharer="myspace" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Myspace" data-sharer="myspace" data-url="{{ .Permalink }}" data-title="{{ $title }}" data-description="{{ .Description }}">
|
||||
{{- dict "Simpleicons" "myspace" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 022: Blogger */ -}}
|
||||
{{- if $share.Blogger -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Blogger" data-sharer="blogger" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Blogger" data-sharer="blogger" data-url="{{ .Permalink }}" data-title="{{ $title }}" data-description="{{ .Description }}">
|
||||
{{- dict "Class" "fa-brands fa-blogger fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 023: 百度 */ -}}
|
||||
{{- if $share.Baidu -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} 百度" data-sharer="baidu" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} 百度" data-sharer="baidu" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Simpleicons" "baidu" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 024: OK.RU */ -}}
|
||||
{{- if $share.Odnoklassniki -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} OK.RU" data-sharer="okru" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} OK.RU" data-sharer="okru" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-odnoklassniki fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 025: Evernote */ -}}
|
||||
{{- if $share.Evernote -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Evernote" data-sharer="evernote" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Evernote" data-sharer="evernote" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-evernote fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 026: Skype */ -}}
|
||||
{{- if $share.Skype -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Skype" data-sharer="skype" data-url="{{ .Permalink }}" data-title="{{ .Title }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Skype" data-sharer="skype" data-url="{{ .Permalink }}" data-title="{{ $title }}">
|
||||
{{- dict "Class" "fa-brands fa-skype fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 027: Trello */ -}}
|
||||
{{- if $share.Trello -}}
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Trello" data-sharer="trello" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}">
|
||||
<a href="javascript:void(0);" title="{{ T `shareOn` }} Trello" data-sharer="trello" data-url="{{ .Permalink }}" data-title="{{ $title }}" data-description="{{ .Description }}">
|
||||
{{- dict "Class" "fa-brands fa-trello fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
{{- /* 028: Mix */ -}}
|
||||
{{- if $share.Mix -}}
|
||||
<a href="//mix.com/add?url={{ .Permalink }}&description={{ .Title }}" target="_blank" title="{{ T `shareOn` }} Mix">
|
||||
<a href="//mix.com/add?url={{ .Permalink }}&description={{ $title }}" target="_blank" title="{{ T `shareOn` }} Mix">
|
||||
{{- dict "Class" "fa-brands fa-mix fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{ end -}}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{{- /* Timeline support for code fences extended and shortcodes. */ -}}
|
||||
{{- $reverse := .Options.reverse | default false -}}
|
||||
{{- $placement := .Options.placement | default "bottom" -}}
|
||||
{{- $animation := .Options.animation | default false -}}
|
||||
{{- $size := .Options.size | default "medium" -}}
|
||||
{{- $node := .Options.node | default "circle" -}}
|
||||
|
||||
{{- /* Get Timeline events */ -}}
|
||||
{{- $events := slice -}}
|
||||
{{- with .Inner -}}
|
||||
{{- $events = (. | transform.Unmarshal).events -}}
|
||||
{{- end -}}
|
||||
{{- with .Events -}}
|
||||
{{- $events = . -}}
|
||||
{{- end -}}
|
||||
{{- $events = sort $events "timestamp" (cond $reverse "desc" "asc") -}}
|
||||
|
||||
{{- /* Set Timeline style */ -}}
|
||||
{{- $style := "" -}}
|
||||
{{- with .Options.width -}}
|
||||
{{- $style = printf "width: %v;" . -}}
|
||||
{{- end -}}
|
||||
{{- with .Options.height -}}
|
||||
{{- $style = add $style (printf "height: %v;" .) -}}
|
||||
{{- end -}}
|
||||
{{- with $style -}}
|
||||
{{- $style = printf `style="%v"` . -}}
|
||||
{{- end -}}
|
||||
|
||||
<ul
|
||||
class="fi-timeline{{ with .Options.class }} {{ . }}{{ end }}"
|
||||
{{ $style | safeHTMLAttr }}
|
||||
{{- with $animation }} data-animation{{- end -}}
|
||||
>
|
||||
{{- range $index, $item := $events -}}
|
||||
{{- $itemStyle := printf "--timeline-index: %v;" (add $index 1) -}}
|
||||
{{- with $item.color -}}
|
||||
{{- $itemStyle = add $itemStyle (printf "--timeline-circle-color: %v;" .) -}}
|
||||
{{- end -}}
|
||||
{{- $itemStyle = printf `style="%v"` $itemStyle -}}
|
||||
|
||||
<li
|
||||
class="fi-timeline-item"
|
||||
data-size="{{ $item.size | default $size }}"
|
||||
data-node="{{ $item.node | default $node }}"
|
||||
{{ $itemStyle | safeHTMLAttr }}
|
||||
{{- with $item.type }} data-type="{{ . }}"{{- end -}}
|
||||
>
|
||||
{{- if $item.hideTimestamp -}}
|
||||
<div class="fi-timeline-item__content">{{ $item.content | page.RenderString }}</div>
|
||||
{{- else if eq ($item.placement | default $placement) "top" -}}
|
||||
<div class="fi-timeline-item__timestamp is-top">{{ $item.timestamp }}</div>
|
||||
<div class="fi-timeline-item__content">{{ $item.content | page.RenderString }}</div>
|
||||
{{- else -}}
|
||||
<div class="fi-timeline-item__content">{{ $item.content | page.RenderString }}</div>
|
||||
<div class="fi-timeline-item__timestamp is-bottom">{{ $item.timestamp }}</div>
|
||||
{{- end -}}
|
||||
</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
{{- /* EOF */ -}}
|
||||
@@ -22,7 +22,7 @@
|
||||
{{- if eq $repost.enable true -}}
|
||||
{{- dict "Class" "fa-solid fa-share fa-fw text-success me-1" | partial "plugin/icon.html" -}}
|
||||
{{- end -}}
|
||||
{{- .LinkTitle -}}
|
||||
{{- title .LinkTitle -}}
|
||||
</a>
|
||||
<span class="archive-item-date" title='{{ "2006-01-02 15:04:05" | .Lastmod.Format }}'>
|
||||
{{- with .Lastmod | dateFormat (.Site.Params.section.dateformat | default "01-02") -}}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{{- /* Collection List */ -}}
|
||||
{{- $params := partial "function/params.html" -}}
|
||||
|
||||
{{- if .Params.collections | and $params.collectionList | and (not $params.password) -}}
|
||||
{{- if .Params.collections | and $params.collectionList -}}
|
||||
{{- $collectionTerms := .GetTerms "collections" -}}
|
||||
{{- range $collectionTerms -}}
|
||||
{{- $pages := (where .Pages "Params.Weight" "!=" nil) | append (where .Pages "Params.Weight" "eq" nil).ByDate -}}
|
||||
{{- $open := eq (index $collectionTerms 0) . -}}
|
||||
{{- $currentKey := 0 -}}
|
||||
|
||||
<div class="details collection-details{{ if $open }} open{{ end }}">
|
||||
<div class="details collection-details{{ with $params.password }} encrypted-hidden{{ end }}{{ if $open }} open{{ end }}">
|
||||
<div class="details-summary collection-summary">
|
||||
{{ dict "Class" "fa-solid fa-layer-group fa-fw" | partial "plugin/icon.html" }}
|
||||
<span class="collection-name" data-collections="{{ T "collections" }}">{{ .LinkTitle }}</span>
|
||||
@@ -19,17 +19,18 @@
|
||||
<nav>
|
||||
<ul class="collection-list">
|
||||
{{- range $key, $value := $pages -}}
|
||||
{{- $title := title $value.LinkTitle -}}
|
||||
{{- if $value.LinkTitle | eq $.LinkTitle -}}
|
||||
{{- $currentKey = $key -}}
|
||||
<li class="collection-item"><span class="active" title="{{ $value.LinkTitle }}">{{ $value.LinkTitle }}</span></li>
|
||||
<li class="collection-item"><span class="active" title="{{ $title }}">{{ $title }}</span></li>
|
||||
{{- else }}
|
||||
<li class="collection-item"><a href="{{ $value.RelPermalink }}" title="{{ $value.LinkTitle }}">{{ $value.LinkTitle }}</a></li>
|
||||
<li class="collection-item"><a href="{{ $value.RelPermalink }}" title="{{ $title }}">{{ $title }}</a></li>
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
<div class="collection-nav-simple">
|
||||
{{- with $pages.Next $ -}}
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="prev" title="{{ .LinkTitle }}">
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="prev" title="{{ title .LinkTitle }}">
|
||||
{{- dict "Class" "fa-solid fa-angle-left fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{- else -}}
|
||||
@@ -37,7 +38,7 @@
|
||||
{{- end -}}
|
||||
<span class="text-secondary">{{ add $currentKey 1 }}/{{ $pages.Len }}</span>
|
||||
{{- with $pages.Prev $ -}}
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="next" title="{{ .LinkTitle }}">
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="next" title="{{ title .LinkTitle }}">
|
||||
{{- dict "Class" "fa-solid fa-angle-right fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{- else -}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{- /* Collection Navigation */ -}}
|
||||
{{- $params := partial "function/params.html" -}}
|
||||
|
||||
{{- if .Params.collections | and $params.collectionNavigation | and (not $params.password) -}}
|
||||
{{- if .Params.collections | and $params.collectionNavigation -}}
|
||||
{{- $collectionTerms := .GetTerms "collections" -}}
|
||||
{{- range $collectionTerms -}}
|
||||
{{- $termLink := printf `<a href="%v">%v <span>%v・%v</span></span></a>`
|
||||
@@ -10,21 +10,22 @@
|
||||
(T "collection")
|
||||
.LinkTitle
|
||||
-}}
|
||||
<div class="collection-card">
|
||||
<div class="collection-card{{ with $params.password }} encrypted-hidden{{ end }}">
|
||||
<div class="collection-title text-secondary">
|
||||
{{- dict "Collections" $termLink | T "single.includedIn.collections" | strings.FirstUpper | safeHTML }} {{ .Pages.Len -}}
|
||||
</div>
|
||||
<div class="collection-nav">
|
||||
{{/* TODO JS 实现 reverse 翻转顺序 */}}
|
||||
{{- $pages := (where .Pages "Params.Weight" "!=" nil) | append (where .Pages "Params.Weight" "eq" nil).ByDate -}}
|
||||
{{- with $pages.Next $ -}}
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="prev" title="{{ .LinkTitle }}">
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="prev" title="{{ title .LinkTitle }}">
|
||||
{{- dict "Class" "fa-solid fa-angle-left fa-fw" | partial "plugin/icon.html" -}}
|
||||
<span>{{- .LinkTitle -}}</span>
|
||||
<span>{{- title .LinkTitle -}}</span>
|
||||
</a>
|
||||
{{- end -}}
|
||||
{{- with $pages.Prev $ -}}
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="next" title="{{ .LinkTitle }}">
|
||||
<span>{{- .LinkTitle -}}</span>
|
||||
<a href="{{ .RelPermalink }}" class="collection-nav-item" rel="next" title="{{ title .LinkTitle }}">
|
||||
<span>{{- title .LinkTitle -}}</span>
|
||||
{{- dict "Class" "fa-solid fa-angle-right fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{- end -}}
|
||||
|
||||
@@ -194,6 +194,9 @@
|
||||
{{- with $waline.recaptchaV3Key -}}
|
||||
{{- $commentConfig = dict "recaptchaV3Key" . | dict "waline" | merge $commentConfig -}}
|
||||
{{- end -}}
|
||||
{{- with $waline.turnstileKey -}}
|
||||
{{- $commentConfig = dict "turnstileKey" . | dict "waline" | merge $commentConfig -}}
|
||||
{{- end -}}
|
||||
{{- with $waline.reaction -}}
|
||||
{{- $commentConfig = dict "reaction" . | dict "waline" | merge $commentConfig -}}
|
||||
{{- end -}}
|
||||
@@ -299,11 +302,12 @@
|
||||
{{- $giscus := $comment.giscus | default dict -}}
|
||||
{{- if $giscus.enable -}}
|
||||
{{- with $giscus -}}
|
||||
{{- $commentConfig = .origin | default "https://giscus.app" | dict "origin" | dict "giscus" | merge $commentConfig -}}
|
||||
{{- $commentConfig = .lightTheme | default "light" | dict "lightTheme" | dict "giscus" | merge $commentConfig -}}
|
||||
{{- $commentConfig = .darkTheme | default "dark" | dict "darkTheme" | dict "giscus" | merge $commentConfig -}}
|
||||
<div id="giscus" class="comment">
|
||||
<script
|
||||
src="https://giscus.app/client.js"
|
||||
src="{{ .Origin }}/client.js"
|
||||
data-repo="{{ .Repo }}"
|
||||
data-repo-id="{{ .RepoId }}"
|
||||
data-category="{{ .Category }}"
|
||||
@@ -315,7 +319,7 @@
|
||||
data-reactions-enabled="{{ .ReactionsEnabled }}"
|
||||
data-emit-metadata="{{ .EmitMetadata }}"
|
||||
data-input-position="{{ .InputPosition }}"
|
||||
data-lang="{{ $.Site.LanguageCode }}"
|
||||
data-lang="{{ .lang | default $.Site.LanguageCode }}"
|
||||
{{ if ne .LazyLoad false }}data-loading="lazy"{{ end }}
|
||||
crossorigin="anonymous"
|
||||
async
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
{{- dict "Date" . | T "single.updatedOnDate" -}}
|
||||
{{- if $gitRepo -}}
|
||||
{{- with $.GitInfo -}}
|
||||
{{/* TODO add Git .Body */}}
|
||||
<a class="git-hash" href="{{ printf `%v/commit/%v` $gitRepo .Hash }}" rel="external nofollow noopener noreferrer" target="_blank" title="commit by {{ .AuthorName }}({{ .AuthorEmail }}) {{ .Hash }}: {{ .Subject }}">
|
||||
{{- dict "Class" "fa-solid fa-hashtag fa-fw" | partial "plugin/icon.html" -}}
|
||||
{{- .AbbreviatedHash -}}
|
||||
@@ -106,14 +107,14 @@
|
||||
{{- $next = $pages.Prev . -}}
|
||||
{{- end -}}
|
||||
{{- with $prev -}}
|
||||
<a href="{{ .RelPermalink }}" class="post-nav-item" rel="prev" title="{{ .LinkTitle }}">
|
||||
<a href="{{ .RelPermalink }}" class="post-nav-item" rel="prev" title="{{ title .LinkTitle }}">
|
||||
{{- dict "Class" "fa-solid fa-angle-left fa-fw" | partial "plugin/icon.html" -}}
|
||||
{{- .LinkTitle -}}
|
||||
{{- title .LinkTitle -}}
|
||||
</a>
|
||||
{{- end -}}
|
||||
{{ with $next }}
|
||||
<a href="{{ .RelPermalink }}" class="post-nav-item" rel="next" title="{{ .LinkTitle }}">
|
||||
{{- .LinkTitle -}}
|
||||
<a href="{{ .RelPermalink }}" class="post-nav-item" rel="next" title="{{ title .LinkTitle }}">
|
||||
{{- title .LinkTitle -}}
|
||||
{{- dict "Class" "fa-solid fa-angle-right fa-fw" | partial "plugin/icon.html" -}}
|
||||
</a>
|
||||
{{- end -}}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
{{- $content := $author.name | default "Anonymous" -}}
|
||||
{{- $icon := dict "Class" "fa-solid fa-user-circle" -}}
|
||||
{{- if $author.avatar | and $params.authorAvatar -}}
|
||||
{{- $content = printf "%v %v" (dict "Src" $author.avatar "Class" "avatar" "Alt" $content | partial "plugin/image.html") $content -}}
|
||||
{{- $content = printf "%v %v" (dict "Src" $author.avatar "Class" "avatar" "Alt" $content "Width" 20 "Height" 20 | partial "plugin/image.html") $content -}}
|
||||
{{- $icon = "" -}}
|
||||
{{- end -}}
|
||||
{{- if $author.link -}}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user