@md-plugins/quasar-app-extension-q-press 0.1.0-beta.2 → 0.1.0-beta.21

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 (253) hide show
  1. package/README.md +20 -15
  2. package/dist/index.js +41 -7
  3. package/dist/install.js +7 -5
  4. package/dist/q-press-globals.d.ts +49 -0
  5. package/dist/templates/init/src/_q-press/api/components/MarkdownCode.json +2 -2
  6. package/dist/templates/init/src/_q-press/api/components/MarkdownCodepen.json +6 -9
  7. package/dist/templates/init/src/_q-press/api/components/MarkdownExample.json +27 -2
  8. package/dist/templates/init/src/_q-press/components/MarkdownApi.vue +129 -84
  9. package/dist/templates/init/src/_q-press/components/MarkdownCardLink.vue +1 -1
  10. package/dist/templates/init/src/_q-press/components/MarkdownCardTitle.vue +1 -1
  11. package/dist/templates/init/src/_q-press/components/MarkdownCode.vue +71 -3
  12. package/dist/templates/init/src/_q-press/components/MarkdownCodepen.vue +316 -59
  13. package/dist/templates/init/src/_q-press/components/MarkdownCopyButton.vue +1 -1
  14. package/dist/templates/init/src/_q-press/components/MarkdownExample.vue +54 -19
  15. package/dist/templates/init/src/_q-press/components/MarkdownLink.vue +5 -5
  16. package/dist/templates/init/src/_q-press/components/MarkdownMermaid.vue +123 -0
  17. package/dist/templates/init/src/_q-press/components/MarkdownTree.vue +2 -2
  18. package/dist/templates/init/src/_q-press/components/markdown-utils.ts +27 -3
  19. package/dist/templates/init/src/_q-press/css/app.scss +38 -26
  20. package/dist/templates/init/src/_q-press/css/code-theme.scss +634 -0
  21. package/dist/templates/init/src/_q-press/css/themes/default.scss +1 -1
  22. package/dist/templates/init/src/_q-press/css/themes/evergreen.scss +69 -0
  23. package/dist/templates/init/src/_q-press/css/themes/mystic.scss +1 -1
  24. package/dist/templates/init/src/_q-press/css/themes/newspaper.scss +1 -1
  25. package/dist/templates/init/src/_q-press/css/themes/sunrise.scss +1 -1
  26. package/dist/templates/init/src/_q-press/css/themes/tawny.scss +1 -1
  27. package/dist/templates/init/src/_q-press/layouts/MarkdownDrawerSidebar.vue +1 -1
  28. package/dist/templates/init/src/_q-press/layouts/MarkdownDrawerToc.vue +1 -1
  29. package/dist/templates/init/src/_q-press/layouts/MarkdownHeader.vue +1 -1
  30. package/dist/templates/init/src/_q-press/layouts/MarkdownLayout.vue +2 -2
  31. package/dist/templates/init/src/_q-press/layouts/MarkdownPage.vue +4 -3
  32. package/dist/templates/init/src/_q-press/layouts/MarkdownSearch.vue +1 -1
  33. package/dist/templates/init/src/_q-press/stores/markdown.ts +1 -2
  34. package/dist/templates/init/src/components/LandingPage/LandingPage.vue +15 -1
  35. package/dist/templates/init/src/components/QPressThemeGallery.vue +336 -0
  36. package/dist/templates/init/src/components/page-parts/releases/GitHubReleases.vue +121 -0
  37. package/dist/templates/init/src/components/page-parts/releases/PackageReleases.vue +191 -0
  38. package/dist/templates/init/src/components/page-parts/releases/md-table-parser.ts +52 -0
  39. package/dist/templates/init/src/components/page-parts/releases/sanitize.ts +132 -0
  40. package/dist/templates/init/src/markdown/__elements.md +8 -8
  41. package/dist/templates/init/src/markdown/__elements2.md +4 -4
  42. package/dist/templates/init/src/markdown/faq/best-practices.md +27 -0
  43. package/dist/templates/init/src/markdown/faq/general.md +27 -0
  44. package/dist/templates/init/src/markdown/faq/troubleshooting.md +27 -0
  45. package/dist/templates/init/src/markdown/getting-started/introduction.md +7 -5
  46. package/dist/templates/init/src/markdown/md-plugins/blockquote/overview.md +3 -1
  47. package/dist/templates/init/src/markdown/md-plugins/codeblocks/advanced.md +19 -15
  48. package/dist/templates/init/src/markdown/md-plugins/codeblocks/overview.md +45 -8
  49. package/dist/templates/init/src/markdown/md-plugins/containers/overview.md +3 -1
  50. package/dist/templates/init/src/markdown/md-plugins/frontmatter/overview.md +3 -1
  51. package/dist/templates/init/src/markdown/md-plugins/headers/overview.md +3 -1
  52. package/dist/templates/init/src/markdown/md-plugins/image/overview.md +3 -1
  53. package/dist/templates/init/src/markdown/md-plugins/imports/overview.md +3 -1
  54. package/dist/templates/init/src/markdown/md-plugins/inline-code/overview.md +3 -1
  55. package/dist/templates/init/src/markdown/md-plugins/link/advanced.md +2 -2
  56. package/dist/templates/init/src/markdown/md-plugins/link/overview.md +6 -4
  57. package/dist/templates/init/src/markdown/md-plugins/mermaid/advanced.md +69 -0
  58. package/dist/templates/init/src/markdown/md-plugins/mermaid/overview.md +73 -0
  59. package/dist/templates/init/src/markdown/md-plugins/shared/overview.md +28 -13
  60. package/dist/templates/init/src/markdown/md-plugins/table/overview.md +3 -1
  61. package/dist/templates/init/src/markdown/md-plugins/title/overview.md +3 -1
  62. package/dist/templates/init/src/markdown/other/contact.md +37 -0
  63. package/dist/templates/init/src/markdown/other/contributing/bugs-and-feature-requests.md +33 -0
  64. package/dist/templates/init/src/markdown/other/contributing/call-to-action.md +25 -0
  65. package/dist/templates/init/src/markdown/other/contributing/documentation.md +31 -0
  66. package/dist/templates/init/src/markdown/other/contributing/overview.md +41 -0
  67. package/dist/templates/init/src/markdown/other/contributing/packages.md +28 -0
  68. package/dist/templates/init/src/markdown/other/contributing/sponsor.md +23 -0
  69. package/dist/templates/init/src/markdown/other/faq.md +179 -0
  70. package/dist/templates/init/src/markdown/other/releases.md +11 -0
  71. package/dist/templates/init/src/markdown/other/upgrade-guide.md +165 -0
  72. package/dist/templates/init/src/markdown/quasar-app-extensions/qpress/advanced.md +11 -3
  73. package/dist/templates/init/src/markdown/quasar-app-extensions/qpress/components.md +25 -29
  74. package/dist/templates/init/src/markdown/quasar-app-extensions/qpress/overview.md +20 -20
  75. package/dist/templates/init/src/markdown/quasar-app-extensions/qpress/site-config.md +17 -3
  76. package/dist/templates/init/src/markdown/quasar-app-extensions/qpress/themes.md +101 -9
  77. package/dist/templates/init/src/markdown/quasar-app-extensions/vite-md-plugin-app-ext/advanced.md +158 -0
  78. package/dist/templates/init/src/markdown/quasar-app-extensions/vite-md-plugin-app-ext/overview.md +1 -1
  79. package/dist/templates/init/src/markdown/vite-plugins/vite-examples-plugin/advanced.md +8 -3
  80. package/dist/templates/init/src/markdown/vite-plugins/vite-examples-plugin/overview.md +19 -5
  81. package/dist/templates/init/src/markdown/vite-plugins/vite-md-plugin/advanced.md +84 -54
  82. package/dist/templates/init/src/markdown/vite-plugins/vite-md-plugin/overview.md +19 -3
  83. package/dist/templates/init/src/siteConfig/index.ts +52 -23
  84. package/dist/templates/update/src/_q-press/api/components/MarkdownCode.json +2 -2
  85. package/dist/templates/update/src/_q-press/api/components/MarkdownCodepen.json +6 -9
  86. package/dist/templates/update/src/_q-press/api/components/MarkdownExample.json +27 -2
  87. package/dist/templates/update/src/_q-press/components/MarkdownApi.vue +129 -84
  88. package/dist/templates/update/src/_q-press/components/MarkdownCardLink.vue +1 -1
  89. package/dist/templates/update/src/_q-press/components/MarkdownCardTitle.vue +1 -1
  90. package/dist/templates/update/src/_q-press/components/MarkdownCode.vue +71 -3
  91. package/dist/templates/update/src/_q-press/components/MarkdownCodepen.vue +316 -59
  92. package/dist/templates/update/src/_q-press/components/MarkdownCopyButton.vue +1 -1
  93. package/dist/templates/update/src/_q-press/components/MarkdownExample.vue +54 -19
  94. package/dist/templates/update/src/_q-press/components/MarkdownLink.vue +5 -5
  95. package/dist/templates/update/src/_q-press/components/MarkdownMermaid.vue +123 -0
  96. package/dist/templates/update/src/_q-press/components/MarkdownTree.vue +2 -2
  97. package/dist/templates/update/src/_q-press/components/markdown-utils.ts +27 -3
  98. package/dist/templates/update/src/_q-press/css/app.scss +38 -26
  99. package/dist/templates/update/src/_q-press/css/code-theme.scss +634 -0
  100. package/dist/templates/update/src/_q-press/css/themes/default.scss +1 -1
  101. package/dist/templates/update/src/_q-press/css/themes/evergreen.scss +69 -0
  102. package/dist/templates/update/src/_q-press/css/themes/mystic.scss +1 -1
  103. package/dist/templates/update/src/_q-press/css/themes/newspaper.scss +1 -1
  104. package/dist/templates/update/src/_q-press/css/themes/sunrise.scss +1 -1
  105. package/dist/templates/update/src/_q-press/css/themes/tawny.scss +1 -1
  106. package/dist/templates/update/src/_q-press/layouts/MarkdownDrawerSidebar.vue +1 -1
  107. package/dist/templates/update/src/_q-press/layouts/MarkdownDrawerToc.vue +1 -1
  108. package/dist/templates/update/src/_q-press/layouts/MarkdownHeader.vue +1 -1
  109. package/dist/templates/update/src/_q-press/layouts/MarkdownLayout.vue +2 -2
  110. package/dist/templates/update/src/_q-press/layouts/MarkdownPage.vue +4 -3
  111. package/dist/templates/update/src/_q-press/layouts/MarkdownSearch.vue +1 -1
  112. package/dist/templates/update/src/_q-press/stores/markdown.ts +1 -2
  113. package/package.json +22 -21
  114. package/src/index.ts +80 -11
  115. package/src/install.ts +10 -9
  116. package/src/q-press-globals.d.ts +49 -0
  117. package/src/templates/init/src/_q-press/api/components/MarkdownCode.json +2 -2
  118. package/src/templates/init/src/_q-press/api/components/MarkdownCodepen.json +6 -9
  119. package/src/templates/init/src/_q-press/api/components/MarkdownExample.json +27 -2
  120. package/src/templates/init/src/_q-press/components/MarkdownApi.vue +129 -84
  121. package/src/templates/init/src/_q-press/components/MarkdownCardLink.vue +1 -1
  122. package/src/templates/init/src/_q-press/components/MarkdownCardTitle.vue +1 -1
  123. package/src/templates/init/src/_q-press/components/MarkdownCode.vue +71 -3
  124. package/src/templates/init/src/_q-press/components/MarkdownCodepen.vue +316 -59
  125. package/src/templates/init/src/_q-press/components/MarkdownCopyButton.vue +1 -1
  126. package/src/templates/init/src/_q-press/components/MarkdownExample.vue +54 -19
  127. package/src/templates/init/src/_q-press/components/MarkdownLink.vue +5 -5
  128. package/src/templates/init/src/_q-press/components/MarkdownMermaid.vue +123 -0
  129. package/src/templates/init/src/_q-press/components/MarkdownTree.vue +2 -2
  130. package/src/templates/init/src/_q-press/components/markdown-utils.ts +27 -3
  131. package/src/templates/init/src/_q-press/css/app.scss +38 -26
  132. package/src/templates/init/src/_q-press/css/code-theme.scss +634 -0
  133. package/src/templates/init/src/_q-press/css/themes/default.scss +1 -1
  134. package/src/templates/init/src/_q-press/css/themes/evergreen.scss +69 -0
  135. package/src/templates/init/src/_q-press/css/themes/mystic.scss +1 -1
  136. package/src/templates/init/src/_q-press/css/themes/newspaper.scss +1 -1
  137. package/src/templates/init/src/_q-press/css/themes/sunrise.scss +1 -1
  138. package/src/templates/init/src/_q-press/css/themes/tawny.scss +1 -1
  139. package/src/templates/init/src/_q-press/layouts/MarkdownDrawerSidebar.vue +1 -1
  140. package/src/templates/init/src/_q-press/layouts/MarkdownDrawerToc.vue +1 -1
  141. package/src/templates/init/src/_q-press/layouts/MarkdownHeader.vue +1 -1
  142. package/src/templates/init/src/_q-press/layouts/MarkdownLayout.vue +2 -2
  143. package/src/templates/init/src/_q-press/layouts/MarkdownPage.vue +4 -3
  144. package/src/templates/init/src/_q-press/layouts/MarkdownSearch.vue +1 -1
  145. package/src/templates/init/src/_q-press/stores/markdown.ts +1 -2
  146. package/src/templates/init/src/components/LandingPage/LandingPage.vue +15 -1
  147. package/src/templates/init/src/components/QPressThemeGallery.vue +336 -0
  148. package/src/templates/init/src/components/page-parts/releases/GitHubReleases.vue +121 -0
  149. package/src/templates/init/src/components/page-parts/releases/PackageReleases.vue +191 -0
  150. package/src/templates/init/src/components/page-parts/releases/md-table-parser.ts +52 -0
  151. package/src/templates/init/src/components/page-parts/releases/sanitize.ts +132 -0
  152. package/src/templates/init/src/markdown/__elements.md +8 -8
  153. package/src/templates/init/src/markdown/__elements2.md +4 -4
  154. package/src/templates/init/src/markdown/faq/best-practices.md +27 -0
  155. package/src/templates/init/src/markdown/faq/general.md +27 -0
  156. package/src/templates/init/src/markdown/faq/troubleshooting.md +27 -0
  157. package/src/templates/init/src/markdown/getting-started/introduction.md +7 -5
  158. package/src/templates/init/src/markdown/md-plugins/blockquote/overview.md +3 -1
  159. package/src/templates/init/src/markdown/md-plugins/codeblocks/advanced.md +19 -15
  160. package/src/templates/init/src/markdown/md-plugins/codeblocks/overview.md +45 -8
  161. package/src/templates/init/src/markdown/md-plugins/containers/overview.md +3 -1
  162. package/src/templates/init/src/markdown/md-plugins/frontmatter/overview.md +3 -1
  163. package/src/templates/init/src/markdown/md-plugins/headers/overview.md +3 -1
  164. package/src/templates/init/src/markdown/md-plugins/image/overview.md +3 -1
  165. package/src/templates/init/src/markdown/md-plugins/imports/overview.md +3 -1
  166. package/src/templates/init/src/markdown/md-plugins/inline-code/overview.md +3 -1
  167. package/src/templates/init/src/markdown/md-plugins/link/advanced.md +2 -2
  168. package/src/templates/init/src/markdown/md-plugins/link/overview.md +6 -4
  169. package/src/templates/init/src/markdown/md-plugins/mermaid/advanced.md +69 -0
  170. package/src/templates/init/src/markdown/md-plugins/mermaid/overview.md +73 -0
  171. package/src/templates/init/src/markdown/md-plugins/shared/overview.md +28 -13
  172. package/src/templates/init/src/markdown/md-plugins/table/overview.md +3 -1
  173. package/src/templates/init/src/markdown/md-plugins/title/overview.md +3 -1
  174. package/src/templates/init/src/markdown/other/contact.md +37 -0
  175. package/src/templates/init/src/markdown/other/contributing/bugs-and-feature-requests.md +33 -0
  176. package/src/templates/init/src/markdown/other/contributing/call-to-action.md +25 -0
  177. package/src/templates/init/src/markdown/other/contributing/documentation.md +31 -0
  178. package/src/templates/init/src/markdown/other/contributing/overview.md +41 -0
  179. package/src/templates/init/src/markdown/other/contributing/packages.md +28 -0
  180. package/src/templates/init/src/markdown/other/contributing/sponsor.md +23 -0
  181. package/src/templates/init/src/markdown/other/faq.md +179 -0
  182. package/src/templates/init/src/markdown/other/releases.md +11 -0
  183. package/src/templates/init/src/markdown/other/upgrade-guide.md +165 -0
  184. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/advanced.md +11 -3
  185. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/components.md +25 -29
  186. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/overview.md +20 -20
  187. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/site-config.md +17 -3
  188. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/themes.md +101 -9
  189. package/src/templates/init/src/markdown/quasar-app-extensions/vite-md-plugin-app-ext/advanced.md +158 -0
  190. package/src/templates/init/src/markdown/quasar-app-extensions/vite-md-plugin-app-ext/overview.md +1 -1
  191. package/src/templates/init/src/markdown/vite-plugins/vite-examples-plugin/advanced.md +8 -3
  192. package/src/templates/init/src/markdown/vite-plugins/vite-examples-plugin/overview.md +19 -5
  193. package/src/templates/init/src/markdown/vite-plugins/vite-md-plugin/advanced.md +84 -54
  194. package/src/templates/init/src/markdown/vite-plugins/vite-md-plugin/overview.md +19 -3
  195. package/src/templates/init/src/siteConfig/index.ts +52 -23
  196. package/src/templates/update/src/_q-press/api/components/MarkdownCode.json +2 -2
  197. package/src/templates/update/src/_q-press/api/components/MarkdownCodepen.json +6 -9
  198. package/src/templates/update/src/_q-press/api/components/MarkdownExample.json +27 -2
  199. package/src/templates/update/src/_q-press/components/MarkdownApi.vue +129 -84
  200. package/src/templates/update/src/_q-press/components/MarkdownCardLink.vue +1 -1
  201. package/src/templates/update/src/_q-press/components/MarkdownCardTitle.vue +1 -1
  202. package/src/templates/update/src/_q-press/components/MarkdownCode.vue +71 -3
  203. package/src/templates/update/src/_q-press/components/MarkdownCodepen.vue +316 -59
  204. package/src/templates/update/src/_q-press/components/MarkdownCopyButton.vue +1 -1
  205. package/src/templates/update/src/_q-press/components/MarkdownExample.vue +54 -19
  206. package/src/templates/update/src/_q-press/components/MarkdownLink.vue +5 -5
  207. package/src/templates/update/src/_q-press/components/MarkdownMermaid.vue +123 -0
  208. package/src/templates/update/src/_q-press/components/MarkdownTree.vue +2 -2
  209. package/src/templates/update/src/_q-press/components/markdown-utils.ts +27 -3
  210. package/src/templates/update/src/_q-press/css/app.scss +38 -26
  211. package/src/templates/update/src/_q-press/css/code-theme.scss +634 -0
  212. package/src/templates/update/src/_q-press/css/themes/default.scss +1 -1
  213. package/src/templates/update/src/_q-press/css/themes/evergreen.scss +69 -0
  214. package/src/templates/update/src/_q-press/css/themes/mystic.scss +1 -1
  215. package/src/templates/update/src/_q-press/css/themes/newspaper.scss +1 -1
  216. package/src/templates/update/src/_q-press/css/themes/sunrise.scss +1 -1
  217. package/src/templates/update/src/_q-press/css/themes/tawny.scss +1 -1
  218. package/src/templates/update/src/_q-press/layouts/MarkdownDrawerSidebar.vue +1 -1
  219. package/src/templates/update/src/_q-press/layouts/MarkdownDrawerToc.vue +1 -1
  220. package/src/templates/update/src/_q-press/layouts/MarkdownHeader.vue +1 -1
  221. package/src/templates/update/src/_q-press/layouts/MarkdownLayout.vue +2 -2
  222. package/src/templates/update/src/_q-press/layouts/MarkdownPage.vue +4 -3
  223. package/src/templates/update/src/_q-press/layouts/MarkdownSearch.vue +1 -1
  224. package/src/templates/update/src/_q-press/stores/markdown.ts +1 -2
  225. package/tsconfig.json +1 -1
  226. package/dist/templates/init/src/_q-press/api/components/MarkdownCodePrism.json +0 -29
  227. package/dist/templates/init/src/_q-press/components/MarkdownCodePrism.ts +0 -36
  228. package/dist/templates/init/src/_q-press/css/prism-theme.scss +0 -298
  229. package/dist/templates/init/src/markdown/guides/contributing.md +0 -101
  230. package/dist/templates/init/src/markdown/guides/faq.md +0 -115
  231. package/dist/templates/init/src/markdown/guides/release-notes.md +0 -0
  232. package/dist/templates/init/src/markdown/guides/style-guide.md +0 -0
  233. package/dist/templates/init/src/markdown/guides/upgrade-guide.md +0 -92
  234. package/dist/templates/init/src/markdown/other/release-notes.md +0 -8
  235. package/dist/templates/init/src/q-press.globals.d.ts +0 -36
  236. package/dist/templates/update/src/_q-press/api/components/MarkdownCodePrism.json +0 -29
  237. package/dist/templates/update/src/_q-press/components/MarkdownCodePrism.ts +0 -36
  238. package/dist/templates/update/src/_q-press/css/prism-theme.scss +0 -298
  239. package/dist/templates/update/src/q-press.globals.d.ts +0 -36
  240. package/src/templates/init/src/_q-press/api/components/MarkdownCodePrism.json +0 -29
  241. package/src/templates/init/src/_q-press/components/MarkdownCodePrism.ts +0 -36
  242. package/src/templates/init/src/_q-press/css/prism-theme.scss +0 -298
  243. package/src/templates/init/src/markdown/guides/contributing.md +0 -101
  244. package/src/templates/init/src/markdown/guides/faq.md +0 -115
  245. package/src/templates/init/src/markdown/guides/release-notes.md +0 -0
  246. package/src/templates/init/src/markdown/guides/style-guide.md +0 -0
  247. package/src/templates/init/src/markdown/guides/upgrade-guide.md +0 -92
  248. package/src/templates/init/src/markdown/other/release-notes.md +0 -8
  249. package/src/templates/init/src/q-press.globals.d.ts +0 -36
  250. package/src/templates/update/src/_q-press/api/components/MarkdownCodePrism.json +0 -29
  251. package/src/templates/update/src/_q-press/components/MarkdownCodePrism.ts +0 -36
  252. package/src/templates/update/src/_q-press/css/prism-theme.scss +0 -298
  253. package/src/templates/update/src/q-press.globals.d.ts +0 -36
