├── .github
└── workflows
│ └── update-themes.yaml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CODE_OF_CONDUCT_zh-TW.md
├── LICENSE
├── README.md
├── README_zh-TW.md
├── commands
├── update.js
└── utils.js
├── configs.js
├── package-lock.json
├── package.json
├── postcss.config.cjs
├── styles
├── dracula.css
├── notion.css
└── orangeheart.css
├── themes
├── dracula.md
├── notion.md
└── orangeheart.md
└── yarn.lock
/.github/workflows/update-themes.yaml:
--------------------------------------------------------------------------------
1 | name: Update Themes
2 |
3 | on:
4 | push:
5 | branches:
6 | - 'main'
7 |
8 | jobs:
9 | update-themes:
10 | environment: CI
11 | runs-on: ubuntu-latest
12 |
13 | steps:
14 | - name: Checkout Branch
15 | uses: actions/checkout@v2
16 | with:
17 | ref: main
18 |
19 | - name: Setup node
20 | uses: actions/setup-node@v2
21 | with:
22 | node-version: '17'
23 |
24 | - name: Install modules and minified CSS files
25 | run: yarn install && yarn minify
26 |
27 | - name: Update themes and upload to HackMD
28 | run: yarn update
29 | env:
30 | HACKMD_API_TOKEN: ${{ secrets.HACKMD_API_TOKEN }}
31 |
32 | - name: Commit Change
33 | run: |
34 | # Hard-code user configuration
35 | git config --global user.name 'github-actions[bot]'
36 | git config --global user.email 'github-actions[bot]@users.noreply.github.com'
37 | # Checkout the branch so we can push back to it
38 | git checkout main
39 | git add -A
40 | # Only commit and push if we have changes
41 | git diff --quiet && git diff --staged --quiet || (git commit -m ":rocket: update themes at $(date +'%Y-%m-%d %H:%M')")
42 | git push
43 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Dependency directories
14 | node_modules/
15 | jspm_packages/
16 |
17 | # Optional npm cache directory
18 | .npm
19 |
20 | # Optional eslint cache
21 | .eslintcache
22 |
23 | # Output of 'npm pack'
24 | *.tgz
25 |
26 | # Yarn Integrity file
27 | .yarn-integrity
28 |
29 | # dotenv environment variable files
30 | .env
31 | .env.development.local
32 | .env.test.local
33 | .env.production.local
34 | .env.local
35 |
36 | # Stores VSCode versions used for testing VSCode extensions
37 | .vscode-test
38 |
39 | # Yarn
40 | .yarn/cache
41 | .yarn/unplugged
42 | .yarn/build-state.yml
43 | .yarn/install-state.gz
44 | .pnp.*
45 |
46 | # dist
47 | dist/
48 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to make participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies within all project spaces, and it also applies when
49 | an individual is representing the project or its community in public spaces.
50 | Examples of representing a project or community include using an official
51 | project e-mail address, posting via an official social media account, or acting
52 | as an appointed representative at an online or offline event. Representation of
53 | a project may be further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT_zh-TW.md:
--------------------------------------------------------------------------------
1 |
2 | # 貢獻者公約
3 |
4 | ## 我們的承諾
5 |
6 | 為了促進一個開放透明且受歡迎的環境,我們作為貢獻者和維護者保證,無論年齡、種族、民族、性別認同和表達、體型、殘疾、經驗水平、國籍、個人表現、宗教或性別取向,在我們的專案以及社群的參與者都有不被騷擾的體驗。
7 |
8 | ## 我們的準則
9 |
10 | 舉例來說有助於創造正面環境的行為包括:
11 |
12 | * 使用歡迎和包容性語言
13 | * 尊重不同的觀點和經驗
14 | * 優雅地接受建設性批評
15 | * 關注在對於社群最好的事情上
16 | * 對其他社群成員的表現友善
17 |
18 | 舉例來說身為參與者不能接受的行為包括:
19 |
20 | * 使用與性有關的言語或是圖像,以及不受歡迎的性騷擾
21 | * 酸民/反串/釣魚行為或進行侮辱/貶損的評論,人身攻擊及政治攻擊
22 | * 公開或私下的騷擾
23 | * 未經許可地發布他人的個人資料,例如住址或是電子地址
24 | * 其他可以被合理地認定為不恰當或者違反職業操守的行為
25 |
26 | ## 我們的責任
27 |
28 | 專案維護者有責任為"可接受的行為"準則做出詮釋,以及對已發生的不被接受的行為採取恰當且公平的糾正措施。
29 |
30 | 專案維護者有權力及責任去刪除、編輯、拒絕與本行為準則有所違背的評論 (comments)、提交 (commits)、程式碼、wiki 編輯、問題 (issues) 和其他貢獻,以及專案維護者可暫時或永久性的禁止任何他們認為有不適當、威脅、冒犯、有害行為的貢獻者。
31 |
32 | ## 使用範圍
33 |
34 | 當一個人代表該專案或是其社群時,本行為準則適用於其專案平台和公共平台。
35 |
36 | 代表專案或是社群的情況,舉例來說包括使用官方專案的電子郵件地址、通過官方的社群媒體帳號發布或線上或線下事件中擔任指定代表。
37 |
38 | 該專案的呈現方式可由其專案維護者進行進一步的定義及解釋。
39 |
40 | ## 強制執行
41 |
42 | 可以透過[在此放入EMAIL],來聯繫專案團隊來報告濫用、騷擾或其他不被接受的行為。
43 |
44 | 任何維護團隊認為有必要且適合的所有投訴都將進行審查及調查,並做出相對應的回應。專案小組有對事件回報者有保密的義務。具體執行的方針近一步細節可能會單獨公佈。
45 |
46 | 沒有真誠的遵守或是執行本行為準則的專案維護人員,可能會因專案領導人或是其他成員的決定,暫時或是永久的取消其身份。
47 |
48 | ## 來源
49 |
50 | 本行為準則改編自[貢獻者公約][首頁],版本 1.4
51 | 可在此觀看https://www.contributor-covenant.org/zh-tw/version/1/4/code-of-conduct.html
52 |
53 | [首頁]: https://www.contributor-covenant.org
54 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [](./LICENSE)
5 |
6 |
7 |
8 |
9 |
10 |
11 |

12 |

