diff --git a/docs/.vuepress/notes/zh/theme-guide.ts b/docs/.vuepress/notes/zh/theme-guide.ts index 8993c119..14616a81 100644 --- a/docs/.vuepress/notes/zh/theme-guide.ts +++ b/docs/.vuepress/notes/zh/theme-guide.ts @@ -88,6 +88,8 @@ export const themeGuide = defineNoteConfig({ 'echarts', 'mermaid', 'flowchart', + 'markmap', + 'plantuml', ], }, { diff --git a/docs/.vuepress/theme.ts b/docs/.vuepress/theme.ts index 6a63dfd0..ec158726 100644 --- a/docs/.vuepress/theme.ts +++ b/docs/.vuepress/theme.ts @@ -14,13 +14,15 @@ export const theme: Theme = plumeTheme({ shiki: { twoslash: true, lineNumbers: 10, - languages: ['sh', 'ts', 'md', 'html', 'js', 'go', 'kotlin', 'rust', 'vue', 'css', 'json', 'scss', 'yaml', 'bash', 'c++', 'java', 'py', 'ruby', 'make', 'objc', 'swift', 'php', 'rs', 'sql', 'xml', 'zig', 'pug', 'http', 'less', 'styl', 'jsx', 'tsx', 'astro', 'svelte', 'wasm', 'vb', 'bat', 'cs', 'cpp', 'mermaid'], + languages: ['sh', 'ts', 'md', 'html', 'js', 'go', 'kotlin', 'rust', 'vue', 'css', 'json', 'scss', 'yaml', 'bash', 'c++', 'java', 'py', 'ruby', 'make', 'objc', 'swift', 'php', 'rs', 'sql', 'xml', 'zig', 'pug', 'http', 'less', 'styl', 'jsx', 'tsx', 'astro', 'svelte', 'wasm', 'vb', 'bat', 'cs', 'cpp'], }, markdownEnhance: { demo: true, chartjs: true, echarts: true, + markmap: true, + plantuml: true, mermaid: true, flowchart: true, }, diff --git a/docs/notes/theme/guide/api-node.md b/docs/notes/theme/guide/api-node.md index 86cad6b2..07550996 100644 --- a/docs/notes/theme/guide/api-node.md +++ b/docs/notes/theme/guide/api-node.md @@ -1,6 +1,5 @@ --- title: Node -author: pengzhanbo icon: fa6-brands:node createTime: 2024/03/07 21:59:13 permalink: /guide/api/node/ diff --git a/docs/notes/theme/guide/api-客户端.md b/docs/notes/theme/guide/api-客户端.md index 26f8ce10..97c3c4d8 100644 --- a/docs/notes/theme/guide/api-客户端.md +++ b/docs/notes/theme/guide/api-客户端.md @@ -1,6 +1,5 @@ --- title: 客户端 -author: pengzhanbo icon: nimbus:browser createTime: 2024/03/07 21:58:48 permalink: /guide/api/client/ diff --git a/docs/notes/theme/guide/介绍.md b/docs/notes/theme/guide/介绍.md index de1fa023..61157ead 100644 --- a/docs/notes/theme/guide/介绍.md +++ b/docs/notes/theme/guide/介绍.md @@ -38,15 +38,16 @@ VuePress 是一个 [静态站点生成器](https://en.wikipedia.org/wiki/Static_ - 内置支持 ==全文搜索== 、==文章评论== 、==内容加密== 、 ==文章水印== 等; -- 可对 ==代码块== 进行 分组、折叠、聚焦、行高亮、差异对比 等,还可以 嵌入 CodePen、JSFiddle、CodeSandbox 等作为 ==代码演示==; +- 可对 ==代码块== 进行 分组、折叠、聚焦、行高亮、差异对比 等, + 支持嵌入 CodePen、JSFiddle、CodeSandbox 等作为 ==代码演示==; - 内置支持 [iconify](https://icon-sets.iconify.design/) **200k+** ==图标==; -- 支持 ==嵌入 PDF==、==嵌入 Bilibili/Youtube 视频==; +- 支持 ==嵌入 PDF==、==嵌入 Bilibili /Youtube / 本地 视频==; -- 支持 chart.js、Echarts、Mermaid、flowchart 等多种可选的 ==图表== ; +- 支持 chart.js、Echarts、Mermaid、Flowchart、Markmap、PlantUML 等多种可选的 ==图表== ; -- 灵活的 markdown 容器语法,支持 ==提示容器==、==文件树==、==示例容器== 等; +- 灵活的 markdown 容器语法,支持 ==提示容器==、==文件树==、==示例容器==、==卡片容器==、==瀑布流容器== 等; - 支持 ==布局插槽==、==组件覆写== ==自定义样式== 等,你可以灵活地扩展组件,实现 个性化的 布局。 diff --git a/docs/notes/theme/guide/代码/twoslash.md b/docs/notes/theme/guide/代码/twoslash.md index 01bb43c6..0f34f0a4 100644 --- a/docs/notes/theme/guide/代码/twoslash.md +++ b/docs/notes/theme/guide/代码/twoslash.md @@ -196,8 +196,8 @@ const foo: Foo = 1 启用该功能后,你只需要在 原有的 markdown 代码块语法中,在代码语言声明后添加 `twoslash` 关键词即可: -````md -```ts twoslash // [!code highlight] +````md{1} +```ts twoslash const a = 1 ``` ```` diff --git a/docs/notes/theme/guide/博客.md b/docs/notes/theme/guide/博客.md index 95694fb9..c5e6a30a 100644 --- a/docs/notes/theme/guide/博客.md +++ b/docs/notes/theme/guide/博客.md @@ -1,6 +1,5 @@ --- title: 博客 -author: pengzhanbo icon: material-symbols:article-outline createTime: 2024/03/04 19:16:40 permalink: /guide/blog/ diff --git a/docs/notes/theme/guide/国际化.md b/docs/notes/theme/guide/国际化.md index 420234e7..ec450aaa 100644 --- a/docs/notes/theme/guide/国际化.md +++ b/docs/notes/theme/guide/国际化.md @@ -1,6 +1,5 @@ --- title: 国际化 -author: pengzhanbo icon: material-symbols-light:language createTime: 2024/03/05 10:01:26 permalink: /guide/international/ diff --git a/docs/notes/theme/guide/图表/chart.md b/docs/notes/theme/guide/图表/chart.md index fb132786..0ae42eb0 100644 --- a/docs/notes/theme/guide/图表/chart.md +++ b/docs/notes/theme/guide/图表/chart.md @@ -18,25 +18,12 @@ permalink: /guide/chart/chartjs/ 你需要在你的项目中安装 [chart.js](https://www.chartjs.org/docs/latest/) 库。 -::: code-tabs -@tab pnpm - -```sh -pnpm add chart.js -``` - -@tab npm +::: npm-to ```sh npm install chart.js ``` -@tab yarn - -```sh -yarn add chart.js -``` - ::: 然后在 `.vuepress/config.ts` 配置文件中,启用该功能: @@ -49,7 +36,7 @@ export default defineUserConfig({ theme: plumeTheme({ plugins: { markdownEnhance: { - chart: true, + chart: true, // [!code hl] }, } }) diff --git a/docs/notes/theme/guide/图表/echarts.md b/docs/notes/theme/guide/图表/echarts.md index 564ade2b..67a4e017 100644 --- a/docs/notes/theme/guide/图表/echarts.md +++ b/docs/notes/theme/guide/图表/echarts.md @@ -18,25 +18,12 @@ permalink: /guide/chart/echarts/ 你需要在你的项目中安装 [ECharts](https://echarts.apache.org/zh/index.html) 库。 -::: code-tabs -@tab pnpm - -```sh -pnpm add echarts -``` - -@tab npm +::: npm-to ```sh npm install echarts ``` -@tab yarn - -```sh -yarn add echarts -``` - ::: 然后在 `.vuepress/config.ts` 配置文件中,启用该功能: @@ -49,7 +36,7 @@ export default defineUserConfig({ theme: plumeTheme({ plugins: { markdownEnhance: { - echarts: true, + echarts: true, // [!code hl] }, } }) diff --git a/docs/notes/theme/guide/图表/flowchart.md b/docs/notes/theme/guide/图表/flowchart.md index f68a7ed5..f17428c9 100644 --- a/docs/notes/theme/guide/图表/flowchart.md +++ b/docs/notes/theme/guide/图表/flowchart.md @@ -18,25 +18,12 @@ permalink: /guide/chart/flowchart/ 你需要在你的项目中安装 [flowchart.ts](http://flowchart.js.org/) 库。 -::: code-tabs -@tab pnpm - -```sh -pnpm add flowchart.ts -``` - -@tab npm +::: npm-to ```sh npm install flowchart.ts ``` -@tab yarn - -```sh -yarn add flowchart.ts -``` - ::: 然后在 `.vuepress/config.ts` 配置文件中,启用该功能: @@ -49,7 +36,7 @@ export default defineUserConfig({ theme: plumeTheme({ plugins: { markdownEnhance: { - flowchart: true, + flowchart: true, // [!code hl] }, } }) diff --git a/docs/notes/theme/guide/图表/markmap.md b/docs/notes/theme/guide/图表/markmap.md new file mode 100644 index 00000000..dd82aafd --- /dev/null +++ b/docs/notes/theme/guide/图表/markmap.md @@ -0,0 +1,97 @@ +--- +title: 思维导图 +icon: ri:mind-map +createTime: 2025/03/01 14:35:59 +permalink: /guide/chart/markmap/ +--- + +## 概述 + +主题支持在 文章中 嵌入由 [markmap](https://markmap.js.org/) 。 + +该功能由 [vuepress-plugin-md-enhance](https://plugin-md-enhance.vuejs.press/) 提供支持。 + +## 配置 + +主题默认不启用该功能。 + +你需要在你的项目中安装 `markmap-lib`, `markmap-toolbar` and `markmap-view`: + +::: npm-to + +```sh +npm i markmap-lib markmap-toolbar markmap-view +``` + +::: + +然后在 `.vuepress/config.ts` 配置文件中,启用该功能: + +::: code-tabs +@tab .vuepress/config.ts + +```ts +export default defineUserConfig({ + theme: plumeTheme({ + plugins: { + markdownEnhance: { + markmap: true, // [!code hl] + }, + } + }) +}) +``` + +::: + +::: note +以下文档 Fork 自 [vuepress-theme-hope](https://theme-hope.vuejs.press/zh/guide/markdown/chart/markmap.html), +遵循 [MIT](https://github.com/vuepress-theme-hope/vuepress-theme-hope/blob/main/LICENSE) 许可证。 +::: + +## 语法 + +````md +```markmap + +``` +```` + +支持通过 Frontmatter 语法进行配置。 + +## 案例 + +::: demo markdown title="markmap" + +`````md +````markmap +--- +markmap: + colorFreezeLevel: 2 +--- + +# markmap + +## 链接 + +- +- [GitHub](https://github.com/markmap/markmap) + +## 功能 + +- 链接 +- **强调** ~~删除线~~ *斜体* ==高亮== +- 多行 + 文字 +- `行内代码` +- + ```js + console.log('code block'); + ``` +- Katex + - $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$ +- 现在我们可以通过 `maxWidth` 选项自动换行非常非常非常非常非常非常非常非常非常非常长的内容 +```` +````` + +::: diff --git a/docs/notes/theme/guide/图表/mermaid.md b/docs/notes/theme/guide/图表/mermaid.md index 48fd67ac..98b20bee 100644 --- a/docs/notes/theme/guide/图表/mermaid.md +++ b/docs/notes/theme/guide/图表/mermaid.md @@ -18,25 +18,13 @@ permalink: /guide/chart/mermaid/ 你需要在你的项目中安装 [mermaid](https://mermaid.js.org/) 库。 -::: code-tabs +::: npm-to @tab pnpm -```sh -pnpm add mermaid -``` - -@tab npm - ```sh npm install mermaid ``` -@tab yarn - -```sh -yarn add mermaid -``` - ::: 然后在 `.vuepress/config.ts` 配置文件中,启用该功能: @@ -49,7 +37,7 @@ export default defineUserConfig({ theme: plumeTheme({ plugins: { markdownEnhance: { - mermaid: true, + mermaid: true, // [!code hl] }, } }) diff --git a/docs/notes/theme/guide/图表/plantuml.md b/docs/notes/theme/guide/图表/plantuml.md new file mode 100644 index 00000000..49abcb28 --- /dev/null +++ b/docs/notes/theme/guide/图表/plantuml.md @@ -0,0 +1,697 @@ +--- +title: PlantUML +icon: arcticons:uml-class-editor +createTime: 2025/03/01 15:02:08 +permalink: /guide/za6z9xie/ +--- + +## 概述 + +主题支持在 文章中 嵌入由 [PlantUML](https://plantuml.com/) 。 + +该功能由 [vuepress-plugin-md-enhance](https://plugin-md-enhance.vuejs.press/) 提供支持。 + +## 配置 + +主题默认不启用该功能。 + +在 `.vuepress/config.ts` 配置文件中,启用该功能: + +::: code-tabs +@tab .vuepress/config.ts + +```ts +export default defineUserConfig({ + theme: plumeTheme({ + plugins: { + markdownEnhance: { + plantuml: true, // [!code hl] + }, + } + }) +}) +``` + +::: + +::: note +以下文档 Fork 自 [vuepress-theme-hope](https://theme-hope.vuejs.press/zh/guide/markdown/chart/plantuml.html), +遵循 [MIT](https://github.com/vuepress-theme-hope/vuepress-theme-hope/blob/main/LICENSE) 许可证。 +::: + +## 格式 + +你可以插入[plantuml](https://plantuml.com/) 支持的相同内容,例如: + +```md +@startuml +内容 +@enduml +``` + +## 示例 + +::: demo markdown title="序列图" + +```md +@startuml +Alice -> Bob: 认证请求 + +alt 成功情况 + + Bob -> Alice: 认证接受 + +else 某种失败情况 + + Bob -> Alice: 认证失败 + group 我自己的标签 + Alice -> Log : 开始记录攻击日志 + loop 1000次 + Alice -> Bob: DNS 攻击 + end + Alice -> Log : 结束记录攻击日志 + end + +else 另一种失败 + + Bob -> Alice: 请重复 + +end +@enduml +``` + +::: + +::: demo markdown title="用例图" + +```md +@startuml +:Main Admin: as Admin +(Use the application) as (Use) + +User -> (Start) +User --> (Use) + +Admin ---> (Use) + +note right of Admin : This is an example. + +note right of (Use) +A note can also +be on several lines +end note + +note "This note is connected\nto several objects." as N2 +(Start) .. N2 +N2 .. (Use) +@enduml +``` + +::: + +::: demo markdown title="类图" + +```md +@startuml +abstract class AbstractList +abstract AbstractCollection +interface List +interface Collection + +List <|-- AbstractList +Collection <|-- AbstractCollection + +Collection <|- List +AbstractCollection <|- AbstractList +AbstractList <|-- ArrayList + +class ArrayList { + Object[] elementData + size() +} + +enum TimeUnit { + DAYS + HOURS + MINUTES +} + +annotation SuppressWarnings + +annotation Annotation { + annotation with members + String foo() + String bar() +} +@enduml +``` + +::: + +::: demo markdown title="活动图" + +```md +@startuml + +start +:ClickServlet.handleRequest(); +:new page; +if (Page.onSecurityCheck) then (true) + :Page.onInit(); + if (isForward?) then (no) + :Process controls; + if (continue processing?) then (no) + stop + endif + + if (isPost?) then (yes) + :Page.onPost(); + else (no) + :Page.onGet(); + endif + :Page.onRender(); + endif +else (false) +endif + +if (do redirect?) then (yes) + :redirect process; +else + if (do forward?) then (yes) + :Forward request; + else (no) + :Render page template; + endif +endif + +stop + +@enduml +``` + +::: + +::: demo markdown title="组件图" + +```md +@startuml +package "Some Group" { + HTTP - [First Component] + [Another Component] +} + +node "Other Groups" { + FTP - [Second Component] + [First Component] --> FTP +} + +cloud { + [Example 1] +} + +database "MySql" { + folder "This is my folder" { + [Folder 3] + } + frame "Foo" { + [Frame 4] + } +} + +[Another Component] --> [Example 1] +[Example 1] --> [Folder 3] +[Folder 3] --> [Frame 4] + +@enduml +``` + +::: + +::: demo markdown title="状态图" + +``` md +@startuml +state start1 <> +state choice1 <> +state fork1 <> +state join2 <> +state end3 <> + +[*] --> choice1 : from start\nto choice +start1 --> choice1 : from start stereo\nto choice + +choice1 --> fork1 : from choice\nto fork +choice1 --> join2 : from choice\nto join +choice1 --> end3 : from choice\nto end stereo + +fork1 ---> State1 : from fork\nto state +fork1 --> State2 : from fork\nto state + +State2 --> join2 : from state\nto join +State1 --> [*] : from state\nto end + +join2 --> [*] : from join\nto end +@enduml +``` + +::: + +::: demo markdown title="对象图" + +```md +@startuml +object London +object Washington +object Berlin +object NewYork + +map CapitalCity { + UK *-> London + USA *--> Washington + Germany *---> Berlin +} + +NewYork --> CapitalCity::USA +@enduml +``` + +::: + +::: demo markdown title="部署图" + +```md +@startuml + +node node1 +node node2 +node node3 +node node4 +node node5 +node1 -- node2 : label1 +node1 .. node3 : label2 +node1 ~~ node4 : label3 +node1 == node5 + +@enduml +``` + +::: + +::: demo markdown title="时序图" + +```md +@startuml +scale 5 as 150 pixels + +clock clk with period 1 +binary "启用" as en +binary "读/写" as rw +binary "数据有效" as dv +concise "数据总线" as db +concise "地址总线" as addr + +@6 as :write_beg +@10 as :write_end + +@15 as :read_beg +@19 as :read_end + +@0 +en is low +db is "0x0" +addr is "0x03f" +rw is low +dv is 0 + +@:write_beg-3 + en is high +@:write_beg-2 + db is "0xDEADBEEF" +@:write_beg-1 +dv is 1 +@:write_beg +rw is high + +@:write_end +rw is low +dv is low +@:write_end+1 +rw is low +db is "0x0" +addr is "0x23" + +@12 +dv is high +@13 +db is "0xFFFF" + +@20 +en is low +dv is low +@21 +db is "0x0" + +highlight :write_beg to :write_end #Gold:写 +highlight :read_beg to :read_end #lightBlue:读 + +db@:write_beg-1 <-> @:write_end : 设置时间 +db@:write_beg-1 -> addr@:write_end+1 : 保持 +@enduml +``` + +::: + +::: demo markdown title="正则图" + +```md +@startregex +/([\s\S]+)<\/style> +@endregex +``` + +::: + +::: demo markdown title="网络图" + +```md +@startuml +nwdiag { + network dmz { + address = "210.x.x.x/24" + + web01 [address = "210.x.x.1"]; + web02 [address = "210.x.x.2"]; + } + network internal { + address = "172.x.x.x/24"; + + web01 [address = "172.x.x.1"]; + web02 [address = "172.x.x.2"]; + db01; + db02; + } +} +@enduml +``` + +::: + +::: demo markdown title="图形界面" + +```md +@startsalt +{+ +{/ 通用 | 全屏 | 行为 | 保存 } +{ +{ 图片打开模式: | ^智能模式^ } +[X] 缩放时平滑显示图片 +[X] 图片删除确认 +[ ] 显示隐藏图片 +} +[关闭] +} +@endsalt +``` + +::: + +::: demo markdown title="架构图" + +```md +@startuml +skinparam rectangle<> { + roundCorner 25 +} +sprite $bProcess jar:archimate/business-process +sprite $aService jar:archimate/application-service +sprite $aComponent jar:archimate/application-component + +rectangle "Handle claim" as HC <<$bProcess>><> #Business +rectangle "Capture Information" as CI <<$bProcess>><> #Business +rectangle "Notify\nAdditional Stakeholders" as NAS <<$bProcess>><> #Business +rectangle "Validate" as V <<$bProcess>><> #Business +rectangle "Investigate" as I <<$bProcess>><> #Business +rectangle "Pay" as P <<$bProcess>><> #Business + +HC *-down- CI +HC *-down- NAS +HC *-down- V +HC *-down- I +HC *-down- P + +CI -right->> NAS +NAS -right->> V +V -right->> I +I -right->> P + +rectangle "Scanning" as scanning <<$aService>><> #Application +rectangle "Customer admnistration" as customerAdministration <<$aService>><> #Application +rectangle "Claims admnistration" as claimsAdministration <<$aService>><> #Application +rectangle Printing <<$aService>><> #Application +rectangle Payment <<$aService>><> #Application + +scanning -up-> CI +customerAdministration -up-> CI +claimsAdministration -up-> NAS +claimsAdministration -up-> V +claimsAdministration -up-> I +Payment -up-> P + +Printing -up-> V +Printing -up-> P + +rectangle "Document\nManagement\nSystem" as DMS <<$aComponent>> #Application +rectangle "General\nCRM\nSystem" as CRM <<$aComponent>> #Application +rectangle "Home & Away\nPolicy\nAdministration" as HAPA <<$aComponent>> #Application +rectangle "Home & Away\nFinancial\nAdministration" as HFPA <<$aComponent>> #Application + +DMS .up.|> scanning +DMS .up.|> Printing +CRM .up.|> customerAdministration +HAPA .up.|> claimsAdministration +HFPA .up.|> Payment + +legend left +Example from the "Archisurance case study" (OpenGroup). +See +==== +<$bProcess> :business process +==== +<$aService> : application service +==== +<$aComponent> : application component +endlegend +@enduml +``` + +::: + +::: demo markdown title="甘特图" + +```md +@startgantt + +Project starts the 2020-12-01 + +[Task1] requires 10 days +sunday are closed + +note bottom + memo1 ... + memo2 ... + explanations1 ... + explanations2 ... +end note + +[Task2] requires 20 days +[Task2] starts 10 days after [Task1]'s end +-- Separator title -- +[M1] happens on 5 days after [Task1]'s end + + + +-- end -- +@endgantt +``` + +::: + +::: demo markdown title="思维导图" + +```md +@startmindmap +caption figure 1 +title My super title + +* <&flag>Debian +** <&globe>Ubuntu +*** Linux Mint +*** Kubuntu +*** Lubuntu +*** KDE Neon +** <&graph>LMDE +** <&pulse>SolydXK +** <&people>SteamOS +** <&star>Raspbian with a very long name +*** Raspmbc => OSMC +*** Raspyfi => Volumio + +header +My super header +endheader + +center footer My super footer + +legend right + Short + legend +endlegend +@endmindmap +``` + +::: + +::: demo markdown title="工作分解结构图" + +```md +@startwbs ++ New Job +++ Decide on Job Requirements ++++ Identity gaps ++++ Review JDs +++++ Sign-Up for courses +++++ Volunteer +++++ Reading +++- Checklist ++++- Responsibilities ++++- Location +++ CV Upload Done ++++ CV Updated +++++ Spelling & Grammar +++++ Check dates +---- Skills ++++ Recruitment sites chosen +@endwbs +``` + +::: + +::: demo markdown title="JSON" + +```md +@startjson +#highlight "lastName" +#highlight "address" / "city" +#highlight "phoneNumbers" / "0" / "number" +{ + "firstName": "John", + "lastName": "Smith", + "isAlive": true, + "age": 28, + "address": { + "streetAddress": "21 2nd Street", + "city": "New York", + "state": "NY", + "postalCode": "10021-3100" + }, + "phoneNumbers": [ + { + "type": "home", + "number": "212 555-1234" + }, + { + "type": "office", + "number": "646 555-4567" + } + ], + "children": [], + "spouse": null +} +@endjson +``` + +::: + +::: demo markdown title="YAML" + +```md +@startyaml +doe: "a deer, a female deer" +ray: "a drop of golden sun" +pi: 3.14159 +xmas: true +french-hens: 3 +calling-birds: + - huey + - dewey + - louie + - fred +xmas-fifth-day: + calling-birds: four + french-hens: 3 + golden-rings: 5 + partridges: + count: 1 + location: "a pear tree" + turtle-doves: two +@endyaml +``` + +::: diff --git a/docs/notes/theme/guide/安装与使用.md b/docs/notes/theme/guide/安装与使用.md index caaae840..fef6a3d0 100644 --- a/docs/notes/theme/guide/安装与使用.md +++ b/docs/notes/theme/guide/安装与使用.md @@ -1,6 +1,5 @@ --- title: 安装/使用 -author: pengzhanbo icon: grommet-icons:install createTime: 2024/03/04 09:50:07 permalink: /guide/quick-start/ @@ -15,8 +14,8 @@ const vuepressVersion = __VUEPRESS_VERSION__ ## 依赖环境 -- [Node.js v18.20.0+](https://nodejs.org/) -- [pnpm 8+](https://pnpm.io/zh/) 或 [Yarn 2+](https://yarnpkg.com/) +- [Node.js v20.6.0+](https://nodejs.org/) +- [npm 8+](https://www.npmjs.com/) 或 [pnpm 8+](https://pnpm.io/zh/) 或 [Yarn 2+](https://yarnpkg.com/) :::: details 怎么安装依赖环境? ::: steps diff --git a/docs/notes/theme/guide/布局插槽.md b/docs/notes/theme/guide/布局插槽.md index a2d90507..e292208f 100644 --- a/docs/notes/theme/guide/布局插槽.md +++ b/docs/notes/theme/guide/布局插槽.md @@ -1,7 +1,6 @@ --- title: 布局插槽 icon: ph:layout-duotone -author: Plume Theme createTime: 2024/06/17 16:19:43 permalink: /guide/layout-slots/ --- diff --git a/docs/notes/theme/guide/知识笔记.md b/docs/notes/theme/guide/知识笔记.md index 9a993c14..03c7488b 100644 --- a/docs/notes/theme/guide/知识笔记.md +++ b/docs/notes/theme/guide/知识笔记.md @@ -1,6 +1,5 @@ --- title: 文档/知识笔记 -author: pengzhanbo icon: teenyicons:doc-outline createTime: 2024/03/04 15:45:34 permalink: /guide/document/ diff --git a/docs/notes/theme/guide/组件/隐秘文本.md b/docs/notes/theme/guide/组件/隐秘文本.md index 6d948b33..8d070eb0 100644 --- a/docs/notes/theme/guide/组件/隐秘文本.md +++ b/docs/notes/theme/guide/组件/隐秘文本.md @@ -8,7 +8,7 @@ permalink: /guide/components/plot/ ## 概述 -使用 `` 组件显示 [“隐秘”文本](/guide/markdown/advance/#隐秘-文本) ,能够更灵活的控制行为。 +使用 `` 组件显示 [“隐秘”文本](../markdown/隐秘文本.md) ,能够更灵活的控制行为。 该组件默认不启用,你需要在 theme 配置中启用。 diff --git a/docs/notes/theme/guide/组件覆写.md b/docs/notes/theme/guide/组件覆写.md index 3a45895f..beab4cfa 100644 --- a/docs/notes/theme/guide/组件覆写.md +++ b/docs/notes/theme/guide/组件覆写.md @@ -1,7 +1,6 @@ --- title: 组件覆写 icon: carbon:cics-sit-overrides -author: Plume Theme createTime: 2024/06/17 16:20:15 permalink: /guide/component-overrides/ --- diff --git a/docs/notes/theme/guide/编写文章.md b/docs/notes/theme/guide/编写文章.md index d66a3712..f3ce4506 100644 --- a/docs/notes/theme/guide/编写文章.md +++ b/docs/notes/theme/guide/编写文章.md @@ -1,6 +1,5 @@ --- title: 编写文章 -author: pengzhanbo icon: mingcute:edit-4-line createTime: 2024/03/04 10:06:06 permalink: /guide/write/ diff --git a/docs/notes/theme/guide/自定义样式.md b/docs/notes/theme/guide/自定义样式.md index f38bae78..4280d602 100644 --- a/docs/notes/theme/guide/自定义样式.md +++ b/docs/notes/theme/guide/自定义样式.md @@ -1,6 +1,5 @@ --- title: 自定义样式 -author: pengzhanbo icon: icon-park-outline:theme createTime: 2024/03/04 20:18:52 permalink: /guide/custom-style/ diff --git a/docs/notes/theme/guide/自定义首页.md b/docs/notes/theme/guide/自定义首页.md index 32231d78..0fc4b899 100644 --- a/docs/notes/theme/guide/自定义首页.md +++ b/docs/notes/theme/guide/自定义首页.md @@ -1,6 +1,5 @@ --- title: 自定义首页 -author: pengzhanbo icon: material-symbols:home-outline createTime: 2024/03/02 10:44:03 permalink: /guide/custom-home/ diff --git a/docs/notes/theme/guide/部署.md b/docs/notes/theme/guide/部署.md index 0ab84ba2..969a59eb 100644 --- a/docs/notes/theme/guide/部署.md +++ b/docs/notes/theme/guide/部署.md @@ -1,6 +1,5 @@ --- title: 部署 -author: pengzhanbo icon: material-symbols:deployed-code-outline createTime: 2024/03/20 12:38:48 permalink: /guide/deployment/ diff --git a/docs/notes/theme/guide/项目结构.md b/docs/notes/theme/guide/项目结构.md index 9dd0ad09..0bd8ab9d 100644 --- a/docs/notes/theme/guide/项目结构.md +++ b/docs/notes/theme/guide/项目结构.md @@ -97,7 +97,7 @@ export default defineClientConfig({ ### `config.ts` -为 VuePress 配置文件,你需要在这里进行一个必要的配置,比如 主题、插件、构建工具等。 +为 VuePress 配置文件,你需要在这里进行一些必要的配置,比如 主题、插件、构建工具等。 ::: code-tabs @tab .vuepress/config.ts diff --git a/docs/package.json b/docs/package.json index 40482cd9..66e45b91 100644 --- a/docs/package.json +++ b/docs/package.json @@ -19,6 +19,9 @@ "echarts": "^5.6.0", "flowchart.ts": "^3.0.1", "http-server": "^14.1.1", + "markmap-lib": "^0.18.11", + "markmap-toolbar": "^0.18.10", + "markmap-view": "^0.18.10", "mermaid": "^11.4.1", "sass-embedded": "^1.85.0", "swiper": "^11.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d67925bc..5688b437 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -241,6 +241,15 @@ importers: http-server: specifier: ^14.1.1 version: 14.1.1 + markmap-lib: + specifier: ^0.18.11 + version: 0.18.11(markmap-common@0.18.9) + markmap-toolbar: + specifier: ^0.18.10 + version: 0.18.10(markmap-common@0.18.9) + markmap-view: + specifier: ^0.18.10 + version: 0.18.10(markmap-common@0.18.9) mermaid: specifier: ^11.4.1 version: 11.4.1 @@ -569,7 +578,7 @@ importers: version: 2.0.0-rc.20(@vuepress/bundler-vite@2.0.0-rc.20(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.85.0)(sass@1.85.0)(stylus@0.64.0)(typescript@5.7.3)(yaml@2.7.0))(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) vuepress-plugin-md-enhance: specifier: 'catalog:' - version: 2.0.0-rc.72(chart.js@4.4.8)(echarts@5.6.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(mermaid@11.4.1)(sass-embedded@1.85.0)(sass-loader@16.0.5(sass-embedded@1.85.0)(sass@1.85.0))(sass@1.85.0)(typescript@5.7.3)(vuepress@2.0.0-rc.20(@vuepress/bundler-vite@2.0.0-rc.20(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.85.0)(sass@1.85.0)(stylus@0.64.0)(typescript@5.7.3)(yaml@2.7.0))(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))) + version: 2.0.0-rc.72(chart.js@4.4.8)(echarts@5.6.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(markmap-lib@0.18.11(markmap-common@0.18.9))(markmap-toolbar@0.18.10(markmap-common@0.18.9))(markmap-view@0.18.10(markmap-common@0.18.9))(mermaid@11.4.1)(sass-embedded@1.85.0)(sass-loader@16.0.5(sass-embedded@1.85.0)(sass@1.85.0))(sass@1.85.0)(typescript@5.7.3)(vuepress@2.0.0-rc.20(@vuepress/bundler-vite@2.0.0-rc.20(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.85.0)(sass@1.85.0)(stylus@0.64.0)(typescript@5.7.3)(yaml@2.7.0))(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))) vuepress-plugin-md-power: specifier: workspace:* version: link:../plugins/plugin-md-power @@ -728,6 +737,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/runtime@7.26.9': + resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} @@ -1128,6 +1141,9 @@ packages: '@floating-ui/utils@0.2.8': resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@gera2ld/jsx-dom@2.2.2': + resolution: {integrity: sha512-EOqf31IATRE6zS1W1EoWmXZhGfLAoO9FIlwTtHduSrBdud4npYBxYAkv8dZ5hudDPwJeeSjn40kbCL4wAzr8dA==} + '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -2274,6 +2290,9 @@ packages: '@volar/source-map@2.4.11': resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} + '@vscode/markdown-it-katex@1.1.1': + resolution: {integrity: sha512-3KTlbsRBPJQLE2YmLL7K6nunTlU+W9T5+FjfNdWuIUKgxSS6HWLQHaO3L4MkJi7z7MpIPpY+g4N+cWNBPE/MSA==} + '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} @@ -4031,6 +4050,10 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + highlight.js@11.11.1: + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} + hls.js@1.5.20: resolution: {integrity: sha512-uu0VXUK52JhihhnN/MVVo1lvqNNuhoxkonqgO3IpjvQiGpJBdIXMGkofjQb/j9zvV7a1SW8U9g1FslWx/1HOiQ==} @@ -4616,6 +4639,18 @@ packages: markdown-it-emoji@3.0.0: resolution: {integrity: sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==} + markdown-it-ins@4.0.0: + resolution: {integrity: sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew==} + + markdown-it-mark@4.0.0: + resolution: {integrity: sha512-YLhzaOsU9THO/cal0lUjfMjrqSMPjjyjChYM7oyj4DnyaXEzA8gnW6cVJeyCrCVeyesrY2PlEdUYJSPFYL4Nkg==} + + markdown-it-sub@2.0.0: + resolution: {integrity: sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==} + + markdown-it-sup@2.0.0: + resolution: {integrity: sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==} + markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true @@ -4628,6 +4663,29 @@ packages: engines: {node: '>= 18'} hasBin: true + markmap-common@0.18.9: + resolution: {integrity: sha512-MV2HQO7IGIm3jWEJXSG8vmdpqf4WIDXcEyAEN52lrWR1qD53Zg5l81JwjXoZ2l0rY5mofKYqUFlmdM2fqTGMVg==} + + markmap-html-parser@0.18.11: + resolution: {integrity: sha512-+kC5C4sCGntGUhGvTa5VIb5rtM75cSy/VCy3tzZoNAcn2qZGdgYvljN0WvjsOzrEzp+V6XKgwzO0u2TdzNAiOg==} + peerDependencies: + markmap-common: '*' + + markmap-lib@0.18.11: + resolution: {integrity: sha512-2mBWrWRdK61W5//FlJ0zN20vi+/oVlPtnydyO3xR+0E2bhiTLNPjFwRi0h2RrdT/hUiiHV98s9iRckwXEhDtJg==} + peerDependencies: + markmap-common: '*' + + markmap-toolbar@0.18.10: + resolution: {integrity: sha512-1/ju0NfI0iUGYYTu1FZPdrNcGZGt4oWMNqhF8CJhImvxyM6DnT/RE1zFtTknNLqo077Aif6wZ460IDqzFKrghw==} + peerDependencies: + markmap-common: '*' + + markmap-view@0.18.10: + resolution: {integrity: sha512-2Wi/HpOHwhDjw+Lj6/CoZzWtxvAF2ymkjCpexJKC1uYQERqMhja8Rr5d5hww7oVAith80Bsr6h+ZIYQGgxnhdQ==} + peerDependencies: + markmap-common: '*' + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -4957,6 +5015,9 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} + npm2url@0.2.4: + resolution: {integrity: sha512-arzGp/hQz0Ey+ZGhF64XVH7Xqwd+1Q/po5uGiBbzph8ebX6T0uvt3N7c1nBHQNsQVykQgHhqoRTX7JFcHecGuw==} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -5278,6 +5339,10 @@ packages: resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -5339,6 +5404,9 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} @@ -6792,6 +6860,10 @@ snapshots: dependencies: '@babel/types': 7.26.3 + '@babel/runtime@7.26.9': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 @@ -7177,6 +7249,10 @@ snapshots: '@floating-ui/utils@0.2.8': {} + '@gera2ld/jsx-dom@2.2.2': + dependencies: + '@babel/runtime': 7.26.9 + '@hapi/hoek@9.3.0': {} '@hapi/topo@5.1.0': @@ -8326,6 +8402,10 @@ snapshots: '@volar/source-map@2.4.11': {} + '@vscode/markdown-it-katex@1.1.1': + dependencies: + katex: 0.16.21 + '@vue/compiler-core@3.5.13': dependencies: '@babel/parser': 7.26.3 @@ -10543,6 +10623,8 @@ snapshots: he@1.2.0: {} + highlight.js@11.11.1: {} + hls.js@1.5.20: {} homedir-polyfill@1.0.3: @@ -11115,6 +11197,14 @@ snapshots: markdown-it-emoji@3.0.0: {} + markdown-it-ins@4.0.0: {} + + markdown-it-mark@4.0.0: {} + + markdown-it-sub@2.0.0: {} + + markdown-it-sup@2.0.0: {} + markdown-it@14.1.0: dependencies: argparse: 2.0.1 @@ -11128,6 +11218,47 @@ snapshots: marked@13.0.3: {} + markmap-common@0.18.9: + dependencies: + '@babel/runtime': 7.26.9 + '@gera2ld/jsx-dom': 2.2.2 + npm2url: 0.2.4 + + markmap-html-parser@0.18.11(markmap-common@0.18.9): + dependencies: + '@babel/runtime': 7.26.9 + cheerio: 1.0.0 + markmap-common: 0.18.9 + + markmap-lib@0.18.11(markmap-common@0.18.9): + dependencies: + '@babel/runtime': 7.26.9 + '@vscode/markdown-it-katex': 1.1.1 + highlight.js: 11.11.1 + katex: 0.16.21 + markdown-it: 14.1.0 + markdown-it-ins: 4.0.0 + markdown-it-mark: 4.0.0 + markdown-it-sub: 2.0.0 + markdown-it-sup: 2.0.0 + markmap-common: 0.18.9 + markmap-html-parser: 0.18.11(markmap-common@0.18.9) + markmap-view: 0.18.10(markmap-common@0.18.9) + prismjs: 1.29.0 + yaml: 2.7.0 + + markmap-toolbar@0.18.10(markmap-common@0.18.9): + dependencies: + '@babel/runtime': 7.26.9 + '@gera2ld/jsx-dom': 2.2.2 + markmap-common: 0.18.9 + + markmap-view@0.18.10(markmap-common@0.18.9): + dependencies: + '@babel/runtime': 7.26.9 + d3: 7.9.0 + markmap-common: 0.18.9 + math-intrinsics@1.1.0: {} mathjax-full@3.2.2: @@ -11631,6 +11762,8 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 + npm2url@0.2.4: {} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -11939,6 +12072,8 @@ snapshots: dependencies: parse-ms: 4.0.0 + prismjs@1.29.0: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -12004,6 +12139,8 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.12.1 + regenerator-runtime@0.14.1: {} + regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 @@ -13046,7 +13183,7 @@ snapshots: optionalDependencies: typescript: 5.7.3 - vuepress-plugin-md-enhance@2.0.0-rc.72(chart.js@4.4.8)(echarts@5.6.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(mermaid@11.4.1)(sass-embedded@1.85.0)(sass-loader@16.0.5(sass-embedded@1.85.0)(sass@1.85.0))(sass@1.85.0)(typescript@5.7.3)(vuepress@2.0.0-rc.20(@vuepress/bundler-vite@2.0.0-rc.20(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.85.0)(sass@1.85.0)(stylus@0.64.0)(typescript@5.7.3)(yaml@2.7.0))(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))): + vuepress-plugin-md-enhance@2.0.0-rc.72(chart.js@4.4.8)(echarts@5.6.0)(flowchart.ts@3.0.1)(markdown-it@14.1.0)(markmap-lib@0.18.11(markmap-common@0.18.9))(markmap-toolbar@0.18.10(markmap-common@0.18.9))(markmap-view@0.18.10(markmap-common@0.18.9))(mermaid@11.4.1)(sass-embedded@1.85.0)(sass-loader@16.0.5(sass-embedded@1.85.0)(sass@1.85.0))(sass@1.85.0)(typescript@5.7.3)(vuepress@2.0.0-rc.20(@vuepress/bundler-vite@2.0.0-rc.20(@types/node@22.13.5)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.85.0)(sass@1.85.0)(stylus@0.64.0)(typescript@5.7.3)(yaml@2.7.0))(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))): dependencies: '@mdit/plugin-container': 0.16.0(markdown-it@14.1.0) '@mdit/plugin-demo': 0.16.0(markdown-it@14.1.0) @@ -13065,6 +13202,9 @@ snapshots: chart.js: 4.4.8 echarts: 5.6.0 flowchart.ts: 3.0.1 + markmap-lib: 0.18.11(markmap-common@0.18.9) + markmap-toolbar: 0.18.10(markmap-common@0.18.9) + markmap-view: 0.18.10(markmap-common@0.18.9) mermaid: 11.4.1 sass: 1.85.0 sass-embedded: 1.85.0