@@ -12,6 +12,7 @@ The Codeblocks Plugin is a powerful tool that enhances the standard code block f
12
12
  ## Key Features
13
13
 
14
14
  - **Syntax Highlighting**: Automatically highlight code syntax for various programming languages.
15
+ - **TwoSlash Hovers**: Opt in to TypeScript-powered hover and query output for richer examples.
15
16
  - **Line Numbers**: Display line numbers alongside your code blocks for better readability.
16
17
  - **Line Highlighting**: Highlight specific lines of code for emphasis.
17
18
  - **Add/Remove Lines**: Highlight add or remove lines of code with ease.
@@ -65,6 +66,36 @@ console.log('Hello, world!')
65
66
  ```
66
67
  ````
67
68
 
69
+ ### Code Block with TwoSlash
70
+
71
+ Add the `twoslash` attribute to TypeScript or JavaScript examples when you want inferred type information, compiler diagnostics, or query output. Hover an identifier in the example below to see the type tooltip.
72
+
73
+ ```ts [twoslash]
74
+ const count = 1
75
+ const label = count.toFixed(0)
76
+ ```
77
+
78
+ ````markup
79
+ ```ts [twoslash]
80
+ const count = 1
81
+ const label = count.toFixed(0)
82
+ ```
83
+ ````
84
+
85
+ If you add a `// ^?` query marker, TwoSlash renders that query result persistently below the matching expression. That is useful for teaching types directly in the page, while normal identifier details remain hover-based.
86
+
87
+ ```ts [twoslash]
88
+ const selectedIcon = 'event' as const
89
+ // ^?
90
+ ```
91
+
92
+ ````markup
93
+ ```ts [twoslash]
94
+ const selectedIcon = 'event' as const
95
+ // ^?
96
+ ```
97
+ ````
98
+
68
99
  ### Code Block with Restricted Height
