markdown.less 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. // Markdown 解析器主样式
  2. .markdown-viewer {
  3. font-size: 14px;
  4. // 标题样式
  5. .markdown-h1,
  6. .markdown-h2,
  7. .markdown-h3,
  8. .markdown-h4,
  9. .markdown-h5,
  10. .markdown-h6 {
  11. font-weight: 600;
  12. margin: 12px 0;
  13. color: #222;
  14. line-height: 1.4;
  15. }
  16. .markdown-h1 {
  17. font-size: 24px;
  18. border-bottom: 1px solid #eee;
  19. padding-bottom: 12px;
  20. }
  21. .markdown-h2 {
  22. font-size: 20px;
  23. border-bottom: 1px solid #eee;
  24. padding-bottom: 6;
  25. }
  26. .markdown-h3 {
  27. font-size: 18px;
  28. }
  29. .markdown-h4 {
  30. font-size: 16px;
  31. }
  32. .markdown-h5,
  33. .markdown-h6 {
  34. font-size: 12px;
  35. }
  36. // 段落样式
  37. .markdown-paragraph {
  38. margin: 12px 0;
  39. text-align: justify;
  40. }
  41. // 列表样式
  42. .markdown-list {
  43. padding-left: 12px;
  44. .markdown-list-item {
  45. margin: 12px 0;
  46. position: relative;
  47. }
  48. }
  49. .markdown-ul {
  50. .markdown-list-item::before {
  51. content: "•";
  52. position: absolute;
  53. left: -1em;
  54. color: #666;
  55. }
  56. }
  57. .markdown-ol {
  58. counter-reset: ol-counter;
  59. .markdown-list-item::before {
  60. counter-increment: ol-counter;
  61. content: counter(ol-counter) ".";
  62. position: absolute;
  63. left: -1.5em;
  64. color: #666;
  65. font-weight: 500;
  66. }
  67. }
  68. // 引用样式
  69. .markdown-quote {
  70. margin: 1em 0;
  71. padding: 0.8em 1em;
  72. border-left: 3px solid #4285f4;
  73. background-color: #f5f7fa;
  74. color: #555;
  75. border-radius: 0 4px 4px 0;
  76. font-style: italic;
  77. }
  78. // 代码块样式
  79. .markdown-code-block {
  80. margin: 0;
  81. padding: 1em;
  82. background-color: #f5f5f5;
  83. border-radius: 6px;
  84. font-family: "Menlo", "Monaco", "Consolas", monospace;
  85. font-size: 0.9em;
  86. overflow-x: auto;
  87. position: relative;
  88. // 代码语言标签
  89. .markdown-code-lang {
  90. display: block;
  91. margin-bottom: 0.5em;
  92. color: #888;
  93. font-size: 0.8em;
  94. text-transform: uppercase;
  95. letter-spacing: 0.5px;
  96. }
  97. .markdown-code {
  98. white-space: pre;
  99. color: #333;
  100. }
  101. }
  102. // 分隔线样式
  103. .markdown-hr {
  104. margin: 6px 0;
  105. height: 1px;
  106. background-color: #eee;
  107. border: none;
  108. }
  109. // 空行样式
  110. .markdown-br {
  111. height: 4px;
  112. }
  113. // 行内元素样式
  114. rich-text {
  115. strong {
  116. font-weight: 600;
  117. color: #222;
  118. }
  119. em {
  120. font-style: italic;
  121. color: #555;
  122. }
  123. code {
  124. background-color: #f0f0f0;
  125. padding: 0.2em 0.4em;
  126. border-radius: 3px;
  127. font-family: "Menlo", "Monaco", "Consolas", monospace;
  128. font-size: 0.9em;
  129. margin: 0 2px;
  130. }
  131. a {
  132. color: #4285f4;
  133. text-decoration: none;
  134. padding-bottom: 1px;
  135. border-bottom: 1px dotted #4285f4;
  136. transition: all 0.2s;
  137. &:hover {
  138. color: #3367d6;
  139. border-bottom: 1px solid #3367d6;
  140. }
  141. }
  142. img {
  143. max-width: 100%;
  144. height: auto;
  145. border-radius: 4px;
  146. margin: 1em 0;
  147. box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  148. }
  149. }
  150. }
  151. .markdown-list { margin: 8px 0; }
  152. .markdown-ul { list-style-type: disc; padding-left: 20px; }
  153. .markdown-ol { list-style-type: decimal; padding-left: 20px; }
  154. .markdown-list-item { margin: 4px 0; }
  155. .markdown-list {
  156. margin: 2px 0;
  157. padding-left: 12px;
  158. &.depth-0 { padding-left: 12px; padding-bottom: 12px;}
  159. &.depth-1 { padding-left: 24px; }
  160. &.depth-2 { padding-left: 36px; }
  161. &.depth-3 { padding-left: 48px; }
  162. // &.markdown-ul {
  163. // list-style-type: disc;
  164. // &.depth-1 { list-style-type: circle; }
  165. // &.depth-2 { list-style-type: square; }
  166. // }
  167. // &.markdown-ol {
  168. // list-style-type: decimal;
  169. // &.depth-1 { list-style-type: lower-alpha; }
  170. // &.depth-2 { list-style-type: lower-roman; }
  171. // }
  172. }
  173. .markdown-list-item {
  174. margin: 4px 0;
  175. }
  176. // 深色模式适配 (可根据需要启用)
  177. // @media (prefers-color-scheme: dark) {
  178. // .markdown-viewer {
  179. // color: #ddd;
  180. // background-color: #1a1a1a;
  181. //
  182. // .markdown-h1,
  183. // .markdown-h2,
  184. // .markdown-h3,
  185. // .markdown-h4,
  186. // .markdown-h5,
  187. // .markdown-h6 {
  188. // color: #fff;
  189. // border-bottom-color: #333;
  190. // }
  191. //
  192. // .markdown-quote {
  193. // background-color: #2d2d2d;
  194. // color: #bbb;
  195. // border-left-color: #5294e2;
  196. // }
  197. //
  198. // .markdown-code-block {
  199. // background-color: #2d2d2d;
  200. //
  201. // .markdown-code {
  202. // color: #ccc;
  203. // }
  204. // }
  205. //
  206. // .markdown-hr {
  207. // background-color: #333;
  208. // }
  209. //
  210. // rich-text {
  211. // strong {
  212. // color: #fff;
  213. // }
  214. //
  215. // em {
  216. // color: #bbb;
  217. // }
  218. //
  219. // code {
  220. // background-color: #333;
  221. // }
  222. //
  223. // a {
  224. // color: #5294e2;
  225. // border-bottom-color: #5294e2;
  226. //
  227. // &:hover {
  228. // color: #6aa1e8;
  229. // border-bottom-color: #6aa1e8;
  230. // }
  231. // }
  232. // }
  233. // }
  234. // }