13 |
14 | # HackMD Themes
15 |
16 | 🎨 _Colorful and pretty themes for [HackMD](https://hackmd.io/). Most of them are ported from [Typora Themes](https://theme.typora.io/) and [Obsidian Themes](https://github.com/kmaasrud/awesome-obsidian#themes)._
17 |
18 |
19 | [](https://hackmd.io/@themes)
20 | [](./README_zh-TW.md)
21 |
22 |
23 |
24 | ## Usage
25 |
26 | According to [Use Custom CSS Style in HackMD](https://hackmd.io/@hackmd/hackmd-new-blog#%E5%9C%A8-HackMD-%E8%87%AA%E8%A8%82%E7%AD%86%E8%A8%98%E6%A8%A3%E5%BC%8F%E8%A1%A8) and [Share CSS Style with Embedding Feature](https://hackmd.io/@hackmd/hackmd-new-blog#%E4%BD%BF%E7%94%A8%E5%85%A7%E5%B5%8C%E7%AD%86%E8%A8%98%E5%8A%9F%E8%83%BD%E5%85%B1%E7%94%A8%E7%AD%86%E8%A8%98%E6%A8%A3%E5%BC%8F%E8%A1%A8). I've published these themes for embedding use. Just use the syntax below to include the theme you need in your HackMD document.
27 |
28 | ```
29 | {%hackmd @themes/dracula %}
30 | ```
31 |
32 | The name of published themes will follow the naming convention `THEME_NAME` or `THEME_NAME-STYLE` (Note that `THEME_NAME` and `STYLE` should be in lowercase).
33 |
34 | ## Themes
35 |
36 |
37 |
38 | Name |
39 | Preview |
40 | Embed Snippet |
41 |
42 |
43 |
44 |
45 | Dracula [DEMO](https://hackmd.io/@themes/demo-dracula)
46 |
47 | |
48 |
49 |
50 |
51 |
52 | |
53 |
54 |
55 | ```
56 | {%hackmd @themes/dracula %}
57 | ```
58 |
59 | |
60 |
61 |
62 |
63 |
64 | Notion [DEMO](https://hackmd.io/@themes/demo-notion)
65 |
66 | |
67 |
68 |
69 |
70 |
71 | |
72 |
73 |
74 | ```
75 | {%hackmd @themes/notion %}
76 | ```
77 |
78 | |
79 |
80 |
81 |
82 |
83 |
84 | OrangeHeart [DEMO](https://hackmd.io/@themes/demo-orangeheart)
85 |
86 | |
87 |
88 |
89 |
90 |
91 | |
92 |
93 |
94 | ```
95 | {%hackmd @themes/orangeheart %}
96 | ```
97 |
98 | |
99 |
100 |
101 |
102 | ## Contribution
103 |
104 | The syncing process of themes is handled by [HackMD API](https://hackmd.io/@hackmd-api/developer-portal/) and [GitHub Actions](https://github.com/features/actions). We can modify the `*.css` file inside `./styles` directory and then actions will automatically minimize the file and upload to HackMD. Check [`update-themes.yaml`](./.github/workflows/update-themes.yaml) for this workflow.
105 |
106 | This project exists thanks to all the people who contribute:
107 |
108 |
109 |
110 |
111 |
112 | ## Credits
113 |
114 | Themes are ported from [Typora Themes](https://theme.typora.io/) and [Obsidian Themes](https://github.com/kmaasrud/awesome-obsidian#themes). Credited to following people:
115 |
116 | - **Dracula Theme**: [dracula](https://github.com/dracula), [Teyler7](https://github.com/Teyler7)
117 | - **Notion Theme**: [adrian-fuertes](https://github.com/adrian-fuertes)
118 | - **OrangeHeart Theme**: [zhning12](https://github.com/zhning12), [evgo2017](https://github.com/evgo2017)
119 |
120 | ## Other HackMD Themes
121 |
122 | - [Neko250/hmd-themes](https://github.com/Neko250/hmd-themes)
123 | - [Yukaii/hackmd-themes](https://github.com/Yukaii/hackmd-themes)
124 |
125 | ## License
126 |
127 | Licensed under the Apache License, Version 2.0. Copyright © 2022-present [H.-H. Peng](https://github.com/Hsins).
128 |
129 |
130 | Assembled with ❤️ in Taiwan.
131 |
132 |
--------------------------------------------------------------------------------
/README_zh-TW.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [](./LICENSE)
5 |
6 |
7 |
8 |
9 |
10 |
11 |

12 |

13 |
14 | # HackMD Themes
15 |
16 | 🎨 _Colorful and pretty themes for [HackMD](https://hackmd.io/). Most of them are ported from [Typora Themes](https://theme.typora.io/) and [Obsidian Themes](https://github.com/kmaasrud/awesome-obsidian#themes)._
17 |
18 |
19 | [](https://hackmd.io/@themes)
20 | [](./README.md)
21 |
22 |
23 |
24 | ## 使用說明
25 |
26 | 根據文件中的 [在 HackMD 自訂筆記樣式表](https://hackmd.io/@hackmd/hackmd-new-blog#%E5%9C%A8-HackMD-%E8%87%AA%E8%A8%82%E7%AD%86%E8%A8%98%E6%A8%A3%E5%BC%8F%E8%A1%A8) 和 [使用內嵌筆記功能共用筆記樣式表](https://hackmd.io/@hackmd/hackmd-new-blog#%E4%BD%BF%E7%94%A8%E5%85%A7%E5%B5%8C%E7%AD%86%E8%A8%98%E5%8A%9F%E8%83%BD%E5%85%B1%E7%94%A8%E7%AD%86%E8%A8%98%E6%A8%A3%E5%BC%8F%E8%A1%A8) 說明,本專案倉庫中的主題皆已透過發布功能可供嵌入使用。僅需要使用如下的語法在你的 HackMD 筆記中嵌入想要使用的主題:
27 |
28 | ```
29 | {%hackmd @themes/notion %}
30 | ```
31 |
32 | 其中發布的主題名稱,遵循如 `THEME_NAME` 或 `THEME_NAME-STYLE` 的命名方式(其中 `THEME_NAME` 與 `STYLE` 皆須以小寫表示)
33 |
34 | ## 主題總覽
35 |
36 |
37 |
38 | 名稱 |
39 | 效果預覽 |
40 | 內嵌語法 |
41 |
42 |
43 |
44 |
45 | Dracula [DEMO](https://hackmd.io/@themes/demo-dracula)
46 |
47 | |
48 |
49 |
50 |
51 |
52 | |
53 |
54 |
55 | ```
56 | {%hackmd @themes/dracula %}
57 | ```
58 |
59 | |
60 |
61 |
62 |
63 |
64 | Notion [DEMO](https://hackmd.io/@themes/demo-notion)
65 |
66 | |
67 |
68 |
69 |
70 |
71 | |
72 |
73 |
74 | ```
75 | {%hackmd @themes/notion %}
76 | ```
77 |
78 | |
79 |
80 |
81 |
82 |
83 |
84 | OrangeHeart [DEMO](https://hackmd.io/@themes/demo-orangeheart)
85 |
86 | |
87 |
88 |
89 |
90 |
91 | |
92 |
93 |
94 | ```
95 | {%hackmd @themes/orangeheart %}
96 | ```
97 |
98 | |
99 |
100 |
101 |
102 | ## 貢獻須知
103 |
104 | 主題同步流程透過 [HackMD API](https://hackmd.io/@hackmd-api/developer-portal/) 和 [GitHub Actions](https://github.com/features/actions) 實作,開發人員只需要修改 `./styles` 目錄下的 `*.css` 文件,推送後會觸發 GitHub Actions 自動將檔案壓縮並上傳至 HackMD 中,工作流程的詳細設定可以參考 [`update-themes.yaml`](./.github/workflows/update-themes.yaml) 設定檔案。
105 |
106 | 本專案感謝以下開發人員的貢獻:
107 |
108 |
109 |
110 |
111 |
112 | ## 特別感謝
113 |
114 | 主題多數自 [Typora Themes](https://theme.typora.io/) 和 [Obsidian Themes](https://github.com/kmaasrud/awesome-obsidian#themes) 移植而來,感謝以下作者:
115 |
116 | - **Dracula Theme**: [dracula](https://github.com/dracula), [Teyler7](https://github.com/Teyler7)
117 | - **Notion Theme**: [adrian-fuertes](https://github.com/adrian-fuertes)
118 | - **OrangeHeart Theme**: [zhning12](https://github.com/zhning12), [evgo2017](https://github.com/evgo2017)
119 |
120 | ## 其他主題
121 |
122 | - [Neko250/hmd-themes](https://github.com/Neko250/hmd-themes)
123 | - [Yukaii/hackmd-themes](https://github.com/Yukaii/hackmd-themes)
124 |
125 | ## 授權條款
126 |
127 | Licensed under the Apache License, Version 2.0. Copyright © 2022-present [H.-H. Peng](https://github.com/Hsins).
128 |
129 |
130 | Assembled with ❤️ in Taiwan.
131 |
132 |
--------------------------------------------------------------------------------
/commands/update.js:
--------------------------------------------------------------------------------
1 | import { getMetadata, getStyle, updateTheme, uploadTheme } from './utils.js';
2 | import { themes } from '../configs.js';
3 |
4 | themes.forEach((theme) => {
5 | const metadata = getMetadata(theme);
6 | const style = getStyle(theme);
7 |
8 | const content = metadata + '\n' + style;
9 | updateTheme(theme, content);
10 | uploadTheme(theme, content);
11 | });
12 |
--------------------------------------------------------------------------------
/commands/utils.js:
--------------------------------------------------------------------------------
1 | import log from 'log-beautify';
2 | import axios from 'axios';
3 | import { writeFile, readFileSync } from 'fs';
4 | import { stylePath, themePath, HACKMD_API_URL, HACKMD_API_TEAM, HACKMD_API_TOKEN } from '../configs.js';
5 |
6 | const getMetadata = (theme) => {
7 | return (
8 | '---\n' +
9 | `title: "${theme.metadata.name}"\n` +
10 | `description: "${theme.metadata.description}"\n` +
11 | `tags: ${theme.metadata.tags.join(', ')}\n` +
12 | 'breaks: false\n' +
13 | '---\n'
14 | );
15 | };
16 |
17 | const getStyle = (theme) => {
18 | const filePath = `${stylePath}/${theme.styleFile}`;
19 | const minifiedCss = readFileSync(filePath, 'utf-8');
20 |
21 | return `\n`;
22 | };
23 |
24 | const updateTheme = (theme, content) => {
25 | const filePath = `${themePath}/${theme.themeFile}`;
26 |
27 | writeFile(filePath, content, (err) => {
28 | if (err) throw err;
29 | log.success(`Theme update: ${filePath} (${theme.slug}).`);
30 | });
31 | };
32 |
33 | const uploadTheme = (theme, content) => {
34 | const axiosConfig = {
35 | method: 'patch',
36 | url: `${HACKMD_API_URL}/teams/${HACKMD_API_TEAM}/notes/${theme.noteId}`,
37 | headers: {
38 | 'Authorization': HACKMD_API_TOKEN,
39 | 'Content-Type': 'application/json',
40 | },
41 | data: JSON.stringify({ content }),
42 | };
43 |
44 | axios(axiosConfig)
45 | .then((response) => log.success(`Theme upload: ${theme.slug}.`))
46 | .catch((error) => log.error(error));
47 | };
48 |
49 | export { getMetadata, getStyle, updateTheme, uploadTheme };
--------------------------------------------------------------------------------
/configs.js:
--------------------------------------------------------------------------------
1 | // API CONFIG
2 | export const HACKMD_API_URL = 'https://api.hackmd.io/v1/';
3 | export const HACKMD_API_TEAM = 'themes';
4 | export const HACKMD_API_TOKEN = process.env.HACKMD_API_TOKEN;
5 |
6 | // PATH CONFIG
7 | export const stylePath = './dist';
8 | export const themePath = './themes';
9 |
10 | // THEMES CONFIG
11 | export const themes = [
12 | {
13 | slug: 'dracula',
14 | noteId: 'WDQfWEcMTZC_4bfjqr8Kdg',
15 | styleFile: 'dracula.css',
16 | themeFile: 'dracula.md',
17 | metadata: {
18 | name: 'HackMD Theme - Dracula',
19 | description:
20 | 'Use `{%hackmd @themes/dracula %}` syntax to include this theme.',
21 | tags: ['HackMD-Theme'],
22 | },
23 | },
24 | {
25 | slug: 'notion',
26 | noteId: 'miNJoYSqTJu0n41E-FjIRA',
27 | styleFile: 'notion.css',
28 | themeFile: 'notion.md',
29 | metadata: {
30 | name: 'HackMD Theme - Notion',
31 | description:
32 | 'Use `{%hackmd @themes/notion %}` syntax to include this theme.',
33 | tags: ['HackMD-Theme'],
34 | },
35 | },
36 | {
37 | slug: 'theme-orangeheart',
38 | noteId: 'H_sjdnx5RvG8B7qaoTRwww',
39 | styleFile: 'orangeheart.css',
40 | themeFile: 'orangeheart.md',
41 | metadata: {
42 | name: 'HackMD Theme - OrangeHeart',
43 | description:
44 | 'Use `{%hackmd @themes/orangeheart %}` syntax to include this theme.',
45 | tags: ['HackMD-Theme'],
46 | },
47 | },
48 | ];
49 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hackmd-themes",
3 | "type": "module",
4 | "version": "1.0.0",
5 | "private": true,
6 | "description": "🎨 Colorful and pretty themes for HackMD. Most of thems are inspired and ported from Typora Themes.",
7 | "keywords": [
8 | "hackmd",
9 | "markdown",
10 | "hackmd-theme",
11 | "theme"
12 | ],
13 | "scripts": {
14 | "minify": "postcss ./styles/*.css --dir ./dist",
15 | "update": "node ./commands/update.js"
16 | },
17 | "repository": {
18 | "type": "git",
19 | "url": "git+https://github.com/Hsins/hackmd-themes.git"
20 | },
21 | "author": {
22 | "name": "H.-H. Peng",
23 | "email": "hsinspeng@gmail.com",
24 | "url": "https://github.com/Hsins"
25 | },
26 | "license": "Apache-2.0",
27 | "homepage": "https://github.com/Hsins/hackmd-themes",
28 | "bugs": {
29 | "url": "https://github.com/Hsins/hackmd-themes/issues",
30 | "email": "hsinspeng@gmail.com"
31 | },
32 | "devDependencies": {
33 | "autoprefixer": "^10.4.2",
34 | "axios": "^0.26.0",
35 | "cssnano": "^5.1.0",
36 | "log-beautify": "^1.2.0",
37 | "postcss": "^8.4.8",
38 | "postcss-cli": "^9.1.0"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: [require('autoprefixer'), require('cssnano')],
3 | };
4 |
--------------------------------------------------------------------------------
/styles/dracula.css:
--------------------------------------------------------------------------------
1 | /* Variables */
2 | :root {
3 | /*dracula official spec colors */
4 | --dracula-background: rgb(40, 42, 54);
5 | --dracula-current-line: rgb(68, 71, 90);
6 | --dracula-foreground: rgb(248, 248, 242);
7 | --dracula-comment: rgb(98, 114, 164);
8 | --dracula-cyan: rgb(139, 233, 253);
9 | --dracula-green: rgb(80, 250, 123);
10 | --dracula-orange: rgb(255, 184, 108);
11 | --dracula-pink: rgb(255, 121, 198);
12 | --dracula-purple: rgb(189, 147, 249);
13 | --dracula-red: rgb(255, 85, 85);
14 | --dracula-yellow: rgb(241, 250, 140);
15 |
16 | /* dracula custom colors for typora */
17 | --dracula-foreground-fade: rgba(248, 248, 242, 0.5);
18 | --dracula-background-dark: rgb(32, 34, 39);
19 |
20 | /* background */
21 | --background-primary: #282a36;
22 | --background-primary-alt: #44475a;
23 | --background-secondary: #282a36;
24 | --background-secondary-alt: #1a1e24;
25 |
26 | /* text */
27 | --text-normal: #f8f8f2;
28 | --text-title-h1: #bd93f9;
29 | --text-title-h2: #bd93f8;
30 | --text-title-h3: #bd93f7;
31 | --text-title-h4: #bd93f6;
32 | --text-title-h5: #bd93f5;
33 | --text-title-h6: #bd93f4;
34 | --text-link: #8be9fd;
35 | --markup-code: #ffb86c;
36 | --text-tag: #50fa7b;
37 | --text-a: #ff79c6;
38 | --text-a-hover: #ff79c0;
39 | --text-mark: #f1fa8c;
40 |
41 | /* other */
42 | --interactive-accent: #f1fa8c;
43 | --interactive-accent-rgb: #f1fa8c;
44 | --blockquote-border: #b294bb;
45 |
46 | /* table color */
47 | --table-border-color: var(--dracula-foreground);
48 | --table-thead-color: var(--dracula-current-line);
49 | --table-bg-color: var(--dracula-background);
50 | --table-bg-darker-color: var(--dracula-background-dark);
51 | }
52 |
53 | /* Navigation */
54 | .navbar {
55 | background: var(--dracula-background);
56 | }
57 |
58 | .navbar-default {
59 | box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
60 | border-color: var(--dracula-background);
61 | }
62 |
63 | .navbar-default .navbar-brand {
64 | color: var(--text-color1);
65 | }
66 |
67 | .navbar-default .navbar-brand:hover {
68 | color: var(--dracula-purple);
69 | }
70 |
71 | .navbar-default .navbar-nav > li > a {
72 | color: var(--text-color1);
73 | }
74 |
75 | .navbar-default .navbar-nav > li > a:hover {
76 | color: var(--dracula-purple);
77 | }
78 |
79 | .ui-toc-dropdown .nav > li > a {
80 | color: rgb(169, 162, 143);
81 | }
82 |
83 | .ui-toc-dropdown .nav > li > a:hover {
84 | color: rgb(241, 250, 140);
85 | }
86 |
87 | .ui-toc-dropdown .nav > .active:focus > a,
88 | .ui-toc-dropdown .nav > .active:hover > a,
89 | .ui-toc-dropdown .nav > .active > a {
90 | color: rgb(255, 255, 255);
91 | }
92 |
93 | .ui-infobar,
94 | .community-button {
95 | color: white;
96 | }
97 |
98 | .community-button:hover {
99 | background: var(--dracula-purple);
100 | color: var(--dracula-background);
101 | }
102 |
103 | .ui-comment-app .open-comments {
104 | background: var(--background-primary);
105 | }
106 |
107 | .dropdown-menu {
108 | background: var(--background-primary-alt);
109 | }
110 |
111 | .ui-notification .notification-menu-item:hover {
112 | background: var(--background-secondary);
113 | }
114 |
115 | /* Body */
116 | html,
117 | body,
118 | .ui-content {
119 | font-family: 'Open Sans', 'Clear Sans', 'Helvetica Neue', Helvetica, Arial,
120 | sans-serif;
121 | font-size: 15px;
122 | color: var(--text-normal);
123 | background: var(--background-primary);
124 | line-height: 1.6;
125 | }
126 |
127 | /* Buttons */
128 | .btn-default {
129 | border-color: var(--dracula-purple);
130 | background: var(--dracula-background);
131 | color: rgb(188, 194, 205);
132 | }
133 |
134 | .btn-default.active {
135 | border-color: var(--dracula-purple);
136 | background: var(--dracula-purple);
137 | color: var(--dracula-background);
138 | }
139 |
140 | .btn-default.active:hover {
141 | border-color: var(--dracula-purple);
142 | background: rgb(145, 116, 191);
143 | }
144 |
145 | .btn-default:hover {
146 | border-color: var(--dracula-purple);
147 | background: rgb(70, 63, 93);
148 | color: rgb(255, 255, 255);
149 | }
150 |
151 | .btn-primary {
152 | background: var(--dracula-cyan);
153 | color: rgb(10, 30, 15);
154 | }
155 |
156 | .btn-primary:hover {
157 | background: rgb(110, 177, 194);
158 | color: rgb(10, 30, 15);
159 | }
160 |
161 | /* Headings */
162 | .markdown-body h1,
163 | .markdown-body h2,
164 | .markdown-body h3,
165 | .markdown-body h4,
166 | .markdown-body h5,
167 | .markdown-body h6 {
168 | padding-bottom: 0em;
169 | border-bottom: none;
170 | }
171 |
172 | .markdown-body h1 {
173 | font-weight: 500;
174 | font-size: 28px;
175 | font-weight: bold;
176 | color: var(--text-title-h1);
177 | }
178 |
179 | .markdown-body h2 {
180 | font-weight: 500;
181 | font-size: 26px;
182 | font-weight: bold;
183 | color: var(--text-title-h2);
184 | }
185 |
186 | .markdown-body h3 {
187 | font-weight: 500;
188 | font-size: 23px;
189 | font-weight: bold;
190 | color: var(--text-title-h3);
191 | }
192 |
193 | .markdown-body h4 {
194 | font-weight: 500;
195 | font-size: 20px;
196 | font-weight: bold;
197 | color: var(--text-title-h4);
198 | }
199 |
200 | .markdown-body h5 {
201 | font-weight: 500;
202 | font-size: 18px;
203 | font-weight: bold;
204 | color: var(--text-title-h5);
205 | }
206 |
207 | .markdown-body h6 {
208 | font-weight: 500;
209 | font-size: 16px;
210 | font-weight: bold;
211 | color: var(--text-title-h6);
212 | }
213 |
214 | /* list */
215 | .markdown-body ul,
216 | .markdown-body ol {
217 | padding-left: 30px;
218 | }
219 |
220 | /* Hyperlinks */
221 | .markdown-body a {
222 | color: var(--text-link);
223 | }
224 |
225 | .markdown-body a:hover {
226 | color: var(--text-link);
227 | }
228 |
229 | /* Blockquote Area */
230 | .markdown-body blockquote {
231 | color: var(--interactive-accent) !important;
232 | font-style: italic;
233 | border-color: var(--blockquote-border) !important;
234 | }
235 |
236 | .markdown-body blockquote p {
237 | display: inline;
238 | }
239 |
240 | /* Tables */
241 | .markdown-body table {
242 | display: table;
243 | text-align: left;
244 | }
245 |
246 | .markdown-body table thead tr {
247 | background-color: var(--table-thead-color);
248 | }
249 |
250 | .markdown-bodytable tr th {
251 | font-weight: bold;
252 | border-left: 1px solid var(--table-border-color);
253 | border-right: 1px solid var(--table-border-color);
254 | text-align: left;
255 | margin: 0;
256 | padding: 6px 13px;
257 | }
258 |
259 | .markdown-body table tbody tr {
260 | border-top: 1px solid var(--table-border-color);
261 | margin: 0;
262 | padding: 0;
263 | }
264 |
265 | .markdown-body table tbody tr:nth-child(2n) {
266 | background-color: var(--table-bg-darker-color);
267 | }
268 |
269 | .markdown-body table tbody tr:nth-child(2n + 1) {
270 | background-color: var(--table-bg-color);
271 | }
272 |
273 | .markdown-body table tr td {
274 | border-left: 1px solid var(--table-border-color);
275 | border-right: 1px solid var(--table-border-color);
276 | text-align: left;
277 | margin: 0;
278 | padding: 6px 13px;
279 | }
280 |
281 | .markdown-body table tr th:first-child,
282 | .markdown-body table tr td:first-child {
283 | border-left-width: 0px;
284 | }
285 |
286 | .markdown-body table tr th:last-child,
287 | .markdown-body table tr td:last-child {
288 | border-right-width: 0px;
289 | }
290 |
291 | /* Codeblock */
292 | .markdown-body code {
293 | border: 1px solid #525660;
294 | border-radius: 4px;
295 | color: var(--markup-code) !important;
296 | background-color: var(--background-primary-alt);
297 | bottom: -0.1px;
298 | }
299 |
300 | /* Keyboard Buttons */
301 | .markdown-body kbd {
302 | background: var(--bg-color5);
303 | color: var(--text-color1);
304 | font-family: 'Lucida Console';
305 | border-color: var(--menu-divider-color);
306 | }
307 |
308 | .markdown-body pre code {
309 | padding: 5px;
310 | line-height: normal;
311 | display: block;
312 | background-color: var(--background-primary-alt);
313 | }
314 |
315 | .markdown-body pre {
316 | background-color: var(--background-primary-alt);
317 | border-radius: 5px;
318 | padding: 5px;
319 | }
320 |
321 | /* Text */
322 | .markdown-body strong {
323 | color: var(--markup-code);
324 | font-weight: 700;
325 | }
326 |
327 | .markdown-body em {
328 | color: var(--interactive-accent);
329 | }
330 |
331 | /* Images */
332 | .markdown-body img {
333 | background-color: transparent;
334 | }
335 |
336 | /* Mark */
337 | .markdown-body mark {
338 | border-radius: 4px;
339 | color: var(--background-primary);
340 | background-color: var(--text-mark);
341 | margin: 0px 2px;
342 | padding: 0px 4px 1px 4px;
343 | }
344 |
345 | /* horizontal divider */
346 | .markdown-body hr {
347 | height: 1px;
348 | background-color: var(--text-normal);
349 | border: 0px;
350 | }
351 |
352 | /* Details */
353 | .markdown-body details {
354 | padding: 5px 10px;
355 | border: 0px solid #37352f;
356 | border-radius: 1px;
357 | background-color: rgb(56, 58, 89);
358 | }
359 |
360 | .markdown-body summary {
361 | color: rgb(248, 248, 242);
362 | font-weight: bold;
363 | cursor: pointer;
364 | padding: 4px;
365 | }
366 |
367 | /* prism.js dracula */
368 | /*
369 | * Dracula Theme for Prism.JS
370 | *
371 | * @author Gustavo Costa
372 | * e-mail: gusbemacbe@gmail.com
373 | *
374 | * @contributor Jon Leopard
375 | * e-mail: jonlprd@gmail.com
376 | *
377 | * @license MIT 2016-2020
378 | */
379 |
380 | /* Scrollbars */
381 |
382 | :root {
383 | --background: #282a36;
384 | --comment: #6272a4;
385 | --foreground: #f8f8f2;
386 | --selection: #44475a;
387 |
388 | --cyan: #8be9fd;
389 | --green: #50fa7b;
390 | --orange: #ffb86c;
391 | --pink: #ff79c6;
392 | --purple: #bd93f9;
393 | --red: #ff5555;
394 | --yellow: #f1fa8c;
395 |
396 | /* Transparency */
397 |
398 | /** 30% of transparency **/
399 | --background-30: #282a3633;
400 | --comment-30: #6272a433;
401 | --foreground-30: #f8f8f233;
402 | --selection-30: #44475a33;
403 |
404 | --cyan-30: #8be9fd33;
405 | --green-30: #50fa7b33;
406 | --orange-30: #ffb86c33;
407 | --pink-30: #ff79c633;
408 | --purple-30: #bd93f933;
409 | --red-30: #ff555533;
410 | --yellow-30: #f1fa8c33;
411 |
412 | /** 40% of transparency **/
413 | --background-40: #282a3666;
414 | --comment-40: #6272a466;
415 | --foreground-40: #f8f8f266;
416 | --selection-40: #44475a66;
417 |
418 | --cyan-40: #8be9fd66;
419 | --green-40: #50fa7b66;
420 | --orange-40: #ffb86c66;
421 | --pink-40: #ff79c666;
422 | --purple-40: #bd93f966;
423 | --red-40: #ff555566;
424 | --yellow-40: #f1fa8c66;
425 | }
426 |
427 | pre::-webkit-scrollbar {
428 | width: 14px;
429 | }
430 |
431 | pre::-webkit-scrollbar-track {
432 | background-color: var(--comment);
433 | border-radius: 0px;
434 | }
435 |
436 | pre::-webkit-scrollbar-thumb {
437 | background-color: var(--purple);
438 | border-radius: 0px;
439 | }
440 |
441 | /* Selection */
442 |
443 | pre[class*='language-']::-moz-selection,
444 | pre[class*='language-'] ::-moz-selection,
445 | code[class*='language-']::-moz-selection,
446 | code[class*='language-'] ::-moz-selection {
447 | text-shadow: none;
448 | background-color: var(--selection);
449 | }
450 |
451 | pre[class*='language-']::selection,
452 | pre[class*='language-'] ::selection,
453 | code[class*='language-']::selection,
454 | code[class*='language-'] ::selection {
455 | text-shadow: none;
456 | background-color: var(--selection);
457 | }
458 |
459 | /* Line numbers */
460 |
461 | pre.line-numbers {
462 | position: relative;
463 | padding-left: 3.8em;
464 | counter-reset: linenumber;
465 | }
466 |
467 | pre.line-numbers > code {
468 | position: relative;
469 | white-space: inherit;
470 | }
471 |
472 | .line-numbers .line-numbers-rows {
473 | position: absolute;
474 | pointer-events: none;
475 | top: 0;
476 | font-size: 100%;
477 | left: -3.8em;
478 | width: 3em; /* works for line-numbers below 1000 lines */
479 | letter-spacing: -1px;
480 | border-right: 1px solid #999;
481 |
482 | -webkit-user-select: none;
483 | -moz-user-select: none;
484 | -ms-user-select: none;
485 | user-select: none;
486 | }
487 |
488 | .line-numbers-rows > span {
489 | pointer-events: none;
490 | display: block;
491 | counter-increment: linenumber;
492 | }
493 |
494 | .line-numbers-rows > span:before {
495 | content: counter(linenumber);
496 | color: #999;
497 | display: block;
498 | padding-right: 0.8em;
499 | text-align: right;
500 | }
501 |
502 | /* Toolbar for copying */
503 |
504 | div.code-toolbar {
505 | position: relative;
506 | }
507 |
508 | div.code-toolbar > .toolbar {
509 | position: absolute;
510 | top: 0.3em;
511 | right: 0.2em;
512 | transition: opacity 0.3s ease-in-out;
513 | opacity: 0;
514 | }
515 |
516 | div.code-toolbar:hover > .toolbar {
517 | opacity: 1;
518 | }
519 |
520 | div.code-toolbar > .toolbar .toolbar-item {
521 | display: inline-block;
522 | padding-right: 20px;
523 | }
524 |
525 | div.code-toolbar > .toolbar a {
526 | cursor: pointer;
527 | }
528 |
529 | div.code-toolbar > .toolbar button {
530 | background: none;
531 | border: 0;
532 | color: inherit;
533 | font: inherit;
534 | line-height: normal;
535 | overflow: visible;
536 | padding: 0;
537 | -webkit-user-select: none; /* for button */
538 | -moz-user-select: none;
539 | -ms-user-select: none;
540 | }
541 |
542 | div.code-toolbar > .toolbar a,
543 | div.code-toolbar > .toolbar button,
544 | div.code-toolbar > .toolbar span {
545 | color: var(--foreground);
546 | font-size: 0.8em;
547 | padding: 0.5em;
548 | background: var(--comment);
549 | border-radius: 0.5em;
550 | }
551 |
552 | div.code-toolbar > .toolbar a:hover,
553 | div.code-toolbar > .toolbar a:focus,
554 | div.code-toolbar > .toolbar button:hover,
555 | div.code-toolbar > .toolbar button:focus,
556 | div.code-toolbar > .toolbar span:hover,
557 | div.code-toolbar > .toolbar span:focus {
558 | color: inherit;
559 | text-decoration: none;
560 | background-color: var(--green);
561 | }
562 |
563 | /* Remove text shadow for printing */
564 |
565 | @media print {
566 | code[class*='language-'],
567 | pre[class*='language-'] {
568 | text-shadow: none;
569 | }
570 | }
571 |
572 | code[class*='language-'],
573 | pre[class*='language-'] {
574 | color: var(--foreground);
575 | background: var(--background);
576 | text-shadow: none;
577 | font-family: PT Mono, Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono',
578 | monospace;
579 | text-align: left;
580 | white-space: pre;
581 | word-spacing: normal;
582 | word-break: normal;
583 | word-wrap: normal;
584 | line-height: 1.5;
585 |
586 | -moz-tab-size: 4;
587 | -o-tab-size: 4;
588 | tab-size: 4;
589 |
590 | -webkit-hyphens: none;
591 | -moz-hyphens: none;
592 | -ms-hyphens: none;
593 | hyphens: none;
594 | }
595 |
596 | /* Code blocks */
597 |
598 | pre[class*='language-'] {
599 | background: var(--background);
600 | border-radius: 0.5em;
601 | padding: 1em;
602 | margin: 0.5em 0;
603 | overflow: auto;
604 | height: auto;
605 | }
606 |
607 | :not(pre) > code[class*='language-'],
608 | pre[class*='language-'] {
609 | background: var(--background);
610 | }
611 |
612 | /* Inline code */
613 | :not(pre) > code[class*='language-'] {
614 | padding: 4px 7px;
615 | border-radius: 0.3em;
616 | white-space: normal;
617 | }
618 |
619 | /* Code box limit */
620 |
621 | .limit-300 {
622 | height: 300px !important;
623 | }
624 |
625 | .limit-300 {
626 | height: 400px !important;
627 | }
628 |
629 | .limit-500 {
630 | height: 500px !important;
631 | }
632 |
633 | .limit-600 {
634 | height: 600px !important;
635 | }
636 |
637 | .limit-700 {
638 | height: 700px !important;
639 | }
640 |
641 | .limit-800 {
642 | height: 800px !important;
643 | }
644 |
645 | .language-css {
646 | color: var(--purple);
647 | }
648 |
649 | .token {
650 | color: var(--pink);
651 | }
652 |
653 | .language-css .token {
654 | color: var(--pink);
655 | }
656 |
657 | .token.script {
658 | color: var(--foreground);
659 | }
660 |
661 | .token.bold {
662 | font-weight: bold;
663 | }
664 |
665 | .token.italic {
666 | font-style: italic;
667 | }
668 |
669 | .token.atrule,
670 | .token.attr-name,
671 | .token.attr-value {
672 | color: var(--green);
673 | }
674 |
675 | .language-css .token.atrule {
676 | color: var(--purple);
677 | }
678 |
679 | .language-html .token.attr-value,
680 | .language-markup .token.attr-value {
681 | color: var(--yellow);
682 | }
683 |
684 | .token.boolean {
685 | color: var(--purple);
686 | }
687 |
688 | .token.builtin,
689 | .token.class-name {
690 | color: var(--cyan);
691 | }
692 |
693 | .token.comment {
694 | color: var(--comment);
695 | }
696 |
697 | .token.constant {
698 | color: var(--purple);
699 | }
700 |
701 | .language-javascript .token.constant {
702 | color: var(--orange);
703 | font-style: italic;
704 | }
705 |
706 | .token.entity {
707 | color: var(--pink);
708 | }
709 |
710 | .language-css .token.entity {
711 | color: var(--green);
712 | }
713 |
714 | .language-html .token.entity.named-entity {
715 | color: var(--purple);
716 | }
717 |
718 | .language-html .token.entity:not(.named-entity) {
719 | color: var(--pink);
720 | }
721 |
722 | .language-markup .token.entity.named-entity {
723 | color: var(--purple);
724 | }
725 |
726 | .language-markup .token.entity:not(.named-entity) {
727 | color: var(--pink);
728 | }
729 |
730 | .token.function {
731 | color: var(--green);
732 | }
733 |
734 | .language-css .token.function {
735 | color: var(--cyan);
736 | }
737 |
738 | .token.important,
739 | .token.keyword {
740 | color: var(--pink);
741 | }
742 |
743 | .token.prolog {
744 | color: var(--foreground);
745 | }
746 |
747 | .token.property {
748 | color: var(--orange);
749 | }
750 |
751 | .language-css .token.property {
752 | color: var(--cyan);
753 | }
754 |
755 | .token.punctuation {
756 | color: var(--pink);
757 | }
758 |
759 | .language-css .token.punctuation {
760 | color: var(--orange);
761 | }
762 |
763 | .language-html .token.punctuation,
764 | .language-markup .token.punctuation {
765 | color: var(--foreground);
766 | }
767 |
768 | .token.selector {
769 | color: var(--pink);
770 | }
771 |
772 | .language-css .token.selector {
773 | color: var(--green);
774 | }
775 |
776 | .token.regex {
777 | color: var(--red);
778 | }
779 |
780 | .language-css .token.rule:not(.atrule) {
781 | color: var(--foreground);
782 | }
783 |
784 | .token.string {
785 | color: var(--yellow);
786 | }
787 |
788 | .token.tag {
789 | color: var(--pink);
790 | }
791 |
792 | .token.url {
793 | color: var(--cyan);
794 | }
795 |
796 | .language-css .token.url {
797 | color: var(--orange);
798 | }
799 |
800 | .token.variable {
801 | color: var(--comment);
802 | }
803 |
804 | .token.number {
805 | color: rgba(189, 147, 249, 1);
806 | }
807 |
808 | .token.operator {
809 | color: rgba(139, 233, 253, 1);
810 | }
811 |
812 | .token.char {
813 | color: rgba(255, 135, 157, 1);
814 | }
815 |
816 | .token.symbol {
817 | color: rgba(255, 184, 108, 1);
818 | }
819 |
820 | .token.deleted {
821 | color: #e2777a;
822 | }
823 |
824 | .token.namespace {
825 | color: #e2777a;
826 | }
827 |
828 | /* Line Highlighter */
829 | .highlight-line {
830 | color: inherit;
831 | display: inline-block;
832 | text-decoration: none;
833 |
834 | border-radius: 4px;
835 | padding: 2px 10px;
836 | }
837 |
838 | .highlight-line:empty:before {
839 | content: ' ';
840 | }
841 |
842 | .highlight-line:not(:last-child) {
843 | min-width: 100%;
844 | }
845 |
846 | .highlight-line .highlight-line:not(:last-child) {
847 | min-width: 0;
848 | }
849 |
850 | .highlight-line-isdir {
851 | color: var(--foreground);
852 | background-color: var(--selection-30);
853 | }
854 |
855 | .highlight-line-active {
856 | background-color: var(--comment-30);
857 | }
858 |
859 | .highlight-line-add {
860 | background-color: var(--green-30);
861 | }
862 |
863 | .highlight-line-remove {
864 | background-color: var(--red-30);
865 | }
866 |
--------------------------------------------------------------------------------
/styles/notion.css:
--------------------------------------------------------------------------------
1 | .markdown-body {
2 | font-family: 'Segoe UI', Helvetica, 'Apple Color Emoji', Arial, sans-serif,
3 | 'Segoe UI Emoji', 'Segoe UI Symbol';
4 | color: #37352f;
5 | line-height: 1.6;
6 | }
7 |
8 | /* Heading */
9 | .markdown-body h1,
10 | .markdown-body h2,
11 | .markdown-body h3,
12 | .markdown-body h4,
13 | .markdown-body h5,
14 | .markdown-body h6 {
15 | position: relative;
16 | margin-top: 2rem;
17 | margin-bottom: 1rem;
18 | font-weight: 700;
19 | line-height: 1.4;
20 | cursor: text;
21 | }
22 |
23 | .markdown-body h1 {
24 | padding-bottom: 0.3em;
25 | font-size: 2.2em;
26 | line-height: 1.3;
27 | }
28 |
29 | .markdown-body h2 {
30 | padding-bottom: 0.3em;
31 | font-size: 1.75em;
32 | line-height: 1.225;
33 | }
34 |
35 | .markdown-body h3 {
36 | font-size: 1.4em;
37 | line-height: 1.43;
38 | }
39 |
40 | .markdown-body h4 {
41 | font-size: 1.2em;
42 | }
43 |
44 | .markdown-body h5 {
45 | font-size: 1em;
46 | }
47 |
48 | .markdown-body h6 {
49 | font-size: 1em;
50 | color: #37352f;
51 | }
52 |
53 | /* Contents */
54 | .markdown-body p,
55 | .markdown-body blockquote,
56 | .markdown-body ul,
57 | .markdown-body ol,
58 | .markdown-body dl,
59 | .markdown-body table {
60 | margin: 0.8em 0;
61 | }
62 |
63 | .markdown-body li > ol,
64 | .markdown-body li > ul {
65 | margin: 0 0;
66 | }
67 |
68 | .markdown-body code,
69 | .markdown-body tt {
70 | border: none;
71 | background-color: #f7f6f3;
72 | border-radius: 4px;
73 | font-weight: medium;
74 | font-family: 'SF Mono Medium', 'Fira Code', 'Cousine', 'Consolas', monospace;
75 | padding: 4px 2px 2px 2px;
76 | }
77 |
78 | /* Blockquote */
79 | .markdown-body blockquote {
80 | margin-left: 1.75px;
81 | margin-right: 0px;
82 | border-left: 4px solid #37352f;
83 | padding: 10px 14px 7px 22px;
84 | background-color: #f7f7f7;
85 | }
86 |
87 | .markdown-body blockquote blockquote {
88 | padding-right: 0;
89 | }
90 |
91 | /* Table */
92 | .markdown-body table {
93 | padding: 0;
94 | word-break: initial;
95 | }
96 |
97 | .markdown-body table tr {
98 | border-top: 1px solid #e9e9e7;
99 | margin: 0;
100 | padding: 0;
101 | }
102 |
103 | .markdown-body table tr th {
104 | font-weight: bold;
105 | border: 1px solid #e9e9e7;
106 | border-bottom: 0;
107 | margin: 0;
108 | padding: 6px 13px;
109 | }
110 |
111 | .markdown-body table tr td {
112 | border: 1px solid #e9e9e7;
113 | margin: 0;
114 | padding: 6px 13px;
115 | }
116 |
117 | .markdown-body table tr th:first-child,
118 | .markdown-body table tr td:first-child {
119 | margin-top: 0;
120 | }
121 |
122 | .markdown-body table tr th:last-child,
123 | .markdown-body table tr td:last-child {
124 | margin-bottom: 0;
125 | }
126 |
127 | .markdown-body table tr:nth-child(2n) {
128 | background-color: #f7f7f7;
129 | }
130 |
131 | .markdown-body table tr:nth-child(2n + 1) {
132 | background-color: #fdfdfd;
133 | }
134 |
135 | /* Hyperlink */
136 | .markdown-body a {
137 | color: #37352f;
138 | }
139 |
140 | .markdown-body a:hover {
141 | opacity: 1;
142 | }
143 |
144 | /* Horizontal Rule */
145 | .markdown-body hr {
146 | background-color: #ecedec;
147 | height: 1.5px;
148 | border: none;
149 | }
150 |
151 | /* Code */
152 | .markdown-body code {
153 | color: #ec5757;
154 | background-color: #eeedeb;
155 | }
156 |
157 | /* Keyboard Button */
158 | .markdown-body kbd {
159 | font-size: 0.9rem;
160 | background: #f7f6f3;
161 | border: 1px solid #e9e9e7;
162 | box-shadow: 0 2px 0 #e9e9e7;
163 | color: #73726e;
164 | }
165 |
166 | /* Mark */
167 | .markdown-body mark {
168 | border-radius: 4px;
169 | color: #402c1b;
170 | background-color: #fdecc8;
171 | margin: 0px 2px;
172 | padding: 0px 4px 1px 4px;
173 | }
174 |
175 | /* Detail */
176 | .markdown-body details {
177 | padding: 5px 10px;
178 | border: 0px solid #37352f;
179 | border-radius: 1px;
180 | background-color: #f7f6f3;
181 | }
182 |
183 | .markdown-body summary {
184 | color: #787878;
185 | font-weight: bold;
186 | cursor: pointer;
187 | }
188 |
189 | /* Cover Image */
190 | .markdown-body img.cover-image {
191 | width: 100%;
192 | height: 300px;
193 | object-fit: cover;
194 | border-radius: 5px;
195 | }
196 |
--------------------------------------------------------------------------------
/styles/orangeheart.css:
--------------------------------------------------------------------------------
1 | .markdown-body {
2 | max-width: 860px;
3 | font-size: 16px;
4 | color: black;
5 | padding: 5px 20px;
6 | line-height: 1.6;
7 | word-spacing: 0px;
8 | letter-spacing: 0px;
9 | word-break: break-word;
10 | word-wrap: break-word;
11 | text-align: left;
12 | font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light,
13 | 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
14 | }
15 |
16 | .markdown-body p {
17 | font-size: 16px;
18 | padding-top: 8px;
19 | padding-bottom: 8px;
20 | margin: 0;
21 | line-height: 26px;
22 | color: black;
23 | }
24 |
25 | .markdown-body h1,
26 | .markdown-body h2,
27 | .markdown-body h3,
28 | .markdown-body h4,
29 | .markdown-body h5,
30 | .markdown-body h6 {
31 | margin-top: 30px;
32 | margin-bottom: 15px;
33 | padding: 0px;
34 | font-weight: bold;
35 | color: black;
36 | }
37 | .markdown-body h1 {
38 | font-size: 2.5rem;
39 | }
40 | .markdown-body h2 {
41 | font-size: 2.1rem;
42 | border-bottom: 2px solid rgb(239, 112, 96);
43 | }
44 | .markdown-body h2 span {
45 | display: inline-block;
46 | font-weight: bold;
47 | background: rgb(239, 112, 96);
48 | color: #ffffff;
49 | padding: 5px 10px 1px;
50 | border-top-right-radius: 3px;
51 | border-top-left-radius: 3px;
52 | margin-right: 0px;
53 | }
54 |
55 | .markdown-body h3 {
56 | font-size: 1.8rem;
57 | }
58 | .markdown-body h4 {
59 | font-size: 1.65rem;
60 | }
61 | .markdown-body h5 {
62 | font-size: 1.5rem;
63 | }
64 | .markdown-body h6 {
65 | font-size: 1.5rem;
66 | }
67 |
68 | .markdown-body ul,
69 | .markdown-body ol {
70 | margin-top: 8px;
71 | margin-bottom: 8px;
72 | padding-left: 25px;
73 | color: black;
74 | }
75 | .markdown-body ul {
76 | list-style-type: disc;
77 | }
78 | .markdown-body ul ul {
79 | list-style-type: square;
80 | }
81 | .markdown-body ol {
82 | list-style-type: decimal;
83 | }
84 | .markdown-body li section {
85 | margin-top: 5px;
86 | margin-bottom: 5px;
87 | line-height: 26px;
88 | text-align: left;
89 | color: rgb(1, 1, 1);
90 | font-weight: 500;
91 | }
92 |
93 | .markdown-body blockquote {
94 | display: block;
95 | font-size: 0.9em;
96 | overflow: auto;
97 | overflow-scrolling: touch;
98 | border-left: 3px solid rgb(239, 112, 96);
99 | color: #6a737d;
100 | padding: 5px 10px 5px 20px;
101 | margin-bottom: 10px;
102 | margin-top: 10px;
103 | background: #fff9f9;
104 | }
105 | .markdown-body blockquote p {
106 | margin: 0px;
107 | color: black;
108 | line-height: 26px;
109 | }
110 |
111 | .markdown-body a {
112 | text-decoration: none;
113 | word-wrap: break-word;
114 | font-weight: bold;
115 | border-bottom: 1px solid #1e6bb8;
116 | color: rgb(239, 112, 96);
117 | border-bottom: 0px solid rgb(239, 112, 96);
118 | }
119 |
120 | .markdown-body p code,
121 | .markdown-body li code {
122 | font-size: 14px;
123 | word-wrap: break-word;
124 | padding: 2px 4px;
125 | border-radius: 4px;
126 | margin: 0 2px;
127 | color: rgb(239, 112, 96);
128 | background-color: rgba(27, 31, 35, 0.05);
129 | font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;
130 | word-break: break-all;
131 | }
132 |
133 | .markdown-body table {
134 | display: table;
135 | text-align: left;
136 | }
137 | .markdown-body tbody {
138 | border: 0;
139 | }
140 | .markdown-body table tr {
141 | border: 0;
142 | border-top: 1px solid #ccc;
143 | background-color: white;
144 | }
145 | .markdown-body table tr:nth-child(2n) {
146 | background-color: #f8f8f8;
147 | }
148 | .markdown-body table tr th,
149 | .markdown-body table tr td {
150 | font-size: 16px;
151 | border: 1px solid #ccc;
152 | padding: 5px 10px;
153 | text-align: left;
154 | }
155 | .markdown-body table tr th {
156 | font-weight: bold;
157 | background-color: #f0f0f0;
158 | }
159 |
160 | .markdown-body span code,
161 | .markdown-body li code {
162 | color: rgb(239, 112, 96);
163 | }
164 |
165 | .markdown-body mark {
166 | padding: 2px 4px;
167 | margin: 0 2px;
168 | font-weight: 500;
169 | color: #ffffff;
170 | background-color: rgb(239, 112, 96);
171 | border-radius: 2px;
172 | border-radius: 4px;
173 | }
174 |
175 | /* Anchor for headings */
176 | .markdown-body .anchor {
177 | margin-left: -40px;
178 | }
179 |
180 | .octicon-link {
181 | color: white !important;
182 | border-radius: 3px;
183 | padding: 5px 10px !important;
184 | }
185 |
--------------------------------------------------------------------------------
/themes/dracula.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "HackMD Theme - Dracula"
3 | description: "Use `{%hackmd @themes/dracula %}` syntax to include this theme."
4 | tags: HackMD-Theme
5 | breaks: false
6 | ---
7 |
8 |
11 |
--------------------------------------------------------------------------------
/themes/notion.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "HackMD Theme - Notion"
3 | description: "Use `{%hackmd @themes/notion %}` syntax to include this theme."
4 | tags: HackMD-Theme
5 | breaks: false
6 | ---
7 |
8 |
11 |
--------------------------------------------------------------------------------
/themes/orangeheart.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "HackMD Theme - OrangeHeart"
3 | description: "Use `{%hackmd @themes/orangeheart %}` syntax to include this theme."
4 | tags: HackMD-Theme
5 | breaks: false
6 | ---
7 |
8 |
11 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@nodelib/fs.scandir@2.1.5":
6 | version "2.1.5"
7 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
8 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
9 | dependencies:
10 | "@nodelib/fs.stat" "2.0.5"
11 | run-parallel "^1.1.9"
12 |
13 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
14 | version "2.0.5"
15 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
16 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
17 |
18 | "@nodelib/fs.walk@^1.2.3":
19 | version "1.2.8"
20 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
21 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
22 | dependencies:
23 | "@nodelib/fs.scandir" "2.1.5"
24 | fastq "^1.6.0"
25 |
26 | "@trysound/sax@0.2.0":
27 | version "0.2.0"
28 | resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
29 | integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
30 |
31 | ansi-regex@^5.0.1:
32 | version "5.0.1"
33 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
34 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
35 |
36 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
37 | version "4.3.0"
38 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
39 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
40 | dependencies:
41 | color-convert "^2.0.1"
42 |
43 | anymatch@~3.1.2:
44 | version "3.1.2"
45 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
46 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
47 | dependencies:
48 | normalize-path "^3.0.0"
49 | picomatch "^2.0.4"
50 |
51 | array-union@^3.0.1:
52 | version "3.0.1"
53 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975"
54 | integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==
55 |
56 | autoprefixer@^10.4.2:
57 | version "10.4.2"
58 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b"
59 | integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==
60 | dependencies:
61 | browserslist "^4.19.1"
62 | caniuse-lite "^1.0.30001297"
63 | fraction.js "^4.1.2"
64 | normalize-range "^0.1.2"
65 | picocolors "^1.0.0"
66 | postcss-value-parser "^4.2.0"
67 |
68 | axios@^0.26.0:
69 | version "0.26.0"
70 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928"
71 | integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==
72 | dependencies:
73 | follow-redirects "^1.14.8"
74 |
75 | binary-extensions@^2.0.0:
76 | version "2.2.0"
77 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
78 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
79 |
80 | boolbase@^1.0.0:
81 | version "1.0.0"
82 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
83 | integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
84 |
85 | braces@^3.0.1, braces@~3.0.2:
86 | version "3.0.2"
87 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
88 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
89 | dependencies:
90 | fill-range "^7.0.1"
91 |
92 | browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.19.1:
93 | version "4.20.0"
94 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9"
95 | integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==
96 | dependencies:
97 | caniuse-lite "^1.0.30001313"
98 | electron-to-chromium "^1.4.76"
99 | escalade "^3.1.1"
100 | node-releases "^2.0.2"
101 | picocolors "^1.0.0"
102 |
103 | caniuse-api@^3.0.0:
104 | version "3.0.0"
105 | resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
106 | integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
107 | dependencies:
108 | browserslist "^4.0.0"
109 | caniuse-lite "^1.0.0"
110 | lodash.memoize "^4.1.2"
111 | lodash.uniq "^4.5.0"
112 |
113 | caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001313:
114 | version "1.0.30001314"
115 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596"
116 | integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==
117 |
118 | chalk@^3.0.0:
119 | version "3.0.0"
120 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
121 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
122 | dependencies:
123 | ansi-styles "^4.1.0"
124 | supports-color "^7.1.0"
125 |
126 | chokidar@^3.3.0:
127 | version "3.5.3"
128 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
129 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
130 | dependencies:
131 | anymatch "~3.1.2"
132 | braces "~3.0.2"
133 | glob-parent "~5.1.2"
134 | is-binary-path "~2.1.0"
135 | is-glob "~4.0.1"
136 | normalize-path "~3.0.0"
137 | readdirp "~3.6.0"
138 | optionalDependencies:
139 | fsevents "~2.3.2"
140 |
141 | cliui@^7.0.2:
142 | version "7.0.4"
143 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
144 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
145 | dependencies:
146 | string-width "^4.2.0"
147 | strip-ansi "^6.0.0"
148 | wrap-ansi "^7.0.0"
149 |
150 | color-convert@^2.0.1:
151 | version "2.0.1"
152 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
153 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
154 | dependencies:
155 | color-name "~1.1.4"
156 |
157 | color-name@~1.1.4:
158 | version "1.1.4"
159 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
160 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
161 |
162 | color-regex@^1.0.2:
163 | version "1.0.2"
164 | resolved "https://registry.yarnpkg.com/color-regex/-/color-regex-1.0.2.tgz#7faf6b045468a76b73470419885140a89fcded45"
165 | integrity sha512-TBRKov2oivOPjISo/P3HwHzAm39b4g5Ggx+wJqjLrUcJ9EW2WjqO4j81Xo9Jzeu3Z2u+x9nx2A/Pt8ZSYd/d3Q==
166 |
167 | colord@^2.9.1:
168 | version "2.9.2"
169 | resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
170 | integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==
171 |
172 | commander@^7.2.0:
173 | version "7.2.0"
174 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
175 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
176 |
177 | css-declaration-sorter@^6.0.3:
178 | version "6.1.4"
179 | resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4"
180 | integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==
181 | dependencies:
182 | timsort "^0.3.0"
183 |
184 | css-select@^4.1.3:
185 | version "4.2.1"
186 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd"
187 | integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
188 | dependencies:
189 | boolbase "^1.0.0"
190 | css-what "^5.1.0"
191 | domhandler "^4.3.0"
192 | domutils "^2.8.0"
193 | nth-check "^2.0.1"
194 |
195 | css-tree@^1.1.2, css-tree@^1.1.3:
196 | version "1.1.3"
197 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
198 | integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
199 | dependencies:
200 | mdn-data "2.0.14"
201 | source-map "^0.6.1"
202 |
203 | css-what@^5.1.0:
204 | version "5.1.0"
205 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
206 | integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
207 |
208 | cssesc@^3.0.0:
209 | version "3.0.0"
210 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
211 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
212 |
213 | cssnano-preset-default@^5.2.0:
214 | version "5.2.0"
215 | resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.0.tgz#2579d38b9217746f2cf9f938954a91e00418ded6"
216 | integrity sha512-3N5Vcptj2pqVKpHVqH6ezOJvqikR2PdLTbTrsrhF61FbLRQuujAqZ2sKN5rvcMsb7hFjrNnjZT8CGEkxoN/Pwg==
217 | dependencies:
218 | css-declaration-sorter "^6.0.3"
219 | cssnano-utils "^3.1.0"
220 | postcss-calc "^8.2.3"
221 | postcss-colormin "^5.3.0"
222 | postcss-convert-values "^5.1.0"
223 | postcss-discard-comments "^5.1.0"
224 | postcss-discard-duplicates "^5.1.0"
225 | postcss-discard-empty "^5.1.0"
226 | postcss-discard-overridden "^5.1.0"
227 | postcss-merge-longhand "^5.1.0"
228 | postcss-merge-rules "^5.1.0"
229 | postcss-minify-font-values "^5.1.0"
230 | postcss-minify-gradients "^5.1.0"
231 | postcss-minify-params "^5.1.0"
232 | postcss-minify-selectors "^5.2.0"
233 | postcss-normalize-charset "^5.1.0"
234 | postcss-normalize-display-values "^5.1.0"
235 | postcss-normalize-positions "^5.1.0"
236 | postcss-normalize-repeat-style "^5.1.0"
237 | postcss-normalize-string "^5.1.0"
238 | postcss-normalize-timing-functions "^5.1.0"
239 | postcss-normalize-unicode "^5.1.0"
240 | postcss-normalize-url "^5.1.0"
241 | postcss-normalize-whitespace "^5.1.0"
242 | postcss-ordered-values "^5.1.0"
243 | postcss-reduce-initial "^5.1.0"
244 | postcss-reduce-transforms "^5.1.0"
245 | postcss-svgo "^5.1.0"
246 | postcss-unique-selectors "^5.1.0"
247 |
248 | cssnano-utils@^3.1.0:
249 | version "3.1.0"
250 | resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
251 | integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
252 |
253 | cssnano@^5.1.0:
254 | version "5.1.0"
255 | resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.0.tgz#cf977d660a5824d0d5542639ed1d4045afd84cbe"
256 | integrity sha512-wWxave1wMlThGg4ueK98jFKaNqXnQd1nVZpSkQ9XvR+YymlzP1ofWqES1JkHtI250LksP9z5JH+oDcrKDJezAg==
257 | dependencies:
258 | cssnano-preset-default "^5.2.0"
259 | lilconfig "^2.0.3"
260 | yaml "^1.10.2"
261 |
262 | csso@^4.2.0:
263 | version "4.2.0"
264 | resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
265 | integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
266 | dependencies:
267 | css-tree "^1.1.2"
268 |
269 | dependency-graph@^0.11.0:
270 | version "0.11.0"
271 | resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27"
272 | integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==
273 |
274 | dir-glob@^3.0.1:
275 | version "3.0.1"
276 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
277 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
278 | dependencies:
279 | path-type "^4.0.0"
280 |
281 | dom-serializer@^1.0.1:
282 | version "1.3.2"
283 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
284 | integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
285 | dependencies:
286 | domelementtype "^2.0.1"
287 | domhandler "^4.2.0"
288 | entities "^2.0.0"
289 |
290 | domelementtype@^2.0.1, domelementtype@^2.2.0:
291 | version "2.2.0"
292 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
293 | integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
294 |
295 | domhandler@^4.2.0, domhandler@^4.3.0:
296 | version "4.3.0"
297 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626"
298 | integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==
299 | dependencies:
300 | domelementtype "^2.2.0"
301 |
302 | domutils@^2.8.0:
303 | version "2.8.0"
304 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
305 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
306 | dependencies:
307 | dom-serializer "^1.0.1"
308 | domelementtype "^2.2.0"
309 | domhandler "^4.2.0"
310 |
311 | electron-to-chromium@^1.4.76:
312 | version "1.4.77"
313 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.77.tgz#c26e454cb8721d4ebdae3e276c57cd32e51c32ed"
314 | integrity sha512-fiDxw8mO9Ph1Z0bjX2sFTPpi0J0QkOiwOJF+5Q0J0baNc/F9lLePAvDPlnoxvbUYYMizqrKPeotRRkJ9LtxAew==
315 |
316 | emoji-regex@^8.0.0:
317 | version "8.0.0"
318 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
319 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
320 |
321 | entities@^2.0.0:
322 | version "2.2.0"
323 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
324 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
325 |
326 | escalade@^3.1.1:
327 | version "3.1.1"
328 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
329 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
330 |
331 | fast-glob@^3.2.7:
332 | version "3.2.11"
333 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
334 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
335 | dependencies:
336 | "@nodelib/fs.stat" "^2.0.2"
337 | "@nodelib/fs.walk" "^1.2.3"
338 | glob-parent "^5.1.2"
339 | merge2 "^1.3.0"
340 | micromatch "^4.0.4"
341 |
342 | fastq@^1.6.0:
343 | version "1.13.0"
344 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
345 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
346 | dependencies:
347 | reusify "^1.0.4"
348 |
349 | fill-range@^7.0.1:
350 | version "7.0.1"
351 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
352 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
353 | dependencies:
354 | to-regex-range "^5.0.1"
355 |
356 | follow-redirects@^1.14.8:
357 | version "1.14.9"
358 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
359 | integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
360 |
361 | fraction.js@^4.1.2:
362 | version "4.2.0"
363 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
364 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
365 |
366 | fs-extra@^10.0.0:
367 | version "10.0.1"
368 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8"
369 | integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==
370 | dependencies:
371 | graceful-fs "^4.2.0"
372 | jsonfile "^6.0.1"
373 | universalify "^2.0.0"
374 |
375 | fsevents@~2.3.2:
376 | version "2.3.2"
377 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
378 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
379 |
380 | get-caller-file@^2.0.5:
381 | version "2.0.5"
382 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
383 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
384 |
385 | get-stdin@^9.0.0:
386 | version "9.0.0"
387 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575"
388 | integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==
389 |
390 | glob-parent@^5.1.2, glob-parent@~5.1.2:
391 | version "5.1.2"
392 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
393 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
394 | dependencies:
395 | is-glob "^4.0.1"
396 |
397 | globby@^12.0.0:
398 | version "12.2.0"
399 | resolved "https://registry.yarnpkg.com/globby/-/globby-12.2.0.tgz#2ab8046b4fba4ff6eede835b29f678f90e3d3c22"
400 | integrity sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==
401 | dependencies:
402 | array-union "^3.0.1"
403 | dir-glob "^3.0.1"
404 | fast-glob "^3.2.7"
405 | ignore "^5.1.9"
406 | merge2 "^1.4.1"
407 | slash "^4.0.0"
408 |
409 | graceful-fs@^4.1.6, graceful-fs@^4.2.0:
410 | version "4.2.9"
411 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
412 | integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
413 |
414 | has-flag@^4.0.0:
415 | version "4.0.0"
416 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
417 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
418 |
419 | ignore@^5.1.9:
420 | version "5.2.0"
421 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
422 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
423 |
424 | is-binary-path@~2.1.0:
425 | version "2.1.0"
426 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
427 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
428 | dependencies:
429 | binary-extensions "^2.0.0"
430 |
431 | is-extglob@^2.1.1:
432 | version "2.1.1"
433 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
434 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
435 |
436 | is-fullwidth-code-point@^3.0.0:
437 | version "3.0.0"
438 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
439 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
440 |
441 | is-glob@^4.0.1, is-glob@~4.0.1:
442 | version "4.0.3"
443 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
444 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
445 | dependencies:
446 | is-extglob "^2.1.1"
447 |
448 | is-number@^7.0.0:
449 | version "7.0.0"
450 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
451 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
452 |
453 | jsonfile@^6.0.1:
454 | version "6.1.0"
455 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
456 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
457 | dependencies:
458 | universalify "^2.0.0"
459 | optionalDependencies:
460 | graceful-fs "^4.1.6"
461 |
462 | lilconfig@^2.0.3, lilconfig@^2.0.4:
463 | version "2.0.4"
464 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
465 | integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
466 |
467 | lodash.memoize@^4.1.2:
468 | version "4.1.2"
469 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
470 | integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
471 |
472 | lodash.uniq@^4.5.0:
473 | version "4.5.0"
474 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
475 | integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
476 |
477 | log-beautify@^1.2.0:
478 | version "1.2.0"
479 | resolved "https://registry.yarnpkg.com/log-beautify/-/log-beautify-1.2.0.tgz#c91f7e09d98eb0b52ec826384a1b3ed8fa9e427d"
480 | integrity sha512-730dy7bmL9LcrX9q0ybM+M2eqynzmPqG5bilgs1k2hXsX0ad9RKf3lCMoSDVn8uDjYd9mlJkPXWnIDWpOmzTNw==
481 | dependencies:
482 | chalk "^3.0.0"
483 | color-regex "^1.0.2"
484 |
485 | mdn-data@2.0.14:
486 | version "2.0.14"
487 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
488 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
489 |
490 | merge2@^1.3.0, merge2@^1.4.1:
491 | version "1.4.1"
492 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
493 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
494 |
495 | micromatch@^4.0.4:
496 | version "4.0.4"
497 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
498 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
499 | dependencies:
500 | braces "^3.0.1"
501 | picomatch "^2.2.3"
502 |
503 | nanoid@^3.3.1:
504 | version "3.3.1"
505 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
506 | integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
507 |
508 | node-releases@^2.0.2:
509 | version "2.0.2"
510 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01"
511 | integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
512 |
513 | normalize-path@^3.0.0, normalize-path@~3.0.0:
514 | version "3.0.0"
515 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
516 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
517 |
518 | normalize-range@^0.1.2:
519 | version "0.1.2"
520 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
521 | integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
522 |
523 | normalize-url@^6.0.1:
524 | version "6.1.0"
525 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
526 | integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
527 |
528 | nth-check@^2.0.1:
529 | version "2.0.1"
530 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
531 | integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
532 | dependencies:
533 | boolbase "^1.0.0"
534 |
535 | path-type@^4.0.0:
536 | version "4.0.0"
537 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
538 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
539 |
540 | picocolors@^1.0.0:
541 | version "1.0.0"
542 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
543 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
544 |
545 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
546 | version "2.3.1"
547 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
548 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
549 |
550 | pify@^2.3.0:
551 | version "2.3.0"
552 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
553 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
554 |
555 | postcss-calc@^8.2.3:
556 | version "8.2.4"
557 | resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
558 | integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
559 | dependencies:
560 | postcss-selector-parser "^6.0.9"
561 | postcss-value-parser "^4.2.0"
562 |
563 | postcss-cli@^9.1.0:
564 | version "9.1.0"
565 | resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-9.1.0.tgz#1a86404cbe848e370127b4bdf5cd2be83bc45ebe"
566 | integrity sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==
567 | dependencies:
568 | chokidar "^3.3.0"
569 | dependency-graph "^0.11.0"
570 | fs-extra "^10.0.0"
571 | get-stdin "^9.0.0"
572 | globby "^12.0.0"
573 | picocolors "^1.0.0"
574 | postcss-load-config "^3.0.0"
575 | postcss-reporter "^7.0.0"
576 | pretty-hrtime "^1.0.3"
577 | read-cache "^1.0.0"
578 | slash "^4.0.0"
579 | yargs "^17.0.0"
580 |
581 | postcss-colormin@^5.3.0:
582 | version "5.3.0"
583 | resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a"
584 | integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==
585 | dependencies:
586 | browserslist "^4.16.6"
587 | caniuse-api "^3.0.0"
588 | colord "^2.9.1"
589 | postcss-value-parser "^4.2.0"
590 |
591 | postcss-convert-values@^5.1.0:
592 | version "5.1.0"
593 | resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz#f8d3abe40b4ce4b1470702a0706343eac17e7c10"
594 | integrity sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==
595 | dependencies:
596 | postcss-value-parser "^4.2.0"
597 |
598 | postcss-discard-comments@^5.1.0:
599 | version "5.1.0"
600 | resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.0.tgz#87be4e0953bf599935837b940c701f8d4eca7d0b"
601 | integrity sha512-L0IKF4jAshRyn03SkEO6ar/Ipz2oLywVbg2THf2EqqdNkBwmVMxuTR/RoAltOw4piiaLt3gCAdrbAqmTBInmhg==
602 |
603 | postcss-discard-duplicates@^5.1.0:
604 | version "5.1.0"
605 | resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
606 | integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
607 |
608 | postcss-discard-empty@^5.1.0:
609 | version "5.1.0"
610 | resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz#7f51b16cd1b89f8180bbc7cee34d6cbabf2ef810"
611 | integrity sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA==
612 |
613 | postcss-discard-overridden@^5.1.0:
614 | version "5.1.0"
615 | resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
616 | integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
617 |
618 | postcss-load-config@^3.0.0:
619 | version "3.1.3"
620 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23"
621 | integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==
622 | dependencies:
623 | lilconfig "^2.0.4"
624 | yaml "^1.10.2"
625 |
626 | postcss-merge-longhand@^5.1.0:
627 | version "5.1.0"
628 | resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz#f716bffbf0bdfbde6ea78c36088e21559f8a0a95"
629 | integrity sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g==
630 | dependencies:
631 | postcss-value-parser "^4.2.0"
632 | stylehacks "^5.1.0"
633 |
634 | postcss-merge-rules@^5.1.0:
635 | version "5.1.0"
636 | resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz#a2d5117eba09c8686a5471d97bd9afcf30d1b41f"
637 | integrity sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==
638 | dependencies:
639 | browserslist "^4.16.6"
640 | caniuse-api "^3.0.0"
641 | cssnano-utils "^3.1.0"
642 | postcss-selector-parser "^6.0.5"
643 |
644 | postcss-minify-font-values@^5.1.0:
645 | version "5.1.0"
646 | resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
647 | integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
648 | dependencies:
649 | postcss-value-parser "^4.2.0"
650 |
651 | postcss-minify-gradients@^5.1.0:
652 | version "5.1.0"
653 | resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz#de0260a67a13b7b321a8adc3150725f2c6612377"
654 | integrity sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==
655 | dependencies:
656 | colord "^2.9.1"
657 | cssnano-utils "^3.1.0"
658 | postcss-value-parser "^4.2.0"
659 |
660 | postcss-minify-params@^5.1.0:
661 | version "5.1.0"
662 | resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz#e0b1f4e05cfd396682f612856485907e4064f25e"
663 | integrity sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg==
664 | dependencies:
665 | browserslist "^4.16.6"
666 | cssnano-utils "^3.1.0"
667 | postcss-value-parser "^4.2.0"
668 |
669 | postcss-minify-selectors@^5.2.0:
670 | version "5.2.0"
671 | resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz#17c2be233e12b28ffa8a421a02fc8b839825536c"
672 | integrity sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==
673 | dependencies:
674 | postcss-selector-parser "^6.0.5"
675 |
676 | postcss-normalize-charset@^5.1.0:
677 | version "5.1.0"
678 | resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
679 | integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
680 |
681 | postcss-normalize-display-values@^5.1.0:
682 | version "5.1.0"
683 | resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
684 | integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
685 | dependencies:
686 | postcss-value-parser "^4.2.0"
687 |
688 | postcss-normalize-positions@^5.1.0:
689 | version "5.1.0"
690 | resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458"
691 | integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==
692 | dependencies:
693 | postcss-value-parser "^4.2.0"
694 |
695 | postcss-normalize-repeat-style@^5.1.0:
696 | version "5.1.0"
697 | resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398"
698 | integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==
699 | dependencies:
700 | postcss-value-parser "^4.2.0"
701 |
702 | postcss-normalize-string@^5.1.0:
703 | version "5.1.0"
704 | resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
705 | integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
706 | dependencies:
707 | postcss-value-parser "^4.2.0"
708 |
709 | postcss-normalize-timing-functions@^5.1.0:
710 | version "5.1.0"
711 | resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
712 | integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
713 | dependencies:
714 | postcss-value-parser "^4.2.0"
715 |
716 | postcss-normalize-unicode@^5.1.0:
717 | version "5.1.0"
718 | resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75"
719 | integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==
720 | dependencies:
721 | browserslist "^4.16.6"
722 | postcss-value-parser "^4.2.0"
723 |
724 | postcss-normalize-url@^5.1.0:
725 | version "5.1.0"
726 | resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
727 | integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
728 | dependencies:
729 | normalize-url "^6.0.1"
730 | postcss-value-parser "^4.2.0"
731 |
732 | postcss-normalize-whitespace@^5.1.0:
733 | version "5.1.0"
734 | resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz#aed8b4580c9ad6e8eac034177291187ea16a059c"
735 | integrity sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg==
736 | dependencies:
737 | postcss-value-parser "^4.2.0"
738 |
739 | postcss-ordered-values@^5.1.0:
740 | version "5.1.0"
741 | resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz#04ef429e0991b0292bc918b135cd4c038f7b889f"
742 | integrity sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==
743 | dependencies:
744 | cssnano-utils "^3.1.0"
745 | postcss-value-parser "^4.2.0"
746 |
747 | postcss-reduce-initial@^5.1.0:
748 | version "5.1.0"
749 | resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6"
750 | integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==
751 | dependencies:
752 | browserslist "^4.16.6"
753 | caniuse-api "^3.0.0"
754 |
755 | postcss-reduce-transforms@^5.1.0:
756 | version "5.1.0"
757 | resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
758 | integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
759 | dependencies:
760 | postcss-value-parser "^4.2.0"
761 |
762 | postcss-reporter@^7.0.0:
763 | version "7.0.5"
764 | resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.0.5.tgz#e55bd0fdf8d17e4f25fb55e9143fcd79349a2ceb"
765 | integrity sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==
766 | dependencies:
767 | picocolors "^1.0.0"
768 | thenby "^1.3.4"
769 |
770 | postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
771 | version "6.0.9"
772 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f"
773 | integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
774 | dependencies:
775 | cssesc "^3.0.0"
776 | util-deprecate "^1.0.2"
777 |
778 | postcss-svgo@^5.1.0:
779 | version "5.1.0"
780 | resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
781 | integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
782 | dependencies:
783 | postcss-value-parser "^4.2.0"
784 | svgo "^2.7.0"
785 |
786 | postcss-unique-selectors@^5.1.0:
787 | version "5.1.0"
788 | resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.0.tgz#70a945da1b0599d00f617222a44ba1d82a676694"
789 | integrity sha512-LmUhgGobtpeVJJHuogzjLRwJlN7VH+BL5c9GKMVJSS/ejoyePZkXvNsYUtk//F6vKOGK86gfRS0xH7fXQSDtvA==
790 | dependencies:
791 | postcss-selector-parser "^6.0.5"
792 |
793 | postcss-value-parser@^4.2.0:
794 | version "4.2.0"
795 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
796 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
797 |
798 | postcss@^8.4.8:
799 | version "8.4.8"
800 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032"
801 | integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==
802 | dependencies:
803 | nanoid "^3.3.1"
804 | picocolors "^1.0.0"
805 | source-map-js "^1.0.2"
806 |
807 | pretty-hrtime@^1.0.3:
808 | version "1.0.3"
809 | resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
810 | integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
811 |
812 | queue-microtask@^1.2.2:
813 | version "1.2.3"
814 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
815 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
816 |
817 | read-cache@^1.0.0:
818 | version "1.0.0"
819 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
820 | integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=
821 | dependencies:
822 | pify "^2.3.0"
823 |
824 | readdirp@~3.6.0:
825 | version "3.6.0"
826 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
827 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
828 | dependencies:
829 | picomatch "^2.2.1"
830 |
831 | require-directory@^2.1.1:
832 | version "2.1.1"
833 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
834 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
835 |
836 | reusify@^1.0.4:
837 | version "1.0.4"
838 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
839 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
840 |
841 | run-parallel@^1.1.9:
842 | version "1.2.0"
843 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
844 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
845 | dependencies:
846 | queue-microtask "^1.2.2"
847 |
848 | slash@^4.0.0:
849 | version "4.0.0"
850 | resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
851 | integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
852 |
853 | source-map-js@^1.0.2:
854 | version "1.0.2"
855 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
856 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
857 |
858 | source-map@^0.6.1:
859 | version "0.6.1"
860 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
861 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
862 |
863 | stable@^0.1.8:
864 | version "0.1.8"
865 | resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
866 | integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
867 |
868 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
869 | version "4.2.3"
870 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
871 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
872 | dependencies:
873 | emoji-regex "^8.0.0"
874 | is-fullwidth-code-point "^3.0.0"
875 | strip-ansi "^6.0.1"
876 |
877 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
878 | version "6.0.1"
879 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
880 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
881 | dependencies:
882 | ansi-regex "^5.0.1"
883 |
884 | stylehacks@^5.1.0:
885 | version "5.1.0"
886 | resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520"
887 | integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==
888 | dependencies:
889 | browserslist "^4.16.6"
890 | postcss-selector-parser "^6.0.4"
891 |
892 | supports-color@^7.1.0:
893 | version "7.2.0"
894 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
895 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
896 | dependencies:
897 | has-flag "^4.0.0"
898 |
899 | svgo@^2.7.0:
900 | version "2.8.0"
901 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
902 | integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
903 | dependencies:
904 | "@trysound/sax" "0.2.0"
905 | commander "^7.2.0"
906 | css-select "^4.1.3"
907 | css-tree "^1.1.3"
908 | csso "^4.2.0"
909 | picocolors "^1.0.0"
910 | stable "^0.1.8"
911 |
912 | thenby@^1.3.4:
913 | version "1.3.4"
914 | resolved "https://registry.yarnpkg.com/thenby/-/thenby-1.3.4.tgz#81581f6e1bb324c6dedeae9bfc28e59b1a2201cc"
915 | integrity sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==
916 |
917 | timsort@^0.3.0:
918 | version "0.3.0"
919 | resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
920 | integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
921 |
922 | to-regex-range@^5.0.1:
923 | version "5.0.1"
924 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
925 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
926 | dependencies:
927 | is-number "^7.0.0"
928 |
929 | universalify@^2.0.0:
930 | version "2.0.0"
931 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
932 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
933 |
934 | util-deprecate@^1.0.2:
935 | version "1.0.2"
936 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
937 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
938 |
939 | wrap-ansi@^7.0.0:
940 | version "7.0.0"
941 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
942 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
943 | dependencies:
944 | ansi-styles "^4.0.0"
945 | string-width "^4.1.0"
946 | strip-ansi "^6.0.0"
947 |
948 | y18n@^5.0.5:
949 | version "5.0.8"
950 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
951 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
952 |
953 | yaml@^1.10.2:
954 | version "1.10.2"
955 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
956 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
957 |
958 | yargs-parser@^21.0.0:
959 | version "21.0.1"
960 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
961 | integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
962 |
963 | yargs@^17.0.0:
964 | version "17.3.1"
965 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9"
966 | integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==
967 | dependencies:
968 | cliui "^7.0.2"
969 | escalade "^3.1.1"
970 | get-caller-file "^2.0.5"
971 | require-directory "^2.1.1"
972 | string-width "^4.2.3"
973 | y18n "^5.0.5"
974 | yargs-parser "^21.0.0"
975 |
--------------------------------------------------------------------------------