69
100
 
70
101
  ```js [maxheight=300px]
@@ -482,6 +513,8 @@ Look for the `+` and `-` on individual lines at the far-left.
482
513
  ```tabs
483
514
  <<| bash pnpm |>>
484
515
  pnpm add @md-plugins/md-plugin-codeblocks
516
+ <<| bash bun |>>
517
+ bun add @md-plugins/md-plugin-codeblocks
485
518
  <<| bash yarn |>>
486
519
  yarn add @md-plugins/md-plugin-codeblocks
487
520
  <<| bash npm |>>
@@ -492,6 +525,8 @@ npm install @md-plugins/md-plugin-codeblocks
492
525
  ```tabs
493
526
  <<| bash pnpm |>>
494
527
  pnpm add @md-plugins/md-plugin-codeblocks
528
+ <<| bash bun |>>
529
+ bun add @md-plugins/md-plugin-codeblocks
495
530
  <<| bash yarn |>>
496
531
  yarn add @md-plugins/md-plugin-codeblocks
497
532
  <<| bash npm |>>
@@ -597,11 +632,13 @@ The official NPM name is `@md-plugins/md-plugin-codeblocks`.
597
632
 
598
633
  ## Installation
599
634
 
600
- You can install the Codeblocks plugin using npm, yarn, or pnpm. Choose your preferred method below:
635
+ You can install the Codeblocks plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
601
636
 
602
637
  ```tabs
