@cherry-markdown/cherry-markdown-dev 0.8.58-dev

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.
Files changed (319) hide show
  1. package/package.json +149 -0
  2. package/src/Cherry.config.js +625 -0
  3. package/src/Cherry.js +1104 -0
  4. package/src/CherryStatic.js +70 -0
  5. package/src/Editor.js +748 -0
  6. package/src/Engine.js +381 -0
  7. package/src/Event.js +140 -0
  8. package/src/Factory.js +180 -0
  9. package/src/Logger.js +31 -0
  10. package/src/Previewer.js +1183 -0
  11. package/src/Sanitizer.js +4 -0
  12. package/src/Sanitizer.node.js +7 -0
  13. package/src/UrlCache.js +98 -0
  14. package/src/addons/advance/cherry-table-echarts-plugin.js +170 -0
  15. package/src/addons/cherry-code-block-mermaid-plugin.js +158 -0
  16. package/src/addons/cherry-code-block-plantuml-plugin.js +106 -0
  17. package/src/core/HookCenter.js +297 -0
  18. package/src/core/HooksConfig.js +100 -0
  19. package/src/core/ParagraphBase.js +332 -0
  20. package/src/core/SentenceBase.js +65 -0
  21. package/src/core/SyntaxBase.js +194 -0
  22. package/src/core/hooks/AutoLink.js +232 -0
  23. package/src/core/hooks/BackgroundColor.js +46 -0
  24. package/src/core/hooks/Blockquote.js +70 -0
  25. package/src/core/hooks/Br.js +85 -0
  26. package/src/core/hooks/CodeBlock.js +446 -0
  27. package/src/core/hooks/Color.js +46 -0
  28. package/src/core/hooks/CommentReference.js +96 -0
  29. package/src/core/hooks/Detail.js +108 -0
  30. package/src/core/hooks/Emoji.config.js +1825 -0
  31. package/src/core/hooks/Emoji.js +119 -0
  32. package/src/core/hooks/Emphasis.js +113 -0
  33. package/src/core/hooks/Footnote.js +125 -0
  34. package/src/core/hooks/FrontMatter.js +51 -0
  35. package/src/core/hooks/Header.js +234 -0
  36. package/src/core/hooks/HighLight.js +37 -0
  37. package/src/core/hooks/Hr.js +52 -0
  38. package/src/core/hooks/HtmlBlock.js +184 -0
  39. package/src/core/hooks/Image.js +174 -0
  40. package/src/core/hooks/InlineCode.js +48 -0
  41. package/src/core/hooks/InlineMath.js +107 -0
  42. package/src/core/hooks/Link.js +160 -0
  43. package/src/core/hooks/List.js +264 -0
  44. package/src/core/hooks/MathBlock.js +103 -0
  45. package/src/core/hooks/Panel.js +145 -0
  46. package/src/core/hooks/Paragraph.js +84 -0
  47. package/src/core/hooks/Ruby.js +34 -0
  48. package/src/core/hooks/Size.js +51 -0
  49. package/src/core/hooks/Strikethrough.js +54 -0
  50. package/src/core/hooks/Sub.js +47 -0
  51. package/src/core/hooks/SuggestList.js +333 -0
  52. package/src/core/hooks/Suggester.js +707 -0
  53. package/src/core/hooks/Sup.js +47 -0
  54. package/src/core/hooks/Table.js +275 -0
  55. package/src/core/hooks/Toc.js +292 -0
  56. package/src/core/hooks/Transfer.js +47 -0
  57. package/src/core/hooks/Underline.js +37 -0
  58. package/src/index.core.js +29 -0
  59. package/src/index.engine.core.js +68 -0
  60. package/src/index.engine.js +28 -0
  61. package/src/index.js +32 -0
  62. package/src/libs/mermaidAPI.8.4.8.js +1 -0
  63. package/src/libs/mermaidAPI.8.5.2.js +42 -0
  64. package/src/libs/rawdeflate.js +1663 -0
  65. package/src/locales/en_US.js +139 -0
  66. package/src/locales/index.js +25 -0
  67. package/src/locales/ru_RU.js +139 -0
  68. package/src/locales/zh_CN.js +142 -0
  69. package/src/sass/base.scss +26 -0
  70. package/src/sass/bubble_formula.scss +166 -0
  71. package/src/sass/ch-icon.scss +118 -0
  72. package/src/sass/cherry.scss +1116 -0
  73. package/src/sass/components/bubble.scss +173 -0
  74. package/src/sass/components/shortcut_key_config.scss +108 -0
  75. package/src/sass/formula_utils_bubble.scss +82 -0
  76. package/src/sass/icon_template.scss +24 -0
  77. package/src/sass/icons/uEA03-list.svg +19 -0
  78. package/src/sass/icons/uEA04-check.svg +14 -0
  79. package/src/sass/icons/uEA09-square.svg +10 -0
  80. package/src/sass/icons/uEA0A-bold.svg +20 -0
  81. package/src/sass/icons/uEA0B-code.svg +18 -0
  82. package/src/sass/icons/uEA0C-color.svg +13 -0
  83. package/src/sass/icons/uEA0D-header.svg +8 -0
  84. package/src/sass/icons/uEA0E-image.svg +15 -0
  85. package/src/sass/icons/uEA0F-italic.svg +8 -0
  86. package/src/sass/icons/uEA10-link.svg +16 -0
  87. package/src/sass/icons/uEA11-ol.svg +21 -0
  88. package/src/sass/icons/uEA12-size.svg +11 -0
  89. package/src/sass/icons/uEA13-strike.svg +16 -0
  90. package/src/sass/icons/uEA14-table.svg +12 -0
  91. package/src/sass/icons/uEA15-ul.svg +17 -0
  92. package/src/sass/icons/uEA16-underline.svg +13 -0
  93. package/src/sass/icons/uEA17-word.svg +16 -0
  94. package/src/sass/icons/uEA18-blockquote.svg +11 -0
  95. package/src/sass/icons/uEA19-font.svg +10 -0
  96. package/src/sass/icons/uEA1F-insertClass.svg +39 -0
  97. package/src/sass/icons/uEA20-insertFlow.svg +8 -0
  98. package/src/sass/icons/uEA21-insertFormula.svg +23 -0
  99. package/src/sass/icons/uEA22-insertGantt.svg +13 -0
  100. package/src/sass/icons/uEA23-insertGraph.svg +13 -0
  101. package/src/sass/icons/uEA24-insertPie.svg +19 -0
  102. package/src/sass/icons/uEA25-insertSeq.svg +20 -0
  103. package/src/sass/icons/uEA26-insertState.svg +35 -0
  104. package/src/sass/icons/uEA27-line.svg +11 -0
  105. package/src/sass/icons/uEA28-preview.svg +18 -0
  106. package/src/sass/icons/uEA29-previewClose.svg +24 -0
  107. package/src/sass/icons/uEA2A-toc.svg +24 -0
  108. package/src/sass/icons/uEA2D-sub.svg +15 -0
  109. package/src/sass/icons/uEA2E-sup.svg +15 -0
  110. package/src/sass/icons/uEA2F-h1.svg +16 -0
  111. package/src/sass/icons/uEA30-h2.svg +20 -0
  112. package/src/sass/icons/uEA31-h3.svg +23 -0
  113. package/src/sass/icons/uEA32-h4.svg +16 -0
  114. package/src/sass/icons/uEA33-h5.svg +20 -0
  115. package/src/sass/icons/uEA34-h6.svg +17 -0
  116. package/src/sass/icons/uEA35-video.svg +20 -0
  117. package/src/sass/icons/uEA36-insert.svg +25 -0
  118. package/src/sass/icons/uEA37-little_table.svg +30 -0
  119. package/src/sass/icons/uEA38-pdf.svg +27 -0
  120. package/src/sass/icons/uEA39-checklist.svg +22 -0
  121. package/src/sass/icons/uEA40-close.svg +12 -0
  122. package/src/sass/icons/uEA41-fullscreen.svg +81 -0
  123. package/src/sass/icons/uEA42-minscreen.svg +77 -0
  124. package/src/sass/icons/uEA43-insertChart.svg +23 -0
  125. package/src/sass/icons/uEA44-question.svg +25 -0
  126. package/src/sass/icons/uEA45-settings.svg +32 -0
  127. package/src/sass/icons/uEA46-ok.svg +7 -0
  128. package/src/sass/icons/uEA47-br.svg +22 -0
  129. package/src/sass/icons/uEA48-normal.svg +15 -0
  130. package/src/sass/icons/uEA49-undo.svg +19 -0
  131. package/src/sass/icons/uEA50-redo.svg +21 -0
  132. package/src/sass/icons/uEA51-copy.svg +6 -0
  133. package/src/sass/icons/uEA52-phone.svg +5 -0
  134. package/src/sass/icons/uEA53-cherry-table-delete.svg +17 -0
  135. package/src/sass/icons/uEA54-cherry-table-insert-bottom.svg +16 -0
  136. package/src/sass/icons/uEA55-cherry-table-insert-left.svg +15 -0
  137. package/src/sass/icons/uEA56-cherry-table-insert-right.svg +16 -0
  138. package/src/sass/icons/uEA57-cherry-table-insert-top.svg +16 -0
  139. package/src/sass/icons/uEA58-sort-s.svg +13 -0
  140. package/src/sass/icons/uEA59-pinyin.svg +1 -0
  141. package/src/sass/icons/uEA5A-create.svg +24 -0
  142. package/src/sass/icons/uEA5B-download.svg +34 -0
  143. package/src/sass/icons/uEA5C-edit.svg +3 -0
  144. package/src/sass/icons/uEA5D-export.svg +53 -0
  145. package/src/sass/icons/uEA5E-folder-open.svg +3 -0
  146. package/src/sass/icons/uEA5F-folder.svg +3 -0
  147. package/src/sass/icons/uEA60-help.svg +5 -0
  148. package/src/sass/icons/uEA61-pen-fill.svg +13 -0
  149. package/src/sass/icons/uEA62-pen.svg +3 -0
  150. package/src/sass/icons/uEA64-tips.svg +5 -0
  151. package/src/sass/icons/uEA65-warn.svg +5 -0
  152. package/src/sass/icons/uEA66-mistake.svg +4 -0
  153. package/src/sass/icons/uEA67-success.svg +4 -0
  154. package/src/sass/icons/uEA68-danger.svg +4 -0
  155. package/src/sass/icons/uEA69-info.svg +5 -0
  156. package/src/sass/icons/uEA6A-primary.svg +5 -0
  157. package/src/sass/icons/uEA6B-warning.svg +5 -0
  158. package/src/sass/icons/uEA6C-justify.svg +19 -0
  159. package/src/sass/icons/uEA6D-justifyCenter.svg +19 -0
  160. package/src/sass/icons/uEA6E-justifyLeft.svg +19 -0
  161. package/src/sass/icons/uEA6F-justifyRight.svg +19 -0
  162. package/src/sass/icons/uEA70-chevronsLeft.svg +1 -0
  163. package/src/sass/icons/uEA71-chevronsRight.svg +1 -0
  164. package/src/sass/icons/uEA72-trendingUp.svg +1 -0
  165. package/src/sass/icons/uEA74-codeBlock.svg +1 -0
  166. package/src/sass/icons/uEA75-expand.svg +3 -0
  167. package/src/sass/icons/uEA76-unExpand.svg +3 -0
  168. package/src/sass/icons/uEA77-swap-vert.svg +1 -0
  169. package/src/sass/icons/uEA78-swap.svg +1 -0
  170. package/src/sass/icons/uEA79-keyboard.svg +1 -0
  171. package/src/sass/icons/uEA7A-command.svg +1 -0
  172. package/src/sass/icons/uEA7B-search.svg +1 -0
  173. package/src/sass/index.scss +3 -0
  174. package/src/sass/markdown.scss +668 -0
  175. package/src/sass/markdown_pure.scss +9 -0
  176. package/src/sass/prettyprint/prettyprint.scss +118 -0
  177. package/src/sass/previewer.scss +179 -0
  178. package/src/sass/print.scss +13 -0
  179. package/src/sass/prism/coy.scss +220 -0
  180. package/src/sass/prism/dark.scss +132 -0
  181. package/src/sass/prism/default.scss +143 -0
  182. package/src/sass/prism/funky.scss +133 -0
  183. package/src/sass/prism/okaidia.scss +126 -0
  184. package/src/sass/prism/one-dark.scss +440 -0
  185. package/src/sass/prism/one-light.scss +428 -0
  186. package/src/sass/prism/solarized-light.scss +153 -0
  187. package/src/sass/prism/tomorrow-night.scss +125 -0
  188. package/src/sass/prism/twilight.scss +202 -0
  189. package/src/sass/prism/vs-dark.scss +275 -0
  190. package/src/sass/prism/vs-light.scss +168 -0
  191. package/src/sass/themes/blue.scss +411 -0
  192. package/src/sass/themes/dark.scss +517 -0
  193. package/src/sass/themes/default.scss +255 -0
  194. package/src/sass/themes/green.scss +395 -0
  195. package/src/sass/themes/light.scss +368 -0
  196. package/src/sass/themes/red.scss +397 -0
  197. package/src/sass/themes/violet.scss +410 -0
  198. package/src/sass/variable.scss +84 -0
  199. package/src/toolbars/Bubble.js +234 -0
  200. package/src/toolbars/BubbleFormula.js +298 -0
  201. package/src/toolbars/BubbleTable.js +147 -0
  202. package/src/toolbars/FloatMenu.js +131 -0
  203. package/src/toolbars/HiddenToolbar.js +36 -0
  204. package/src/toolbars/HookCenter.js +234 -0
  205. package/src/toolbars/MenuBase.js +569 -0
  206. package/src/toolbars/PreviewerBubble.js +608 -0
  207. package/src/toolbars/ShortcutKeyConfigPanel.js +345 -0
  208. package/src/toolbars/Sidebar.js +36 -0
  209. package/src/toolbars/Toc.js +242 -0
  210. package/src/toolbars/Toolbar.js +449 -0
  211. package/src/toolbars/ToolbarRight.js +37 -0
  212. package/src/toolbars/hooks/Audio.js +79 -0
  213. package/src/toolbars/hooks/BarTable.js +41 -0
  214. package/src/toolbars/hooks/Bold.js +73 -0
  215. package/src/toolbars/hooks/Br.js +34 -0
  216. package/src/toolbars/hooks/ChangeLocale.js +62 -0
  217. package/src/toolbars/hooks/ChatGpt.js +182 -0
  218. package/src/toolbars/hooks/CheckList.js +41 -0
  219. package/src/toolbars/hooks/Code.js +49 -0
  220. package/src/toolbars/hooks/CodeTheme.js +66 -0
  221. package/src/toolbars/hooks/Color.js +298 -0
  222. package/src/toolbars/hooks/Copy.js +141 -0
  223. package/src/toolbars/hooks/Detail.js +69 -0
  224. package/src/toolbars/hooks/DrawIo.js +57 -0
  225. package/src/toolbars/hooks/Export.js +49 -0
  226. package/src/toolbars/hooks/File.js +79 -0
  227. package/src/toolbars/hooks/Formula.js +69 -0
  228. package/src/toolbars/hooks/FullScreen.js +50 -0
  229. package/src/toolbars/hooks/Graph.js +263 -0
  230. package/src/toolbars/hooks/H1.js +71 -0
  231. package/src/toolbars/hooks/H2.js +71 -0
  232. package/src/toolbars/hooks/H3.js +71 -0
  233. package/src/toolbars/hooks/Header.js +118 -0
  234. package/src/toolbars/hooks/Hr.js +35 -0
  235. package/src/toolbars/hooks/Image.js +91 -0
  236. package/src/toolbars/hooks/InlineCode.js +53 -0
  237. package/src/toolbars/hooks/Insert.js +193 -0
  238. package/src/toolbars/hooks/Italic.js +72 -0
  239. package/src/toolbars/hooks/Justify.js +49 -0
  240. package/src/toolbars/hooks/LineTable.js +41 -0
  241. package/src/toolbars/hooks/Link.js +49 -0
  242. package/src/toolbars/hooks/List.js +55 -0
  243. package/src/toolbars/hooks/MobilePreview.js +44 -0
  244. package/src/toolbars/hooks/Ol.js +41 -0
  245. package/src/toolbars/hooks/Panel.js +140 -0
  246. package/src/toolbars/hooks/Pdf.js +78 -0
  247. package/src/toolbars/hooks/Publish.js +123 -0
  248. package/src/toolbars/hooks/QuickTable.js +43 -0
  249. package/src/toolbars/hooks/Quote.js +45 -0
  250. package/src/toolbars/hooks/Redo.js +33 -0
  251. package/src/toolbars/hooks/Ruby.js +59 -0
  252. package/src/toolbars/hooks/Search.js +53 -0
  253. package/src/toolbars/hooks/Settings.js +220 -0
  254. package/src/toolbars/hooks/ShortcutKey.js +62 -0
  255. package/src/toolbars/hooks/Size.js +118 -0
  256. package/src/toolbars/hooks/Split.js +37 -0
  257. package/src/toolbars/hooks/Strikethrough.js +71 -0
  258. package/src/toolbars/hooks/Sub.js +58 -0
  259. package/src/toolbars/hooks/Sup.js +58 -0
  260. package/src/toolbars/hooks/SwitchModel.js +56 -0
  261. package/src/toolbars/hooks/Table.js +56 -0
  262. package/src/toolbars/hooks/Theme.js +62 -0
  263. package/src/toolbars/hooks/Toc.js +35 -0
  264. package/src/toolbars/hooks/TogglePreview.js +91 -0
  265. package/src/toolbars/hooks/Ul.js +41 -0
  266. package/src/toolbars/hooks/Underline.js +68 -0
  267. package/src/toolbars/hooks/Undo.js +30 -0
  268. package/src/toolbars/hooks/Video.js +79 -0
  269. package/src/toolbars/hooks/Word.js +78 -0
  270. package/src/toolbars/hooks/WordCount.js +106 -0
  271. package/src/utils/autoindent.js +58 -0
  272. package/src/utils/cm-search-replace.js +794 -0
  273. package/src/utils/code-preview-language-setting.js +180 -0
  274. package/src/utils/codeBlockContentHandler.js +400 -0
  275. package/src/utils/config.js +174 -0
  276. package/src/utils/copy.js +55 -0
  277. package/src/utils/dialog.js +214 -0
  278. package/src/utils/dom.js +163 -0
  279. package/src/utils/downloadUtil.js +23 -0
  280. package/src/utils/env.js +22 -0
  281. package/src/utils/error.js +61 -0
  282. package/src/utils/event.js +38 -0
  283. package/src/utils/export.js +166 -0
  284. package/src/utils/file.js +164 -0
  285. package/src/utils/formulaUtilsHandler.js +232 -0
  286. package/src/utils/htmlparser.js +976 -0
  287. package/src/utils/image.js +99 -0
  288. package/src/utils/imgSizeHandler.js +279 -0
  289. package/src/utils/lazyLoadImg.js +327 -0
  290. package/src/utils/lineFeed.js +49 -0
  291. package/src/utils/listContentHandler.js +227 -0
  292. package/src/utils/lookbehind-replace.js +81 -0
  293. package/src/utils/mathjax.js +89 -0
  294. package/src/utils/myersDiff.js +211 -0
  295. package/src/utils/pasteHelper.js +253 -0
  296. package/src/utils/platformTransform.js +71 -0
  297. package/src/utils/recount-pos.js +59 -0
  298. package/src/utils/regexp.js +295 -0
  299. package/src/utils/sanitize.js +477 -0
  300. package/src/utils/selection.js +50 -0
  301. package/src/utils/shortcutKey.js +291 -0
  302. package/src/utils/svgUtils.js +96 -0
  303. package/src/utils/tableContentHandler.js +876 -0
  304. package/test/core/CommonMark.spec.ts +62 -0
  305. package/test/core/hooks/AutoLink.spec.ts +28 -0
  306. package/test/core/hooks/List.spec.ts +79 -0
  307. package/test/core/hooks/__snapshots__/List.spec.ts.snap +11 -0
  308. package/test/example.md +778 -0
  309. package/test/node.js +10 -0
  310. package/test/suites/commonmark.spec.json +5218 -0
  311. package/test/tsconfig.test.json +6 -0
  312. package/test/utils/regexp.spec.ts +28 -0
  313. package/types/cherry.d.ts +675 -0
  314. package/types/codemirror.d.ts +22 -0
  315. package/types/editor.d.ts +72 -0
  316. package/types/global.d.ts +16 -0
  317. package/types/menus.d.ts +24 -0
  318. package/types/previewer.d.ts +53 -0
  319. package/types/syntax.d.ts +52 -0
