@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
@@ -6,7 +6,7 @@ desc: Q-Press App-Extension for Quasar.
6
6
  The Q-Press App Extension is a powerful tool for Quasar developers that simplifies the integration of Markdown content into Quasar applications. It leverages the capabilities of Vite and various Markdown plugins to transform Markdown files into Vue components, enabling a seamless and efficient workflow for content management.
7
7
 
8
8
  ::: warning
9
- Q-Press is for Quasar Vite projects using `@quasar/app-vite` `>=3.0.0-beta.14` at this time. TypeScript processing is also required. Do not use if you are using Webpack or have a JavaScript-only project.
9
+ Q-Press is for Quasar Vite projects using `@quasar/app-vite` `>=3.0.0-beta.33` at this time. TypeScript processing is also required. Do not use if you are using Webpack or have a JavaScript-only project.
10
10
  :::
11
11
 
12
12
  ::: tip
@@ -33,14 +33,12 @@ quasar ext add @md-plugins/q-press
33
33
 
34
34
  - **New Install:**
35
35
  - `src/.q-press`
36
- - `src/q-press.globals.d.ts`
37
36
  - `src/components`
38
37
  - `src/markdown`
39
38
  - `src/examples`
40
39
  - `src/siteConfig`
41
40
  - **Update Install:**
42
41
  - `src/.q-press`
43
- - `src/q-press.globals.d.ts`
44
42
 
45
43
  ### Additional Dependencies
46
44
 
@@ -49,21 +47,25 @@ quasar ext add @md-plugins/q-press
49
47
  ```tabs
50
48
  <<| bash pnpm |>>
51
49
  pnpm i -D markdown-it @types/markdown-it
50
+ <<| bash bun |>>
51
+ bun add -d markdown-it @types/markdown-it
52
52
  <<| bash yarn |>>
53
53
  yarn add -D markdown-it @types/markdown-it
54
54
  <<| bash npm |>>
55
55
  npm i -D markdown-it @types/markdown-it
56
56
  ```
57
57
 
58
- 2. **Add `prismjs` to your project dependencies:**
58
+ 2. **Q-Press adds `shiki` to your project dependencies when invoked. If you are wiring the generated files manually, add it yourself:**
59
59
 
60
60
  ```tabs
61
61
  <<| bash pnpm |>>
62
- pnpm add prismjs
62
+ pnpm add shiki
63
+ <<| bash bun |>>
64
+ bun add shiki
63
65
  <<| bash yarn |>>
64
- yarn add prismjs
66
+ yarn add shiki
65
67
  <<| bash npm |>>
66
- npm i prismjs
68
+ npm i shiki
67
69
  ```
68
70
 
69
71
  ## Configuration
@@ -86,8 +88,6 @@ Import Q-Press styles:
86
88
 
87
89
  ```scss
88
90
  @import '../.q-press/css/app.scss';
89
- @import '../.q-press/css/fonts.scss';
90
- @import '../.q-press/css/prism-theme.scss';
91
91
  ```
92
92
 
93
93
  ### Modify `quasar.config.ts`