603
638
  <<| bash pnpm |>>
604
639
  pnpm add @md-plugins/md-plugin-codeblocks
640
+ <<| bash bun |>>
641
+ bun add @md-plugins/md-plugin-codeblocks
605
642
  <<| bash yarn |>>
606
643
  yarn add @md-plugins/md-plugin-codeblocks
607
644
  <<| bash npm |>>
@@ -627,13 +664,13 @@ md.use(codeblocksPlugin, {
627
664
  preClass: 'markdown-code', // Optional: Customize the class for the pre tag
628
665
  codeClass: '', // Optional: Customize the class for the code tag
629
666
  pageScripts: [
630
- "import MarkdownPrerender from 'src/.q-press/components/MarkdownPrerender'", // ts file
631
- "import MarkdownCopyButton from 'src/.q-press/components/MarkdownCopyButton.vue'",
667
+ "import MarkdownPrerender from '@/.q-press/components/MarkdownPrerender'", // ts file
668
+ "import MarkdownCopyButton from '@/.q-press/components/MarkdownCopyButton.vue'",
632
669
  ], // Optional: Include page scripts
633
670
  langList: [
634
671
  { name: 'javascript', aliases: 'javascript|js' },
635
672
  { name: 'typescript', aliases: 'typescript|ts' },
636
- ], // Optional: Customize Prism languages
673
+ ], // Optional: Customize Shiki languages
637
674
  })