@@ -0,0 +1,668 @@
1
+ @import './variable.scss';
2
+
3
+ .cherry-markdown {
4
+ word-break: break-all;
5
+ h1,
6
+ h2,
7
+ h3,
8
+ h4,
9
+ h5,
10
+ h6,
11
+ .h1,
12
+ .h2,
13
+ .h3,
14
+ .h4,
15
+ .h5,
16
+ .h6 {
17
+ font-family: inherit;
18
+ font-weight: 700;
19
+ line-height: 1.1;
20
+ color: inherit;
21
+ }
22
+
23
+ h1 small,
24
+ h2 small,
25
+ h3 small,
26
+ h4 small,
27
+ h5 small,
28
+ h6 small,
29
+ .h1 small,
30
+ .h2 small,
31
+ .h3 small,
32
+ .h4 small,
33
+ .h5 small,
34
+ .h6 small,
35
+ h1 .small,
36
+ h2 .small,
37
+ h3 .small,
38
+ h4 .small,
39
+ h5 .small,
40
+ h6 .small,
41
+ .h1 .small,
42
+ .h2 .small,
43
+ .h3 .small,
44
+ .h4 .small,
45
+ .h5 .small,
46
+ .h6 .small {
47
+ font-weight: normal;
48
+ line-height: 1;
49
+ color: #999;
50
+ }
51
+
52
+ h1,
53
+ h2,
54
+ h3 {
55
+ margin-top: 30px;
56
+ margin-bottom: $elementGap;
57
+ }
58
+
59
+ h1 small,
60
+ h2 small,
61
+ h3 small,
62
+ h1 .small,
63
+ h2 .small,
64
+ h3 .small {
65
+ font-size: 65%;
66
+ }
67
+
68
+ h4,
69
+ h5,
70
+ h6 {
71
+ margin-top: $elementLittleGap;
72
+ margin-bottom: $elementLittleGap;
73
+ }
74
+
75
+ h4 small,
76
+ h5 small,
77
+ h6 small,
78
+ h4 .small,
79
+ h5 .small,
80
+ h6 .small {
81
+ font-size: 75%;
82
+ }
83
+
84
+ h1,
85
+ .h1 {
86
+ font-size: 2em;
87
+ }
88
+
89
+ h2,
90
+ .h2 {
91
+ font-size: 1.5em;
92
+ }
93
+
94
+ h3,
95
+ .h3 {
96
+ font-size: 1.25em;
97
+ }
98
+
99
+ h4,
100
+ .h4 {
101
+ font-size: 1em;
102
+ }
103
+
104
+ h5,
105
+ .h5 {
106
+ font-size: 0.875em;
107
+ }
108
+
109
+ h6,
110
+ .h6 {
111
+ font-size: 0.85em;
112
+ }
113
+
114
+ b,
115
+ strong {
116
+ font-weight: bold;
117
+ }
118
+
119
+ ul,
120
+ ol {
121
+ padding-left: 24px;
122
+ margin-bottom: $elementGap;
123
+
124
+ ul,
125
+ ol {
126
+ margin-bottom: 0;
127
+ }
128
+
129
+ li {
130
+ list-style: inherit;
131
+ p {
132
+ margin: 0;
133
+ }
134
+ }
135
+ }
136
+
137
+ div {
138
+ ul,
139
+ ol {
140
+ margin-bottom: 0;
141
+ }
142
+ }
143
+
144
+ hr {
145
+ height: 0;
146
+ border: 0;
147
+ border-top: 1px solid $borderColor;
148
+ margin: $elementGap 0;
149
+ box-sizing: content-box;
150
+ overflow: visible;
151
+ }
152
+
153
+ kbd {
154
+ border: 1px solid $borderColor;
155
+ border-radius: 4px;
156
+ padding: 1px 2px;
157
+ box-sizing: border-box;
158
+ box-shadow: inset 0px -1px $borderColor;
159
+ font-size: 0.85rem;
160
+ }
161
+
162
+ table {
163
+ border-collapse: collapse;
164
+ th,
165
+ td {
166
+ border: 1px solid $borderColor;
167
+ padding: 0.2em 0.4em;
168
+ min-width: 100px;
169
+ }
170
+ th {
171
+ background-color: #eee;
172
+ }
173
+ }
174
+
175
+ .link-quote {
176
+ color: $linkColor;
177
+ }
178
+
179
+ a {
180
+ color: $linkColor;
181
+ position: relative;
182
+ text-decoration: none;
183
+
184
+ &[target='_blank'] {
185
+ padding: 0 2px;
186
+
187
+ &::after {
188
+ content: '\EA10';
189
+ font-size: 12px;
190
+ font-family: 'ch-icon';
191
+ margin: 0 2px;
192
+ }
193
+ }
194
+
195
+ &:hover {
196
+ color: $linkHoverColor;
197
+ }
198
+ }
199
+
200
+ em {
201
+ font-style: italic;
202
+ }
203
+
204
+ sup {
205
+ vertical-align: super;
206
+ }
207
+
208
+ sub {
209
+ vertical-align: sub;
210
+ }
211
+
212
+ figure {
213
+ overflow-x: auto;
214
+ }
215
+
216
+ p,
217
+ pre,
218
+ blockquote,
219
+ table {
220
+ margin: 0 0 $elementGap;
221
+ }
222
+
223
+ blockquote {
224
+ color: $quoteColor;
225
+ padding: 10px 15px;
226
+ border-left: 10px solid $quoteBorderColor;
227
+ background: $quoteBackground;
228
+ p, blockquote, table, pre, ul, ol{
229
+ margin: 0;
230
+ }
231
+ }
232
+
233
+ pre {
234
+ padding: 16px;
235
+ overflow: auto;
236
+ font-size: 85%;
237
+ line-height: 1.45;
238
+ background-color: #f6f8fa;
239
+ border-radius: 6px;
240
+ }
241
+
242
+ // 适配历史文章样式
243
+ @import 'prettyprint/prettyprint.scss';
244
+
245
+ div[data-type='codeBlock'] {
246
+ display: inline-block;
247
+ width: 100%;
248
+ box-sizing: border-box;
249
+ border-radius: 2px;
250
+ margin-bottom: 16px;
251
+ font-size: 14px;
252
+ overflow-x: auto;
253
+
254
+ & > pre {
255
+ margin: 0;
256
+ code[class*='language-'] {
257
+ counter-reset: line;
258
+ &.wrap {
259
+ white-space: pre-wrap;
260
+ }
261
+ .code-line {
262
+ display: inline-block;
263
+ position: relative;
264
+ padding-left: 3em;
265
+ height: 1.3em;
266
+ line-height: 2em;
267
+ &:before {
268
+ counter-increment: line;
269
+ content: counter(line);
270
+ margin-right: 1em;
271
+ position: absolute;
272
+ left: 0;
273
+ }
274
+ &:last-child {
275
+ margin-bottom: 0;
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+
282
+ /* Inline code */
283
+ :not(pre) > code {
284
+ padding: 0.1em;
285
+ border-radius: 0.3em;
286
+ white-space: normal;
287
+ color: #f85353;
288
+ background-color: #e5e5e5;
289
+
290
+ [data-inline-code-theme='black'] & {
291
+ color: #3f4a56;
292
+ background-color: #e5e5e5;
293
+ }
294
+ }
295
+
296
+ a.anchor:before {
297
+ content: '\a7'; // §
298
+ text-decoration: none;
299
+ width: 15px;
300
+ font-size: 0.5em;
301
+ vertical-align: middle;
302
+ display: inline-block;
303
+ text-align: center;
304
+ margin-left: -15px;
305
+ }
306
+
307
+ .toc {
308
+ margin-bottom: $elementGap;
309
+ padding-left: 0;
310
+
311
+ .toc-title {
312
+ font-size: 24px;
313
+ margin-bottom: 5px;
314
+ }
315
+
316
+ .toc-li {
317
+ border-bottom: 1px ridge $borderColor;
318
+ list-style: none;
319
+
320
+ a {
321
+ text-decoration: none;
322
+ color: $fontColor;
323
+
324
+ &:hover {
325
+ color: $linkHoverColor;
326
+ }
327
+ }
328
+ }
329
+ }
330
+
331
+ .auto-num-toc {
332
+ counter-reset: headtoclevel1;
333
+
334
+ .toc-li-1 {
335
+ counter-reset: headtoclevel2;
336
+ a:before {
337
+ counter-increment: headtoclevel1;
338
+ content: counter(headtoclevel1) ". "
339
+ }
340
+ }
341
+
342
+ .toc-li-2 {
343
+ counter-reset: headtoclevel3;
344
+ a:before {
345
+ counter-increment: headtoclevel2;
346
+ content: counter(headtoclevel1) "." counter(headtoclevel2) ". "
347
+ }
348
+ }
349
+
350
+ .toc-li-3 {
351
+ counter-reset: headtoclevel4;
352
+ a:before {
353
+ counter-increment: headtoclevel3;
354
+ content: counter(headtoclevel1) "." counter(headtoclevel2) "." counter(headtoclevel3) ". "
355
+ }
356
+ }
357
+
358
+ .toc-li-4 {
359
+ counter-reset: headtoclevel5;
360
+ a:before {
361
+ counter-increment: headtoclevel4;
362
+ content: counter(headtoclevel1) "." counter(headtoclevel2) "." counter(headtoclevel3) "." counter(headtoclevel4) ". "
363
+ }
364
+ }
365
+
366
+ .toc-li-5 {
367
+ counter-reset: headtoclevel6;
368
+ a:before {
369
+ counter-increment: headtoclevel5;
370
+ content: counter(headtoclevel1) "." counter(headtoclevel2) "." counter(headtoclevel3) "." counter(headtoclevel4) "." counter(headtoclevel5) ". "
371
+ }
372
+ }
373
+
374
+ .toc-li-6 {
375
+ a:before {
376
+ counter-increment: headtoclevel6;
377
+ content: counter(headtoclevel1) "." counter(headtoclevel2) "." counter(headtoclevel3) "." counter(headtoclevel4) "." counter(headtoclevel5) "." counter(headtoclevel6) ". "
378
+ }
379
+ }
380
+ }
381
+
382
+ .check-list-item {
383
+ list-style: none;
384
+
385
+ .ch-icon {
386
+ margin: 0 6px 0 -20px;
387
+ }
388
+ }
389
+
390
+ .footnote:not(a) {
391
+ .footnote-title {
392
+ font-size: 20px;
393
+ margin-top: -38px;
394
+ background-color: $editorBg;
395
+ width: 60px;
396
+ margin-bottom: $elementGap;
397
+ }
398
+
399
+ padding-top: 20px;
400
+ border-top: 1px solid $borderColor;
401
+ margin-top: 50px;
402
+
403
+ .one-footnote {
404
+ color: $subTitle;
405
+ margin-bottom: $elementGap;
406
+ border-bottom: 1px dotted $borderColor;
407
+ }
408
+ }
409
+
410
+ .cherry-table-container {
411
+ max-width: 100%;
412
+ overflow-x: auto;
413
+ .cherry-table {
414
+ th,
415
+ td {
416
+ border: 1px solid $borderColor;
417
+ padding: 0.2em 0.4em;
418
+ min-width: 100px;
419
+ }
420
+ th {
421
+ white-space: nowrap;
422
+ }
423
+ }
424
+ }
425
+
426
+ /* 数学表达式展示 */
427
+ mjx-assistive-mml {
428
+ position: absolute;
429
+ top: 0;
430
+ left: 0;
431
+ clip: rect(1px, 1px, 1px, 1px);
432
+ padding: 1px 0 0 0;
433
+ border: 0;
434
+ }
435
+
436
+ &.head-num {
437
+ // Auto Numbering for Headings
438
+ h1,
439
+ h2,
440
+ h3,
441
+ h4,
442
+ h5,
443
+ h6 {
444
+ .anchor:before {
445
+ width: auto;
446
+ font-size: inherit;
447
+ vertical-align: inherit;
448
+ padding-right: 10px;
449
+ }
450
+ }
451
+
452
+ counter-reset: level1;
453
+
454
+ h1 {
455
+ counter-reset: level2;
456
+ }
457
+
458
+ h2 {
459
+ counter-reset: level3;
460
+ }
461
+
462
+ h3 {
463
+ counter-reset: level4;
464
+ }
465
+
466
+ h4 {
467
+ counter-reset: level5;
468
+ }
469
+
470
+ h5 {
471
+ counter-reset: level6;
472
+ }
473
+
474
+ h1 .anchor:before {
475
+ counter-increment: level1;
476
+ content: counter(level1) '. ';
477
+ }
478
+
479
+ h2 .anchor:before {
480
+ counter-increment: level2;
481
+ content: counter(level1) '.' counter(level2) ' ';
482
+ }
483
+
484
+ h3 .anchor:before {
485
+ counter-increment: level3;
486
+ content: counter(level1) '.' counter(level2) '.' counter(level3) ' ';
487
+ }
488
+
489
+ h4 .anchor:before {
490
+ counter-increment: level4;
491
+ content: counter(level1) '.' counter(level2) '.' counter(level3) '.' counter(level4) ' ';
492
+ }
493
+
494
+ h5 .anchor:before {
495
+ counter-increment: level5;
496
+ content: counter(level1) '.' counter(level2) '.' counter(level3) '.' counter(level4) '.' counter(level5) ' ';
497
+ }
498
+
499
+ h6 .anchor:before {
500
+ counter-increment: level6;
501
+ content: counter(level1) '.' counter(level2) '.' counter(level3) '.' counter(level4) '.' counter(level5) '.'
502
+ counter(level6) ' ';
503
+ }
504
+ }
505
+ }
506
+
507
+ div[data-type='codeBlock'] {
508
+ @import 'prism/tomorrow-night';
509
+
510
+ div[data-code-wrap='wrap'] & code[class*=language-]{
511
+ white-space: pre-wrap;
512
+ }
513
+
514
+ [data-code-block-theme='default'] & {
515
+ @import 'prism/default';
516
+ }
517
+
518
+ [data-code-block-theme='dark'] & {
519
+ @import 'prism/dark';
520
+ }
521
+
522
+ [data-code-block-theme='one-dark'] & {
523
+ @import 'prism/one-dark';
524
+ }
525
+
526
+ [data-code-block-theme='one-light'] & {
527
+ @import 'prism/one-light';
528
+ }
529
+
530
+ [data-code-block-theme='vs-dark'] & {
531
+ @import 'prism/vs-dark';
532
+ }
533
+
534
+ [data-code-block-theme='vs-light'] & {
535
+ @import 'prism/vs-light';
536
+ }
537
+
538
+ [data-code-block-theme='okaidia'] & {
539
+ @import 'prism/okaidia';
540
+ }
541
+
542
+ [data-code-block-theme='twilight'] & {
543
+ @import 'prism/twilight';
544
+ }
545
+
546
+ [data-code-block-theme='coy'] & {
547
+ @import 'prism/coy';
548
+ }
549
+
550
+ [data-code-block-theme='solarized-light'] & {
551
+ @import 'prism/solarized-light';
552
+ }
553
+ }
554
+
555
+ .cherry-detail {
556
+ details {
557
+ background: #f8f9faaa;
558
+ border-radius: 8px;
559
+ overflow: hidden;
560
+ margin-bottom: 10px;
561
+ summary {
562
+ user-select: none;
563
+ padding: 5px 10px;
564
+ background-color: #6c757d;
565
+ color: #fff;
566
+ border-radius: 8px;
567
+ }
568
+ .cherry-detail-body {
569
+ padding: 15px 25px 0 25px;
570
+ }
571
+ }
572
+ }
573
+
574
+ .cherry-detail__multiple {
575
+ border-radius: 8px;
576
+ overflow: hidden;
577
+ details {
578
+ margin-bottom: 1px;
579
+ border-radius: 0;
580
+ border: none;
581
+ summary {
582
+ border-radius: 0;
583
+ }
584
+ }
585
+ }
586
+
587
+ .cherry-text-align__center {
588
+ table {
589
+ margin-left: auto;
590
+ margin-right: auto;
591
+ }
592
+ }
593
+
594
+ .cherry-text-align__right {
595
+ table {
596
+ margin-left: auto;
597
+ }
598
+ }
599
+
600
+ .cherry-panel {
601
+ margin: 10px 0;
602
+ overflow: hidden;
603
+ border-radius: 8px;
604
+ box-sizing: border-box;
605
+ border: 0.5px solid;
606
+ .cherry-panel--title {
607
+ color: #fff;
608
+ padding: 5px 20px;
609
+ &.cherry-panel--title__not-empty::before {
610
+ font-family: 'ch-icon';
611
+ margin: 0 12px 0 -6px;
612
+ vertical-align: bottom;
613
+ }
614
+ }
615
+ .cherry-panel--body {
616
+ padding: 5px 20px;
617
+ }
618
+ }
619
+ .cherry-panel__primary {
620
+ background-color: #cfe2ff;
621
+ color: #0a58ca;
622
+ .cherry-panel--title {
623
+ background-color: #0d6dfe;
624
+ &.cherry-panel--title__not-empty::before {
625
+ content: '\EA6A';
626
+ }
627
+ }
628
+ }
629
+ .cherry-panel__info {
630
+ background-color: #cff4fc;
631
+ color: #087990;
632
+ .cherry-panel--title {
633
+ background-color: #099cba;
634
+ &.cherry-panel--title__not-empty::before {
635
+ content: '\EA69';
636
+ }
637
+ }
638
+ }
639
+ .cherry-panel__warning {
640
+ background-color: #fff3cd;
641
+ color: #997404;
642
+ .cherry-panel--title {
643
+ background-color: #b38806;
644
+ &.cherry-panel--title__not-empty::before {
645
+ content: '\EA6B';
646
+ }
647
+ }
648
+ }
649
+ .cherry-panel__danger {
650
+ background-color: #f8d7da;
651
+ color: #b02a37;
652
+ .cherry-panel--title {
653
+ background-color: #dc3545;
654
+ &.cherry-panel--title__not-empty::before {
655
+ content: '\EA68';
656
+ }
657
+ }
658
+ }
659
+ .cherry-panel__success {
660
+ background-color: #d1e7dd;
661
+ color: #146c43;
662
+ .cherry-panel--title {
663
+ background-color: #198754;
664
+ &.cherry-panel--title__not-empty::before {
665
+ content: '\EA67';
666
+ }
667
+ }
668
+ }
@@ -0,0 +1,9 @@
1
+ @import './markdown.scss';
2
+ /** 引入自带的主题 */
3
+ @import './themes/default.scss';
4
+ @import './themes/dark.scss';
5
+ @import './themes/light.scss';
6
+ @import './themes/green.scss';
7
+ @import './themes/red.scss';
8
+ @import './themes/violet.scss';
9
+ @import './themes/blue.scss';