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