638
675
 
639
676
  // Now you can use the Codeblocks plugin in your Markdown content
@@ -653,7 +690,7 @@ The Codeblocks plugin accepts the following options:
653
690
  - **preClass**: The class to be used for the pre tag. Default is `markdown-pre`.
654
691
  - **codeClass**: The class to be used for the code tag. Default is `markdown-code`.
655
692
  - **pageScripts**: An array of page scripts to be included.
656
- - **langList**: Optional Prism languages configuration array. Each item can have a name, optional aliases, and customCopy boolean.
693
+ - **langList**: Optional Shiki languages configuration array. Each item can have a name, optional aliases, and customCopy boolean.
657
694
 
658
695
  When `defaultLang` is `markup`, the plugin will use the `markup` language for code blocks which means no highlighting will be applied.
659
696
 
@@ -682,13 +719,13 @@ md.use(codeblocksPlugin, {
682
719
  preClass: 'markdown-pre', // Customize the class for the pre tag
683
720
  codeClass: 'markdown-code', // Customize the class for the code tag
684
721
  pageScripts: [
685
- "import MarkdownPrerender from 'src/.q-press/components/MarkdownPrerender'", // ts file
686
- "import MarkdownCopyButton from 'src/.q-press/components/MarkdownCopyButton.vue'",
722
+ "import MarkdownPrerender from '@/.q-press/components/MarkdownPrerender'", // ts file
723
+ "import MarkdownCopyButton from '@/.q-press/components/MarkdownCopyButton.vue'",
687
724
  ], // Include page scripts
688
725
  langList: [
689
726
  { name: 'javascript', aliases: 'javascript|js' },
690
727
  { name: 'typescript', aliases: 'typescript|ts' },
691
- ], // Customize Prism languages
728
+ ], // Customize Shiki languages
692
729
  })
693
730
  .use(markdownItAnchor)
694
731
  .use(markdownItToc)
@@ -89,11 +89,13 @@ The official NPM name is `@md-plugins/md-plugin-containers`.
89
89
 
90
90
  ## Installation
91
91
 
92
- You can install the Containers plugin using npm, yarn, or pnpm. Choose your preferred method below:
92
+ You can install the Containers plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
93
93
 
94
94
  ```tabs
95
95
  <<| bash pnpm |>>
96
96
  pnpm add @md-plugins/md-plugin-containers
97
+ <<| bash bun |>>
98
+ bun add @md-plugins/md-plugin-containers
97
99
  <<| bash yarn |>>
98
100
  yarn add @md-plugins/md-plugin-containers
99
101
  <<| bash npm |>>
@@ -54,11 +54,13 @@ The official NPM name is `@md-plugins/md-plugin-frontmatter`.
54
54
 
55
55
  ## Installation
56
56
 
57
- You can install the Frontmatter plugin using npm, yarn, or pnpm. Choose your preferred method below:
57
+ You can install the Frontmatter plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
58
58
 
59
59
  ```tabs
60
60
  <<| bash pnpm |>>
61
61
  pnpm add @md-plugins/md-plugin-frontmatter
62
+ <<| bash bun |>>
63
+ bun add @md-plugins/md-plugin-frontmatter
62
64
  <<| bash yarn |>>
63
65
  yarn add @md-plugins/md-plugin-frontmatter
64
66
  <<| bash npm |>>
@@ -56,11 +56,13 @@ The official NPM name is `@md-plugins/md-plugin-headers`.
56
56
 
57
57
  ## Installation
58
58
 
59
- You can install the Headers plugin using npm, yarn, or pnpm. Choose your preferred method below:
59
+ You can install the Headers plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
60
60
 
61
61
  ```tabs
62
62
  <<| bash pnpm |>>
63
63
  pnpm add @md-plugins/md-plugin-headers
64
+ <<| bash bun |>>
65
+ bun add @md-plugins/md-plugin-headers
64
66
  <<| bash yarn |>>
65
67
  yarn add @md-plugins/md-plugin-headers
66
68
  <<| bash npm |>>
@@ -58,11 +58,13 @@ The official NPM name is `@md-plugins/md-plugin-image`.
58
58
 
59
59
  ## Installation
60
60
 
61
- You can install the Image plugin using npm, yarn, or pnpm. Choose your preferred method below:
61
+ You can install the Image plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
62
62
 
63
63
  ```tabs
64
64
  <<| bash pnpm |>>
65
65
  pnpm add @md-plugins/md-plugin-image
66
+ <<| bash bun |>>
67
+ bun add @md-plugins/md-plugin-image
66
68
  <<| bash yarn |>>
67
69
  yarn add @md-plugins/md-plugin-image
68
70
  <<| bash npm |>>
@@ -39,11 +39,13 @@ The official NPM name is `@md-plugins/md-plugin-imports`.
39
39
 
40
40
  ## Installation
41
41
 
42
- You can install the Imports plugin using npm, yarn, or pnpm. Choose your preferred method below:
42
+ You can install the Imports plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
43
43
 
44
44
  ```tabs
45
45
  <<| bash pnpm |>>
46
46
  pnpm add @md-plugins/md-plugin-imports
47
+ <<| bash bun |>>
48
+ bun add @md-plugins/md-plugin-imports
47
49
  <<| bash yarn |>>
48
50
  yarn add @md-plugins/md-plugin-imports
49
51
  <<| bash npm |>>
@@ -33,11 +33,13 @@ The official NPM name is `@md-plugins/md-plugin-inlinecode`.
33
33
 
34
34
  ## Installation
35
35
 
36
- You can install the Inlinecode plugin using npm, yarn, or pnpm. Choose your preferred method below:
36
+ You can install the Inlinecode plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
37
37
 
38
38
  ```tabs
