@nywqs/vue-markdown-editor 0.1.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -192,8 +192,6 @@ const handlePreviewScroll = (percentage) => {
192
192
  </template>
193
193
  ```
194
194
 
195
- > **注意**:`MarkdownPreviewPanel` 同时支持 `content` 和 `modelValue` 属性,推荐使用 `content`。
196
-
197
195
  ---
198
196
 
199
197
  ## 🔌 插件系统
@@ -206,23 +204,14 @@ const handlePreviewScroll = (percentage) => {
206
204
  - **MermaidPlugin**:流程图支持(Ctrl+Shift+D)
207
205
  - **AutoCompletePlugin**:自动补全
208
206
  - **SyntaxCheckerPlugin**:语法检查
209
- - **PromptTemplatePlugin**:Prompt模板系统,支持模板化提示词创建、复用和团队协作(Ctrl+Alt+T)
210
207
 
211
208
  插件会自动激活,无需额外配置。
212
209
 
213
210
  ---
214
211
 
215
- ## 📦 架构设计
216
-
217
- ### 核心模块
212
+ ## ⚙️ 性能优化
218
213
 
219
- - **Document** - 文档模型,管理文本内容和编辑操作
220
- - **ViewportManager** - 视口管理,处理滚动和坐标转换
221
- - **MarkdownLexer** - 词法分析器,解析Markdown语法
222
- - **DOMTextRenderer** - DOM渲染器,清晰的文本显示
223
- - **TextRenderer** - Canvas渲染器,高性能装饰渲染
224
-
225
- ### 性能优化策略
214
+ 编辑器采用了多项性能优化技术:
226
215
 
227
216
  1. **视口裁剪**:只渲染可见区域,大文件性能提升 10-40 倍
228
217
  2. **虚拟滚动**:缓冲区机制,避免滚动闪烁
@@ -234,74 +223,26 @@ const handlePreviewScroll = (percentage) => {
234
223
 
235
224
  ---
236
225
 
237
- ## 🤝 贡献指南
238
-
239
- 欢迎贡献代码!请查看 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解详细的贡献流程。
240
-
241
- ### 快速开始
242
-
243
- 1. Fork 本仓库
244
- 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
245
- 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
246
- 4. 推送到分支 (`git push origin feature/AmazingFeature`)
247
- 5. 开启 Pull Request
248
-
249
- ---
250
-
251
- ## 📝 变更日志
252
-
253
- 查看 [CHANGELOG.md](./CHANGELOG.md) 了解版本更新历史。
254
-
255
- ---
256
-
257
226
  ## 🛠️ 开发与构建
258
227
 
259
228
  本仓库使用 Vite + Vue 3 进行开发和构建。
260
229
 
261
- ### 本地开发
230
+ 本地开发:
262
231
 
263
232
  ```bash
264
- # 安装依赖
265
233
  npm install
266
-
267
- # 启动开发服务器
268
234
  npm run dev
269
235
  ```
270
236
 
271
- ### 运行测试
272
-
273
- ```bash
274
- # 运行单元测试
275
- npm run test
276
-
277
- # 运行测试并生成覆盖率报告
278
- npm run test:coverage
279
-
280
- # 运行测试 UI
281
- npm run test:ui
282
- ```
283
-
284
- 测试覆盖率:
285
- - Document.js: 97.89% 语句覆盖率
286
- - ViewportManager.js: 100% 语句覆盖率
287
- - MarkdownLexer.js: 90.06% 语句覆盖率
288
-
289
- ### 性能测试
237
+ 构建库:
290
238
 
291
239
  ```bash
292
- # 启动开发服务器后访问
293
- http://localhost:5173/tests/performance/benchmark.html
240
+ npm run build:lib
294
241
  ```
295
242
 
296
- 支持测试文档规模:100/1000/5000/10000行
297
-
298
- ### 构建
243
+ 类型检查:
299
244
 
300
245
  ```bash
301
- # 构建库文件
302
- npm run build:lib
303
-
304
- # 类型检查
305
246
  npm run typecheck
306
247
  ```
307
248
 
@@ -1,19 +1,19 @@
1
- .canvas-toolbar[data-v-06d62bc8]{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#f5f5f5;border-bottom:1px solid #ddd;flex-wrap:wrap}.toolbar-btn[data-v-06d62bc8]{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:16px;color:#666;transition:all .2s;white-space:nowrap}.toolbar-btn .icon[data-v-06d62bc8]{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.toolbar-btn>span[data-v-06d62bc8]{font-size:14px;line-height:18px;display:inline-flex;align-items:center;justify-content:center}.toolbar-btn[data-v-06d62bc8]:hover{background:#e9e9e9;border-color:#999;color:#333;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.toolbar-btn[data-v-06d62bc8]:active{transform:translateY(0);box-shadow:none}.toolbar-btn.divider[data-v-06d62bc8]{width:1px;min-width:1px;height:20px;padding:0;margin:0 4px;background:#ddd;border:none;cursor:default}.toolbar-btn.divider[data-v-06d62bc8]:hover{background:#ddd;transform:none;box-shadow:none}.search-panel[data-v-57dc7601]{position:absolute;top:8px;right:8px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:16px;z-index:1000;min-width:420px}.search-row[data-v-57dc7601],.replace-row[data-v-57dc7601]{display:flex;gap:8px;align-items:center;margin-bottom:10px}.search-input[data-v-57dc7601]{flex:1;padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:13px;outline:none;transition:all .2s}.search-input[data-v-57dc7601]:focus{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a}.search-count[data-v-57dc7601]{font-size:12px;color:#666;background:#f5f5f5;padding:4px 8px;border-radius:4px;min-width:45px;text-align:center;font-weight:500}.search-btn[data-v-57dc7601],.action-btn[data-v-57dc7601]{padding:8px 12px;border:1px solid #d0d0d0;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s;color:#555}.search-btn[data-v-57dc7601]:hover,.action-btn[data-v-57dc7601]:hover{background:#f8f8f8;border-color:#4a90e2;color:#4a90e2}.search-btn[data-v-57dc7601]:active,.action-btn[data-v-57dc7601]:active{background:#e8e8e8}.close-btn[data-v-57dc7601]{font-weight:700;color:#999}.close-btn[data-v-57dc7601]:hover{color:#f44;border-color:#f44;background:#fff5f5}.action-btn[data-v-57dc7601]{padding:8px 16px;background:#4a90e2;color:#fff;border-color:#4a90e2;font-weight:500}.action-btn[data-v-57dc7601]:hover{background:#357abd;border-color:#357abd;color:#fff}.search-options[data-v-57dc7601]{display:flex;gap:20px;padding-top:12px;border-top:1px solid #f0f0f0}.search-options label[data-v-57dc7601]{display:flex;align-items:center;gap:6px;font-size:12px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.search-options label[data-v-57dc7601]:hover{color:#4a90e2}.search-options input[type=checkbox][data-v-57dc7601]{cursor:pointer;width:14px;height:14px}.template-library-panel[data-v-67bcfd56]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-67bcfd56 .2s}@keyframes fadeIn-67bcfd56{0%{opacity:0}to{opacity:1}}.panel-content[data-v-67bcfd56]{background:#fff;border-radius:8px;width:90%;max-width:900px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d;animation:slideUp-67bcfd56 .3s}@keyframes slideUp-67bcfd56{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.panel-header[data-v-67bcfd56]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.panel-header h2[data-v-67bcfd56]{margin:0;font-size:20px;color:#333}.close-btn[data-v-67bcfd56]{background:none;border:none;font-size:24px;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn[data-v-67bcfd56]:hover{background:#f0f0f0}.panel-toolbar[data-v-67bcfd56]{display:flex;gap:12px;padding:16px 24px;border-bottom:1px solid #e0e0e0}.search-input[data-v-67bcfd56]{flex:1;padding:8px 12px;border:1px solid #d0d0d0;border-radius:4px;font-size:14px}.category-select[data-v-67bcfd56],.sort-select[data-v-67bcfd56]{padding:8px 12px;border:1px solid #d0d0d0;border-radius:4px;font-size:14px;background:#fff;cursor:pointer}.template-list[data-v-67bcfd56]{flex:1;overflow-y:auto;padding:16px 24px}.template-item[data-v-67bcfd56]{border:1px solid #e0e0e0;border-radius:6px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .2s}.template-item[data-v-67bcfd56]:hover{border-color:#1890ff;box-shadow:0 2px 8px #1890ff33}.template-header[data-v-67bcfd56]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.template-header h3[data-v-67bcfd56]{margin:0;font-size:16px;color:#333}.template-actions[data-v-67bcfd56]{display:flex;gap:8px}.action-btn[data-v-67bcfd56]{padding:4px 12px;border:1px solid #d0d0d0;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;transition:all .2s}.action-btn[data-v-67bcfd56]:hover{background:#f0f0f0;border-color:#1890ff}.delete-btn[data-v-67bcfd56]:hover{background:#fff1f0;border-color:#ff4d4f;color:#ff4d4f}.template-description[data-v-67bcfd56]{color:#666;font-size:14px;margin:8px 0;line-height:1.5}.template-meta[data-v-67bcfd56]{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#999}.meta-item[data-v-67bcfd56]{display:flex;align-items:center;gap:4px}.empty-state[data-v-67bcfd56]{text-align:center;padding:60px 20px;color:#999}.empty-state p[data-v-67bcfd56]{font-size:16px;margin-bottom:20px}.create-btn[data-v-67bcfd56]{padding:10px 24px;background:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.create-btn[data-v-67bcfd56]:hover{background:#40a9ff}.panel-footer[data-v-67bcfd56]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid #e0e0e0}.footer-btn[data-v-67bcfd56]{padding:8px 16px;border:1px solid #d0d0d0;border-radius:4px;background:#fff;cursor:pointer;font-size:14px;transition:all .2s}.footer-btn[data-v-67bcfd56]:hover{background:#f0f0f0;border-color:#1890ff}.template-count[data-v-67bcfd56]{color:#666;font-size:14px}.template-list[data-v-67bcfd56]::-webkit-scrollbar{width:8px}.template-list[data-v-67bcfd56]::-webkit-scrollbar-track{background:#f1f1f1}.template-list[data-v-67bcfd56]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.template-list[data-v-67bcfd56]::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.canvas-editor-container[data-v-ebfb2298]{width:100%;height:100%;display:flex;flex-direction:column}.canvas-editor[data-v-ebfb2298]{flex:1;width:100%;overflow:hidden;position:relative}canvas[data-v-ebfb2298]{display:block;cursor:text;position:absolute;left:0;top:0;z-index:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smooth:always;text-rendering:optimizeLegibility}/*!
2
- Theme: GitHub
3
- Description: Light theme as seen on github.com
1
+ .canvas-toolbar[data-v-00f9230a]{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#f5f5f5;border-bottom:1px solid #ddd;flex-wrap:wrap}.toolbar-btn[data-v-00f9230a]{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:16px;color:#666;transition:all .2s;white-space:nowrap}.toolbar-btn .icon[data-v-00f9230a]{width:18px;height:18px;display:flex;align-items:center;justify-content:center}.toolbar-btn .icon-text[data-v-00f9230a]{font-size:12px;font-weight:700}.toolbar-btn[data-v-00f9230a]:hover{background:#e9e9e9;border-color:#999;color:#333;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.toolbar-btn[data-v-00f9230a]:active{transform:translateY(0);box-shadow:none}.toolbar-btn.divider[data-v-00f9230a]{width:1px;min-width:1px;height:20px;padding:0;margin:0 4px;background:#ddd;border:none;cursor:default}.toolbar-btn.divider[data-v-00f9230a]:hover{background:#ddd;transform:none;box-shadow:none}.search-panel[data-v-fb8eb5e2]{position:absolute;top:8px;right:8px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:16px;z-index:1000;min-width:420px}.search-row[data-v-fb8eb5e2],.replace-row[data-v-fb8eb5e2]{display:flex;gap:8px;align-items:center;margin-bottom:10px}.search-input[data-v-fb8eb5e2]{flex:1;padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:13px;outline:none;transition:all .2s}.search-input[data-v-fb8eb5e2]:focus{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a}.search-count[data-v-fb8eb5e2]{font-size:12px;color:#666;background:#f5f5f5;padding:4px 8px;border-radius:4px;min-width:45px;text-align:center;font-weight:500}.search-btn[data-v-fb8eb5e2],.action-btn[data-v-fb8eb5e2]{padding:8px 12px;border:1px solid #d0d0d0;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s;color:#555}.search-btn[data-v-fb8eb5e2]:hover,.action-btn[data-v-fb8eb5e2]:hover{background:#f8f8f8;border-color:#4a90e2;color:#4a90e2}.search-btn[data-v-fb8eb5e2]:active,.action-btn[data-v-fb8eb5e2]:active{background:#e8e8e8}.close-btn[data-v-fb8eb5e2]{font-weight:700;color:#999}.close-btn[data-v-fb8eb5e2]:hover{color:#f44;border-color:#f44;background:#fff5f5}.action-btn[data-v-fb8eb5e2]{padding:8px 16px;background:#4a90e2;color:#fff;border-color:#4a90e2;font-weight:500}.action-btn[data-v-fb8eb5e2]:hover{background:#357abd;border-color:#357abd;color:#fff}.search-options[data-v-fb8eb5e2]{display:flex;gap:20px;padding-top:12px;border-top:1px solid #f0f0f0}.search-options label[data-v-fb8eb5e2]{display:flex;align-items:center;gap:6px;font-size:12px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.search-options label[data-v-fb8eb5e2]:hover{color:#4a90e2}.search-options input[type=checkbox][data-v-fb8eb5e2]{cursor:pointer;width:14px;height:14px}.canvas-editor-container[data-v-1f42f28b]{width:100%;height:100%;display:flex;flex-direction:column}.canvas-editor[data-v-1f42f28b]{flex:1;width:100%;overflow:hidden;position:relative}canvas[data-v-1f42f28b]{display:block;cursor:text;position:absolute;left:0;top:0;z-index:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smooth:always;text-rendering:optimizeLegibility}.preview-panel[data-v-b66d6e11]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;background:#fff;transition:background-color .3s}.preview-panel[data-v-b66d6e11]::-webkit-scrollbar{width:8px}.preview-panel[data-v-b66d6e11]::-webkit-scrollbar-track{background:#f1f1f1}.preview-panel[data-v-b66d6e11]::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.preview-panel[data-v-b66d6e11]::-webkit-scrollbar-thumb:hover{background:#555}.preview-content[data-v-b66d6e11]{padding:20px;max-width:900px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;color:#333}.preview-panel[data-theme=dark][data-v-b66d6e11]{background:#1e1e1e}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11]{color:#ccc}.preview-content[data-v-b66d6e11] h1,.preview-content[data-v-b66d6e11] h2,.preview-content[data-v-b66d6e11] h3,.preview-content[data-v-b66d6e11] h4,.preview-content[data-v-b66d6e11] h5,.preview-content[data-v-b66d6e11] h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.preview-content[data-v-b66d6e11] h1{font-size:2em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.preview-content[data-v-b66d6e11] h2{font-size:1.5em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.preview-content[data-v-b66d6e11] h3{font-size:1.25em}.preview-content[data-v-b66d6e11] h4{font-size:1em}.preview-content[data-v-b66d6e11] h5{font-size:.875em}.preview-content[data-v-b66d6e11] h6{font-size:.85em;color:#6a737d}.preview-content[data-v-b66d6e11] p{margin-top:0;margin-bottom:16px}.preview-content[data-v-b66d6e11] a{color:#0366d6;text-decoration:none}.preview-content[data-v-b66d6e11] a:hover{text-decoration:underline}.preview-content[data-v-b66d6e11] strong{font-weight:600}.preview-content[data-v-b66d6e11] em{font-style:italic}.preview-content[data-v-b66d6e11] code{padding:.2em .4em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.preview-content[data-v-b66d6e11] pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:6px;margin-bottom:16px}.preview-content[data-v-b66d6e11] pre code{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.preview-content[data-v-b66d6e11] blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0 0 16px}.preview-content[data-v-b66d6e11] ul,.preview-content[data-v-b66d6e11] ol{padding-left:2em;margin-top:0;margin-bottom:16px}.preview-content[data-v-b66d6e11] li{margin-bottom:.25em}.preview-content[data-v-b66d6e11] li>p{margin-bottom:0}.preview-content[data-v-b66d6e11] img{max-width:100%;box-sizing:content-box;background-color:#fff}.preview-content[data-v-b66d6e11] hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.preview-content[data-v-b66d6e11] table{border-spacing:0;border-collapse:collapse;display:block;width:100%;overflow:auto;margin-bottom:16px}.preview-content[data-v-b66d6e11] table th{font-weight:600;padding:6px 13px;border:1px solid #dfe2e5;background-color:#f6f8fa}.preview-content[data-v-b66d6e11] table td{padding:6px 13px;border:1px solid #dfe2e5}.preview-content[data-v-b66d6e11] table tr{background-color:#fff;border-top:1px solid #c6cbd1}.preview-content[data-v-b66d6e11] table tr:nth-child(2n){background-color:#f6f8fa}.preview-content[data-v-b66d6e11] input[type=checkbox]{margin-right:.5em}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] code{background-color:#6e768166}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] pre{background-color:#2d2d2d}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] table th{background-color:#2d2d2d;border-color:#444}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] table td{border-color:#444}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] table tr{background-color:#1e1e1e;border-color:#444}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] table tr:nth-child(2n){background-color:#252525}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] blockquote{color:#8b949e;border-left-color:#3b3b3b}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] hr{background-color:#3b3b3b}.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] h1,.preview-panel[data-theme=dark] .preview-content[data-v-b66d6e11] h2{border-bottom-color:#3b3b3b}.editor-config[data-v-c86daa5e]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;max-height:80vh;background:#fff;border-radius:8px;box-shadow:0 4px 24px #0003;overflow:hidden;z-index:1000}.config-header[data-v-c86daa5e]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e5e5;background:#f9f9f9}.config-header h3[data-v-c86daa5e]{margin:0;font-size:18px;font-weight:600}.close-btn[data-v-c86daa5e]{width:32px;height:32px;border:none;background:transparent;font-size:24px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn[data-v-c86daa5e]:hover{background:#e5e5e5;color:#333}.config-body[data-v-c86daa5e]{padding:20px;max-height:calc(80vh - 140px);overflow-y:auto}.config-section[data-v-c86daa5e]{margin-bottom:24px}.config-section h4[data-v-c86daa5e]{margin:0 0 12px;font-size:16px;font-weight:600;color:#333}.hint[data-v-c86daa5e]{margin:0 0 12px;font-size:13px;color:#999}.config-item[data-v-c86daa5e]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.config-item label[data-v-c86daa5e]{min-width:80px;font-size:14px;color:#666}.config-item select[data-v-c86daa5e],.config-item input[type=number][data-v-c86daa5e]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;flex:1}.config-item input[type=checkbox][data-v-c86daa5e]{margin:0;cursor:pointer}.unit[data-v-c86daa5e]{font-size:12px;color:#999}.color-grid[data-v-c86daa5e]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.color-item[data-v-c86daa5e]{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid #e5e5e5;border-radius:4px;background:#fafafa}.color-item label[data-v-c86daa5e]{flex:1;font-size:13px;color:#666}.color-item input[type=color][data-v-c86daa5e]{width:36px;height:36px;border:none;border-radius:4px;cursor:pointer}.color-value[data-v-c86daa5e]{font-size:12px;color:#999;font-family:monospace}.config-footer[data-v-c86daa5e]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #e5e5e5;background:#f9f9f9}.btn[data-v-c86daa5e]{padding:8px 16px;border:1px solid #ddd;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary[data-v-c86daa5e]{background:#fff;color:#666}.btn-secondary[data-v-c86daa5e]:hover{background:#f5f5f5}.btn-primary[data-v-c86daa5e]{background:#4a90e2;color:#fff;border-color:#4a90e2}.btn-primary[data-v-c86daa5e]:hover{background:#357abd}/*!
2
+ Theme: GitHub Dark
3
+ Description: Dark theme as seen on github.com
4
4
  Author: github.com
5
5
  Maintainer: @Hirse
6
6
  Updated: 2021-05-15
7
7
 
8
- Outdated base version: https://github.com/primer/github-syntax-light
8
+ Outdated base version: https://github.com/primer/github-syntax-dark
9
9
  Current colors taken from GitHub's CSS
10
- */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.preview-panel[data-v-fd42aef8]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;background:#fff;transition:background-color .3s}.preview-panel[data-v-fd42aef8]::-webkit-scrollbar{width:8px}.preview-panel[data-v-fd42aef8]::-webkit-scrollbar-track{background:#f1f1f1}.preview-panel[data-v-fd42aef8]::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.preview-panel[data-v-fd42aef8]::-webkit-scrollbar-thumb:hover{background:#555}.preview-content[data-v-fd42aef8]{padding:20px;max-width:900px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;color:#333}.preview-panel[data-theme=dark][data-v-fd42aef8]{background:#1e1e1e}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8]{color:#ccc}.preview-content[data-v-fd42aef8] h1,.preview-content[data-v-fd42aef8] h2,.preview-content[data-v-fd42aef8] h3,.preview-content[data-v-fd42aef8] h4,.preview-content[data-v-fd42aef8] h5,.preview-content[data-v-fd42aef8] h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.preview-content[data-v-fd42aef8] h1{font-size:2em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.preview-content[data-v-fd42aef8] h2{font-size:1.5em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.preview-content[data-v-fd42aef8] h3{font-size:1.25em}.preview-content[data-v-fd42aef8] h4{font-size:1em}.preview-content[data-v-fd42aef8] h5{font-size:.875em}.preview-content[data-v-fd42aef8] h6{font-size:.85em;color:#6a737d}.preview-content[data-v-fd42aef8] p{margin-top:0;margin-bottom:16px}.preview-content[data-v-fd42aef8] a{color:#0366d6;text-decoration:none}.preview-content[data-v-fd42aef8] a:hover{text-decoration:underline}.preview-content[data-v-fd42aef8] strong{font-weight:600}.preview-content[data-v-fd42aef8] em{font-style:italic}.preview-content[data-v-fd42aef8] code{padding:.2em .4em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.preview-content[data-v-fd42aef8] pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:6px;margin-bottom:16px}.preview-content[data-v-fd42aef8] pre code{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.preview-content[data-v-fd42aef8] blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0 0 16px}.preview-content[data-v-fd42aef8] ul,.preview-content[data-v-fd42aef8] ol{padding-left:2em;margin-top:0;margin-bottom:16px}.preview-content[data-v-fd42aef8] li{margin-bottom:.25em}.preview-content[data-v-fd42aef8] li>p{margin-bottom:0}.preview-content[data-v-fd42aef8] img{max-width:100%;box-sizing:content-box;background-color:#fff}.preview-content[data-v-fd42aef8] hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.preview-content[data-v-fd42aef8] table{border-spacing:0;border-collapse:collapse;display:block;width:100%;overflow:auto;margin-bottom:16px}.preview-content[data-v-fd42aef8] table th{font-weight:600;padding:6px 13px;border:1px solid #dfe2e5;background-color:#f6f8fa}.preview-content[data-v-fd42aef8] table td{padding:6px 13px;border:1px solid #dfe2e5}.preview-content[data-v-fd42aef8] table tr{background-color:#fff;border-top:1px solid #c6cbd1}.preview-content[data-v-fd42aef8] table tr:nth-child(2n){background-color:#f6f8fa}.preview-content[data-v-fd42aef8] input[type=checkbox]{margin-right:.5em}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] code{background-color:#6e768166}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] pre{background-color:#2d2d2d}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] table th{background-color:#2d2d2d;border-color:#444}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] table td{border-color:#444}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] table tr{background-color:#1e1e1e;border-color:#444}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] table tr:nth-child(2n){background-color:#252525}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] blockquote{color:#8b949e;border-left-color:#3b3b3b}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] hr{background-color:#3b3b3b}.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] h1,.preview-panel[data-theme=dark] .preview-content[data-v-fd42aef8] h2{border-bottom-color:#3b3b3b}.editor-config[data-v-33327619]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;max-height:80vh;background:#fff;border-radius:8px;box-shadow:0 4px 24px #0003;overflow:hidden;z-index:1000}.config-header[data-v-33327619]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e5e5;background:#f9f9f9}.config-header h3[data-v-33327619]{margin:0;font-size:18px;font-weight:600}.close-btn[data-v-33327619]{width:32px;height:32px;border:none;background:transparent;font-size:24px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn[data-v-33327619]:hover{background:#e5e5e5;color:#333}.config-body[data-v-33327619]{padding:20px;max-height:calc(80vh - 140px);overflow-y:auto}.config-section[data-v-33327619]{margin-bottom:24px}.config-section h4[data-v-33327619]{margin:0 0 12px;font-size:16px;font-weight:600;color:#333}.hint[data-v-33327619]{margin:0 0 12px;font-size:13px;color:#999}.config-item[data-v-33327619]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.config-item label[data-v-33327619]{min-width:80px;font-size:14px;color:#666}.config-item select[data-v-33327619],.config-item input[type=number][data-v-33327619]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;flex:1}.config-item input[type=checkbox][data-v-33327619]{margin:0;cursor:pointer}.unit[data-v-33327619]{font-size:12px;color:#999}.color-grid[data-v-33327619]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.color-item[data-v-33327619]{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid #e5e5e5;border-radius:4px;background:#fafafa}.color-item label[data-v-33327619]{flex:1;font-size:13px;color:#666}.color-item input[type=color][data-v-33327619]{width:36px;height:36px;border:none;border-radius:4px;cursor:pointer}.color-value[data-v-33327619]{font-size:12px;color:#999;font-family:monospace}.config-footer[data-v-33327619]{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid #e5e5e5;background:#f9f9f9}.btn[data-v-33327619]{padding:8px 16px;border:1px solid #ddd;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary[data-v-33327619]{background:#fff;color:#666}.btn-secondary[data-v-33327619]:hover{background:#f5f5f5}.btn-primary[data-v-33327619]{background:#4a90e2;color:#fff;border-color:#4a90e2}.btn-primary[data-v-33327619]:hover{background:#357abd}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
11
- Theme: GitHub Dark
12
- Description: Dark theme as seen on github.com
10
+ */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
11
+ Theme: GitHub
12
+ Description: Light theme as seen on github.com
13
13
  Author: github.com
14
14
  Maintainer: @Hirse
15
15
  Updated: 2021-05-15
16
16
 
17
- Outdated base version: https://github.com/primer/github-syntax-dark
17
+ Outdated base version: https://github.com/primer/github-syntax-light
18
18
  Current colors taken from GitHub's CSS
19
- */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
19
+ */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}