├── .github
├── dependabot.yml
└── workflows
│ └── test.yml
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.en.md
├── README.md
├── README.zh-Hans.md
├── crowdin.yml
├── package.json
├── pnpm-lock.yaml
└── renovate.json
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: "github-actions"
9 | directory: "/"
10 | schedule:
11 | interval: "daily"
12 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Test
2 |
3 | on:
4 | push:
5 | branches:
6 | - 'master'
7 | tags:
8 | - 'v*'
9 | pull_request:
10 | branches:
11 | - 'master'
12 |
13 | jobs:
14 | test:
15 | runs-on: ubuntu-latest
16 | steps:
17 | - uses: actions/checkout@v3
18 | - uses: actions/setup-node@v3
19 | with:
20 | node-version: 20
21 |
22 | - uses: pnpm/action-setup@v2
23 | name: Install pnpm
24 | id: pnpm-install
25 | with:
26 | version: latest
27 | run_install: false
28 |
29 | - name: Get pnpm store directory
30 | id: pnpm-cache
31 | shell: bash
32 | run: |
33 | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
34 |
35 | - uses: actions/cache@v3
36 | name: Setup pnpm cache
37 | with:
38 | path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
39 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
40 | restore-keys: |
41 | ${{ runner.os }}-pnpm-store-
42 |
43 | - name: Install dependencies
44 | run: pnpm install
45 |
46 | - name: Run test
47 | run: pnpm test
48 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # [0.1.0](https://github.com/sparanoid/chinese-copywriting-guidelines/compare/v0.0.10...v0.1.0) (2018-10-14)
3 |
4 |
5 | ### Bug Fixes
6 |
7 | * **grunt:** duplicated default task ([14c907f](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/14c907f))
8 |
9 |
10 | ### Features
11 |
12 | * **docs:** switch license to MIT to meet OSI reqirements ([b48b912](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/b48b912))
13 |
14 |
15 |
16 |
17 | ## [0.0.10](https://github.com/sparanoid/chinese-copywriting-guidelines/compare/v0.0.9...v0.0.10) (2018-10-14)
18 |
19 |
20 | ### Bug Fixes
21 |
22 | * **docs:** update adverb ([79fa169](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/79fa169))
23 | * **docs:** wrong external link indicator ([ad6fffa](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/ad6fffa))
24 |
25 |
26 | ### Features
27 |
28 | * **docs:** add `text spacing` notice, fixes https://github.com/sparanoid/chinese-copywriting-guidelines/issues/51 ([949547e](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/949547e))
29 | * **docs:** add another bad example to spacing ([a3fbf58](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/a3fbf58))
30 | * **docs:** add jxlwqq/chinese-typesetting ([#62](https://github.com/sparanoid/chinese-copywriting-guidelines/issues/62)) ([161c82c](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/161c82c))
31 | * **docs:** add python lib hint, fixes https://github.com/sparanoid/chinese-copywriting-guidelines/issues/50 ([94b00c6](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/94b00c6))
32 | * **docs:** examples cleanup ([3d8de98](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/3d8de98))
33 | * **docs:** update punctuations ([c44d96a](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/c44d96a))
34 | * **package:** update contributors ([03f8e8e](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/03f8e8e))
35 |
36 |
37 |
38 |
39 | ## [0.0.9](https://github.com/sparanoid/chinese-copywriting-guidelines/compare/v0.0.8...v0.0.9) (2016-02-17)
40 |
41 |
42 | ### Bug Fixes
43 |
44 | * **docs:** wrong TOC anchors ([d0468e7](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/d0468e7))
45 |
46 | ### Features
47 |
48 | * **docs:** update link redirects, props @ReadmeCritic ([02bb41c](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/02bb41c))
49 | * **docs:** update repo link ([bc736c2](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/bc736c2))
50 | * **package:** update contributors ([ec9ae8d](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/ec9ae8d))
51 |
52 |
53 |
54 |
55 | ## [0.0.8](https://github.com/sparanoid/chinese-copywriting-guidelines/compare/v0.0.7...v0.0.8) (2015-12-11)
56 |
57 |
58 | ### Bug Fixes
59 |
60 | * **docs:** avoid slangs ([d42d646](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/d42d646))
61 | * **docs:** wrong TOC anchors ([585e71e](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/585e71e))
62 |
63 | ### Features
64 |
65 | * **docs:** add language list ([61a43f4](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/61a43f4))
66 | * **docs:** add Python library from hjiang/scripts ([1104e24](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/1104e24))
67 | * **docs:** initial English version ([a732199](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/a732199))
68 | * **docs:** re-evaluate V2EX ([200eb49](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/200eb49))
69 | * **docs:** update spacing rule for links ([a2569b3](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/a2569b3))
70 | * **docs:** use original titles for references ([db596b1](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/db596b1))
71 | * **package:** update contributors ([c8e29af](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/c8e29af))
72 |
73 |
74 |
75 |
76 | ## [0.0.7](https://github.com/sparanoid/chinese-copywriting-guidelines/compare/v0.0.6...v0.0.7) (2015-10-25)
77 |
78 |
79 | ### Features
80 |
81 | * **docs:** add badge for HTML version ([ee62ad5](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/ee62ad5))
82 | * **docs:** add languages section ([b495cc5](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/b495cc5))
83 | * **docs:** add new tool ([2afe771](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/2afe771))
84 | * **docs:** remove custom emojis ([b5c5733](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/b5c5733))
85 | * **docs:** simplify examples ([1ce86f4](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/1ce86f4))
86 | * **docs:** simplify TOC ([be7f513](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/be7f513))
87 | * **package:** update contributors ([855514d](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/855514d))
88 |
89 |
90 |
91 |
92 | ## [0.0.6](https://github.com/sparanoid/chinese-copywriting-guidelines/compare/v0.0.5...v0.0.6) (2015-08-12)
93 |
94 |
95 | ### Features
96 |
97 | * **grunt:** better version handling ([6662796](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/6662796))
98 | * **package:** update contributors ([48f7cb8](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/48f7cb8))
99 | * **package:** update contributors ([bea8e17](https://github.com/sparanoid/chinese-copywriting-guidelines/commit/bea8e17))
100 |
101 |
102 |
103 |
104 | ### 0.0.5 (2015-07-08)
105 |
106 |
107 | #### Bug Fixes
108 |
109 | * **docs:**
110 | * typo HTML5, fixes #19 ([9a009b3d](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/9a009b3d5d99e21692153c3086fff10b21407dc7))
111 | * wrong heading ([c2ec2d82](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/c2ec2d82cbab504ee3185b546457c2e148361884))
112 | * **package:** license not defined ([ac6b463c](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/ac6b463c6903d8e8cfad7cb23b6bd772de8bc6d6))
113 |
114 |
115 | #### Features
116 |
117 | * **docs:** avoid unidiomatic jargons ([f2d982d7](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/f2d982d73fa60788c69908039825a772b45a814f))
118 |
119 |
120 |
121 | ### 0.0.4 (2015-04-22)
122 |
123 |
124 | #### Bug Fixes
125 |
126 | * **docs:**
127 | * typo ([0cb547e3](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/0cb547e3c1ab3354490cbfcf6c11f7b9cb113ea1))
128 | * avoid personal writing style ([0fcf17b5](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/0fcf17b5a22b75443b64ad67b7a037288472d6d4))
129 |
130 |
131 | #### Features
132 |
133 | * **docs:**
134 | * add usage for degrees and percentages ([ad2c239b](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/ad2c239b70c48cb86f1aa9f6cc5622e3a89ca44d))
135 | * more specific plugin description ([db8e5f72](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/db8e5f7261e0f38b7bf91eec87e373d9abe83765))
136 | * remove vanity PR tips ([ccc36d6f](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/ccc36d6f3c8361e3636c4ca0f6b44cffbf15d9c5))
137 | * add new sections to Spacing ([7dc13730](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/7dc137300534f3f4552422d9b5ab961928d2d51d))
138 |
139 |
140 |
141 | ### 0.0.3 (2014-09-15)
142 |
143 |
144 | #### Bug Fixes
145 |
146 | * **docs:**
147 | * no personal emotions here ([a7be2e78](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/a7be2e788b02fe32360ce76a2a065030254821cc))
148 | * correct tip position ([86d64f6f](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/86d64f6fe923c58778b792b6f085b71ec60b5263))
149 | * incorrect note description ([e1e6d227](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/e1e6d227e522f61e3941b10af5cc8a4ae0c8417e))
150 | * remove wrong example ([85b57cc0](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/85b57cc04608fb7016f95c96fbf3d5791284e980))
151 |
152 |
153 | #### Features
154 |
155 | * **docs:**
156 | * simplified table data ([36979a52](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/36979a520d6faa423bafbb9ec63b19cb3f721e92))
157 | * no more emojis ([ba6a83a6](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/ba6a83a6b4642b31c1ba8105fa0ddd3195d4fad1))
158 | * remove tools description ([0c4870ca](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/0c4870ca30e334f98ce249814ca62e34acfdae1d))
159 | * add more examples ([477798b1](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/477798b15c0036487a4bb979d27d50091b3a96d2))
160 | * change chapter order ([a8fb6cff](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/a8fb6cff1c4201437f9b5a4ab0049eb23da133d6))
161 | * table for tool list ([d9b77e28](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/d9b77e28594b7d9e36b0167862661fc5e95aa595))
162 | * less aggressive, more decent examlples ([e6bcb84f](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/e6bcb84f9bee7fc27b4bb296b027f9412acc2459))
163 | * add more tools ([00141d48](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/00141d488ed8888df61f7ada4c915d31b3e91b1f))
164 | * update description ([7c1d7e78](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/7c1d7e78d3e4be8f7e4ef9fea5201087f1ba6b6b))
165 | * add spacing exception for product names ([b8cec964](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/b8cec964b0b5d8c46fd6b9e3dfd0000badca07f8))
166 |
167 |
168 |
169 | ### 0.0.2 (2014-07-15)
170 |
171 |
172 | #### Bug Fixes
173 |
174 | * **doc:** Chinese Simplified quote marks confusion ([8666d01f](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/8666d01f9c16ddd650d54ca99cf1431e5553f3c8))
175 |
176 |
177 | #### Features
178 |
179 | * **docs:**
180 | * add numerical digit usage, this could fix GH-8 ([c486b70b](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/c486b70b968da9168109cd50542a373b9f00c112))
181 | * add more usage of punctuation marks ([b77c78b4](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/b77c78b47af127fe1d745a59439bdfc4c7af0846))
182 | * better TOC anchors, add tools section ([b374670f](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/b374670f6cbad87cebd1bed07cfd5663cb224e0a))
183 | * simplified rules ([a2f11ce6](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/a2f11ce6696548d3b7c2b7483a3a22edd880c2fb))
184 | * simplified chapter titles ([e457f3ec](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/e457f3eccab2ca30813c66e5267c561c2a2f2f16))
185 | * add deps check badge ([c9f9c21f](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/c9f9c21f80f1da1fb6d432f8b4e2b2b301cb6600))
186 |
187 |
188 |
189 | ### 0.0.1 (2014-07-01)
190 |
191 |
192 | #### Bug Fixes
193 |
194 | * **docs:**
195 | * remove leftovers ([e8b347e1](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/e8b347e133c9bbd7ad7f7bdf7575f65c9c386bd7))
196 | * fix typo ([1f4ebf16](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/1f4ebf1622f8e6363aa509d9c227e07dd61f5bb6))
197 | * fix table link ([a63fe5b4](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/a63fe5b495df9dc28ce2149135941d2abdf80ede))
198 | * remove unrelated example ([48594a58](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/48594a580bd272a9036401e957d49f1d5bd383e2))
199 | * fix toc ([5c7bb2bd](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/5c7bb2bdac5ae2c724753956f9271bc22da99d6e))
200 | * fix capital ([824d0241](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/824d024189dce50912770c49caa512f22bdbcd75))
201 | * fix several punctuation marks ([6bd5aaa4](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/6bd5aaa466a4b90b9d8715183c992033dab54ffc))
202 |
203 |
204 | #### Features
205 |
206 | * one more rule for punctuation marks ([a2887783](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/a2887783a9c7482d728d66f75998d2db8ef72f82))
207 | * create a LICENSE ([638dc085](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/638dc0851d9f5cd5b935e98a878cae9ce9896f7d))
208 | * **build:** add change log support ([18c54966](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/18c54966053f2b710ba0b7619afa6f3e1b09db07))
209 | * **docs:**
210 | * remove dead company ([595a8aa4](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/595a8aa4efe33530b3eb81e1104303e0c1bbd2e5))
211 | * update bad examples ([984bf9e0](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/984bf9e0740e9d2f47debcbcd3b02becdccad5af))
212 | * add more examples ([f3d66a08](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/f3d66a086e9fd50fa76ef645a71a715a07946e39))
213 | * add wandoujia.com ([299a4751](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/299a475107979bac0e04865c8495ad88d0021a8c))
214 | * add quotation marks usage ([984271fe](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/984271fea0f4b1656768196146c23f3016126cb5))
215 | * add related references ([89b361ab](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/89b361aba39ae12a02a7082b4c17dc1d1ba1b9b3))
216 | * add toc ([6bf68d35](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/6bf68d3503ae45077c348c823b932aab86502324))
217 | * add example for styling uppercased text ([555ecc65](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/555ecc6595c608727f033d7dcb53c15129e887f6))
218 | * add init content ([651418c6](http://github.com/sparanoid/chinese-copywriting-guidelines/commit/651418c6765236804279f059aeea0db290f9d5b0))
219 |
220 |
221 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Sparanoid, Inc.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.en.md:
--------------------------------------------------------------------------------
1 | # Chinese Copywriting Guidelines
2 |
3 | Chinese copywriting guidelines for better written communication.
4 |
5 | Other languages:
6 |
7 | - [English](README.en.md)
8 | - [Chinese Traditional](README.md)
9 | - [Chinese Simplified](README.zh-Hans.md)
10 |
11 | * * *
12 |
13 | ## Spacing
14 |
15 | > Research shows that, people adding no space between Chinese and English suffer from pathetic relationships. 70% of them are married by the age of 34, with someone they don't love; 30% of them left everything for their cats and died. Blank spaces are essential to both romance and writing.
16 | >
17 | > 與大家共勉之。」——[vinta/paranoid-auto-spacing](https://github.com/vinta/pangu.js)
18 |
19 | ### Place one space before/after English words
20 |
21 | Good:
22 |
23 | > 在 LeanCloud 上,數據儲存是圍繞 `AVObject` 進行的。
24 |
25 | Bad:
26 |
27 | > 在LeanCloud上,數據儲存是圍繞`AVObject`進行的。
28 | >
29 | > 在 LeanCloud上,數據儲存是圍繞`AVObject` 進行的。
30 |
31 | An example of complete and correct usage:
32 |
33 | > 在 LeanCloud 上,數據儲存是圍繞 `AVObject` 進行的。每個 `AVObject` 都包含了與 JSON 兼容的 key-value 對應的數據。數據是 schema-free 的,你不需要在每個 `AVObject` 上提前指定存在哪些键,只要直接設定對應的 key-value 即可。
34 |
35 | Exceptions: For product and brand names, please refer to the writing format of the official definition. For example, use “豆瓣FM” instead of “豆瓣 FM”.
36 |
37 | ### Place one space before/after numbers
38 |
39 | Good:
40 |
41 | > 今天出去買菜花了 5000 元。
42 |
43 | Bad:
44 |
45 | > 今天出去買菜花了 5000元。
46 | >
47 | > 今天出去買菜花了5000元。
48 |
49 | ### Place one space between numbers and units
50 |
51 | Good:
52 |
53 | > 我家的光纖入屋寬頻有 10 Gbps,SSD 一共有 20 TB。
54 |
55 | Bad:
56 |
57 | > 我家的光纖入屋寬頻有 10Gbps,SSD 一共有 20TB。
58 |
59 | Exceptions: There should not be any spacing between numbers and degrees/percentages.
60 |
61 | Good:
62 |
63 | > 角度為 90° 的角,就是直角。
64 | >
65 | > 新 MacBook Pro 有 15% 的 CPU 性能提升。
66 |
67 | Bad:
68 |
69 | > 角度為 90 ° 的角,就是直角。
70 | >
71 | > 新 MacBook Pro 有 15 % 的 CPU 性能提升。
72 |
73 | ### No additional spaces before/after punctuation in fullwidth form
74 |
75 | Good:
76 |
77 | > 剛剛買了一部 iPhone,好開心!
78 |
79 | Bad:
80 |
81 | > 剛剛買了一部 iPhone ,好開心!
82 | >
83 | > 剛剛買了一部 iPhone, 好開心!
84 |
85 | ### `text-spacing` to the rescue?
86 |
87 | [`text-spacing`](https://www.w3.org/TR/css-text-4/#text-spacing-property) and [`-ms-text-autospace`](https://msdn.microsoft.com/library/ms531164(v=vs.85).aspx) provided by CSS Text Module Level and Microsoft can specify the autospacing and narrow space width adjustment of text. However it's not popular, and on other platforms such as OS X and iOS we can not use this feature. So it's better for you to keep up the habit.
88 |
89 | ## Punctuation
90 |
91 | ### Avoid duplicate punctuation
92 |
93 | Although the punctuation usage of China mainland admits to duplicate the punctuations, the sentence may become unpleasing to the eye by doing that.
94 |
95 | Good:
96 |
97 | > 德國隊竟然戰勝了巴西隊!
98 | >
99 | > 她竟然對你說「喵」?!
100 |
101 | Bad:
102 |
103 | > 德國隊竟然戰勝了巴西隊!!
104 | >
105 | > 德國隊竟然戰勝了巴西隊!!!!!!!!
106 | >
107 | > 她竟然對你說「喵」??!!
108 | >
109 | > 她竟然對你說「喵」?!?!??!!
110 |
111 | ## Fullwidth and halfwidth
112 |
113 | If you’re not familiar with fullwidth and halfwidth forms please refer to article [Halfwidth and fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) on Wikipedia.
114 |
115 | ### Use punctuation in fullwidth form
116 |
117 | Good:
118 |
119 | > 嗨!你知道嘛?今天前台的小妹跟我說「喵」了哎!
120 | >
121 | > 核磁共振成像(NMRI)是什麼原理都不知道?JFGI!
122 |
123 | Bad:
124 |
125 | > 嗨! 你知道嘛? 今天前台的小妹跟我說 "喵" 了哎!
126 | >
127 | > 嗨!你知道嘛?今天前台的小妹跟我說"喵"了哎!
128 | >
129 | > 核磁共振成像 (NMRI) 是什麼原理都不知道? JFGI!
130 | >
131 | > 核磁共振成像(NMRI)是什麼原理都不知道?JFGI!
132 |
133 | Exception: inline English titles of books and journals with italics, instead of fullwidth title marks.
134 |
135 | ### Use numbers in halfwidth form
136 |
137 | Good:
138 |
139 | > 這件蛋糕只賣 1000 元。
140 |
141 | Bad:
142 |
143 | > 這件蛋糕只賣 1000 元。
144 |
145 | Exceptions: fullwidth numbers are acceptable for better visual alignment in graphic design.
146 |
147 | ### Use punctuation in halfwidth form for English sentences
148 |
149 | Good:
150 |
151 | > 賈伯斯那句話是怎麼說的?「Stay hungry, stay foolish.」
152 | >
153 | > 推薦你閱讀 *Hackers & Painters: Big Ideas from the Computer Age*,非常地有趣。
154 |
155 | Bad:
156 |
157 | > 賈伯斯那句話是怎麼說的?「Stay hungry,stay foolish。」
158 | >
159 | > 推薦你閱讀《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。
160 |
161 | ## Nouns
162 |
163 | ### Capitalize properly
164 |
165 | Capitalization is a matter of English, which is beyond the scope of this wiki. Here we exemplify some typical scenarios.
166 |
167 | Good:
168 |
169 | > 使用 GitHub 登錄
170 | >
171 | > 我們的客戶有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。
172 |
173 | Bad:
174 |
175 | > 使用 github 登錄
176 | >
177 | > 使用 GITHUB 登錄
178 | >
179 | > 使用 Github 登錄
180 | >
181 | > 使用 gitHub 登錄
182 | >
183 | > 使用 gイんĤЦ8 登錄
184 | >
185 | > 我們的客戶有 github、foursquare、microsoft corporation、google、facebook, inc.。
186 | >
187 | > 我們的客戶有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。
188 | >
189 | > 我們的客戶有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。
190 | >
191 | > 我們的客戶有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。
192 | >
193 | > 我們的客戶有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。
194 |
195 | 注意:當網頁中需要配合整體視覺風格而出現全部大寫/小寫的情形,HTML 中請使用標準的大小寫規範進行書寫;並通過 `text-transform: uppercase;`/`text-transform: lowercase;` 對表現形式進行定義。
196 |
197 | ### Avoid jargons
198 |
199 | Good:
200 |
201 | > 我們需要一位熟悉 TypeScript、HTML5,至少理解一種框架(如 React、Next.js)的前端開發者。
202 |
203 | Bad:
204 |
205 | > 我們需要一位熟悉 Ts、h5,至少理解一種框架(如 RJS、nextjs)的 FED。
206 |
207 | ## Dispute
208 |
209 | The following usages comprise of personal characteristics. As such, from the perspective of copywriting guidelines, they are **still correct** regardless of whether they comply with the following rules.
210 |
211 | ### Add extra spaces before/after links
212 |
213 | Usage:
214 |
215 | > 請 [提交一个 issue](#) 並分配给相關同事。
216 | >
217 | > 訪問我們網站的最新動態,請 [點擊這裡](#) 進行訂閱!
218 |
219 | compared with:
220 |
221 | > 請[提交一个 issue](#) 並分配给相關同事。
222 | >
223 | > 訪問我們網站的最新動態,請[點擊這裡](#)進行訂閱!
224 |
225 | ### Use corner brackets for Chinese Simplified
226 |
227 | Usage:
228 |
229 | > 「老师,『有条不紊』的『紊』是什么意思?」
230 |
231 | compared with:
232 |
233 | > “老师,‘有条不紊’的‘紊’是什么意思?”
234 |
235 | ## Tools
236 |
237 | Repository | Category | Language
238 | ---------- | -------- | --------
239 | [pangu.js](https://github.com/vinta/pangu.js) | pangu | JavaScript
240 | [pangu-go](https://github.com/vinta/pangu) | pangu | Go
241 | [pangu.java](https://github.com/vinta/pangu.java) | pangu | Java
242 | [pangu.py](https://github.com/vinta/pangu.py) | pangu | Python
243 | [pangu.rb](https://github.com/dlackty/pangu.rb) | pangu | Ruby
244 | [pangu.php](https://github.com/cchlorine/pangu.php) | pangu | PHP
245 | [pangu.vim](https://github.com/hotoo/pangu.vim) | pangu | Vim
246 | [vue-pangu](https://github.com/serkodev/vue-pangu) | pangu | Vue.js (Web Converter)
247 | [intellij-pangu](https://plugins.jetbrains.com/plugin/19665-pangu) | pangu | Intellij Platform Plugin
248 | [autocorrect](https://github.com/huacnlee/autocorrect) | autocorrect | Rust, WASM, CLI tool
249 | [autocorrect-node](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-node) | autocorrect | Node.js
250 | [autocorrect-py](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-py) | autocorrect | Python
251 | [autocorrect-rb](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-rb) | autocorrect | Ruby
252 | [autocorrect-java](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-java) | autocorrect | Java
253 | [autocorrect-go](https://github.com/longbridgeapp/autocorrect) | autocorrect | Go
254 | [autocorrect-php](https://github.com/NauxLiu/auto-correct) | autocorrect | PHP
255 | [autocorrect-vscode](https://marketplace.visualstudio.com/items?itemName=huacnlee.autocorrect) | autocorrect | VS Code Extension
256 | [autocorrect-idea-plugin](https://plugins.jetbrains.com/plugin/20244-autocorrect) | autocorrect | Intellij Platform Plugin
257 | [jxlwqq/chinese-typesetting](https://github.com/jxlwqq/chinese-typesetting) | other | PHP
258 | [sparanoid/space-lover](https://github.com/sparanoid/space-lover) | other | PHP (WordPress)
259 | [sparanoid/grunt-auto-spacing](https://github.com/sparanoid/grunt-auto-spacing) | other | Node.js (Grunt)
260 | [hjiang/scripts/add-space-between-latin-and-cjk](https://github.com/hjiang/scripts/blob/master/add-space-between-latin-and-cjk) | other | Python
261 | [hustcc/hint](https://github.com/hustcc/hint) | other | Python
262 | [n0vad3v/Tekorrect](https://github.com/n0vad3v/Tekorrect) | other | Python
263 |
264 | ## Examples of “Who is doing this?”
265 |
266 | Website | Copywriting | UGC
267 | ------- | ----------- | ---
268 | [Apple China](https://www.apple.com/cn/) | Yes | N/A
269 | [Apple Hong Kong](https://www.apple.com/hk/) | Yes | N/A
270 | [Apple Taiwan](https://www.apple.com/tw/) | Yes | N/A
271 | [Microsoft China](https://www.microsoft.com/zh-cn/) | Yes | N/A
272 | [Microsoft Hong Kong](https://www.microsoft.com/zh-hk/) | Yes | N/A
273 | [Microsoft Taiwan](https://www.microsoft.com/zh-tw/) | Yes | N/A
274 | [LeanCloud](https://leancloud.cn/) | Yes | N/A
275 | [V2EX](https://www.v2ex.com/) | Yes | Yes
276 | [Apple4us](https://apple4us.com/) | Yes | N/A
277 | [Ruby China](https://ruby-china.org/) | Yes | Yes
278 | [少數派](https://sspai.com/) | Yes | N/A
279 |
280 | ## References
281 |
282 | - [Guidelines for Using Capital Letters - ThoughtCo.](https://www.thoughtco.com/guidelines-for-using-capital-letters-1691724)
283 | - [Letter case - Wikipedia](https://en.wikipedia.org/wiki/Letter_case)
284 | - [Punctuation - Oxford Dictionaries](https://en.oxforddictionaries.com/grammar/punctuation)
285 | - [Punctuation - The Purdue OWL](https://owl.english.purdue.edu/owl/section/1/6/)
286 | - [How to Use English Punctuation Correctly - wikiHow](https://www.wikihow.com/Use-English-Punctuation-Correctly)
287 | - [格式 - openSUSE](https://zh.opensuse.org/index.php?title=Help:%E6%A0%BC%E5%BC%8F)
288 | - [Halfwidth and fullwidth forms - Wikipedia](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
289 | - [引號 - 維基百科](https://zh.wikipedia.org/wiki/%E5%BC%95%E8%99%9F)
290 | - [Interrobang - Wikipedia](https://en.wikipedia.org/wiki/Interrobang)
291 |
292 | ## Forks
293 |
294 | The usage of forked projects may differ from this project.
295 |
296 | - [mzlogin/chinese-copywriting-guidelines](https://github.com/mzlogin/chinese-copywriting-guidelines)
297 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 中文文案排版指北
2 |
3 | [](https://crowdin.com/project/chinese-copywriting-guidelines)
4 | [](https://sparanoid.com/note/chinese-copywriting-guidelines/)
5 |
6 | 統一中文文案、排版的相關用法,降低團隊成員之間的溝通成本,增強網站氣質。
7 |
8 | Other languages:
9 |
10 | - [English](README.en.md)
11 | - [Chinese Traditional](README.md)
12 | - [Chinese Simplified](README.zh-Hans.md)
13 |
14 | -----
15 |
16 | ## 空格
17 |
18 | > 「有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。
19 | >
20 | > 與大家共勉之。」——[vinta/paranoid-auto-spacing](https://github.com/vinta/pangu.js)
21 |
22 | ### 中英文之間需要增加空格
23 |
24 | 正確:
25 |
26 | > 在 LeanCloud 上,數據儲存是圍繞 `AVObject` 進行的。
27 |
28 | 錯誤:
29 |
30 | > 在LeanCloud上,數據儲存是圍繞`AVObject`進行的。
31 |
32 | > 在 LeanCloud上,數據儲存是圍繞`AVObject` 進行的。
33 |
34 | 完整的正確用法:
35 |
36 | > 在 LeanCloud 上,數據儲存是圍繞 `AVObject` 進行的。每個 `AVObject` 都包含了與 JSON 兼容的 key-value 對應的數據。數據是 schema-free 的,你不需要在每個 `AVObject` 上提前指定存在哪些键,只要直接設定對應的 key-value 即可。
37 |
38 | 例外:「豆瓣FM」等產品名詞,按照官方所定義的格式書寫。
39 |
40 | ### 中文與數字之間需要增加空格
41 |
42 | 正確:
43 |
44 | > 今天出去買菜花了 5000 元。
45 |
46 | 錯誤:
47 |
48 | > 今天出去買菜花了 5000元。
49 |
50 | > 今天出去買菜花了5000元。
51 |
52 | ### 數字與單位之間需要增加空格
53 |
54 | 正確:
55 |
56 | > 我家的光纖入屋寬頻有 10 Gbps,SSD 一共有 20 TB。
57 |
58 | 錯誤:
59 |
60 | > 我家的光纖入屋寬頻有 10Gbps,SSD 一共有 20TB。
61 |
62 | 例外:度數/百分比與數字之間不需要增加空格:
63 |
64 | 正確:
65 |
66 | > 角度為 90° 的角,就是直角。
67 |
68 | > 新 MacBook Pro 有 15% 的 CPU 性能提升。
69 |
70 | 錯誤:
71 |
72 | > 角度為 90 ° 的角,就是直角。
73 |
74 | > 新 MacBook Pro 有 15 % 的 CPU 性能提升。
75 |
76 | ### 全形標點與其他字符之間不加空格
77 |
78 | 正確:
79 |
80 | > 剛剛買了一部 iPhone,好開心!
81 |
82 | 錯誤:
83 |
84 | > 剛剛買了一部 iPhone ,好開心!
85 |
86 | > 剛剛買了一部 iPhone, 好開心!
87 |
88 | ### `text-spacing` to the rescue?
89 |
90 | CSS Text Module Level 4 的 [`text-spacing`](https://www.w3.org/TR/css-text-4/#text-spacing-property) 和 Microsoft 的 [`-ms-text-autospace`](https://msdn.microsoft.com/library/ms531164(v=vs.85).aspx) 可以實現自動為中英文之間增加空白。不過目前並未普及,另外在其他應用場景,例如 macOS、iOS、Windows 等用戶介面目前並不存在這個特性,所以請繼續保持隨手加空格的習慣。
91 |
92 | ## 標點符號
93 |
94 | ### 不重複使用標點符號
95 |
96 | 雖然中國大陸的標點符號用法允許重複使用標點符號,但是這麼做會破壞句子的美觀性。
97 |
98 | 正確:
99 |
100 | > 德國隊竟然戰勝了巴西隊!
101 |
102 | > 她竟然對你說「喵」?!
103 |
104 | 錯誤:
105 |
106 | > 德國隊竟然戰勝了巴西隊!!
107 |
108 | > 德國隊竟然戰勝了巴西隊!!!!!!!!
109 |
110 | > 她竟然對你說「喵」??!!
111 |
112 | > 她竟然對你說「喵」?!?!??!!
113 |
114 | ## 全形和半形
115 |
116 | 不明白什麼是全形(全角)與半形(半角)符號?請查看維基百科條目『[全形和半形](https://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)』。
117 |
118 | ### 使用全形中文標點
119 |
120 | 正確:
121 |
122 | > 嗨!你知道嘛?今天前台的小妹跟我說「喵」了哎!
123 |
124 | > 核磁共振成像(NMRI)是什麼原理都不知道?JFGI!
125 |
126 | 錯誤:
127 |
128 | > 嗨! 你知道嘛? 今天前台的小妹跟我說 "喵" 了哎!
129 |
130 | > 嗨!你知道嘛?今天前台的小妹跟我說"喵"了哎!
131 |
132 | > 核磁共振成像 (NMRI) 是什麼原理都不知道? JFGI!
133 |
134 | > 核磁共振成像(NMRI)是什麼原理都不知道?JFGI!
135 |
136 | 例外:中文句子內夾有英文書籍名、報刊名時,不應借用中文書名號,應以英文斜體表示。
137 |
138 | ### 數字使用半形字符
139 |
140 | 正確:
141 |
142 | > 這件蛋糕只賣 1000 元。
143 |
144 | 錯誤:
145 |
146 | > 這件蛋糕只賣 1000 元。
147 |
148 | 例外:在設計稿、宣傳海報中如出現極少量數字的情形時,為方便文字對齊,是可以使用全形數字的。
149 |
150 | ### 遇到完整的英文整句、特殊名詞,其內容使用半形標點
151 |
152 | 正確:
153 |
154 | > 賈伯斯那句話是怎麼說的?「Stay hungry, stay foolish.」
155 |
156 | > 推薦你閱讀 *Hackers & Painters: Big Ideas from the Computer Age*,非常地有趣。
157 |
158 | 錯誤:
159 |
160 | > 賈伯斯那句話是怎麼說的?「Stay hungry,stay foolish。」
161 |
162 | > 推薦你閱讀《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。
163 |
164 | ## 名詞
165 |
166 | ### 專有名詞使用正確的大小寫
167 |
168 | 大小寫相關用法原屬於英文書寫範疇,不屬於本 wiki 討論內容,在這裡只對部分易錯用法進行簡述。
169 |
170 | 正確:
171 |
172 | > 使用 GitHub 登錄
173 |
174 | > 我們的客戶有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。
175 |
176 | 錯誤:
177 |
178 | > 使用 github 登錄
179 |
180 | > 使用 GITHUB 登錄
181 |
182 | > 使用 Github 登錄
183 |
184 | > 使用 gitHub 登錄
185 |
186 | > 使用 gイんĤЦ8 登錄
187 |
188 | > 我們的客戶有 github、foursquare、microsoft corporation、google、facebook, inc.。
189 |
190 | > 我們的客戶有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。
191 |
192 | > 我們的客戶有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。
193 |
194 | > 我們的客戶有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。
195 |
196 | > 我們的客戶有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。
197 |
198 | 注意:當網頁中需要配合整體視覺風格而出現全部大寫/小寫的情形,HTML 中請使用標準的大小寫規範進行書寫;並通過 `text-transform: uppercase;`/`text-transform: lowercase;` 對表現形式進行定義。
199 |
200 | ### 不要使用不道地的縮寫
201 |
202 | 正確:
203 |
204 | > 我們需要一位熟悉 TypeScript、HTML5,至少理解一種框架(如 React、Next.js)的前端開發者。
205 |
206 | 錯誤:
207 |
208 | > 我們需要一位熟悉 Ts、h5,至少理解一種框架(如 RJS、nextjs)的 FED。
209 |
210 | ## 爭議
211 |
212 | 以下用法略帶有個人色彩,即:無論是否遵循下述規則,從語法的角度來講都是**正確**的。
213 |
214 | ### 超連結之間增加空格
215 |
216 | 用法:
217 |
218 | > 請 [提交一個 issue](#) 並分配给相關同事。
219 |
220 | > 訪問我們網站的最新動態,請 [點擊這裡](#) 進行訂閱!
221 |
222 | 對比用法:
223 |
224 | > 請[提交一個 issue](#) 並分配给相關同事。
225 |
226 | > 訪問我們網站的最新動態,請[點擊這裡](#)進行訂閱!
227 |
228 | ### 簡體中文使用直角引號
229 |
230 | 用法:
231 |
232 | > 「老师,『有条不紊』的『紊』是什么意思?」
233 |
234 | 對比用法:
235 |
236 | > “老师,‘有条不紊’的‘紊’是什么意思?”
237 |
238 | ## 工具
239 |
240 | 倉庫 | 系列 | 語言
241 | --- | -- | ---
242 | [pangu.js](https://github.com/vinta/pangu.js) | pangu | JavaScript
243 | [pangu-go](https://github.com/vinta/pangu) | pangu | Go
244 | [pangu.java](https://github.com/vinta/pangu.java) | pangu | Java
245 | [pangu.py](https://github.com/vinta/pangu.py) | pangu | Python
246 | [pangu.rb](https://github.com/dlackty/pangu.rb) | pangu | Ruby
247 | [pangu.php](https://github.com/cchlorine/pangu.php) | pangu | PHP
248 | [pangu.vim](https://github.com/hotoo/pangu.vim) | pangu | Vim
249 | [vue-pangu](https://github.com/serkodev/vue-pangu) | pangu | Vue.js (Web Converter)
250 | [intellij-pangu](https://plugins.jetbrains.com/plugin/19665-pangu) | pangu | Intellij Platform Plugin
251 | [autocorrect](https://github.com/huacnlee/autocorrect) | autocorrect | Rust, WASM, CLI tool
252 | [autocorrect-node](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-node) | autocorrect | Node.js
253 | [autocorrect-py](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-py) | autocorrect | Python
254 | [autocorrect-rb](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-rb) | autocorrect | Ruby
255 | [autocorrect-java](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-java) | autocorrect | Java
256 | [autocorrect-go](https://github.com/longbridgeapp/autocorrect) | autocorrect | Go
257 | [autocorrect-php](https://github.com/NauxLiu/auto-correct) | autocorrect | PHP
258 | [autocorrect-vscode](https://marketplace.visualstudio.com/items?itemName=huacnlee.autocorrect) | autocorrect | VS Code Extension
259 | [autocorrect-idea-plugin](https://plugins.jetbrains.com/plugin/20244-autocorrect) | autocorrect | Intellij Platform Plugin
260 | [jxlwqq/chinese-typesetting](https://github.com/jxlwqq/chinese-typesetting) | other | PHP
261 | [sparanoid/space-lover](https://github.com/sparanoid/space-lover) | other | PHP (WordPress)
262 | [sparanoid/grunt-auto-spacing](https://github.com/sparanoid/grunt-auto-spacing) | other | Node.js (Grunt)
263 | [hjiang/scripts/add-space-between-latin-and-cjk](https://github.com/hjiang/scripts/blob/master/add-space-between-latin-and-cjk) | other | Python
264 | [hustcc/hint](https://github.com/hustcc/hint) | other | Python
265 | [n0vad3v/Tekorrect](https://github.com/n0vad3v/Tekorrect) | other | Python
266 |
267 | ## 誰在這樣做?
268 |
269 | 網站 | 文案 | UGC
270 | --- | --- | ---
271 | [Apple 中國](https://www.apple.com/cn/) | Yes | N/A
272 | [Apple 香港](https://www.apple.com/hk/) | Yes | N/A
273 | [Apple 台灣](https://www.apple.com/tw/) | Yes | N/A
274 | [Microsoft 中國](https://www.microsoft.com/zh-cn/) | Yes | N/A
275 | [Microsoft 香港](https://www.microsoft.com/zh-hk/) | Yes | N/A
276 | [Microsoft 台灣](https://www.microsoft.com/zh-tw/) | Yes | N/A
277 | [LeanCloud](https://leancloud.cn/) | Yes | N/A
278 | [V2EX](https://www.v2ex.com/) | Yes | Yes
279 | [Apple4us](https://apple4us.com/) | Yes | N/A
280 | [Ruby China](https://ruby-china.org/) | Yes | Yes
281 | [少數派](https://sspai.com/) | Yes | N/A
282 |
283 | ## 參考文獻
284 |
285 | - [Guidelines for Using Capital Letters - ThoughtCo.](https://www.thoughtco.com/guidelines-for-using-capital-letters-1691724)
286 | - [Letter case - Wikipedia](https://en.wikipedia.org/wiki/Letter_case)
287 | - [Punctuation - Oxford Dictionaries](https://en.oxforddictionaries.com/grammar/punctuation)
288 | - [Punctuation - The Purdue OWL](https://owl.english.purdue.edu/owl/section/1/6/)
289 | - [How to Use English Punctuation Correctly - wikiHow](https://www.wikihow.com/Use-English-Punctuation-Correctly)
290 | - [格式 - openSUSE](https://zh.opensuse.org/index.php?title=Help:%E6%A0%BC%E5%BC%8F)
291 | - [全形和半形 - 維基百科](https://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)
292 | - [引號 - 維基百科](https://zh.wikipedia.org/wiki/%E5%BC%95%E8%99%9F)
293 | - [疑問驚嘆號 - 維基百科](https://zh.wikipedia.org/wiki/%E7%96%91%E5%95%8F%E9%A9%9A%E5%98%86%E8%99%9F)
294 |
295 | ## Forks
296 |
297 | 衍生專案的用法可能與本專案存在差異。
298 |
299 | - [mzlogin/chinese-copywriting-guidelines](https://github.com/mzlogin/chinese-copywriting-guidelines)
300 |
--------------------------------------------------------------------------------
/README.zh-Hans.md:
--------------------------------------------------------------------------------
1 | # 中文文案排版指北
2 |
3 | 统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。
4 |
5 | Other languages:
6 |
7 | - [英语](README.en.md)
8 | - [繁体中文](README.md)
9 | - [简体中文](README.zh-Hans.md)
10 |
11 | * * *
12 |
13 | ## 空格
14 |
15 | > 「有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。
16 | >
17 | > 与大家共勉之。」——[vinta/paranoid-auto-spacing](https://github.com/vinta/pangu.js)
18 |
19 | ### 中英文之间需要增加空格
20 |
21 | 正确:
22 |
23 | > 在 LeanCloud 上,数据存储是围绕 `AVObject` 进行的。
24 |
25 | 错误:
26 |
27 | > 在LeanCloud上,数据存储是围绕`AVObject`进行的。
28 | >
29 | > 在 LeanCloud上,数据存储是围绕`AVObject` 进行的。
30 |
31 | 完整的正确用法:
32 |
33 | > 在 LeanCloud 上,数据存储是围绕 `AVObject` 进行的。每个 `AVObject` 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free 的,你不需要在每个 `AVObject` 上提前指定存在哪些键,只要直接设定对应的 key-value 即可。
34 |
35 | 例外:「豆瓣FM」等产品名词,按照官方所定义的格式书写。
36 |
37 | ### 中文与数字之间需要增加空格
38 |
39 | 正确:
40 |
41 | > 今天出去买菜花了 5000 元。
42 |
43 | 错误:
44 |
45 | > 今天出去买菜花了 5000元。
46 | >
47 | > 今天出去买菜花了5000元。
48 |
49 | ### 数字与单位之间需要增加空格
50 |
51 | 正确:
52 |
53 | > 我家的光纤入屋宽带有 10 Gbps,SSD 一共有 20 TB
54 |
55 | 错误:
56 |
57 | > 我家的光纤入屋宽带有 10Gbps,SSD 一共有 20TB
58 |
59 | 例外:度数/百分比与数字之间不需要增加空格:
60 |
61 | 正确:
62 |
63 | > 角度为 90° 的角,就是直角。
64 | >
65 | > 新 MacBook Pro 有 15% 的 CPU 性能提升。
66 |
67 | 错误:
68 |
69 | > 角度为 90 ° 的角,就是直角。
70 | >
71 | > 新 MacBook Pro 有 15 % 的 CPU 性能提升。
72 |
73 | ### 全角标点与其他字符之间不加空格
74 |
75 | 正确:
76 |
77 | > 刚刚买了一部 iPhone,好开心!
78 |
79 | 错误:
80 |
81 | > 刚刚买了一部 iPhone ,好开心!
82 | >
83 | > 刚刚买了一部 iPhone, 好开心!
84 |
85 | ### 用 `text-spacing` 来挽救?
86 |
87 | CSS Text Module Level 4 的 [`text-spacing`](https://www.w3.org/TR/css-text-4/#text-spacing-property) 和 Microsoft 的 [`-ms-text-autospace`](https://msdn.microsoft.com/library/ms531164(v=vs.85).aspx) 可以实现自动为中英文之间增加空白。不过目前并未普及,另外在其他应用场景,例如 macOS、iOS、Windows 等用户界面目前并不存在这个特性,所以请继续保持随手加空格的习惯。
88 |
89 | ## 标点符号
90 |
91 | ### 不重复使用标点符号
92 |
93 | 虽然中国大陆的标点符号用法允许重复使用标点符号,但是这么做会破坏句子的美观性。
94 |
95 | 正确:
96 |
97 | > 德国队竟然战胜了巴西队!
98 | >
99 | > 她竟然对你说「喵」?!
100 |
101 | 错误:
102 |
103 | > 德国队竟然战胜了巴西队!!
104 | >
105 | > 德国队竟然战胜了巴西队!!!!!!!!
106 | >
107 | > 她竟然对你说「喵」??!!
108 | >
109 | > 她竟然对你说「喵」?!?!??!!
110 |
111 | ## 全角和半角
112 |
113 | 不明白什么是全角(全形)与半角(半形)符号?请查看维基百科条目『[全角和半角](https://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)』。
114 |
115 | ### 使用全角中文标点
116 |
117 | 正确:
118 |
119 | > 嗨!你知道嘛?今天前台的小妹跟我说「喵」了哎!
120 | >
121 | > 核磁共振成像(NMRI)是什么原理都不知道?JFGI!
122 |
123 | 错误:
124 |
125 | > 嗨! 你知道嘛? 今天前台的小妹跟我说 "喵" 了哎!
126 | >
127 | > 嗨!你知道嘛?今天前台的小妹跟我说"喵"了哎!
128 | >
129 | > 核磁共振成像 (NMRI) 是什么原理都不知道? JFGI!
130 | >
131 | > 核磁共振成像(NMRI)是什么原理都不知道?JFGI!
132 |
133 | 例外:中文句子内夹有英文书籍名、报刊名时,不应借用中文书名号,应以英文斜体表示。
134 |
135 | ### 数字使用半角字符
136 |
137 | 正确:
138 |
139 | > 这个蛋糕只卖 1000 元。
140 |
141 | 错误:
142 |
143 | > 这个蛋糕只卖 1000 元。
144 |
145 | 例外:在设计稿、宣传海报中如出现极少量数字的情形时,为方便文字对齐,是可以使用全角数字的。
146 |
147 | ### 遇到完整的英文整句、特殊名词,其内容使用半角标点
148 |
149 | 正确:
150 |
151 | > 乔布斯那句话是怎么说的?「Stay hungry, stay foolish.」
152 | >
153 | > 推荐你阅读 *Hackers & Painters: Big Ideas from the Computer Age*,非常地有趣。
154 |
155 | 错误:
156 |
157 | > 乔布斯那句话是怎么说的?「Stay hungry,stay foolish。」
158 | >
159 | > 推荐你阅读《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。
160 |
161 | ## 名词
162 |
163 | ### 专有名词使用正确的大小写
164 |
165 | 大小写相关用法原属于英文书写范畴,不属于本 wiki 讨论内容,在这里只对部分易错用法进行简述。
166 |
167 | 正确:
168 |
169 | > 使用 GitHub 登录
170 | >
171 | > 我们的客户有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。
172 |
173 | 错误:
174 |
175 | > 使用 github 登录
176 | >
177 | > 使用 GITHUB 登录
178 | >
179 | > 使用 Github 登录
180 | >
181 | > 使用 gitHub 登录
182 | >
183 | > 使用 gイんĤЦ8 登录
184 | >
185 | > 我们的客户有 github、foursquare、microsoft corporation、google、facebook, inc.。
186 | >
187 | > 我们的客户有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。
188 | >
189 | > 我们的客户有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。
190 | >
191 | > 我们的客户有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。
192 | >
193 | > 我们的客户有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。
194 |
195 | 注意:当网页中需要配合整体视觉风格而出现全部大写/小写的情形,HTML 中请使用标淮的大小写规范进行书写;并通过 `text-transform: uppercase;`/`text-transform: lowercase;` 对表现形式进行定义。
196 |
197 | ### 不要使用不地道的缩写
198 |
199 | 正确:
200 |
201 | > 我们需要一位熟悉 TypeScript、HTML5,至少理解一种框架(如 React、Next.js)的前端开发者。
202 |
203 | 错误:
204 |
205 | > 我们需要一位熟悉 Ts、h5,至少理解一种框架(如 RJS、nextjs)的 FED。
206 |
207 | ## 争议
208 |
209 | 以下用法略带有个人色彩,即:无论是否遵循下述规则,从语法的角度来讲都是**正确**的。
210 |
211 | ### 链接之间增加空格
212 |
213 | 用法:
214 |
215 | > 请 [提交一个 issue](#) 并分配给相关同事。
216 | >
217 | > 访问我们网站的最新动态,请 [点击这里](#) 进行订阅!
218 |
219 | 对比用法:
220 |
221 | > 请[提交一个 issue](#)并分配给相关同事。
222 | >
223 | > 访问我们网站的最新动态,请[点击这里](#)进行订阅!
224 |
225 | ### 简体中文使用直角引号
226 |
227 | 用法:
228 |
229 | > 「老师,『有条不紊』的『紊』是什么意思?」
230 |
231 | 对比用法:
232 |
233 | > “老师,‘有条不紊’的‘紊’是什么意思?”
234 |
235 | ## 工具
236 |
237 | 仓库 | 系列 | 语言
238 | --- | ---- | ---
239 | [pangu.js](https://github.com/vinta/pangu.js) | pangu | JavaScript
240 | [pangu-go](https://github.com/vinta/pangu) | pangu | Go
241 | [pangu.java](https://github.com/vinta/pangu.java) | pangu | Java
242 | [pangu.py](https://github.com/vinta/pangu.py) | pangu | Python
243 | [pangu.rb](https://github.com/dlackty/pangu.rb) | pangu | Ruby
244 | [pangu.php](https://github.com/cchlorine/pangu.php) | pangu | PHP
245 | [pangu.vim](https://github.com/hotoo/pangu.vim) | pangu | Vim
246 | [vue-pangu](https://github.com/serkodev/vue-pangu) | pangu | Vue.js (Web Converter)
247 | [intellij-pangu](https://plugins.jetbrains.com/plugin/19665-pangu) | pangu | Intellij Platform Plugin
248 | [autocorrect](https://github.com/huacnlee/autocorrect) | autocorrect | Rust, WASM, CLI tool
249 | [autocorrect-node](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-node) | autocorrect | Node.js
250 | [autocorrect-py](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-py) | autocorrect | Python
251 | [autocorrect-rb](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-rb) | autocorrect | Ruby
252 | [autocorrect-java](https://github.com/huacnlee/autocorrect/tree/main/autocorrect-java) | autocorrect | Java
253 | [autocorrect-go](https://github.com/longbridgeapp/autocorrect) | autocorrect | Go
254 | [autocorrect-php](https://github.com/NauxLiu/auto-correct) | autocorrect | PHP
255 | [autocorrect-vscode](https://marketplace.visualstudio.com/items?itemName=huacnlee.autocorrect) | autocorrect | VS Code Extension
256 | [autocorrect-idea-plugin](https://plugins.jetbrains.com/plugin/20244-autocorrect) | autocorrect | Intellij Platform Plugin
257 | [jxlwqq/chinese-typesetting](https://github.com/jxlwqq/chinese-typesetting) | other | PHP
258 | [sparanoid/space-lover](https://github.com/sparanoid/space-lover) | other | PHP (WordPress)
259 | [sparanoid/grunt-auto-spacing](https://github.com/sparanoid/grunt-auto-spacing) | other | Node.js (Grunt)
260 | [hjiang/scripts/add-space-between-latin-and-cjk](https://github.com/hjiang/scripts/blob/master/add-space-between-latin-and-cjk) | other | Python
261 | [hustcc/hint](https://github.com/hustcc/hint) | other | Python
262 | [n0vad3v/Tekorrect](https://github.com/n0vad3v/Tekorrect) | other | Python
263 |
264 | ## 谁在这样做?
265 |
266 | 网站 | 文案 | UGC
267 | --- | --- | ---
268 | [Apple 中国](https://www.apple.com/cn/) | 是 | N/A
269 | [Apple 香港](https://www.apple.com/hk/) | 是 | N/A
270 | [Apple 台湾](https://www.apple.com/tw/) | 是 | N/A
271 | [Microsoft 中国](https://www.microsoft.com/zh-cn/) | 是 | N/A
272 | [Microsoft 香港](https://www.microsoft.com/zh-hk/) | 是 | N/A
273 | [Microsoft 台湾](https://www.microsoft.com/zh-tw/) | 是 | N/A
274 | [LeanCloud](https://leancloud.cn/) | 是 | N/A
275 | [V2EX](https://www.v2ex.com/) | 是 | 是
276 | [Apple4us](https://apple4us.com/) | 是 | N/A
277 | [Ruby China](https://ruby-china.org/) | 是 | 是
278 | [少数派](https://sspai.com/) | 是 | N/A
279 |
280 | ## 参考文献
281 |
282 | - [Guidelines for Using Capital Letters - ThoughtCo.](https://www.thoughtco.com/guidelines-for-using-capital-letters-1691724)
283 | - [Letter case - Wikipedia](https://en.wikipedia.org/wiki/Letter_case)
284 | - [Punctuation - Oxford Dictionaries](https://en.oxforddictionaries.com/grammar/punctuation)
285 | - [Punctuation - The Purdue OWL](https://owl.english.purdue.edu/owl/section/1/6/)
286 | - [How to Use English Punctuation Correctly - wikiHow](https://www.wikihow.com/Use-English-Punctuation-Correctly)
287 | - [格式 - openSUSE](https://zh.opensuse.org/index.php?title=Help:%E6%A0%BC%E5%BC%8F)
288 | - [全形和半形 - 维基百科](https://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)
289 | - [引号 - 维基百科](https://zh.wikipedia.org/wiki/%E5%BC%95%E8%99%9F)
290 | - [疑问惊叹号 - 维基百科](https://zh.wikipedia.org/wiki/%E7%96%91%E5%95%8F%E9%A9%9A%E5%98%86%E8%99%9F)
291 |
292 | ## Forks
293 |
294 | 衍生项目的用法可能与本项目存在差异。
295 |
296 | - [mzlogin/chinese-copywriting-guidelines](https://github.com/mzlogin/chinese-copywriting-guidelines)
297 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | files:
2 | - source: /README.md
3 | translation: /README.%locale%.md
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chinese-copywriting-guidelines",
3 | "version": "1.0.1",
4 | "description": "Chinese Copywriting Guidelines",
5 | "author": "Tunghsiao Liu",
6 | "homepage": "http://github.com/sparanoid/chinese-copywriting-guidelines",
7 | "main": "README.md",
8 | "scripts": {
9 | "test": "remark .",
10 | "release": "npx release-it"
11 | },
12 | "remarkConfig": {
13 | "plugins": [
14 | "remark-preset-lint-consistent",
15 | "remark-preset-lint-recommended",
16 | [
17 | "remark-lint-list-item-indent",
18 | "space"
19 | ]
20 | ]
21 | },
22 | "repository": {
23 | "type": "git",
24 | "url": "https://github.com/sparanoid/chinese-copywriting-guidelines.git"
25 | },
26 | "bugs": {
27 | "url": "https://github.com/sparanoid/chinese-copywriting-guidelines/issues"
28 | },
29 | "license": "MIT",
30 | "keywords": [
31 | "chinese",
32 | "copywriting",
33 | "guideline"
34 | ],
35 | "readmeFilename": "README.md",
36 | "devDependencies": {
37 | "remark-cli": "^11.0.0",
38 | "remark-lint-list-item-indent": "^3.1.1",
39 | "remark-preset-lint-consistent": "^5.1.1",
40 | "remark-preset-lint-recommended": "^6.1.2"
41 | },
42 | "release-it": {
43 | "git": {
44 | "commitArgs": "-S",
45 | "commitMessage": "chore: release v${version}",
46 | "tagArgs": "-s",
47 | "tagAnnotation": "chore: release v${version}"
48 | },
49 | "github": {
50 | "release": true
51 | },
52 | "npm": {
53 | "publish": false
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | devDependencies:
8 | remark-cli:
9 | specifier: ^11.0.0
10 | version: 11.0.0
11 | remark-lint-list-item-indent:
12 | specifier: ^3.1.1
13 | version: 3.1.1
14 | remark-preset-lint-consistent:
15 | specifier: ^5.1.1
16 | version: 5.1.1
17 | remark-preset-lint-recommended:
18 | specifier: ^6.1.2
19 | version: 6.1.2
20 |
21 | packages:
22 |
23 | /@babel/code-frame@7.22.5:
24 | resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==}
25 | engines: {node: '>=6.9.0'}
26 | dependencies:
27 | '@babel/highlight': 7.22.5
28 | dev: true
29 |
30 | /@babel/helper-validator-identifier@7.22.5:
31 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
32 | engines: {node: '>=6.9.0'}
33 | dev: true
34 |
35 | /@babel/highlight@7.22.5:
36 | resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==}
37 | engines: {node: '>=6.9.0'}
38 | dependencies:
39 | '@babel/helper-validator-identifier': 7.22.5
40 | chalk: 2.4.2
41 | js-tokens: 4.0.0
42 | dev: true
43 |
44 | /@isaacs/cliui@8.0.2:
45 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
46 | engines: {node: '>=12'}
47 | dependencies:
48 | string-width: 5.1.2
49 | string-width-cjs: /string-width@4.2.3
50 | strip-ansi: 7.1.0
51 | strip-ansi-cjs: /strip-ansi@6.0.1
52 | wrap-ansi: 8.1.0
53 | wrap-ansi-cjs: /wrap-ansi@7.0.0
54 | dev: true
55 |
56 | /@npmcli/config@6.2.1:
57 | resolution: {integrity: sha512-Cj/OrSbrLvnwWuzquFCDTwFN8QmR+SWH6qLNCBttUreDkKM5D5p36SeSMbcEUiCGdwjUrVy2yd8C0REwwwDPEw==}
58 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
59 | dependencies:
60 | '@npmcli/map-workspaces': 3.0.4
61 | ci-info: 3.8.0
62 | ini: 4.1.1
63 | nopt: 7.2.0
64 | proc-log: 3.0.0
65 | read-package-json-fast: 3.0.2
66 | semver: 7.5.4
67 | walk-up-path: 3.0.1
68 | dev: true
69 |
70 | /@npmcli/map-workspaces@3.0.4:
71 | resolution: {integrity: sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==}
72 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
73 | dependencies:
74 | '@npmcli/name-from-folder': 2.0.0
75 | glob: 10.3.3
76 | minimatch: 9.0.3
77 | read-package-json-fast: 3.0.2
78 | dev: true
79 |
80 | /@npmcli/name-from-folder@2.0.0:
81 | resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==}
82 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
83 | dev: true
84 |
85 | /@pkgjs/parseargs@0.11.0:
86 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
87 | engines: {node: '>=14'}
88 | requiresBuild: true
89 | dev: true
90 | optional: true
91 |
92 | /@types/concat-stream@2.0.0:
93 | resolution: {integrity: sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw==}
94 | dependencies:
95 | '@types/node': 18.17.1
96 | dev: true
97 |
98 | /@types/debug@4.1.8:
99 | resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==}
100 | dependencies:
101 | '@types/ms': 0.7.31
102 | dev: true
103 |
104 | /@types/estree-jsx@1.0.0:
105 | resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==}
106 | dependencies:
107 | '@types/estree': 1.0.1
108 | dev: true
109 |
110 | /@types/estree@1.0.1:
111 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
112 | dev: true
113 |
114 | /@types/hast@2.3.5:
115 | resolution: {integrity: sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==}
116 | dependencies:
117 | '@types/unist': 2.0.7
118 | dev: true
119 |
120 | /@types/is-empty@1.2.1:
121 | resolution: {integrity: sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==}
122 | dev: true
123 |
124 | /@types/mdast@3.0.12:
125 | resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==}
126 | dependencies:
127 | '@types/unist': 2.0.7
128 | dev: true
129 |
130 | /@types/ms@0.7.31:
131 | resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
132 | dev: true
133 |
134 | /@types/node@18.17.1:
135 | resolution: {integrity: sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==}
136 | dev: true
137 |
138 | /@types/supports-color@8.1.1:
139 | resolution: {integrity: sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==}
140 | dev: true
141 |
142 | /@types/text-table@0.2.2:
143 | resolution: {integrity: sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==}
144 | dev: true
145 |
146 | /@types/unist@2.0.7:
147 | resolution: {integrity: sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==}
148 | dev: true
149 |
150 | /abbrev@2.0.0:
151 | resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
152 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
153 | dev: true
154 |
155 | /ansi-regex@5.0.1:
156 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
157 | engines: {node: '>=8'}
158 | dev: true
159 |
160 | /ansi-regex@6.0.1:
161 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
162 | engines: {node: '>=12'}
163 | dev: true
164 |
165 | /ansi-styles@3.2.1:
166 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
167 | engines: {node: '>=4'}
168 | dependencies:
169 | color-convert: 1.9.3
170 | dev: true
171 |
172 | /ansi-styles@4.3.0:
173 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
174 | engines: {node: '>=8'}
175 | dependencies:
176 | color-convert: 2.0.1
177 | dev: true
178 |
179 | /ansi-styles@6.2.1:
180 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
181 | engines: {node: '>=12'}
182 | dev: true
183 |
184 | /anymatch@3.1.3:
185 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
186 | engines: {node: '>= 8'}
187 | dependencies:
188 | normalize-path: 3.0.0
189 | picomatch: 2.3.1
190 | dev: true
191 |
192 | /bail@2.0.2:
193 | resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
194 | dev: true
195 |
196 | /balanced-match@1.0.2:
197 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
198 | dev: true
199 |
200 | /binary-extensions@2.2.0:
201 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
202 | engines: {node: '>=8'}
203 | dev: true
204 |
205 | /brace-expansion@2.0.1:
206 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
207 | dependencies:
208 | balanced-match: 1.0.2
209 | dev: true
210 |
211 | /braces@3.0.2:
212 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
213 | engines: {node: '>=8'}
214 | dependencies:
215 | fill-range: 7.0.1
216 | dev: true
217 |
218 | /buffer-from@1.1.2:
219 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
220 | dev: true
221 |
222 | /camelcase@7.0.1:
223 | resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
224 | engines: {node: '>=14.16'}
225 | dev: true
226 |
227 | /chalk@2.4.2:
228 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
229 | engines: {node: '>=4'}
230 | dependencies:
231 | ansi-styles: 3.2.1
232 | escape-string-regexp: 1.0.5
233 | supports-color: 5.5.0
234 | dev: true
235 |
236 | /chalk@5.3.0:
237 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
238 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
239 | dev: true
240 |
241 | /character-entities@2.0.2:
242 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
243 | dev: true
244 |
245 | /chokidar@3.5.3:
246 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
247 | engines: {node: '>= 8.10.0'}
248 | dependencies:
249 | anymatch: 3.1.3
250 | braces: 3.0.2
251 | glob-parent: 5.1.2
252 | is-binary-path: 2.1.0
253 | is-glob: 4.0.3
254 | normalize-path: 3.0.0
255 | readdirp: 3.6.0
256 | optionalDependencies:
257 | fsevents: 2.3.2
258 | dev: true
259 |
260 | /ci-info@3.8.0:
261 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
262 | engines: {node: '>=8'}
263 | dev: true
264 |
265 | /color-convert@1.9.3:
266 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
267 | dependencies:
268 | color-name: 1.1.3
269 | dev: true
270 |
271 | /color-convert@2.0.1:
272 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
273 | engines: {node: '>=7.0.0'}
274 | dependencies:
275 | color-name: 1.1.4
276 | dev: true
277 |
278 | /color-name@1.1.3:
279 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
280 | dev: true
281 |
282 | /color-name@1.1.4:
283 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
284 | dev: true
285 |
286 | /concat-stream@2.0.0:
287 | resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
288 | engines: {'0': node >= 6.0}
289 | dependencies:
290 | buffer-from: 1.1.2
291 | inherits: 2.0.4
292 | readable-stream: 3.6.2
293 | typedarray: 0.0.6
294 | dev: true
295 |
296 | /cross-spawn@7.0.3:
297 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
298 | engines: {node: '>= 8'}
299 | dependencies:
300 | path-key: 3.1.1
301 | shebang-command: 2.0.0
302 | which: 2.0.2
303 | dev: true
304 |
305 | /debug@4.3.4:
306 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
307 | engines: {node: '>=6.0'}
308 | peerDependencies:
309 | supports-color: '*'
310 | peerDependenciesMeta:
311 | supports-color:
312 | optional: true
313 | dependencies:
314 | ms: 2.1.2
315 | dev: true
316 |
317 | /decode-named-character-reference@1.0.2:
318 | resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
319 | dependencies:
320 | character-entities: 2.0.2
321 | dev: true
322 |
323 | /dequal@2.0.3:
324 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
325 | engines: {node: '>=6'}
326 | dev: true
327 |
328 | /diff@5.1.0:
329 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
330 | engines: {node: '>=0.3.1'}
331 | dev: true
332 |
333 | /eastasianwidth@0.2.0:
334 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
335 | dev: true
336 |
337 | /emoji-regex@8.0.0:
338 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
339 | dev: true
340 |
341 | /emoji-regex@9.2.2:
342 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
343 | dev: true
344 |
345 | /error-ex@1.3.2:
346 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
347 | dependencies:
348 | is-arrayish: 0.2.1
349 | dev: true
350 |
351 | /escape-string-regexp@1.0.5:
352 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
353 | engines: {node: '>=0.8.0'}
354 | dev: true
355 |
356 | /extend@3.0.2:
357 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
358 | dev: true
359 |
360 | /fault@2.0.1:
361 | resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
362 | dependencies:
363 | format: 0.2.2
364 | dev: true
365 |
366 | /fill-range@7.0.1:
367 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
368 | engines: {node: '>=8'}
369 | dependencies:
370 | to-regex-range: 5.0.1
371 | dev: true
372 |
373 | /foreground-child@3.1.1:
374 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
375 | engines: {node: '>=14'}
376 | dependencies:
377 | cross-spawn: 7.0.3
378 | signal-exit: 4.0.2
379 | dev: true
380 |
381 | /format@0.2.2:
382 | resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
383 | engines: {node: '>=0.4.x'}
384 | dev: true
385 |
386 | /fs.realpath@1.0.0:
387 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
388 | dev: true
389 |
390 | /fsevents@2.3.2:
391 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
392 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
393 | os: [darwin]
394 | requiresBuild: true
395 | dev: true
396 | optional: true
397 |
398 | /glob-parent@5.1.2:
399 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
400 | engines: {node: '>= 6'}
401 | dependencies:
402 | is-glob: 4.0.3
403 | dev: true
404 |
405 | /glob@10.3.3:
406 | resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==}
407 | engines: {node: '>=16 || 14 >=14.17'}
408 | hasBin: true
409 | dependencies:
410 | foreground-child: 3.1.1
411 | jackspeak: 2.2.2
412 | minimatch: 9.0.3
413 | minipass: 7.0.2
414 | path-scurry: 1.10.1
415 | dev: true
416 |
417 | /glob@8.1.0:
418 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
419 | engines: {node: '>=12'}
420 | dependencies:
421 | fs.realpath: 1.0.0
422 | inflight: 1.0.6
423 | inherits: 2.0.4
424 | minimatch: 5.1.6
425 | once: 1.4.0
426 | dev: true
427 |
428 | /has-flag@3.0.0:
429 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
430 | engines: {node: '>=4'}
431 | dev: true
432 |
433 | /ignore@5.2.4:
434 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
435 | engines: {node: '>= 4'}
436 | dev: true
437 |
438 | /import-meta-resolve@2.2.2:
439 | resolution: {integrity: sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==}
440 | dev: true
441 |
442 | /inflight@1.0.6:
443 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
444 | dependencies:
445 | once: 1.4.0
446 | wrappy: 1.0.2
447 | dev: true
448 |
449 | /inherits@2.0.4:
450 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
451 | dev: true
452 |
453 | /ini@4.1.1:
454 | resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
455 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
456 | dev: true
457 |
458 | /is-arrayish@0.2.1:
459 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
460 | dev: true
461 |
462 | /is-binary-path@2.1.0:
463 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
464 | engines: {node: '>=8'}
465 | dependencies:
466 | binary-extensions: 2.2.0
467 | dev: true
468 |
469 | /is-buffer@2.0.5:
470 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
471 | engines: {node: '>=4'}
472 | dev: true
473 |
474 | /is-empty@1.2.0:
475 | resolution: {integrity: sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==}
476 | dev: true
477 |
478 | /is-extglob@2.1.1:
479 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
480 | engines: {node: '>=0.10.0'}
481 | dev: true
482 |
483 | /is-fullwidth-code-point@3.0.0:
484 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
485 | engines: {node: '>=8'}
486 | dev: true
487 |
488 | /is-glob@4.0.3:
489 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
490 | engines: {node: '>=0.10.0'}
491 | dependencies:
492 | is-extglob: 2.1.1
493 | dev: true
494 |
495 | /is-number@7.0.0:
496 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
497 | engines: {node: '>=0.12.0'}
498 | dev: true
499 |
500 | /is-plain-obj@4.1.0:
501 | resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
502 | engines: {node: '>=12'}
503 | dev: true
504 |
505 | /isexe@2.0.0:
506 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
507 | dev: true
508 |
509 | /jackspeak@2.2.2:
510 | resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==}
511 | engines: {node: '>=14'}
512 | dependencies:
513 | '@isaacs/cliui': 8.0.2
514 | optionalDependencies:
515 | '@pkgjs/parseargs': 0.11.0
516 | dev: true
517 |
518 | /js-tokens@4.0.0:
519 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
520 | dev: true
521 |
522 | /json-parse-even-better-errors@2.3.1:
523 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
524 | dev: true
525 |
526 | /json-parse-even-better-errors@3.0.0:
527 | resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==}
528 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
529 | dev: true
530 |
531 | /json5@2.2.3:
532 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
533 | engines: {node: '>=6'}
534 | hasBin: true
535 | dev: true
536 |
537 | /kleur@4.1.5:
538 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
539 | engines: {node: '>=6'}
540 | dev: true
541 |
542 | /lines-and-columns@2.0.3:
543 | resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==}
544 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
545 | dev: true
546 |
547 | /load-plugin@5.1.0:
548 | resolution: {integrity: sha512-Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ==}
549 | dependencies:
550 | '@npmcli/config': 6.2.1
551 | import-meta-resolve: 2.2.2
552 | dev: true
553 |
554 | /longest-streak@3.1.0:
555 | resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
556 | dev: true
557 |
558 | /lru-cache@10.0.0:
559 | resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==}
560 | engines: {node: 14 || >=16.14}
561 | dev: true
562 |
563 | /lru-cache@6.0.0:
564 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
565 | engines: {node: '>=10'}
566 | dependencies:
567 | yallist: 4.0.0
568 | dev: true
569 |
570 | /mdast-comment-marker@2.1.2:
571 | resolution: {integrity: sha512-HED3ezseRVkBzZ0uK4q6RJMdufr/2p3VfVZstE3H1N9K8bwtspztWo6Xd7rEatuGNoCXaBna8oEqMwUn0Ve1bw==}
572 | dependencies:
573 | '@types/mdast': 3.0.12
574 | mdast-util-mdx-expression: 1.3.2
575 | transitivePeerDependencies:
576 | - supports-color
577 | dev: true
578 |
579 | /mdast-util-from-markdown@1.3.1:
580 | resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==}
581 | dependencies:
582 | '@types/mdast': 3.0.12
583 | '@types/unist': 2.0.7
584 | decode-named-character-reference: 1.0.2
585 | mdast-util-to-string: 3.2.0
586 | micromark: 3.2.0
587 | micromark-util-decode-numeric-character-reference: 1.1.0
588 | micromark-util-decode-string: 1.1.0
589 | micromark-util-normalize-identifier: 1.1.0
590 | micromark-util-symbol: 1.1.0
591 | micromark-util-types: 1.1.0
592 | unist-util-stringify-position: 3.0.3
593 | uvu: 0.5.6
594 | transitivePeerDependencies:
595 | - supports-color
596 | dev: true
597 |
598 | /mdast-util-heading-style@2.0.1:
599 | resolution: {integrity: sha512-0L5rthU4xKDVbw+UQ7D8Y8xOEsX4JXZvemWoEAsL+WAaeSH+TvVVwFnTb3G/OrjyP4VYQULoNWU+PdZfkmNu4A==}
600 | dependencies:
601 | '@types/mdast': 3.0.12
602 | dev: true
603 |
604 | /mdast-util-mdx-expression@1.3.2:
605 | resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==}
606 | dependencies:
607 | '@types/estree-jsx': 1.0.0
608 | '@types/hast': 2.3.5
609 | '@types/mdast': 3.0.12
610 | mdast-util-from-markdown: 1.3.1
611 | mdast-util-to-markdown: 1.5.0
612 | transitivePeerDependencies:
613 | - supports-color
614 | dev: true
615 |
616 | /mdast-util-phrasing@3.0.1:
617 | resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==}
618 | dependencies:
619 | '@types/mdast': 3.0.12
620 | unist-util-is: 5.2.1
621 | dev: true
622 |
623 | /mdast-util-to-markdown@1.5.0:
624 | resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==}
625 | dependencies:
626 | '@types/mdast': 3.0.12
627 | '@types/unist': 2.0.7
628 | longest-streak: 3.1.0
629 | mdast-util-phrasing: 3.0.1
630 | mdast-util-to-string: 3.2.0
631 | micromark-util-decode-string: 1.1.0
632 | unist-util-visit: 4.1.2
633 | zwitch: 2.0.4
634 | dev: true
635 |
636 | /mdast-util-to-string@3.2.0:
637 | resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==}
638 | dependencies:
639 | '@types/mdast': 3.0.12
640 | dev: true
641 |
642 | /micromark-core-commonmark@1.1.0:
643 | resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==}
644 | dependencies:
645 | decode-named-character-reference: 1.0.2
646 | micromark-factory-destination: 1.1.0
647 | micromark-factory-label: 1.1.0
648 | micromark-factory-space: 1.1.0
649 | micromark-factory-title: 1.1.0
650 | micromark-factory-whitespace: 1.1.0
651 | micromark-util-character: 1.2.0
652 | micromark-util-chunked: 1.1.0
653 | micromark-util-classify-character: 1.1.0
654 | micromark-util-html-tag-name: 1.2.0
655 | micromark-util-normalize-identifier: 1.1.0
656 | micromark-util-resolve-all: 1.1.0
657 | micromark-util-subtokenize: 1.1.0
658 | micromark-util-symbol: 1.1.0
659 | micromark-util-types: 1.1.0
660 | uvu: 0.5.6
661 | dev: true
662 |
663 | /micromark-factory-destination@1.1.0:
664 | resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==}
665 | dependencies:
666 | micromark-util-character: 1.2.0
667 | micromark-util-symbol: 1.1.0
668 | micromark-util-types: 1.1.0
669 | dev: true
670 |
671 | /micromark-factory-label@1.1.0:
672 | resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==}
673 | dependencies:
674 | micromark-util-character: 1.2.0
675 | micromark-util-symbol: 1.1.0
676 | micromark-util-types: 1.1.0
677 | uvu: 0.5.6
678 | dev: true
679 |
680 | /micromark-factory-space@1.1.0:
681 | resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
682 | dependencies:
683 | micromark-util-character: 1.2.0
684 | micromark-util-types: 1.1.0
685 | dev: true
686 |
687 | /micromark-factory-title@1.1.0:
688 | resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==}
689 | dependencies:
690 | micromark-factory-space: 1.1.0
691 | micromark-util-character: 1.2.0
692 | micromark-util-symbol: 1.1.0
693 | micromark-util-types: 1.1.0
694 | dev: true
695 |
696 | /micromark-factory-whitespace@1.1.0:
697 | resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==}
698 | dependencies:
699 | micromark-factory-space: 1.1.0
700 | micromark-util-character: 1.2.0
701 | micromark-util-symbol: 1.1.0
702 | micromark-util-types: 1.1.0
703 | dev: true
704 |
705 | /micromark-util-character@1.2.0:
706 | resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
707 | dependencies:
708 | micromark-util-symbol: 1.1.0
709 | micromark-util-types: 1.1.0
710 | dev: true
711 |
712 | /micromark-util-chunked@1.1.0:
713 | resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==}
714 | dependencies:
715 | micromark-util-symbol: 1.1.0
716 | dev: true
717 |
718 | /micromark-util-classify-character@1.1.0:
719 | resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==}
720 | dependencies:
721 | micromark-util-character: 1.2.0
722 | micromark-util-symbol: 1.1.0
723 | micromark-util-types: 1.1.0
724 | dev: true
725 |
726 | /micromark-util-combine-extensions@1.1.0:
727 | resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==}
728 | dependencies:
729 | micromark-util-chunked: 1.1.0
730 | micromark-util-types: 1.1.0
731 | dev: true
732 |
733 | /micromark-util-decode-numeric-character-reference@1.1.0:
734 | resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==}
735 | dependencies:
736 | micromark-util-symbol: 1.1.0
737 | dev: true
738 |
739 | /micromark-util-decode-string@1.1.0:
740 | resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==}
741 | dependencies:
742 | decode-named-character-reference: 1.0.2
743 | micromark-util-character: 1.2.0
744 | micromark-util-decode-numeric-character-reference: 1.1.0
745 | micromark-util-symbol: 1.1.0
746 | dev: true
747 |
748 | /micromark-util-encode@1.1.0:
749 | resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==}
750 | dev: true
751 |
752 | /micromark-util-html-tag-name@1.2.0:
753 | resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==}
754 | dev: true
755 |
756 | /micromark-util-normalize-identifier@1.1.0:
757 | resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==}
758 | dependencies:
759 | micromark-util-symbol: 1.1.0
760 | dev: true
761 |
762 | /micromark-util-resolve-all@1.1.0:
763 | resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==}
764 | dependencies:
765 | micromark-util-types: 1.1.0
766 | dev: true
767 |
768 | /micromark-util-sanitize-uri@1.2.0:
769 | resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==}
770 | dependencies:
771 | micromark-util-character: 1.2.0
772 | micromark-util-encode: 1.1.0
773 | micromark-util-symbol: 1.1.0
774 | dev: true
775 |
776 | /micromark-util-subtokenize@1.1.0:
777 | resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==}
778 | dependencies:
779 | micromark-util-chunked: 1.1.0
780 | micromark-util-symbol: 1.1.0
781 | micromark-util-types: 1.1.0
782 | uvu: 0.5.6
783 | dev: true
784 |
785 | /micromark-util-symbol@1.1.0:
786 | resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
787 | dev: true
788 |
789 | /micromark-util-types@1.1.0:
790 | resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
791 | dev: true
792 |
793 | /micromark@3.2.0:
794 | resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
795 | dependencies:
796 | '@types/debug': 4.1.8
797 | debug: 4.3.4
798 | decode-named-character-reference: 1.0.2
799 | micromark-core-commonmark: 1.1.0
800 | micromark-factory-space: 1.1.0
801 | micromark-util-character: 1.2.0
802 | micromark-util-chunked: 1.1.0
803 | micromark-util-combine-extensions: 1.1.0
804 | micromark-util-decode-numeric-character-reference: 1.1.0
805 | micromark-util-encode: 1.1.0
806 | micromark-util-normalize-identifier: 1.1.0
807 | micromark-util-resolve-all: 1.1.0
808 | micromark-util-sanitize-uri: 1.2.0
809 | micromark-util-subtokenize: 1.1.0
810 | micromark-util-symbol: 1.1.0
811 | micromark-util-types: 1.1.0
812 | uvu: 0.5.6
813 | transitivePeerDependencies:
814 | - supports-color
815 | dev: true
816 |
817 | /minimatch@5.1.6:
818 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
819 | engines: {node: '>=10'}
820 | dependencies:
821 | brace-expansion: 2.0.1
822 | dev: true
823 |
824 | /minimatch@9.0.3:
825 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
826 | engines: {node: '>=16 || 14 >=14.17'}
827 | dependencies:
828 | brace-expansion: 2.0.1
829 | dev: true
830 |
831 | /minimist@1.2.8:
832 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
833 | dev: true
834 |
835 | /minipass@7.0.2:
836 | resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==}
837 | engines: {node: '>=16 || 14 >=14.17'}
838 | dev: true
839 |
840 | /mri@1.2.0:
841 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
842 | engines: {node: '>=4'}
843 | dev: true
844 |
845 | /ms@2.1.2:
846 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
847 | dev: true
848 |
849 | /nopt@7.2.0:
850 | resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==}
851 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
852 | hasBin: true
853 | dependencies:
854 | abbrev: 2.0.0
855 | dev: true
856 |
857 | /normalize-path@3.0.0:
858 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
859 | engines: {node: '>=0.10.0'}
860 | dev: true
861 |
862 | /npm-normalize-package-bin@3.0.1:
863 | resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
864 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
865 | dev: true
866 |
867 | /once@1.4.0:
868 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
869 | dependencies:
870 | wrappy: 1.0.2
871 | dev: true
872 |
873 | /parse-json@6.0.2:
874 | resolution: {integrity: sha512-SA5aMiaIjXkAiBrW/yPgLgQAQg42f7K3ACO+2l/zOvtQBwX58DMUsFJXelW2fx3yMBmWOVkR6j1MGsdSbCA4UA==}
875 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
876 | dependencies:
877 | '@babel/code-frame': 7.22.5
878 | error-ex: 1.3.2
879 | json-parse-even-better-errors: 2.3.1
880 | lines-and-columns: 2.0.3
881 | dev: true
882 |
883 | /path-key@3.1.1:
884 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
885 | engines: {node: '>=8'}
886 | dev: true
887 |
888 | /path-scurry@1.10.1:
889 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
890 | engines: {node: '>=16 || 14 >=14.17'}
891 | dependencies:
892 | lru-cache: 10.0.0
893 | minipass: 7.0.2
894 | dev: true
895 |
896 | /picomatch@2.3.1:
897 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
898 | engines: {node: '>=8.6'}
899 | dev: true
900 |
901 | /pluralize@8.0.0:
902 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
903 | engines: {node: '>=4'}
904 | dev: true
905 |
906 | /proc-log@3.0.0:
907 | resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
908 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
909 | dev: true
910 |
911 | /read-package-json-fast@3.0.2:
912 | resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
913 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
914 | dependencies:
915 | json-parse-even-better-errors: 3.0.0
916 | npm-normalize-package-bin: 3.0.1
917 | dev: true
918 |
919 | /readable-stream@3.6.2:
920 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
921 | engines: {node: '>= 6'}
922 | dependencies:
923 | inherits: 2.0.4
924 | string_decoder: 1.3.0
925 | util-deprecate: 1.0.2
926 | dev: true
927 |
928 | /readdirp@3.6.0:
929 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
930 | engines: {node: '>=8.10.0'}
931 | dependencies:
932 | picomatch: 2.3.1
933 | dev: true
934 |
935 | /remark-cli@11.0.0:
936 | resolution: {integrity: sha512-8JEWwArXquRq1/In4Ftz7gSG9Scwb1ijT2/dEuBETW9omqhmMRxcfjZ3iKqrak3BnCJeZSXCdWEmPhFKC8+RUQ==}
937 | hasBin: true
938 | dependencies:
939 | remark: 14.0.3
940 | unified-args: 10.0.0
941 | transitivePeerDependencies:
942 | - supports-color
943 | dev: true
944 |
945 | /remark-lint-blockquote-indentation@3.1.2:
946 | resolution: {integrity: sha512-5DOrFsZd5dXqA4p/VZvWSrqIWNFbBXjX7IV/FkVkxlNhNF/0FMf/4v8x1I2W3mzaZ7yDsWS/egpZnmligq1ckQ==}
947 | dependencies:
948 | '@types/mdast': 3.0.12
949 | pluralize: 8.0.0
950 | unified: 10.1.2
951 | unified-lint-rule: 2.1.2
952 | unist-util-generated: 2.0.1
953 | unist-util-position: 4.0.4
954 | unist-util-visit: 4.1.2
955 | dev: true
956 |
957 | /remark-lint-checkbox-character-style@4.1.2:
958 | resolution: {integrity: sha512-5ITz+1cCuJ3Jv/Q7rKgDEucCOnIgjWDnSHPJA1tb4TI/D316h+ALbDhZIpP8gyfAm6sBAh3Pwz9XZJN2uJB5UQ==}
959 | dependencies:
960 | '@types/mdast': 3.0.12
961 | unified: 10.1.2
962 | unified-lint-rule: 2.1.2
963 | unist-util-position: 4.0.4
964 | unist-util-visit: 4.1.2
965 | dev: true
966 |
967 | /remark-lint-code-block-style@3.1.2:
968 | resolution: {integrity: sha512-3wsWmzzdyEsB9sOzBOf46TSkwwVKXN2JpTEQb6feN0Tl6Vg75F7T9MHqMz7aqk/56bOXSxUzdpXDscGBhziLRA==}
969 | dependencies:
970 | '@types/mdast': 3.0.12
971 | unified: 10.1.2
972 | unified-lint-rule: 2.1.2
973 | unist-util-generated: 2.0.1
974 | unist-util-position: 4.0.4
975 | unist-util-visit: 4.1.2
976 | dev: true
977 |
978 | /remark-lint-emphasis-marker@3.1.2:
979 | resolution: {integrity: sha512-hPZ8vxZrIfxmLA5B66bA8y3PdHjcCQuaLsySIqi5PM2DkpN6a7zAP3v1znyRSaYJ1ANVWcu00/0bNzuUjflGCA==}
980 | dependencies:
981 | '@types/mdast': 3.0.12
982 | unified: 10.1.2
983 | unified-lint-rule: 2.1.2
984 | unist-util-position: 4.0.4
985 | unist-util-visit: 4.1.2
986 | dev: true
987 |
988 | /remark-lint-fenced-code-marker@3.1.2:
989 | resolution: {integrity: sha512-6XNqjOuhT+0c7Q/22aCsMz61ne9g8HRpYF79EXQPdbzYa+PcfPXMiQKStONY3PfC8OE2/3WXI2zcs8w9x+8+VQ==}
990 | dependencies:
991 | '@types/mdast': 3.0.12
992 | unified: 10.1.2
993 | unified-lint-rule: 2.1.2
994 | unist-util-position: 4.0.4
995 | unist-util-visit: 4.1.2
996 | dev: true
997 |
998 | /remark-lint-final-newline@2.1.2:
999 | resolution: {integrity: sha512-K0FdPGPyEB94PwNgopwVJFE8oRWi7IhY2ycXFVAMReI51el7EHB8F1gX14tB6p6zyGy6mUh69bCVU9mMTNeOUg==}
1000 | dependencies:
1001 | '@types/mdast': 3.0.12
1002 | unified: 10.1.2
1003 | unified-lint-rule: 2.1.2
1004 | dev: true
1005 |
1006 | /remark-lint-hard-break-spaces@3.1.2:
1007 | resolution: {integrity: sha512-HaW0xsl3TI7VFAqGWWcZtPqyz0NWu19KKjSO7OGFTUJU4S9YiRnhIxmSFM0ZLSsVAynE+dhzVKa8U7dOpWDcOg==}
1008 | dependencies:
1009 | '@types/mdast': 3.0.12
1010 | unified: 10.1.2
1011 | unified-lint-rule: 2.1.2
1012 | unist-util-generated: 2.0.1
1013 | unist-util-position: 4.0.4
1014 | unist-util-visit: 4.1.2
1015 | dev: true
1016 |
1017 | /remark-lint-heading-style@3.1.2:
1018 | resolution: {integrity: sha512-0RkcRPV/H2bPFgeInzBkK1cWUwtFTm83I+Db/Z5tDY02GzKOosHLvxtJyj/1391/opAH1LYbHtHWffir99IUgw==}
1019 | dependencies:
1020 | '@types/mdast': 3.0.12
1021 | mdast-util-heading-style: 2.0.1
1022 | unified: 10.1.2
1023 | unified-lint-rule: 2.1.2
1024 | unist-util-generated: 2.0.1
1025 | unist-util-visit: 4.1.2
1026 | dev: true
1027 |
1028 | /remark-lint-link-title-style@3.1.2:
1029 | resolution: {integrity: sha512-if4MahYJVvQUWlrXDF8GSv4b9VtLSgMSDHeikQp1/hGYlihLl9uGw3nlL5Lf9DqTN0qaT6RPbXOjuuzHlk38sg==}
1030 | dependencies:
1031 | '@types/mdast': 3.0.12
1032 | unified: 10.1.2
1033 | unified-lint-rule: 2.1.2
1034 | unist-util-position: 4.0.4
1035 | unist-util-visit: 4.1.2
1036 | vfile-location: 4.1.0
1037 | dev: true
1038 |
1039 | /remark-lint-list-item-bullet-indent@4.1.2:
1040 | resolution: {integrity: sha512-WgU5nooqIEm6f35opcbHKBzWrdFJA3XcyTfB3nv/v0KX43/h6qFGmmMJ5kEiaFExuQp3dZSdatWuY0YZ9YRbUg==}
1041 | dependencies:
1042 | '@types/mdast': 3.0.12
1043 | pluralize: 8.0.0
1044 | unified: 10.1.2
1045 | unified-lint-rule: 2.1.2
1046 | unist-util-visit: 4.1.2
1047 | dev: true
1048 |
1049 | /remark-lint-list-item-content-indent@3.1.2:
1050 | resolution: {integrity: sha512-TB0pmrWiRaQW80Y/PILFQTnHDghRxXNzMwyawlP+DBF9gNom3pEBmb4ZlGQlN0aa3r8VWeIKdv1ylHrfXE0vqA==}
1051 | dependencies:
1052 | '@types/mdast': 3.0.12
1053 | pluralize: 8.0.0
1054 | unified: 10.1.2
1055 | unified-lint-rule: 2.1.2
1056 | unist-util-position: 4.0.4
1057 | unist-util-visit: 4.1.2
1058 | dev: true
1059 |
1060 | /remark-lint-list-item-indent@3.1.1:
1061 | resolution: {integrity: sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==}
1062 | dependencies:
1063 | '@types/mdast': 3.0.12
1064 | pluralize: 8.0.0
1065 | unified: 10.1.2
1066 | unified-lint-rule: 2.1.2
1067 | unist-util-generated: 2.0.1
1068 | unist-util-position: 4.0.4
1069 | unist-util-visit: 4.1.2
1070 | dev: true
1071 |
1072 | /remark-lint-no-blockquote-without-marker@5.1.2:
1073 | resolution: {integrity: sha512-QPbqsrt7EfpSWqTkZJ9tepabPIhBDlNqZkuxxMQYD0OQ2N+tHDUq3zE1JxI5ts1V9o/mWApgySocqGd3jlcKmQ==}
1074 | dependencies:
1075 | '@types/mdast': 3.0.12
1076 | unified: 10.1.2
1077 | unified-lint-rule: 2.1.2
1078 | unist-util-generated: 2.0.1
1079 | unist-util-position: 4.0.4
1080 | unist-util-visit: 4.1.2
1081 | vfile-location: 4.1.0
1082 | dev: true
1083 |
1084 | /remark-lint-no-duplicate-definitions@3.1.2:
1085 | resolution: {integrity: sha512-vi0nXA7p+pjQOorZOkr9E+QDhG74JAdbzqglWPrWWNI3z2rUYWYHTNSyWJbwEXaIIcev1ZAw8SCAOis5MNm+pA==}
1086 | dependencies:
1087 | '@types/mdast': 3.0.12
1088 | unified: 10.1.2
1089 | unified-lint-rule: 2.1.2
1090 | unist-util-generated: 2.0.1
1091 | unist-util-position: 4.0.4
1092 | unist-util-stringify-position: 3.0.3
1093 | unist-util-visit: 4.1.2
1094 | dev: true
1095 |
1096 | /remark-lint-no-heading-content-indent@4.1.2:
1097 | resolution: {integrity: sha512-TTxFsm1f4ZHFxZQCuz7j0QK4RvP6oArTiwazKLr16yaZe1608ypogMek4A30j2xX8WuO9+2uBzLXCY5OBo5x5Q==}
1098 | dependencies:
1099 | '@types/mdast': 3.0.12
1100 | mdast-util-heading-style: 2.0.1
1101 | pluralize: 8.0.0
1102 | unified: 10.1.2
1103 | unified-lint-rule: 2.1.2
1104 | unist-util-generated: 2.0.1
1105 | unist-util-position: 4.0.4
1106 | unist-util-visit: 4.1.2
1107 | dev: true
1108 |
1109 | /remark-lint-no-inline-padding@4.1.2:
1110 | resolution: {integrity: sha512-dGyhWsiqCZS3Slob0EVBUfsFBbdpMIBCvb56LlCgaHbnLsnNYx8PpF/wA5CgsN8BXIbXfRpyPB5cIJwIq5taYg==}
1111 | dependencies:
1112 | '@types/mdast': 3.0.12
1113 | mdast-util-to-string: 3.2.0
1114 | unified: 10.1.2
1115 | unified-lint-rule: 2.1.2
1116 | unist-util-generated: 2.0.1
1117 | unist-util-visit: 4.1.2
1118 | dev: true
1119 |
1120 | /remark-lint-no-literal-urls@3.1.2:
1121 | resolution: {integrity: sha512-4tV9JGLKxAMFSuWDMOqLozkFJ3HyRvhzgrPrxASoziaml23m7UXAozk5dkIrFny1cN2oG988Z8tORxX2FL1Ilw==}
1122 | dependencies:
1123 | '@types/mdast': 3.0.12
1124 | mdast-util-to-string: 3.2.0
1125 | unified: 10.1.2
1126 | unified-lint-rule: 2.1.2
1127 | unist-util-generated: 2.0.1
1128 | unist-util-position: 4.0.4
1129 | unist-util-visit: 4.1.2
1130 | dev: true
1131 |
1132 | /remark-lint-no-shortcut-reference-image@3.1.2:
1133 | resolution: {integrity: sha512-NX4XJFPyDeJJ77pmETxRj4oM/zayf7Lmn/O87HgExBkQIPz2NYbDeKD8QEyliLaV/oKA2rQufpzuFw55xa1Tww==}
1134 | dependencies:
1135 | '@types/mdast': 3.0.12
1136 | unified: 10.1.2
1137 | unified-lint-rule: 2.1.2
1138 | unist-util-generated: 2.0.1
1139 | unist-util-visit: 4.1.2
1140 | dev: true
1141 |
1142 | /remark-lint-no-shortcut-reference-link@3.1.2:
1143 | resolution: {integrity: sha512-/9iPN7FLKaaIzw4tLWKu7Rx0wAP7E2EuzIeentQlkY0rO/mMHipmT3IlgiebsAInKagzTY6TNFoG1rq2VnaCcA==}
1144 | dependencies:
1145 | '@types/mdast': 3.0.12
1146 | unified: 10.1.2
1147 | unified-lint-rule: 2.1.2
1148 | unist-util-generated: 2.0.1
1149 | unist-util-visit: 4.1.2
1150 | dev: true
1151 |
1152 | /remark-lint-no-undefined-references@4.2.1:
1153 | resolution: {integrity: sha512-HdNg5b2KiuNplcuVvRtsrUiROw557kAG1CiZYB7jQrrVWFgd86lKTa3bDiywe+87dGrGmHd3qQ28eZYTuHz2Nw==}
1154 | dependencies:
1155 | '@types/mdast': 3.0.12
1156 | micromark-util-normalize-identifier: 1.1.0
1157 | unified: 10.1.2
1158 | unified-lint-rule: 2.1.2
1159 | unist-util-generated: 2.0.1
1160 | unist-util-position: 4.0.4
1161 | unist-util-visit: 4.1.2
1162 | vfile-location: 4.1.0
1163 | dev: true
1164 |
1165 | /remark-lint-no-unused-definitions@3.1.2:
1166 | resolution: {integrity: sha512-bOcaJAnjKxT3kASFquUA3fO9xem9wZhVqt8TbqjA84+G4n40qjaLXDs/4vq73aMsSde73K0f3j1u0pMe7et8yQ==}
1167 | dependencies:
1168 | '@types/mdast': 3.0.12
1169 | unified: 10.1.2
1170 | unified-lint-rule: 2.1.2
1171 | unist-util-generated: 2.0.1
1172 | unist-util-visit: 4.1.2
1173 | dev: true
1174 |
1175 | /remark-lint-ordered-list-marker-style@3.1.2:
1176 | resolution: {integrity: sha512-62iVE/YQsA0Azaqt8yAJWPplWLS47kDLjXeC2PlRIAzCqbNt9qH3HId8vZ15QTSrp8rHmJwrCMdcqV6AZUi7gQ==}
1177 | dependencies:
1178 | '@types/mdast': 3.0.12
1179 | unified: 10.1.2
1180 | unified-lint-rule: 2.1.2
1181 | unist-util-generated: 2.0.1
1182 | unist-util-position: 4.0.4
1183 | unist-util-visit: 4.1.2
1184 | dev: true
1185 |
1186 | /remark-lint-rule-style@3.1.2:
1187 | resolution: {integrity: sha512-0CsX2XcX9pIhAP5N7Y8mhYXp3/Ld+NvxXY1p0LHAq0NZu17UsZLuegvx/s25uFbQs08DcmSqyKnepU9qGGqmTQ==}
1188 | dependencies:
1189 | '@types/mdast': 3.0.12
1190 | unified: 10.1.2
1191 | unified-lint-rule: 2.1.2
1192 | unist-util-position: 4.0.4
1193 | unist-util-visit: 4.1.2
1194 | dev: true
1195 |
1196 | /remark-lint-strong-marker@3.1.2:
1197 | resolution: {integrity: sha512-U/g4wngmiI0Q6WBRQG6pZxnDS33Wt/0QYA3+KNFBDykoi1vXsDEorIqy3dEag9z6XHwcMvFDsff6VRUhaOJWQg==}
1198 | dependencies:
1199 | '@types/mdast': 3.0.12
1200 | unified: 10.1.2
1201 | unified-lint-rule: 2.1.2
1202 | unist-util-position: 4.0.4
1203 | unist-util-visit: 4.1.2
1204 | dev: true
1205 |
1206 | /remark-lint-table-cell-padding@4.1.3:
1207 | resolution: {integrity: sha512-N9xtnS6MG/H3srAMjqqaF26A7socr87pIgt64dr5rxoSbDRWRPChGQ8y7wKyV8VeyRNF37e3E5KB3bQVqjSYaQ==}
1208 | dependencies:
1209 | '@types/mdast': 3.0.12
1210 | '@types/unist': 2.0.7
1211 | unified: 10.1.2
1212 | unified-lint-rule: 2.1.2
1213 | unist-util-position: 4.0.4
1214 | unist-util-visit: 4.1.2
1215 | dev: true
1216 |
1217 | /remark-lint@9.1.2:
1218 | resolution: {integrity: sha512-m9e/aPlh7tsvfJfj8tPxrQzD6oEdb9Foko+Ya/6OwUP9EoGMfehv1Qtv26W1DoH58Wn8rT8CD+KuprTWscMmIA==}
1219 | dependencies:
1220 | '@types/mdast': 3.0.12
1221 | remark-message-control: 7.1.1
1222 | unified: 10.1.2
1223 | transitivePeerDependencies:
1224 | - supports-color
1225 | dev: true
1226 |
1227 | /remark-message-control@7.1.1:
1228 | resolution: {integrity: sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==}
1229 | dependencies:
1230 | '@types/mdast': 3.0.12
1231 | mdast-comment-marker: 2.1.2
1232 | unified: 10.1.2
1233 | unified-message-control: 4.0.0
1234 | vfile: 5.3.7
1235 | transitivePeerDependencies:
1236 | - supports-color
1237 | dev: true
1238 |
1239 | /remark-parse@10.0.2:
1240 | resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==}
1241 | dependencies:
1242 | '@types/mdast': 3.0.12
1243 | mdast-util-from-markdown: 1.3.1
1244 | unified: 10.1.2
1245 | transitivePeerDependencies:
1246 | - supports-color
1247 | dev: true
1248 |
1249 | /remark-preset-lint-consistent@5.1.1:
1250 | resolution: {integrity: sha512-DZQfomiVi/1x7NRByWrOiIC+olEGa1PpyykKrowvYp5qr/Seq60FqU7OjBJxtcOLzgnQcu9Y2JXdHxFi4AAPXQ==}
1251 | dependencies:
1252 | '@types/mdast': 3.0.12
1253 | remark-lint: 9.1.2
1254 | remark-lint-blockquote-indentation: 3.1.2
1255 | remark-lint-checkbox-character-style: 4.1.2
1256 | remark-lint-code-block-style: 3.1.2
1257 | remark-lint-emphasis-marker: 3.1.2
1258 | remark-lint-fenced-code-marker: 3.1.2
1259 | remark-lint-heading-style: 3.1.2
1260 | remark-lint-link-title-style: 3.1.2
1261 | remark-lint-list-item-content-indent: 3.1.2
1262 | remark-lint-ordered-list-marker-style: 3.1.2
1263 | remark-lint-rule-style: 3.1.2
1264 | remark-lint-strong-marker: 3.1.2
1265 | remark-lint-table-cell-padding: 4.1.3
1266 | unified: 10.1.2
1267 | transitivePeerDependencies:
1268 | - supports-color
1269 | dev: true
1270 |
1271 | /remark-preset-lint-recommended@6.1.2:
1272 | resolution: {integrity: sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==}
1273 | dependencies:
1274 | '@types/mdast': 3.0.12
1275 | remark-lint: 9.1.2
1276 | remark-lint-final-newline: 2.1.2
1277 | remark-lint-hard-break-spaces: 3.1.2
1278 | remark-lint-list-item-bullet-indent: 4.1.2
1279 | remark-lint-list-item-indent: 3.1.1
1280 | remark-lint-no-blockquote-without-marker: 5.1.2
1281 | remark-lint-no-duplicate-definitions: 3.1.2
1282 | remark-lint-no-heading-content-indent: 4.1.2
1283 | remark-lint-no-inline-padding: 4.1.2
1284 | remark-lint-no-literal-urls: 3.1.2
1285 | remark-lint-no-shortcut-reference-image: 3.1.2
1286 | remark-lint-no-shortcut-reference-link: 3.1.2
1287 | remark-lint-no-undefined-references: 4.2.1
1288 | remark-lint-no-unused-definitions: 3.1.2
1289 | remark-lint-ordered-list-marker-style: 3.1.2
1290 | unified: 10.1.2
1291 | transitivePeerDependencies:
1292 | - supports-color
1293 | dev: true
1294 |
1295 | /remark-stringify@10.0.3:
1296 | resolution: {integrity: sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==}
1297 | dependencies:
1298 | '@types/mdast': 3.0.12
1299 | mdast-util-to-markdown: 1.5.0
1300 | unified: 10.1.2
1301 | dev: true
1302 |
1303 | /remark@14.0.3:
1304 | resolution: {integrity: sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==}
1305 | dependencies:
1306 | '@types/mdast': 3.0.12
1307 | remark-parse: 10.0.2
1308 | remark-stringify: 10.0.3
1309 | unified: 10.1.2
1310 | transitivePeerDependencies:
1311 | - supports-color
1312 | dev: true
1313 |
1314 | /sade@1.8.1:
1315 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
1316 | engines: {node: '>=6'}
1317 | dependencies:
1318 | mri: 1.2.0
1319 | dev: true
1320 |
1321 | /safe-buffer@5.2.1:
1322 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
1323 | dev: true
1324 |
1325 | /semver@7.5.4:
1326 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
1327 | engines: {node: '>=10'}
1328 | hasBin: true
1329 | dependencies:
1330 | lru-cache: 6.0.0
1331 | dev: true
1332 |
1333 | /shebang-command@2.0.0:
1334 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1335 | engines: {node: '>=8'}
1336 | dependencies:
1337 | shebang-regex: 3.0.0
1338 | dev: true
1339 |
1340 | /shebang-regex@3.0.0:
1341 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1342 | engines: {node: '>=8'}
1343 | dev: true
1344 |
1345 | /signal-exit@4.0.2:
1346 | resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==}
1347 | engines: {node: '>=14'}
1348 | dev: true
1349 |
1350 | /string-width@4.2.3:
1351 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1352 | engines: {node: '>=8'}
1353 | dependencies:
1354 | emoji-regex: 8.0.0
1355 | is-fullwidth-code-point: 3.0.0
1356 | strip-ansi: 6.0.1
1357 | dev: true
1358 |
1359 | /string-width@5.1.2:
1360 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1361 | engines: {node: '>=12'}
1362 | dependencies:
1363 | eastasianwidth: 0.2.0
1364 | emoji-regex: 9.2.2
1365 | strip-ansi: 7.1.0
1366 | dev: true
1367 |
1368 | /string_decoder@1.3.0:
1369 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
1370 | dependencies:
1371 | safe-buffer: 5.2.1
1372 | dev: true
1373 |
1374 | /strip-ansi@6.0.1:
1375 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1376 | engines: {node: '>=8'}
1377 | dependencies:
1378 | ansi-regex: 5.0.1
1379 | dev: true
1380 |
1381 | /strip-ansi@7.1.0:
1382 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1383 | engines: {node: '>=12'}
1384 | dependencies:
1385 | ansi-regex: 6.0.1
1386 | dev: true
1387 |
1388 | /supports-color@5.5.0:
1389 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1390 | engines: {node: '>=4'}
1391 | dependencies:
1392 | has-flag: 3.0.0
1393 | dev: true
1394 |
1395 | /supports-color@9.4.0:
1396 | resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==}
1397 | engines: {node: '>=12'}
1398 | dev: true
1399 |
1400 | /text-table@0.2.0:
1401 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1402 | dev: true
1403 |
1404 | /to-regex-range@5.0.1:
1405 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1406 | engines: {node: '>=8.0'}
1407 | dependencies:
1408 | is-number: 7.0.0
1409 | dev: true
1410 |
1411 | /to-vfile@7.2.4:
1412 | resolution: {integrity: sha512-2eQ+rJ2qGbyw3senPI0qjuM7aut8IYXK6AEoOWb+fJx/mQYzviTckm1wDjq91QYHAPBTYzmdJXxMFA6Mk14mdw==}
1413 | dependencies:
1414 | is-buffer: 2.0.5
1415 | vfile: 5.3.7
1416 | dev: true
1417 |
1418 | /trough@2.1.0:
1419 | resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
1420 | dev: true
1421 |
1422 | /typedarray@0.0.6:
1423 | resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
1424 | dev: true
1425 |
1426 | /unified-args@10.0.0:
1427 | resolution: {integrity: sha512-PqsqxwkXpGSLiMkbjNnKU33Ffm6gso6rAvz1TlBGzMBx3gpx7ewIhViBX8HEWmy0v7pebA5PM6RkRWWaYmtfYw==}
1428 | dependencies:
1429 | '@types/text-table': 0.2.2
1430 | camelcase: 7.0.1
1431 | chalk: 5.3.0
1432 | chokidar: 3.5.3
1433 | fault: 2.0.1
1434 | json5: 2.2.3
1435 | minimist: 1.2.8
1436 | text-table: 0.2.0
1437 | unified-engine: 10.1.0
1438 | transitivePeerDependencies:
1439 | - supports-color
1440 | dev: true
1441 |
1442 | /unified-engine@10.1.0:
1443 | resolution: {integrity: sha512-5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ==}
1444 | dependencies:
1445 | '@types/concat-stream': 2.0.0
1446 | '@types/debug': 4.1.8
1447 | '@types/is-empty': 1.2.1
1448 | '@types/node': 18.17.1
1449 | '@types/unist': 2.0.7
1450 | concat-stream: 2.0.0
1451 | debug: 4.3.4
1452 | fault: 2.0.1
1453 | glob: 8.1.0
1454 | ignore: 5.2.4
1455 | is-buffer: 2.0.5
1456 | is-empty: 1.2.0
1457 | is-plain-obj: 4.1.0
1458 | load-plugin: 5.1.0
1459 | parse-json: 6.0.2
1460 | to-vfile: 7.2.4
1461 | trough: 2.1.0
1462 | unist-util-inspect: 7.0.2
1463 | vfile-message: 3.1.4
1464 | vfile-reporter: 7.0.5
1465 | vfile-statistics: 2.0.1
1466 | yaml: 2.3.1
1467 | transitivePeerDependencies:
1468 | - supports-color
1469 | dev: true
1470 |
1471 | /unified-lint-rule@2.1.2:
1472 | resolution: {integrity: sha512-JWudPtRN7TLFHVLEVZ+Rm8FUb6kCAtHxEXFgBGDxRSdNMnGyTU5zyYvduHSF/liExlFB3vdFvsAHnNVE/UjAwA==}
1473 | dependencies:
1474 | '@types/unist': 2.0.7
1475 | trough: 2.1.0
1476 | unified: 10.1.2
1477 | vfile: 5.3.7
1478 | dev: true
1479 |
1480 | /unified-message-control@4.0.0:
1481 | resolution: {integrity: sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==}
1482 | dependencies:
1483 | '@types/unist': 2.0.7
1484 | unist-util-is: 5.2.1
1485 | unist-util-visit: 3.1.0
1486 | vfile: 5.3.7
1487 | vfile-location: 4.1.0
1488 | vfile-message: 3.1.4
1489 | dev: true
1490 |
1491 | /unified@10.1.2:
1492 | resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
1493 | dependencies:
1494 | '@types/unist': 2.0.7
1495 | bail: 2.0.2
1496 | extend: 3.0.2
1497 | is-buffer: 2.0.5
1498 | is-plain-obj: 4.1.0
1499 | trough: 2.1.0
1500 | vfile: 5.3.7
1501 | dev: true
1502 |
1503 | /unist-util-generated@2.0.1:
1504 | resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==}
1505 | dev: true
1506 |
1507 | /unist-util-inspect@7.0.2:
1508 | resolution: {integrity: sha512-Op0XnmHUl6C2zo/yJCwhXQSm/SmW22eDZdWP2qdf4WpGrgO1ZxFodq+5zFyeRGasFjJotAnLgfuD1jkcKqiH1Q==}
1509 | dependencies:
1510 | '@types/unist': 2.0.7
1511 | dev: true
1512 |
1513 | /unist-util-is@5.2.1:
1514 | resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
1515 | dependencies:
1516 | '@types/unist': 2.0.7
1517 | dev: true
1518 |
1519 | /unist-util-position@4.0.4:
1520 | resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==}
1521 | dependencies:
1522 | '@types/unist': 2.0.7
1523 | dev: true
1524 |
1525 | /unist-util-stringify-position@3.0.3:
1526 | resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
1527 | dependencies:
1528 | '@types/unist': 2.0.7
1529 | dev: true
1530 |
1531 | /unist-util-visit-parents@4.1.1:
1532 | resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==}
1533 | dependencies:
1534 | '@types/unist': 2.0.7
1535 | unist-util-is: 5.2.1
1536 | dev: true
1537 |
1538 | /unist-util-visit-parents@5.1.3:
1539 | resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
1540 | dependencies:
1541 | '@types/unist': 2.0.7
1542 | unist-util-is: 5.2.1
1543 | dev: true
1544 |
1545 | /unist-util-visit@3.1.0:
1546 | resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==}
1547 | dependencies:
1548 | '@types/unist': 2.0.7
1549 | unist-util-is: 5.2.1
1550 | unist-util-visit-parents: 4.1.1
1551 | dev: true
1552 |
1553 | /unist-util-visit@4.1.2:
1554 | resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
1555 | dependencies:
1556 | '@types/unist': 2.0.7
1557 | unist-util-is: 5.2.1
1558 | unist-util-visit-parents: 5.1.3
1559 | dev: true
1560 |
1561 | /util-deprecate@1.0.2:
1562 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1563 | dev: true
1564 |
1565 | /uvu@0.5.6:
1566 | resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
1567 | engines: {node: '>=8'}
1568 | hasBin: true
1569 | dependencies:
1570 | dequal: 2.0.3
1571 | diff: 5.1.0
1572 | kleur: 4.1.5
1573 | sade: 1.8.1
1574 | dev: true
1575 |
1576 | /vfile-location@4.1.0:
1577 | resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==}
1578 | dependencies:
1579 | '@types/unist': 2.0.7
1580 | vfile: 5.3.7
1581 | dev: true
1582 |
1583 | /vfile-message@3.1.4:
1584 | resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==}
1585 | dependencies:
1586 | '@types/unist': 2.0.7
1587 | unist-util-stringify-position: 3.0.3
1588 | dev: true
1589 |
1590 | /vfile-reporter@7.0.5:
1591 | resolution: {integrity: sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==}
1592 | dependencies:
1593 | '@types/supports-color': 8.1.1
1594 | string-width: 5.1.2
1595 | supports-color: 9.4.0
1596 | unist-util-stringify-position: 3.0.3
1597 | vfile: 5.3.7
1598 | vfile-message: 3.1.4
1599 | vfile-sort: 3.0.1
1600 | vfile-statistics: 2.0.1
1601 | dev: true
1602 |
1603 | /vfile-sort@3.0.1:
1604 | resolution: {integrity: sha512-1os1733XY6y0D5x0ugqSeaVJm9lYgj0j5qdcZQFyxlZOSy1jYarL77lLyb5gK4Wqr1d5OxmuyflSO3zKyFnTFw==}
1605 | dependencies:
1606 | vfile: 5.3.7
1607 | vfile-message: 3.1.4
1608 | dev: true
1609 |
1610 | /vfile-statistics@2.0.1:
1611 | resolution: {integrity: sha512-W6dkECZmP32EG/l+dp2jCLdYzmnDBIw6jwiLZSER81oR5AHRcVqL+k3Z+pfH1R73le6ayDkJRMk0sutj1bMVeg==}
1612 | dependencies:
1613 | vfile: 5.3.7
1614 | vfile-message: 3.1.4
1615 | dev: true
1616 |
1617 | /vfile@5.3.7:
1618 | resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
1619 | dependencies:
1620 | '@types/unist': 2.0.7
1621 | is-buffer: 2.0.5
1622 | unist-util-stringify-position: 3.0.3
1623 | vfile-message: 3.1.4
1624 | dev: true
1625 |
1626 | /walk-up-path@3.0.1:
1627 | resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==}
1628 | dev: true
1629 |
1630 | /which@2.0.2:
1631 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1632 | engines: {node: '>= 8'}
1633 | hasBin: true
1634 | dependencies:
1635 | isexe: 2.0.0
1636 | dev: true
1637 |
1638 | /wrap-ansi@7.0.0:
1639 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1640 | engines: {node: '>=10'}
1641 | dependencies:
1642 | ansi-styles: 4.3.0
1643 | string-width: 4.2.3
1644 | strip-ansi: 6.0.1
1645 | dev: true
1646 |
1647 | /wrap-ansi@8.1.0:
1648 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1649 | engines: {node: '>=12'}
1650 | dependencies:
1651 | ansi-styles: 6.2.1
1652 | string-width: 5.1.2
1653 | strip-ansi: 7.1.0
1654 | dev: true
1655 |
1656 | /wrappy@1.0.2:
1657 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1658 | dev: true
1659 |
1660 | /yallist@4.0.0:
1661 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
1662 | dev: true
1663 |
1664 | /yaml@2.3.1:
1665 | resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==}
1666 | engines: {node: '>= 14'}
1667 | dev: true
1668 |
1669 | /zwitch@2.0.4:
1670 | resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
1671 | dev: true
1672 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": [
4 | "config:base"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------