39
39
  <<| bash pnpm |>>
40
40
  pnpm add @md-plugins/md-plugin-inlinecode
41
+ <<| bash bun |>>
42
+ bun add @md-plugins/md-plugin-inlinecode
41
43
  <<| bash yarn |>>
42
44
  yarn add @md-plugins/md-plugin-inlinecode
43
45
  <<| bash npm |>>
@@ -83,7 +83,7 @@ The `link` plugin provides several options for customization. Here are the avail
83
83
  #### pageScript
84
84
 
85
85
  - **Type**: `string`
86
- - **Default**: `'import MarkdownLink from "src/.q-press/components/MarkdownLink.vue"'`
86
+ - **Default**: `'import MarkdownLink from "@/.q-press/components/MarkdownLink.vue"'`
87
87
  - **Description**: The script to import the custom link component.
88
88
 
89
89
  ### Example Configuration
@@ -99,7 +99,7 @@ const md = new MarkdownIt()
99
99
  md.use(linkPlugin, {
100
100
  linkTag: 'CustomLink',
101
101
  linkToKeyword: 'href',
102
- pageScript: 'import CustomLink from "src/components/CustomLink.vue"',
102
+ pageScript: 'import CustomLink from "@/components/CustomLink.vue"',
103
103
  })
104
104
  ```
105
105
 
@@ -38,7 +38,7 @@ const md = new MarkdownIt()
38
38
  md.use(linkPlugin, {
39
39
  linkTag: 'CustomLink', // Optional: Customize the link tag
40
40
  linkToKeyword: 'href', // Optional: Customize the link keyword
41
- pageScript: 'import CustomLink from "src/components/CustomLink.vue"', // Optional: Add import statement
41
+ pageScript: 'import CustomLink from "@/components/CustomLink.vue"', // Optional: Add import statement
42
42
  })
43
43
 
44
44
  // Now you can use the Link plugin in your Markdown content
@@ -52,11 +52,13 @@ The official NPM name is `@md-plugins/md-plugin-link`.
52
52
 
53
53
  ## Installation
54
54
 
55
- You can install the Link plugin using npm, yarn, or pnpm. Choose your preferred method below:
55
+ You can install the Link plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
56
56
 
57
57
  ```tabs
58
58
  <<| bash pnpm |>>
59
59
  pnpm add @md-plugins/md-plugin-link
60
+ <<| bash bun |>>
61
+ bun add @md-plugins/md-plugin-link
60
62
  <<| bash yarn |>>
61
63
  yarn add @md-plugins/md-plugin-link
62
64
  <<| bash npm |>>
@@ -76,7 +78,7 @@ const md = new MarkdownIt()
76
78
  md.use(linkPlugin, {
77
79
  linkTag: 'CustomLink', // Optional: Customize the link tag
78
80
  linkToKeyword: 'href', // Optional: Customize the link keyword
79
- pageScript: 'import CustomLink from "src/components/CustomLink.vue"', // Optional: Add import statement
81
+ pageScript: 'import CustomLink from "@/components/CustomLink.vue"', // Optional: Add import statement
80
82
  })
81
83
 
82
84
  // Now you can use the Link plugin in your Markdown content
@@ -107,7 +109,7 @@ const md = new MarkdownIt()
107
109
  md.use(linkPlugin, {
108
110
  linkTag: 'CustomLink', // Customize the link tag
109
111
  linkToKeyword: 'href', // Customize the link keyword
110
- pageScript: 'import CustomLink from "src/components/CustomLink.vue"', // Add import statement
112
+ pageScript: 'import CustomLink from "@/components/CustomLink.vue"', // Add import statement
111
113
  })
112
114
  .use(markdownItAnchor)
113
115
  .use(markdownItToc)
@@ -0,0 +1,69 @@
1
+ ---
2
+ title: Mermaid Advanced Topics
3
+ desc: Mermaid plugin options and integration details.
4
+ ---
5
+
6
+ The Mermaid plugin is small, but it has two different integration paths:
7
+
8
+ - **Component mode** is the Q-Press default. It emits `MarkdownMermaid` and lets Vue render Mermaid on the client.
9
+ - **Pre mode** emits a plain `<pre class="mermaid">` block for custom MarkdownIt pipelines.
10
+
11
+ ## Options
12
+
13
+ | Option | Type | Default | Description |
14
+ | --------------- | ---------------------- | -------------------- | -------------------------------------------- |
15
+ | `languages` | `string[]` | `['mermaid', 'mmd']` | Fence languages treated as Mermaid diagrams. |
16
+ | `renderMode` | `'component' \| 'pre'` | `'component'` | Output mode for diagrams. |
17
+ | `componentName` | `string` | `'MarkdownMermaid'` | Component used in component mode. |
18
+ | `codeProp` | `string` | `'code'` | Component prop that receives Mermaid source. |
19
+ | `preClass` | `string` | `'mermaid'` | CSS class used in pre mode. |
20
+ | `pageScripts` | `string[]` | Q-Press import | Imports added to generated Vue pages. |
21
+
22
+ ## Component Mode
23
+
24
+ Use component mode when Markdown output is compiled into Vue components:
25
+
26
+ ```ts
27
+ import MarkdownIt from 'markdown-it'
28
+ import { mermaidPlugin } from '@md-plugins/md-plugin-mermaid'
29
+
30
+ const md = new MarkdownIt()
31
+ md.use(mermaidPlugin, {
32
+ componentName: 'MarkdownMermaid',
33
+ codeProp: 'code',
34
+ })
35
+ ```
36
+
37
+ Component mode adds this import to the generated page when a Mermaid fence is found:
38
+
39
+ ```ts
40
+ import MarkdownMermaid from '@/.q-press/components/MarkdownMermaid.vue'
41
+ ```
42
+
43
+ ## Pre Mode
44
+
45
+ Use pre mode when your app has its own Mermaid bootstrapping:
46
+
47
+ ```ts
48
+ import MarkdownIt from 'markdown-it'
49
+ import { mermaidPlugin } from '@md-plugins/md-plugin-mermaid'
50
+
51
+ const md = new MarkdownIt()
52
+ md.use(mermaidPlugin, {
53
+ renderMode: 'pre',
54
+ preClass: 'mermaid',
55
+ })
56
+ ```
57
+
58
+ Then run Mermaid after the HTML is mounted:
59
+
60
+ ```ts
61
+ import mermaid from 'mermaid'
62
+
63
+ mermaid.initialize({ startOnLoad: false })
64
+ await mermaid.run({ querySelector: '.mermaid' })
65
+ ```
66
+
67
+ ## Security
68
+
69
+ The Q-Press `MarkdownMermaid` component initializes Mermaid with `securityLevel: 'strict'`. Keep that unless you have a specific reason to allow looser rendering.
@@ -0,0 +1,73 @@
1
+ ---
2
+ title: Mermaid Plugin
3
+ desc: Render Mermaid diagrams from fenced code blocks.
4
+ ---
5
+
6
+ The Mermaid plugin turns `mermaid` and `mmd` fenced code blocks into diagrams. In Q-Press and `viteMdPlugin`, Mermaid diagrams render through the generated `MarkdownMermaid` Vue component so diagrams stay client-side and SSR-safe.
7
+
8
+ ## Example
9
+
10
+ ```mermaid
11
+ flowchart LR
12
+ Markdown[Markdown file] --> Plugin[md-plugin-mermaid]
13
+ Plugin --> Component[MarkdownMermaid]
14
+ Component --> Diagram[Rendered diagram]
15
+ ```
16
+
17
+ ## Markdown
18
+
19
+ ````markdown
20
+ ```mermaid
21
+ flowchart LR
22
+ Markdown[Markdown file] --> Plugin[md-plugin-mermaid]
23
+ Plugin --> Component[MarkdownMermaid]
24
+ Component --> Diagram[Rendered diagram]
25
+ ```
26
+ ````
27
+
28
+ ## Installation
29
+
30
+ You can install the Mermaid plugin using npm, yarn, pnpm, or bun:
31
+
32
+ ```tabs
33
+ <<| bash pnpm |>>
34
+ pnpm add @md-plugins/md-plugin-mermaid mermaid
35
+ <<| bash bun |>>
36
+ bun add @md-plugins/md-plugin-mermaid mermaid
37
+ <<| bash yarn |>>
38
+ yarn add @md-plugins/md-plugin-mermaid mermaid
39
+ <<| bash npm |>>
40
+ npm install @md-plugins/md-plugin-mermaid mermaid
41
+ ```
42
+
43
+ Q-Press installs `mermaid` for generated documentation projects. Direct MarkdownIt users only need `mermaid` if they render diagrams in the browser.
44
+
45
+ ## Basic Usage
46
+
47
+ ```ts
48
+ import MarkdownIt from 'markdown-it'
49
+ import { mermaidPlugin } from '@md-plugins/md-plugin-mermaid'
50
+
51
+ const md = new MarkdownIt()
52
+ md.use(mermaidPlugin)
53
+ ```
54
+
55
+ The default output is a Vue component:
56
+
57
+ ```html
58
+ <MarkdownMermaid :code="diagramSource"></MarkdownMermaid>
59
+ ```
60
+
61
+ If you own the browser initialization yourself, use plain pre mode:
62
+
63
+ ```ts
64
+ md.use(mermaidPlugin, {
65
+ renderMode: 'pre',
66
+ })
67
+ ```
68
+
69
+ That renders Mermaid-compatible HTML:
70
+
71
+ ```html
72
+ <pre class="mermaid"><code>flowchart LR...</code></pre>
73
+ ```
@@ -1,20 +1,24 @@
1
1
  ---
2
- title: Shared Plugin Overview
3
- desc: Overview of the shared utilities and types for MD-Plugins plugins.
2
+ title: Shared Package Overview
3
+ desc: Overview of the shared utilities and types used by MD-Plugins packages.
4
4
  ---
5
5
 
6
- The `shared` plugin provides a set of utilities and types that are used across various MD-Plugins plugins. It serves as a common foundation, ensuring consistency and reducing duplication of code across the different plugins.
6
+ The `@md-plugins/shared` package provides utilities and types used internally by the MD-Plugins packages. It serves as a common foundation, ensuring consistency and reducing duplication across the different plugins.
7
+
8
+ ::: tip
9
+ QPress applications do not need to install or import `@md-plugins/shared` directly. Install it only when you are building a custom Markdown-It plugin or contributing to the MD-Plugins packages themselves.
10
+ :::
7
11
 
8
12
  ## Key Features
9
13
 
10
14
  - **Common Utilities**: Provides utility functions that are commonly used across multiple plugins.
11
15
  - **Type Definitions**: Includes TypeScript type definitions to ensure type safety and consistency.
12
16
  - **Helper Functions**: Offers helper functions to simplify common tasks and operations.
13
- - **Reusable Components**: Contains reusable components that can be leveraged by other plugins.
17
+ - **Reusable Helpers**: Contains shared helpers that can be leveraged by other MD-Plugins packages.
14
18
 
15
19
  ## Utilities
16
20
 
17
- The `shared` plugin includes a variety of utility functions that can be used to perform common tasks. Some of the key utilities include:
21
+ The shared package includes a variety of utility functions that can be used to perform common tasks. Some of the key utilities include:
18
22
 
19
23
  - **String Manipulation**: Functions for manipulating and formatting strings.
20
24
  - **Array Operations**: Functions for performing common array operations.
@@ -23,14 +27,12 @@ The `shared` plugin includes a variety of utility functions that can be used to
23
27
 
24
28
  ## Type Definitions
25
29
 
26
- The `shared` plugin provides TypeScript type definitions that are used across the MD-Plugins project. These type definitions help ensure type safety and consistency. Some of the key type definitions include:
30
+ The shared package provides TypeScript type definitions that are used across the MD-Plugins project. These type definitions help ensure type safety and consistency. Some of the key type definitions include:
27
31
 
28
32
  - **MarkdownItEnv**: Defines the structure of the environment object used by MD-Plugins plugins.
29
33
  - **PluginOptions**: Defines the structure of the options object passed to plugins.
30
34
 
31
- ```ts
32
- import Token from 'markdown-it/lib/token.mjs'
33
-
35
+ ```ts [twoslash]
34
36
  /**
35
37
  * Escape html chars
36
38
  */
@@ -83,6 +85,19 @@ type ResolvePluginOptionsFn = <T extends object, K extends keyof any>(
83
85
  defaults: T,
84
86
  ) => T
85
87
 
88
+ interface LinkPluginOptions {
89
+ externalTarget?: '_blank' | '_self'
90
+ externalRel?: string
91
+ }
92
+
93
+ const linkOptions = resolvePluginOptions({ link: { externalTarget: '_blank' } }, 'link', {
94
+ externalTarget: '_self',
95
+ externalRel: 'noopener',
96
+ } satisfies LinkPluginOptions)
97
+
98
+ const linkTarget = linkOptions.externalTarget
99
+ // ^?
100
+
86
101
  interface ResolveTitleOptions {
87
102
  /**
88
103
  * Should allow inline HTML tags or not.
@@ -105,7 +120,7 @@ interface ResolveTitleOptions {
105
120
  * Typically using the next token of `heading_open` token
106
121
  */
107
122
  declare const resolveTitleFromToken: (
108
- token: Token,
123
+ token: unknown,
109
124
  { shouldAllowHtml, shouldEscapeText }: ResolveTitleOptions,
110
125
  ) => string
111
126
 
@@ -135,7 +150,7 @@ interface ResolveHeadersOptions extends ResolveTitleOptions {
135
150
  * Resolve headers from markdown-it tokens
136
151
  */
137
152
  declare const resolveHeadersFromTokens: (
138
- tokens: Token[],
153
+ tokens: unknown[],
139
154
  {
140
155
  level,
141
156
  shouldAllowHtml,
@@ -179,7 +194,7 @@ export {
179
194
 
180
195
  ## Helper Functions
181
196
 
182
- The `shared` plugin includes a variety of helper functions that simplify common tasks and operations. Some of the key helper functions include:
197
+ The shared package includes a variety of helper functions that simplify common tasks and operations. Some of the key helper functions include:
183
198
 
184
199
  - **resolveTitleFromToken**: Extracts the title from a Markdown token.
185
200
  - **parseFrontmatter**: Parses frontmatter content from a Markdown file.
@@ -190,6 +205,6 @@ The `shared` plugin includes a variety of helper functions that simplify common
190
205
 
191
206
  ## Conclusion
192
207
 
193
- The `shared` plugin is an essential part of the MD-Plugins project, providing common utilities, type definitions, helper functions, and reusable components. By leveraging the `shared` plugin, you can ensure consistency and reduce duplication of code across your plugins.
208
+ The shared package is an essential internal part of the MD-Plugins project, providing common utilities, type definitions, and helper functions. If you are building custom plugins, you can use it to stay aligned with the same types and helpers used by the official MD-Plugins packages.
194
209
 
195
210
  Happy coding!
@@ -101,11 +101,13 @@ The official NPM name is `@md-plugins/md-plugin-table`.
101
101
 
102
102
  ## Installation
103
103
 
104
- You can install the Table plugin using npm, yarn, or pnpm. Choose your preferred method below:
104
+ You can install the Table plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
105
105
 
106
106
  ```tabs
107
107
  <<| bash pnpm |>>
108
108
  pnpm add @md-plugins/md-plugin-table
109
+ <<| bash bun |>>
110
+ bun add @md-plugins/md-plugin-table
109
111
  <<| bash yarn |>>
110
112
  yarn add @md-plugins/md-plugin-table
111
113
  <<| bash npm |>>
@@ -39,11 +39,13 @@ The official NPM name is `@md-plugins/md-plugin-title`.
39
39
 
40
40
  ## Installation
41
41
 
42
- You can install the Title plugin using npm, yarn, or pnpm. Choose your preferred method below:
42
+ You can install the Title plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
43
43
 
44
44
  ```tabs
45
45
  <<| bash pnpm |>>
46
46
  pnpm add @md-plugins/md-plugin-title
47
+ <<| bash bun |>>
48
+ bun add @md-plugins/md-plugin-title
47
49
  <<| bash yarn |>>
48
50
  yarn add @md-plugins/md-plugin-title
49
51
  <<| bash npm |>>
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: Contact
3
+ desc: Contacting us
4
+ keys: Other
5
+ ---
6
+
7
+ Have a question about MD-Plugins or Q-Press? We're here to help. Before opening a new issue, please check whether your topic is already covered by the docs or existing GitHub issues.
8
+
9
+ ## Check Existing Resources
10
+
11
+ ### GitHub issues
12
+
13
+ Search the [MD-Plugins issues](https://github.com/md-plugins/md-plugins/issues) for related bugs, feature requests, and support questions.
14
+
15
+ ### GitHub discussions
16
+
17
+ If your question is not a bug report or feature request, start with [GitHub Discussions](https://github.com/md-plugins/md-plugins/discussions).
18
+
19
+ ## Provide A Suggestion Or Contribution
20
+
21
+ ### GitHub issues
22
+
23
+ Report bugs and request features through [GitHub Issues](https://github.com/md-plugins/md-plugins/issues).
24
+
25
+ ### GitHub pull requests
26
+
27
+ If you have a specific fix or improvement, open a pull request against the [MD-Plugins repository](https://github.com/md-plugins/md-plugins).
28
+
29
+ ## Start A Discussion
30
+
31
+ ### Discord
32
+
33
+ Use the [Quasar Discord](https://chat.quasar.dev) and head to the `#app-extensions` channel.
34
+
35
+ ### X / Twitter
36
+
37
+ You can follow MD-Plugins at [@md_plugins](https://twitter.com/md_plugins).
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: Bugs and Feature Requests
3
+ desc: How to report bugs and request features
4
+ keys: Contributing
5
+ ---
6
+
7
+ ## Checking For Known Issues
8
+
9
+ ### GitHub
10
+
11
+ We use GitHub to track bugs and feature requests. Before opening a new issue, please search the [existing MD-Plugins issues](https://github.com/md-plugins/md-plugins/issues).
12
+
13
+ ### Documentation
14
+
15
+ Please take a moment to check the relevant plugin, Vite plugin, or Q-Press documentation page. The issue may already be covered there.
16
+
17
+ ## Creating An Issue
18
+
19
+ Open a [GitHub issue](https://github.com/md-plugins/md-plugins/issues) and include:
20
+
21
+ - A clear title.
22
+ - The package or Q-Press area involved.
23
+ - Steps to reproduce the problem.
24
+ - Expected behavior and actual behavior.
25
+ - A small reproduction when possible.
26
+
27
+ ## Pull Requests
28
+
29
+ If you already have a fix, open a pull request against the [MD-Plugins repository](https://github.com/md-plugins/md-plugins/pulls).
30
+
31
+ ## Larger Changes
32
+
33
+ For broader changes, start a discussion first so we can agree on direction before implementation work begins.
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: Call to Action
3
+ desc: Things that need help from the community
4
+ keys: Contributing
5
+ ---
6
+
7
+ ## Helping Out
8
+
9
+ This page highlights areas where community help would be especially valuable.
10
+
11
+ ### Examples
12
+
13
+ Practical examples are one of the best ways to show how MD-Plugins and Q-Press are meant to be used. More focused examples for plugins, containers, code blocks, and Q-Press customization are always useful.
14
+
15
+ ### Tests
16
+
17
+ Additional tests help keep the package collection stable as the Quasar, Vite, and Markdown ecosystems move forward.
18
+
19
+ ### Documentation
20
+
21
+ If a page feels unclear, too sparse, or missing a migration note, documentation help is welcome.
22
+
23
+ ### Accessibility
24
+
25
+ Markdown output should remain readable and accessible in both light and dark modes. Contrast, focus behavior, generated links, and semantic markup are all good areas to improve.