@@ -125,12 +125,12 @@ export default defineConfig(async (ctx) => {
125
125
 
126
126
  ```ts [maxheight=400px]
127
127
  import type { RouteRecordRaw } from 'vue-router'
128
- import mdPageList from 'src/markdown/listing'
128
+ import mdPageList from '@/markdown/listing'
129
129
 
130
130
  const routes = [
131
131
  {
132
132
  path: '/',
133
- component: () => import('src/.q-press/layouts/MarkdownLayout.vue'),
133
+ component: () => import('@/.q-press/layouts/MarkdownLayout.vue'),
134
134
  children: [
135
135
  // Include the Landing Page route first
136
136
  ...Object.entries(mdPageList)
@@ -169,7 +169,7 @@ const routes = [
169
169
  // but you can also remove it
170
170
  {
171
171
  path: '/:catchAll(.*)*',
172
- component: () => import('pages/ErrorNotFound.vue'),
172
+ component: () => import('@/pages/ErrorNotFound.vue'),
173
173
  },
174
174
  ] as RouteRecordRaw[]
175
175
 
@@ -186,7 +186,7 @@ Update your `App.vue`:
186
186
  </template>
187
187
 
188
188
  <script setup lang="ts">
189
- import { useDark } from 'src/.q-press/composables/dark'
189
+ import { useDark } from '@/.q-press/composables/dark'
190
190
  const { initDark } = useDark()
191
191
  initDark()
192
192
  </script>
@@ -206,7 +206,7 @@ Update your `App.vue`:
206
206
  <script setup lang="ts">
207
207
  // don't forget to add the Quasar 'Meta' plugin into your quasar.config file!
208
208
  import { useMeta } from 'quasar'
209
- import getMeta from 'src/.q-press/assets/get-meta'
209
+ import getMeta from '@/.q-press/assets/get-meta'
210
210
 
211
211
  // You can use the `getMeta` function to get the meta tags for your page and provide default values
212
212
  useMeta({
@@ -230,16 +230,16 @@ useMeta({
230
230
  If you copied older Q-Press internals into your app, update the common cases below:
231
231
 
232
232
  ```ts
233
- process.env.CLIENT // old
233
+ process.env.CLIENT // old
234
234
  import.meta.env.QUASAR_CLIENT // new
235
235
 
236
- process.env.DEV // old
237
- import.meta.env.DEV // new
236
+ process.env.DEV // old
237
+ import.meta.env.DEV // new
238
238
 
239
- process.env.FS_QUASAR_FOLDER // old
239
+ process.env.FS_QUASAR_FOLDER // old
240
240
  import.meta.env.QCLI_FS_QUASAR_FOLDER // new
241
241
 
242
- process.env.SEARCH_INDEX // old
242
+ process.env.SEARCH_INDEX // old
243
243
  import.meta.env.QCLI_SEARCH_INDEX // new
244
244
  ```
245
245
 
@@ -313,7 +313,7 @@ If you don't have a `.prettierignore` file, create one in the root of your proje
313
313
 
314
314
  ## Updating
315
315
 
316
- When you update, only the `src/.q-press` folder will be updated as well as the file `src/q-press.globals.d.ts`. If you want to re-install everything, just remove the `src/siteConfig` folder.
316
+ When you update, only the `src/.q-press` folder will be updated. If you want to re-install everything, just remove the `src/siteConfig` folder.
317
317
 
318
318
  To make it easier to update, you can use the following command:
319
319
 
@@ -52,7 +52,6 @@ const secondaryToolbarLinks = [
52
52
  mdPluginsMenu, // <-- this is the menu we just created
53
53
  vitePluginsMenu,
54
54
  QuasarAppExts,
55
- guidesMenu,
56
55
  otherMenu,
57
56
  ]
58
57
  ```
@@ -61,7 +60,7 @@ const secondaryToolbarLinks = [
61
60
 
62
61
  A `MenuItem` looks like this, but not all options are used for header menus:
63
62
 
64
- ```ts
63
+ ```ts [twoslash]
65
64
  interface MenuItem {
66
65
  name: string
67
66
  path?: string
@@ -74,6 +73,21 @@ interface MenuItem {
74
73
  external?: boolean
75
74
  expanded?: boolean
76
75
  }
76
+
77
+ const docsMenu = {
78
+ name: 'Guides',
79
+ expanded: true,
80
+ children: [
81
+ { name: 'Installation', path: '/getting-started/installation' },
82
+ { name: 'Themes', path: '/quasar-app-extensions/qpress/themes' },
83
+ ],
84
+ } satisfies MenuItem
85
+
86
+ const firstDocLink = docsMenu.children[0]
87
+ // ^?
88
+
89
+ type MenuChildren = NonNullable<MenuItem['children']>
90
+ // ^?
77
91
  ```
78
92
 
79
93
  ## Sidebar Menu Items
@@ -105,7 +119,7 @@ export const sidebar = [
105
119
  processedMdPluginsMenu, // <-- this is the menu we just created
106
120
  processedVitePluginsMenu,
107
121
  processedQuasarAppExts,
108
- processedGuidesMenu,
122
+ processedOtherMenu,
109
123
  ]
110
124
  ```
111
125
 
@@ -3,27 +3,44 @@ title: Q-Press Themes
3
3
  desc: Themes for Q-Press App-Extension for Quasar.
4
4
  ---
5
5
 
6
- Currently, there are five themes available for **Q-Press**:
6
+ Currently, there are six themes available for **Q-Press**:
7
7
 
8
8
  - **Default**
9
+ - **Evergreen**
9
10
  - **Mystic**
10
11
  - **Newspaper**
11
12
  - **Sunrise**
12
13
  - **Tawny**
13
14
 
14
- To use a theme, simply add the following line to your `src/css/quasar.variables.(scss|sass)` file:
15
+ ## Theme Gallery
15
16
 
16
- ```scss
17
+ Each preview below is wrapped in a `qpress-theme-preview` namespace. That means the gallery can show every bundled theme at once without importing every theme file or overriding the active site theme.
18
+
19
+ <script import>
20
+ import QPressThemeGallery from '@/components/QPressThemeGallery.vue'
21
+ </script>
22
+
23
+ <QPressThemeGallery />
24
+
25
+ To use a theme, add the import to your `src/css/quasar.variables.scss` or `src/css/quasar.variables.sass` file:
26
+
27
+ ```tabs
28
+ <<| scss SCSS |>>
17
29
  @import '../.q-press/css/themes/sunrise.scss';
30
+ <<| sass Sass |>>
31
+ @import '../.q-press/css/themes/sunrise.scss'
18
32
  ```
19
33
 
20
- This will load the `sunrise` theme into your **Q-Press** enabled app.
34
+ This will load the `sunrise` theme into your **Q-Press** enabled app. Q-Press themes are shipped as `.scss` files, but they can be imported from either SCSS or Sass syntax.
35
+
36
+ Import only one Q-Press theme, then add any project-specific overrides below that import. This keeps the theme variables predictable while still letting you tune colors, typography, and spacing for your site.
21
37
 
22
38
  ## Custom Themes
23
39
 
24
- If you want to build your own theme, add these variables to your `src/css/quasar.variables.(scss|sass)` file and modify them to your liking:
40
+ If you want to build your own theme, add these variables to your `src/css/quasar.variables.scss` or `src/css/quasar.variables.sass` file and modify them to your liking:
25
41
 
26
- ```scss
42
+ ```tabs
43
+ <<| scss SCSS |>>
27
44
  @use 'sass:color';
28
45
 
29
46
  $primary: #214466;
@@ -59,7 +76,7 @@ $light-pill: $brand-light;
59
76
  $light-text: $brand-light-text;
60
77
  $light-bg: $brand-light-bg;
61
78
 
62
- $dark-pill: scale-color($brand-primary, $lightness: -80%);
79
+ $dark-pill: scale-color($brand-dark-bg, $lightness: 12%);
63
80
  $dark-text: $brand-dark-text;
64
81
  $dark-bg: $brand-dark-bg;
65
82
 
@@ -91,13 +108,76 @@ $shadow--small: 0 6px 6px 0 rgba($brand-primary, 0.28);
91
108
  $header-height: 55px;
92
109
  $header-transition: 0.6s cubic-bezier(0.25, 0.8, 0.5, 1);
93
110
  $header-quick-transition: 0.28s ease-in-out;
111
+ <<| sass Sass |>>
112
+ @use 'sass:color'
113
+
114
+ $primary: #214466
115
+ $secondary: #266660
116
+ $accent: #853394
117
+
118
+ $positive: #2ecc71
119
+ $negative: #ff1732
120
+ $info: #10a0ff
121
+ $warning: #ffd52d
122
+
123
+ $brand-primary: #00bfff
124
+ $brand-secondary: #4b555c
125
+ $brand-accent: #ea5e13
126
+ $brand-dark: #2c3e50
127
+ $brand-light: #f5f5f5
128
+ $brand-medium: #6b7f86
129
+ $brand-light-text: #4d4d4d
130
+ $brand-light-bg: #fefefe
131
+ $brand-dark-bg: #080e1a
132
+ $brand-dark-text: #cbcbcb
133
+ $brand-light-codeblock-bg: #f5f5f5
134
+ $brand-light-codeblock-text: #4d4d4d
135
+ $brand-dark-codeblock-bg: #121212
136
+ $brand-dark-codeblock-text: #e6e6e6
137
+
138
+ $header-btn-color--light: #757575
139
+ $header-btn-hover-color--light: #212121
140
+ $header-btn-color--dark: #929397
141
+ $header-btn-hover-color--dark: #fff
142
+
143
+ $light-pill: $brand-light
144
+ $light-text: $brand-light-text
145
+ $light-bg: $brand-light-bg
146
+
147
+ $dark-pill: scale-color($brand-dark-bg, $lightness: 12%)
148
+ $dark-text: $brand-dark-text
149
+ $dark-bg: $brand-dark-bg
150
+
151
+ $separator-color: $brand-accent
152
+ $separator-color-dark: $brand-accent
153
+
154
+ $font-size: 16px
155
+ $font-size-brand: 16px
156
+ $font-weight-brand: 500
157
+ $font-weight-technical: 400
158
+ $letter-spacing-brand: 0.7px
159
+
160
+ $font-family-technical: 'Roboto', -apple-system, Avenir, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif
161
+ $font-family-examples: $font-family-technical
162
+ $font-family-brand: 'Montserrat', $font-family-technical
163
+
164
+ $shadow--large: 0 24px 24px 0 rgba(0, 179, 255, 0.24)
165
+ $shadow--medium: 0 6px 6px 0 rgba($brand-primary, 0.38)
166
+ $shadow--small: 0 6px 6px 0 rgba($brand-primary, 0.28)
167
+
168
+ $header-height: 55px
169
+ $header-transition: 0.6s cubic-bezier(0.25, 0.8, 0.5, 1)
170
+ $header-quick-transition: 0.28s ease-in-out
94
171
  ```
95
172
 
173
+ For custom themes, prefer deriving dark surfaces such as `$dark-pill` from `$brand-dark-bg` instead of `$brand-primary`. Accent colors can become too saturated or too dark when reused as backgrounds or text in dark mode.
174
+
96
175
  ## Media Query Breakpoints
97
176
 
98
- When setting up your menu system, you may need to adjust the media query breakpoints. You can add the following to your `src/css/quasar.variables.(scss|sass)` file:
177
+ When setting up your menu system, you may need to adjust the media query breakpoints. You can add the following to your `src/css/quasar.variables.scss` or `src/css/quasar.variables.sass` file:
99
178
 
100
- ```scss
179
+ ```tabs
180
+ <<| scss SCSS |>>
101
181
  $mq-list:
102
182
  375,
103
183
  470,
@@ -114,6 +194,7 @@ $mq-list:
114
194
  1300 /* drawer */,
115
195
  1310,
116
196
  1400;
197
+
117
198
  @each $query in $mq-list {
118
199
  @media (min-width: #{$query}px) {
119
200
  .lt-#{$query} {
@@ -127,4 +208,15 @@ $mq-list:
127
208
  }
128
209
  }
129
210
  }
211
+ <<| sass Sass |>>
212
+ $mq-list: 375, 470, 510, 600, 780, 860, 910, 1000, 1020, 1100, 1130, 1190, 1300, 1310, 1400
213
+
214
+ @each $query in $mq-list
215
+ @media (min-width: #{$query}px)
216
+ .lt-#{$query}
217
+ display: none
218
+
219
+ @media (max-width: #{$query - 1}px)
220
+ .gt-#{$query}
221
+ display: none
130
222
  ```
@@ -1,4 +1,162 @@
1
1
  ---
2
2
  title: ViteMdPluginAppExt Advanced Topics
3
3
  desc: Advanced Topics for the ViteMdPluginAppExt.
4
+ related:
5
+ - vite-plugins/vite-md-plugin/advanced
6
+ - quasar-app-extensions/qpress/overview
4
7
  ---
8
+
9
+ The `@md-plugins/quasar-app-extension-vite-md-plugin` app extension is intentionally small. It prepares a Quasar Vite app so Markdown files can be treated like Vue files, but your app still owns the Markdown source folder, menu shape, and `viteMdPlugin` options.
10
+
11
+ ::: tip
12
+ If you want a complete documentation site scaffold, use [Q-Press](/quasar-app-extensions/qpress/overview). If you only want Markdown pages inside an existing Quasar app, this app extension is the lighter fit.
13
+ :::
14
+
15
+ ## What the App Extension Changes
16
+
17
+ On every Quasar dev/build run, the app extension extends `quasar.config` with the browser-side settings Markdown pages need:
18
+
19
+ ```ts
20
+ build: {
21
+ vueRouterMode: 'history',
22
+
23
+ viteVuePluginOptions: {
24
+ include: [/\.(vue|md)$/],
25
+ },
26
+ },
27
+
28
+ framework: {
29
+ autoImportVueExtensions: ['vue', 'md'],
30
+ },
31
+ ```
32
+
33
+ These settings solve three common problems:
34
+
35
+ - `vueRouterMode: 'history'` keeps hash links and generated markdown routes predictable.
36
+ - `viteVuePluginOptions.include` lets Vue compile `.md` files as Vue single-file components.
37
+ - `autoImportVueExtensions` lets route files and component imports resolve `.md` files without always spelling out the extension.
38
+
39
+ ## What You Still Configure
40
+
41
+ The app extension does not generate your docs shell or menu for you. You still install and configure `@md-plugins/vite-md-plugin` in `quasar.config.ts`.
42
+
43
+ ```ts
44
+ import { defineConfig } from '#q-app/wrappers'
45
+ import type { Plugin } from 'vite'
46
+
47
+ import { viteMdPlugin, type MenuItem } from '@md-plugins/vite-md-plugin'
48
+ import { sidebar } from './src/siteConfig'
49
+
50
+ export default defineConfig((ctx) => ({
51
+ build: {
52
+ vitePlugins: [
53
+ [
54
+ viteMdPlugin,
55
+ {
56
+ path: ctx.appPaths.srcDir + '/markdown',
57
+ menu: sidebar as MenuItem[],
58
+ config: {
59
+ html: true,
60
+ linkify: true,
61
+ },
62
+ },
63
+ ] as unknown as Plugin,
64
+ ],
65
+ },
66
+ }))
67
+ ```
68
+
69
+ For JavaScript projects, remove the `type` imports and casts. The runtime shape is the same.
70
+
71
+ ## Recommended Folder Shape
72
+
73
+ A simple Quasar app can keep Markdown content and navigation data close together:
74
+
75
+ ```text
76
+ src/
77
+ markdown/
78
+ getting-started/
79
+ introduction.md
80
+ guides/
81
+ routing.md
82
+ siteConfig/
83
+ index.ts
84
+ ```
85
+
86
+ Then export the menu from `src/siteConfig/index.ts`:
87
+
88
+ ```ts
89
+ import type { MenuItem } from '@md-plugins/vite-md-plugin'
90
+
91
+ export const sidebar: MenuItem[] = [
92
+ {
93
+ name: 'Getting Started',
94
+ children: [{ name: 'Introduction', path: '/getting-started/introduction' }],
95
+ },
96
+ {
97
+ name: 'Guides',
98
+ children: [{ name: 'Routing', path: '/guides/routing' }],
99
+ },
100
+ ]
101
+ ```
102
+
103
+ The `path` values should match the route you expect for the markdown file under the configured Markdown folder.
104
+
105
+ ## Markdown Options
106
+
107
+ Use the `config` option to tune Markdown-It and the bundled md-plugins.
108
+
109
+ ```ts
110
+ viteMdPlugin({
111
+ path: ctx.appPaths.srcDir + '/markdown',
112
+ menu: sidebar,
113
+ config: {
114
+ html: true,
115
+ linkify: true,
116
+ typographer: true,
117
+ codeblocks: {
118
+ defaultLang: 'typescript',
119
+ preClass: 'markdown-code',
120
+ },
121
+ link: {
122
+ externalTarget: '_blank',
123
+ externalRel: 'noopener noreferrer',
124
+ },
125
+ },
126
+ })
127
+ ```
128
+
129
+ ::: warning
130
+ Only enable `html: true` for content you trust. Markdown HTML is powerful, but it also means your markdown authors can inject raw HTML.
131
+ :::
132
+
133
+ ## Routing Notes
134
+
135
+ The app extension sets `vueRouterMode` to `history` because Q-Press and the Vite markdown plugin rely on stable URLs and hash anchors. If your app is deployed to static hosting, make sure your host rewrites unknown routes back to `index.html`.
136
+
137
+ For example, Netlify apps usually need:
138
+
139
+ ```toml
140
+ [[redirects]]
141
+ from = "/*"
142
+ to = "/index.html"
143
+ status = 200
144
+ ```
145
+
146
+ ## When to Use Q-Press Instead
147
+
148
+ Choose Q-Press when you want the full docs experience:
149
+
150
+ - Generated docs layout, header, sidebars, footer, and search.
151
+ - Markdown examples and CodePen generation.
152
+ - API cards using Quasar-style JSON metadata.
153
+ - Themes, release pages, FAQ, and contribution pages.
154
+
155
+ Choose this app extension when you already have an app shell and only need Markdown files to compile and route cleanly.
156
+
157
+ ## Troubleshooting
158
+
159
+ - If Markdown imports fail, confirm `viteVuePluginOptions.include` includes `/\.(vue|md)$/`.
160
+ - If routes work locally but fail after refresh in production, add a history fallback on your host.
161
+ - If Markdown pages render but links do not behave like SPA links, check the `link` plugin options and your generated routes.
162
+ - If you recently upgraded Quasar app-vite, run `quasar prepare` so generated Quasar aliases and types are refreshed.
@@ -9,7 +9,7 @@ related:
9
9
  The `viteMdPluginAppExt` is a [Quasar App Extension](https://quasar.dev/app-extensions/introduction) that integrates the `viteMdPlugin` into your Quasar project. This extension allows you to use Markdown files as Vue components, enabling a seamless integration of Markdown content into your Quasar application.
10
10
 
11
11
  ::: warning
12
- This app extension targets Quasar Vite projects using `@quasar/app-vite` `>=3.0.0-beta.14`.
12
+ This app extension targets Quasar Vite projects using `@quasar/app-vite` `>=3.0.0-beta.33`.
13
13
  :::
14
14
 
15
15
  ## Key Features
@@ -84,10 +84,15 @@ export default defineConfig(({ mode }) => {
84
84
  ],
85
85
  build: {
86
86
  chunkSizeWarningLimit: 650,
87
- rollupOptions: {
87
+ rolldownOptions: {
88
88
  output: {
89
- manualChunks: {
90
- vendor: ['vue', 'vite'],
89
+ codeSplitting: {
90
+ groups: [
91
+ {
92
+ name: (moduleId) =>
93
+ /node_modules[\\/](vue|vite)[\\/]/.test(moduleId) ? 'vendor' : null,
94
+ },
95
+ ],
91
96
  },
92
97
  },
93
98
  },
@@ -18,11 +18,13 @@ The Vite Examples Plugin is a powerful tool that enhances the standard Vite func
18
18
 
19
19
  ## Installation
20
20
 
21
- You can install the Vite Examples plugin using npm, yarn, or pnpm. Choose your preferred method below:
21
+ You can install the Vite Examples plugin using npm, yarn, pnpm, or bun. Choose your preferred method below:
22
22
 
23
23
  ```tabs
24
24
  <<| bash pnpm |>>
25
25
  pnpm add @md-plugins/vite-examples-plugin
26
+ <<| bash bun |>>
27
+ bun add @md-plugins/vite-examples-plugin
26
28
  <<| bash yarn |>>
27
29
  yarn add @md-plugins/vite-examples-plugin
28
30
  <<| bash npm |>>
@@ -40,8 +42,14 @@ extendViteConf(viteConf, { isClient }) {
40
42
  if (ctx.prod && isClient) {
41
43
  viteConf.build = viteConf.build || {}
42
44
  viteConf.build.chunkSizeWarningLimit = 650
43
- viteConf.build.rollupOptions = {
44
- output: { manualChunks: viteManualChunks },
45
+ viteConf.build.rolldownOptions = viteConf.build.rolldownOptions || {}
46
+ viteConf.build.rolldownOptions.output = viteConf.build.rolldownOptions.output || {}
47
+ viteConf.build.rolldownOptions.output.codeSplitting = {
48
+ groups: [
49
+ {
50
+ name: (moduleId) => viteManualChunks(moduleId) ?? null,
51
+ },
52
+ ],
45
53
  }
46
54
  }
47
55
  }
@@ -71,9 +79,15 @@ export default defineConfig(({ mode }) => {
71
79
  ],
72
80
  build: {
73
81
  chunkSizeWarningLimit: 650,
74
- rollupOptions: {
82
+ rolldownOptions: {
75
83
  output: {
76
- manualChunks: viteManualChunks,
84
+ codeSplitting: {
85
+ groups: [
86
+ {
87
+ name: (moduleId) => viteManualChunks(moduleId) ?? null,
88
+ },
89
+ ],
90
+ },
77
91
  },
78
92
  },
79
93
  },