├── .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 | [![](https://img.shields.io/github/license/Hsins/hackmd-themes.svg?style=flat-square)](./LICENSE) 5 | 6 |
7 | 8 | 9 |
10 | 11 | HackMD Themes 12 | HackMD Themes 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://img.shields.io/badge/HackMD-@themes-E2EB86.svg?style=flat-square&labelColor=black&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfmAwoINxXXHd3sAAACTElEQVRo3u2Zz0sVURTHPzPvycyDFv4IyYTo2UYMaREILtpJf4G50UVCRNAutFwVGNTGZbQoArdChdAuEDeCm3CTi9q5lZI2D5/U810XL3HUuTPnztzrA53v8t7Lmc/9zj33HGagUKGLLi9uUNkLlQPAp5dAHGeHWjaQmNUK4BLPuEdFaIbHU5YAn2Z2LyIACjWt9pWJHigU6pZ6qDqU0Sv0NeMj2hkdNUAnr5mh3NpEPoCOTOY1qfCCWcpHTFkBsqpJwPNDhHYAeEB4iCDxwDZASxGENAg3ABGENB9cARxDaA+A8Cy4BBCdBXG65ECABf6djQNezIZCXjKnL2t2HfjFEuEpt32qXOenW4BWAfzBfc2s9hzaArgJpNw7irhCbQtgik2+8DdhxR57Lh24zBueUNf2IiXe8dYlAIQMJc73xw+7vYii0pwOEwe2+XzUeiaok3G6pEFNAFZ5LCrxAVXGpEFNXkFd2GU1ErMhhwNVBtlN7bkVXfS5AbjDir6oRBTQ6wagxFWD1UKdXRpacGCL94I0VHTziCsuANZ4JYw5KgcweQUN4bom+/KgJg4Mc5eaIA27ueEG4DbLor2VCd0AQMVotQOARusDRIpKlNwAfGdedAZ6mGfABcAGH0XrfCblACZpmPPTT34HRpgWpuGQKJ4xwCAfRB2BZ+KVWRYYhZap7dWwACgAdAAGjbVQmm5CB7Aubj9k2uVb/ITuHvjENSasld8ai3yNn0r6Y9JDkPHnycln1Pmje1jSTbhjaf//9dtuuEKFzo0OACDtphjvEWdcAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTAzLTEwVDA4OjU1OjEwKzAwOjAwB+tWbQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wMy0xMFQwODo1NToxMCswMDowMHa27tEAAAAASUVORK5CYII=)](https://hackmd.io/@themes) 20 | [![README in Traditional Chinese](https://img.shields.io/badge/README-繁體中文-8CA1AF.svg?logo=read-the-docs&style=flat-square)](./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 | 39 | 40 | 41 | 42 | 43 | 48 | 53 | 60 | 61 | 62 | 67 | 72 | 79 | 80 | 81 | 82 | 87 | 92 | 99 | 100 |
Name Preview Embed Snippet
44 | 45 | Dracula
[DEMO](https://hackmd.io/@themes/demo-dracula) 46 | 47 |
49 | 50 | 51 | 52 | 54 | 55 | ``` 56 | {%hackmd @themes/dracula %} 57 | ``` 58 | 59 |
63 | 64 | Notion
[DEMO](https://hackmd.io/@themes/demo-notion) 65 | 66 |
68 | 69 | 70 | 71 | 73 | 74 | ``` 75 | {%hackmd @themes/notion %} 76 | ``` 77 | 78 |
83 | 84 | OrangeHeart
[DEMO](https://hackmd.io/@themes/demo-orangeheart) 85 | 86 |
88 | 89 | 90 | 91 | 93 | 94 | ``` 95 | {%hackmd @themes/orangeheart %} 96 | ``` 97 | 98 |
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 | [![](https://img.shields.io/github/license/Hsins/hackmd-themes.svg?style=flat-square)](./LICENSE) 5 | 6 |
7 | 8 | 9 |
10 | 11 | HackMD Themes 12 | HackMD Themes 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://img.shields.io/badge/HackMD-@themes-E2EB86.svg?style=flat-square&labelColor=black&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfmAwoINxXXHd3sAAACTElEQVRo3u2Zz0sVURTHPzPvycyDFv4IyYTo2UYMaREILtpJf4G50UVCRNAutFwVGNTGZbQoArdChdAuEDeCm3CTi9q5lZI2D5/U810XL3HUuTPnztzrA53v8t7Lmc/9zj33HGagUKGLLi9uUNkLlQPAp5dAHGeHWjaQmNUK4BLPuEdFaIbHU5YAn2Z2LyIACjWt9pWJHigU6pZ6qDqU0Sv0NeMj2hkdNUAnr5mh3NpEPoCOTOY1qfCCWcpHTFkBsqpJwPNDhHYAeEB4iCDxwDZASxGENAg3ABGENB9cARxDaA+A8Cy4BBCdBXG65ECABf6djQNezIZCXjKnL2t2HfjFEuEpt32qXOenW4BWAfzBfc2s9hzaArgJpNw7irhCbQtgik2+8DdhxR57Lh24zBueUNf2IiXe8dYlAIQMJc73xw+7vYii0pwOEwe2+XzUeiaok3G6pEFNAFZ5LCrxAVXGpEFNXkFd2GU1ErMhhwNVBtlN7bkVXfS5AbjDir6oRBTQ6wagxFWD1UKdXRpacGCL94I0VHTziCsuANZ4JYw5KgcweQUN4bom+/KgJg4Mc5eaIA27ueEG4DbLor2VCd0AQMVotQOARusDRIpKlNwAfGdedAZ6mGfABcAGH0XrfCblACZpmPPTT34HRpgWpuGQKJ4xwCAfRB2BZ+KVWRYYhZap7dWwACgAdAAGjbVQmm5CB7Aubj9k2uVb/ITuHvjENSasld8ai3yNn0r6Y9JDkPHnycln1Pmje1jSTbhjaf//9dtuuEKFzo0OACDtphjvEWdcAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTAzLTEwVDA4OjU1OjEwKzAwOjAwB+tWbQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wMy0xMFQwODo1NToxMCswMDowMHa27tEAAAAASUVORK5CYII=)](https://hackmd.io/@themes) 20 | [![README in English](https://img.shields.io/badge/README-English-8CA1AF.svg?logo=read-the-docs&style=flat-square)](./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 | 48 | 53 | 60 | 61 | 62 | 67 | 72 | 79 | 80 | 81 | 82 | 87 | 92 | 99 | 100 |
名稱 效果預覽 內嵌語法
44 | 45 | Dracula
[DEMO](https://hackmd.io/@themes/demo-dracula) 46 | 47 |
49 | 50 | 51 | 52 | 54 | 55 | ``` 56 | {%hackmd @themes/dracula %} 57 | ``` 58 | 59 |
63 | 64 | Notion
[DEMO](https://hackmd.io/@themes/demo-notion) 65 | 66 |
68 | 69 | 70 | 71 | 73 | 74 | ``` 75 | {%hackmd @themes/notion %} 76 | ``` 77 | 78 |
83 | 84 | OrangeHeart
[DEMO](https://hackmd.io/@themes/demo-orangeheart) 85 | 86 |
88 | 89 | 90 | 91 | 93 | 94 | ``` 95 | {%hackmd @themes/orangeheart %} 96 | ``` 97 | 98 |
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 | --------------------------------------------------------------------------------