Browse Source
fix(render): quill html articles bypass marked, fix dark code block, fix image path
fix(render): quill html articles bypass marked, fix dark code block, fix image path
- markdown.ts: renderArticle() with starts-with-< detection, Quill HTML → DOMPurify direct, old Markdown → marked - ArticleDetailView: use useTheme to toggle markdown-body-dark class, renderArticle() replaces renderMarkdown - markdown-override.css (new): dark mode code blocks (#151b23 bg), Quill .ql-code-block-container styling - QuillEditor.vue: normalize image URL (prepend / if no scheme/leading slash)main
4 changed files with 94 additions and 16 deletions
-
77src/assets/markdown-override.css
-
3src/components/QuillEditor.vue
-
5src/utils/markdown.ts
-
25src/views/ArticleDetailView.vue
@ -0,0 +1,77 @@ |
|||||
|
/* Dark mode GitHub markdown - uses palette from github-markdown-dark.css */ |
||||
|
.markdown-body.markdown-body-dark { |
||||
|
color: #f0f6fc; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark a { |
||||
|
color: #58a6ff; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark blockquote { |
||||
|
color: #9198a1; |
||||
|
border-left-color: #3d444d; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark .highlight pre, |
||||
|
.markdown-body.markdown-body-dark pre { |
||||
|
background-color: #151b23; |
||||
|
color: #f0f6fc; |
||||
|
border: 1px solid #3d444d; |
||||
|
border-radius: 6px; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark pre code, |
||||
|
.markdown-body.markdown-body-dark tt { |
||||
|
background-color: transparent; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark code { |
||||
|
background-color: #151b23; |
||||
|
color: #f0f6fc; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark table tr { |
||||
|
background-color: #0d1117; |
||||
|
border-top-color: #3d444d; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark table tr:nth-child(2n) { |
||||
|
background-color: #151b23; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark table th, |
||||
|
.markdown-body.markdown-body-dark table td { |
||||
|
border-color: #3d444d; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark hr { |
||||
|
border-color: #3d444d; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark img { |
||||
|
background-color: transparent; |
||||
|
} |
||||
|
|
||||
|
/* Quill code block styling for article detail */ |
||||
|
.markdown-body .ql-code-block-container { |
||||
|
background-color: #f6f8fa; |
||||
|
border-radius: 6px; |
||||
|
padding: 16px; |
||||
|
margin: 16px 0; |
||||
|
overflow-x: auto; |
||||
|
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; |
||||
|
font-size: 85%; |
||||
|
line-height: 1.6; |
||||
|
border: 1px solid #d0d7de; |
||||
|
} |
||||
|
|
||||
|
.markdown-body .ql-code-block { |
||||
|
white-space: pre-wrap; |
||||
|
word-break: break-word; |
||||
|
} |
||||
|
|
||||
|
.markdown-body.markdown-body-dark .ql-code-block-container { |
||||
|
background-color: #151b23; |
||||
|
border-color: #3d444d; |
||||
|
color: #f0f6fc; |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue