@md-plugins/quasar-app-extension-q-press 0.1.0-alpha.25 → 0.1.0-alpha.27

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 (52) hide show
  1. package/README.md +24 -24
  2. package/package.json +14 -14
  3. package/src/templates/init/src/_q-press/components/MarkdownApi.vue +17 -12
  4. package/src/templates/init/src/_q-press/components/MarkdownCardTitle.vue +9 -3
  5. package/src/templates/init/src/_q-press/components/MarkdownCode.vue +8 -2
  6. package/src/templates/init/src/_q-press/components/MarkdownCodepen.vue +1 -1
  7. package/src/templates/init/src/_q-press/components/MarkdownCopyButton.vue +5 -2
  8. package/src/templates/init/src/_q-press/components/MarkdownExample.vue +16 -10
  9. package/src/templates/init/src/_q-press/components/MarkdownLink.vue +1 -1
  10. package/src/templates/init/src/_q-press/components/MarkdownPrerender.ts +2 -0
  11. package/src/templates/init/src/_q-press/components/MarkdownTree.vue +6 -3
  12. package/src/templates/init/src/_q-press/css/app.scss +17 -0
  13. package/src/templates/init/src/_q-press/layouts/MarkdownHeaderTextLinks.vue +12 -3
  14. package/src/templates/init/src/_q-press/layouts/MarkdownLayout.vue +2 -2
  15. package/src/templates/init/src/_q-press/layouts/MarkdownPage.vue +38 -14
  16. package/src/templates/init/src/_q-press/layouts/MarkdownPageFooter.vue +1 -1
  17. package/src/templates/init/src/_q-press/layouts/MarkdownPageToc.vue +2 -2
  18. package/src/templates/init/src/markdown/md-plugins/blockquote/overview.md +4 -4
  19. package/src/templates/init/src/markdown/md-plugins/codeblocks/overview.md +114 -24
  20. package/src/templates/init/src/markdown/md-plugins/containers/advanced.md +40 -12
  21. package/src/templates/init/src/markdown/md-plugins/containers/overview.md +44 -14
  22. package/src/templates/init/src/markdown/md-plugins/frontmatter/overview.md +4 -4
  23. package/src/templates/init/src/markdown/md-plugins/headers/overview.md +4 -4
  24. package/src/templates/init/src/markdown/md-plugins/image/overview.md +4 -4
  25. package/src/templates/init/src/markdown/md-plugins/imports/overview.md +4 -4
  26. package/src/templates/init/src/markdown/md-plugins/inline-code/overview.md +4 -4
  27. package/src/templates/init/src/markdown/md-plugins/link/overview.md +4 -4
  28. package/src/templates/init/src/markdown/md-plugins/table/overview.md +4 -4
  29. package/src/templates/init/src/markdown/md-plugins/title/overview.md +4 -4
  30. package/src/templates/init/src/markdown/privacy-policy.md +0 -2
  31. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/advanced.md +4 -4
  32. package/src/templates/init/src/markdown/quasar-app-extensions/qpress/overview.md +12 -10
  33. package/src/templates/init/src/markdown/vite-plugins/vite-examples-plugin/overview.md +4 -4
  34. package/src/templates/init/src/markdown/vite-plugins/vite-md-plugin/advanced.md +2 -1
  35. package/src/templates/init/src/markdown/vite-plugins/vite-md-plugin/overview.md +5 -4
  36. package/src/templates/init/src/q-press.globals.d.ts +1 -1
  37. package/src/templates/update/src/_q-press/components/MarkdownApi.vue +17 -12
  38. package/src/templates/update/src/_q-press/components/MarkdownCardTitle.vue +9 -3
  39. package/src/templates/update/src/_q-press/components/MarkdownCode.vue +8 -2
  40. package/src/templates/update/src/_q-press/components/MarkdownCodepen.vue +1 -1
  41. package/src/templates/update/src/_q-press/components/MarkdownCopyButton.vue +5 -2
  42. package/src/templates/update/src/_q-press/components/MarkdownExample.vue +16 -10
  43. package/src/templates/update/src/_q-press/components/MarkdownLink.vue +1 -1
  44. package/src/templates/update/src/_q-press/components/MarkdownPrerender.ts +2 -0
  45. package/src/templates/update/src/_q-press/components/MarkdownTree.vue +6 -3
  46. package/src/templates/update/src/_q-press/css/app.scss +17 -0
  47. package/src/templates/update/src/_q-press/layouts/MarkdownHeaderTextLinks.vue +12 -3
  48. package/src/templates/update/src/_q-press/layouts/MarkdownLayout.vue +2 -2
  49. package/src/templates/update/src/_q-press/layouts/MarkdownPage.vue +38 -14
  50. package/src/templates/update/src/_q-press/layouts/MarkdownPageFooter.vue +1 -1
  51. package/src/templates/update/src/_q-press/layouts/MarkdownPageToc.vue +2 -2
  52. package/src/templates/update/src/q-press.globals.d.ts +1 -1
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  The Ultimate Markdown Solution for the Quasar Framework.
4
4
 
5
+ See the [documentation](https://md-plugins.netlify.app/quasar-app-extensions/qpress/overview) for more information.
6
+
5
7
  ## Features
6
8
 
7
9
  - **Markdown**
@@ -63,32 +65,32 @@ The Ultimate Markdown Solution for the Quasar Framework.
63
65
  3. Modify your `quasar.config.ts`
64
66
 
65
67
  - ```ts
66
- import { viteMdPlugin, type MenuItem } from '@md-plugins/vite-md-plugin'
67
-
68
+ import { viteMdPlugin, type MenuItem, type MarkdownOptions } from '@md-plugins/vite-md-plugin'
68
69
 
69
70
  export default defineConfig(async (ctx) => {
70
- // Dynamically import siteConfig
71
- const siteConfig = await import('./src/siteConfig')
72
- const { sidebar } = siteConfig
73
- return {
74
- build: {
75
- vitePlugins: [
76
- // add this plugin
77
- [
78
- viteMdPlugin,
79
- {
80
- path: ctx.appPaths.srcDir + '/markdown',
81
- menu: sidebar as MenuItem[],
82
- },
83
- ],
84
- // ...
71
+ // Dynamically import siteConfig
72
+ const siteConfig = await import('./src/siteConfig')
73
+ const { sidebar } = siteConfig
74
+ return {
75
+ build: {
76
+ vitePlugins: [
77
+ // add this plugin
78
+ [
79
+ viteMdPlugin,
80
+ {
81
+ path: ctx.appPaths.srcDir + '/markdown',
82
+ menu: sidebar as MenuItem[],
83
+ // options: myOptions as MarkdownOptions
84
+ },
85
+ ],
86
+ // ...
85
87
  ```
86
88
 
87
89
  4. Modify your `src/routes/routes.ts`
88
90
 
89
91
  - ```ts
92
+ import type { RouteRecordRaw } from 'vue-router'
90
93
  import mdPageList from 'src/markdown/listing'
91
-
92
94
  const routes = [
93
95
  {
94
96
  path: '/',
@@ -126,14 +128,13 @@ The Ultimate Markdown Solution for the Quasar Framework.
126
128
  }),
127
129
  ],
128
130
  },
129
-
130
131
  // Always leave this as last one,
131
132
  // but you can also remove it
132
133
  {
133
134
  path: '/:catchAll(._)_',
134
135
  component: () => import('pages/ErrorNotFound.vue'),
135
136
  },
136
- ]
137
+ ] as RouteRecordRaw[]
137
138
 
138
139
  export default routes
139
140
  ```
@@ -145,11 +146,10 @@ The Ultimate Markdown Solution for the Quasar Framework.
145
146
  <router-view />
146
147
  </template>
147
148
 
148
-
149
149
  <script setup lang="ts">
150
- import { useDark } from 'src/.q-press/composables/dark'
151
- const { initDark } = useDark()
152
- initDark()
150
+ import { useDark } from 'src/.q-press/composables/dark'
151
+ const { initDark } = useDark()
152
+ initDark()
153
153
  </script>
154
154
  ```
155
155
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@md-plugins/quasar-app-extension-q-press",
3
- "version": "0.1.0-alpha.25",
3
+ "version": "0.1.0-alpha.27",
4
4
  "description": "QPress - The Ultimate Markdown Solution for Quasar Framework",
5
5
  "author": "hawkeye64 <galbraith64@gmail.com>",
6
6
  "keywords": [
@@ -29,19 +29,19 @@
29
29
  "dependencies": {
30
30
  "@types/markdown-it": "^14.1.2",
31
31
  "markdown-it": "^14.1.0",
32
- "@md-plugins/md-plugin-blockquote": "0.1.0-alpha.25",
33
- "@md-plugins/md-plugin-headers": "0.1.0-alpha.25",
34
- "@md-plugins/md-plugin-codeblocks": "0.1.0-alpha.25",
35
- "@md-plugins/md-plugin-frontmatter": "0.1.0-alpha.25",
36
- "@md-plugins/md-plugin-inlinecode": "0.1.0-alpha.25",
37
- "@md-plugins/md-plugin-image": "0.1.0-alpha.25",
38
- "@md-plugins/md-plugin-imports": "0.1.0-alpha.25",
39
- "@md-plugins/md-plugin-containers": "0.1.0-alpha.25",
40
- "@md-plugins/md-plugin-table": "0.1.0-alpha.25",
41
- "@md-plugins/md-plugin-title": "0.1.0-alpha.25",
42
- "@md-plugins/vite-md-plugin": "0.1.0-alpha.25",
43
- "@md-plugins/md-plugin-link": "0.1.0-alpha.25",
44
- "@md-plugins/shared": "0.1.0-alpha.25"
32
+ "@md-plugins/md-plugin-frontmatter": "0.1.0-alpha.27",
33
+ "@md-plugins/md-plugin-blockquote": "0.1.0-alpha.27",
34
+ "@md-plugins/md-plugin-containers": "0.1.0-alpha.27",
35
+ "@md-plugins/md-plugin-imports": "0.1.0-alpha.27",
36
+ "@md-plugins/md-plugin-image": "0.1.0-alpha.27",
37
+ "@md-plugins/md-plugin-table": "0.1.0-alpha.27",
38
+ "@md-plugins/md-plugin-inlinecode": "0.1.0-alpha.27",
39
+ "@md-plugins/md-plugin-headers": "0.1.0-alpha.27",
40
+ "@md-plugins/md-plugin-link": "0.1.0-alpha.27",
41
+ "@md-plugins/md-plugin-codeblocks": "0.1.0-alpha.27",
42
+ "@md-plugins/shared": "0.1.0-alpha.27",
43
+ "@md-plugins/md-plugin-title": "0.1.0-alpha.27",
44
+ "@md-plugins/vite-md-plugin": "0.1.0-alpha.27"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/markdown-it": "^14.1.2",
@@ -8,9 +8,9 @@
8
8
  @click="onSearchFieldClick"
9
9
  >
10
10
  <input
11
- class="col markdown-api__search text-right"
12
11
  ref="inputRef"
13
12
  v-model="filter"
13
+ class="col markdown-api__search text-right"
14
14
  name="filter"
15
15
  placeholder="Filter..."
16
16
  />
@@ -25,8 +25,8 @@
25
25
  </div>
26
26
 
27
27
  <q-btn
28
- class="q-ml-sm header-btn"
29
28
  v-if="props.pageLink"
29
+ class="q-ml-sm header-btn"
30
30
  size="sm"
31
31
  padding="xs sm"
32
32
  no-caps
@@ -45,8 +45,8 @@
45
45
  </template>
46
46
  <template v-else>
47
47
  <q-tabs
48
- class="header-tabs"
49
48
  v-model="currentTab"
49
+ class="header-tabs"
50
50
  active-color="brand-primary"
51
51
  indicator-color="brand-primary"
52
52
  align="left"
@@ -63,12 +63,12 @@
63
63
  <q-separator />
64
64
 
65
65
  <q-tab-panels v-model="currentTab" animated>
66
- <q-tab-panel class="q-pa-none" v-for="tab in tabsList" :name="tab" :key="tab">
67
- <div class="markdown-api__container row no-wrap" v-if="innerTabsList[tab].length !== 1">
66
+ <q-tab-panel v-for="tab in tabsList" :key="tab" class="q-pa-none" :name="tab">
67
+ <div v-if="innerTabsList[tab].length !== 1" class="markdown-api__container row no-wrap">
68
68
  <div class="col-auto">
69
69
  <q-tabs
70
- class="header-tabs markdown-api__subtabs"
71
70
  v-model="currentInnerTab"
71
+ class="header-tabs markdown-api__subtabs"
72
72
  active-color="brand-primary"
73
73
  indicator-color="brand-primary"
74
74
  :breakpoint="0"
@@ -77,9 +77,9 @@
77
77
  shrink
78
78
  >
79
79
  <q-tab
80
- class="markdown-api__subtabs-item header-btn"
81
80
  v-for="innerTab in innerTabsList[tab]"
82
81
  :key="`api-inner-tab-${innerTab}`"
82
+ class="markdown-api__subtabs-item header-btn"
83
83
  :name="innerTab"
84
84
  >
85
85
  <div class="row no-wrap items-center self-stretch q-pl-sm">
@@ -97,23 +97,23 @@
97
97
  <q-separator vertical />
98
98
 
99
99
  <q-tab-panels
100
- class="col"
101
100
  v-model="currentInnerTab"
101
+ class="col"
102
102
  animated
103
103
  transition-prev="slide-down"
104
104
  transition-next="slide-up"
105
105
  >
106
106
  <q-tab-panel
107
- class="q-pa-none"
108
107
  v-for="innerTab in innerTabsList[tab]"
109
- :name="innerTab"
110
108
  :key="innerTab"
109
+ class="q-pa-none"
110
+ :name="innerTab"
111
111
  >
112
112
  <MarkdownApiEntry :type="tab" :definition="filteredApi[tab][innerTab]" />
113
113
  </q-tab-panel>
114
114
  </q-tab-panels>
115
115
  </div>
116
- <div class="markdown-api__container" v-else>
116
+ <div v-else class="markdown-api__container">
117
117
  <MarkdownApiEntry :type="tab" :definition="filteredApi[tab][defaultInnerTabName]" />
118
118
  </div>
119
119
  </q-tab-panel>
@@ -369,12 +369,17 @@ const props = defineProps({
369
369
  file: {
370
370
  type: String,
371
371
  required: false,
372
+ default: '',
372
373
  },
373
374
  api: {
374
375
  type: Object,
375
376
  required: false,
377
+ default: null,
378
+ },
379
+ name: {
380
+ type: String,
381
+ default: 'API Documentation',
376
382
  },
377
- name: String,
378
383
  pageLink: Boolean,
379
384
  })
380
385
 
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="markdown-card-title q-my-xs q-mr-sm cursor-pointer" :id="id" @click="onClick">
2
+ <div :id="id" class="markdown-card-title q-my-xs q-mr-sm cursor-pointer" @click="onClick">
3
3
  {{ props.title }}
4
4
  </div>
5
5
  </template>
@@ -9,8 +9,14 @@ import { computed } from 'vue'
9
9
  import { copyHeading, slugify } from './markdown-utils'
10
10
 
11
11
  const props = defineProps({
12
- title: String,
13
- prefix: String,
12
+ title: {
13
+ type: String,
14
+ required: true,
15
+ },
16
+ prefix: {
17
+ type: String,
18
+ default: '',
19
+ },
14
20
  })
15
21
 
16
22
  const id = computed(() => (props.prefix || '') + slugify(props.title))
@@ -12,8 +12,14 @@ import MarkdownCodePrism from './MarkdownCodePrism'
12
12
  import MarkdownCopyButton from './MarkdownCopyButton.vue'
13
13
 
14
14
  const props = defineProps({
15
- code: String,
16
- maxHeight: String,
15
+ code: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ maxHeight: {
20
+ type: String,
21
+ default: void 0,
22
+ },
17
23
 
18
24
  lang: {
19
25
  type: String,
@@ -45,7 +45,7 @@ const replace = (name) =>
45
45
  return text.join('\n')
46
46
  }
47
47
 
48
- const props = defineProps({ title: String })
48
+ const props = defineProps({ title: { type: String, required: true } })
49
49
 
50
50
  const active = ref(false)
51
51
  const formRef = ref(null)
@@ -3,7 +3,7 @@
3
3
  <q-icon :name="mdiClipboardOutline" color="brand-primary" @click="copy" />
4
4
 
5
5
  <transition enter-active-class="animated fadeIn" leave-active-class="animated fadeOut">
6
- <q-badge class="absolute header-badge" v-show="copied" label="Copied to clipboard" />
6
+ <q-badge v-show="copied" class="absolute header-badge" label="Copied to clipboard" />
7
7
  </transition>
8
8
  </div>
9
9
  </template>
@@ -14,7 +14,10 @@ import { copyToClipboard } from './markdown-utils'
14
14
  import { mdiClipboardOutline } from '@quasar/extras/mdi-v7'
15
15
 
16
16
  const props = defineProps({
17
- lang: String,
17
+ lang: {
18
+ type: String,
19
+ default: 'markdown',
20
+ },
18
21
  })
19
22
 
20
23
  const { proxy } = getCurrentInstance()
@@ -24,14 +24,14 @@
24
24
  <q-tooltip>View on GitHub</q-tooltip>
25
25
  </q-btn>
26
26
  <q-btn
27
- class="header-btn q-ml-xs"
28
27
  v-if="props.noEdit !== true"
28
+ class="header-btn q-ml-xs"
29
29
  dense
30
30
  flat
31
31
  round
32
32
  :icon="fabCodepen"
33
- @click="openCodepen"
34
33
  :disable="isBusy"
34
+ @click="openCodepen"
35
35
  >
36
36
  <q-tooltip>Edit in Codepen</q-tooltip>
37
37
  </q-btn>
@@ -41,8 +41,8 @@
41
41
  flat
42
42
  round
43
43
  icon="code"
44
- @click="toggleExpand"
45
44
  :disable="isBusy"
45
+ @click="toggleExpand"
46
46
  >
47
47
  <q-tooltip>View Source</q-tooltip>
48
48
  </q-btn>
@@ -52,8 +52,8 @@
52
52
  <q-slide-transition>
53
53
  <div v-show="expanded">
54
54
  <q-tabs
55
- class="header-tabs"
56
55
  v-model="currentTab"
56
+ class="header-tabs"
57
57
  align="left"
58
58
  no-caps
59
59
  active-color="brand-primary"
@@ -68,8 +68,8 @@
68
68
 
69
69
  <q-separator />
70
70
 
71
- <q-tab-panels class="text-grey-3 text-weight-regular" v-model="currentTab" animated>
72
- <q-tab-panel class="q-pa-none" v-for="tab in def.tabs" :key="`pane-${tab}`" :name="tab">
71
+ <q-tab-panels v-model="currentTab" class="text-grey-3 text-weight-regular" animated>
72
+ <q-tab-panel v-for="tab in def.tabs" :key="`pane-${tab}`" class="q-pa-none" :name="tab">
73
73
  <MarkdownCode lang="markup" :code="def.parts[tab]" max-height="70vh" />
74
74
  </q-tab-panel>
75
75
  </q-tab-panels>
@@ -83,9 +83,9 @@
83
83
  <div class="row overflow-hidden">
84
84
  <q-linear-progress v-if="isBusy" color="brand-primary" indeterminate />
85
85
  <component
86
- class="col markdown-example__content markdown-example-typography"
87
- v-else
88
86
  :is="component"
87
+ v-else
88
+ class="col markdown-example__content markdown-example-typography"
89
89
  :class="componentClass"
90
90
  />
91
91
  </div>
@@ -107,8 +107,14 @@ import MarkdownCardTitle from './MarkdownCardTitle.vue'
107
107
  import siteConfig from '../../siteConfig'
108
108
 
109
109
  const props = defineProps({
110
- title: String,
111
- file: String,
110
+ title: {
111
+ type: String,
112
+ required: true,
113
+ },
114
+ file: {
115
+ type: String,
116
+ required: true,
117
+ },
112
118
  noEdit: Boolean, // no codepen edit
113
119
  scrollable: Boolean,
114
120
  overflow: Boolean,
@@ -12,7 +12,7 @@
12
12
  import { computed } from 'vue'
13
13
  import { mdiLaunch } from '@quasar/extras/mdi-v6'
14
14
 
15
- const props = defineProps({ to: String })
15
+ const props = defineProps({ to: { type: String, required: true } })
16
16
  const internal = computed(
17
17
  () => props.to.charAt(0) === '/' || props.to.charAt(0) === '.' || props.to.charAt(0) === '#',
18
18
  )
@@ -8,10 +8,12 @@ export default defineComponent({
8
8
  title: {
9
9
  type: String as PropType<string>,
10
10
  required: false,
11
+ default: undefined,
11
12
  },
12
13
  tabs: {
13
14
  type: Array as PropType<string[]>,
14
15
  required: false,
16
+ default: undefined,
15
17
  },
16
18
  },
17
19
 
@@ -17,16 +17,16 @@
17
17
 
18
18
  <template v-if="prop.node.e">
19
19
  <q-icon
20
+ v-if="prop.node.e"
20
21
  :name="mdiInformationOutline"
21
22
  class="q-ml-sm lt-sm"
22
- v-if="prop.node.e"
23
23
  color="grey"
24
24
  @click.stop
25
25
  @touchstart.stop
26
26
  >
27
27
  <q-tooltip>{{ prop.node.e }}</q-tooltip>
28
28
  </q-icon>
29
- <div class="markdown-tree__explanation text-grey q-ml-sm gt-xs" v-if="prop.node.e">
29
+ <div v-if="prop.node.e" class="markdown-tree__explanation text-grey q-ml-sm gt-xs">
30
30
  # {{ prop.node.e }}
31
31
  </div>
32
32
  </template>
@@ -38,7 +38,10 @@
38
38
  import { mdiLaunch, mdiInformationOutline } from '@quasar/extras/mdi-v6'
39
39
 
40
40
  const props = defineProps({
41
- def: Object,
41
+ def: {
42
+ type: Object,
43
+ required: true,
44
+ },
42
45
  })
43
46
 
44
47
  let id = 0
@@ -112,6 +112,10 @@ ul {
112
112
  .markdown-token {
113
113
  border-color: $brand-primary;
114
114
  }
115
+ & strong {
116
+ font-weight: 700;
117
+ color: scale-color($brand-light-text, $lightness: 90%);
118
+ }
115
119
  }
116
120
 
117
121
  &--tip {
@@ -126,6 +130,10 @@ ul {
126
130
  .markdown-token {
127
131
  border-color: scale-color($positive, $lightness: -40%);
128
132
  }
133
+ & strong {
134
+ font-weight: 700;
135
+ color: scale-color($positive, $lightness: 90%);
136
+ }
129
137
  }
130
138
 
131
139
  &--warning {
@@ -140,6 +148,10 @@ ul {
140
148
  .markdown-token {
141
149
  border-color: scale-color($warning, $lightness: -40%);
142
150
  }
151
+ & strong {
152
+ font-weight: 700;
153
+ color: scale-color($warning, $lightness: 90%);
154
+ }
143
155
  }
144
156
 
145
157
  &--danger {
@@ -154,6 +166,11 @@ ul {
154
166
  .markdown-token {
155
167
  border-color: $negative;
156
168
  }
169
+
170
+ & strong {
171
+ font-weight: 700;
172
+ color: scale-color($negative, $lightness: 90%);
173
+ }
157
174
  }
158
175
 
159
176
  &--details {
@@ -30,8 +30,17 @@ import MarkdownHeaderMenu from './MarkdownHeaderMenu'
30
30
  import type { SiteMenuItem } from '../../siteConfig'
31
31
 
32
32
  const props = defineProps({
33
- menu: Array<SiteMenuItem>,
34
- mqPrefix: String,
35
- navClass: String,
33
+ menu: {
34
+ type: Array<SiteMenuItem>,
35
+ required: true,
36
+ },
37
+ mqPrefix: {
38
+ type: String,
39
+ default: '',
40
+ },
41
+ navClass: {
42
+ type: String,
43
+ default: '',
44
+ },
36
45
  })
37
46
  </script>
@@ -3,9 +3,9 @@
3
3
  <MarkdownHeader />
4
4
 
5
5
  <q-page-container>
6
- <q-page :class="pageClass" key="q-page">
6
+ <q-page key="q-page" :class="pageClass">
7
7
  <router-view v-if="isFullscreen" key="page-fullscreen" />
8
- <div v-else :class="pageContentClass" key="page-standard">
8
+ <div v-else key="page-standard" :class="pageContentClass">
9
9
  <div
10
10
  v-if="siteConfig.config.useSidebar === true"
11
11
  class="markdown-layout__menu-container row justify-center"
@@ -4,7 +4,7 @@
4
4
  {{ props.overline }}
5
5
  </div>
6
6
 
7
- <div v-if="!isFullscreen && props.title" class="markdown-heading markdown-h1" id="introduction">
7
+ <div v-if="!isFullscreen && props.title" id="introduction" class="markdown-heading markdown-h1">
8
8
  <div class="row items-center q-gutter-sm">
9
9
  <div>{{ props.title }}</div>
10
10
  <q-badge v-if="props.badge" :label="props.badge" />
@@ -30,12 +30,12 @@
30
30
  </q-btn>
31
31
  </div>
32
32
 
33
- <div class="markdown-page__nav" v-if="props.related">
33
+ <div v-if="props.related" class="markdown-page__nav">
34
34
  <div class="q-gutter-sm flex">
35
35
  <router-link
36
- class="q-link markdown-page__related rounded-borders cursor-pointer column justify-center"
37
36
  v-for="link in props.related"
38
37
  :key="link.category + link.path"
38
+ class="q-link markdown-page__related rounded-borders cursor-pointer column justify-center"
39
39
  :to="link.path"
40
40
  >
41
41
  <div class="markdown-page__nav-categ">{{ link.category || 'Docs' }}</div>
@@ -49,7 +49,7 @@
49
49
 
50
50
  <slot />
51
51
 
52
- <div class="markdown-page__nav markdown-page__nav--footer" v-if="props.nav">
52
+ <div v-if="props.nav" class="markdown-page__nav markdown-page__nav--footer">
53
53
  <div class="text-h6 q-pb-md markdown-heading">Ready for more?</div>
54
54
  <div class="q-gutter-sm flex">
55
55
  <router-link
@@ -65,7 +65,7 @@
65
65
  </div>
66
66
  </div>
67
67
 
68
- <div class="markdown-page__content-footer" v-if="props.editLink">
68
+ <div v-if="props.editLink" class="markdown-page__content-footer">
69
69
  <q-separator class="q-mb-sm" />
70
70
 
71
71
  <div class="q-mb-md">
@@ -103,19 +103,43 @@ import { useMarkdownStore } from '../stores/markdown'
103
103
  import siteConfig from '../../siteConfig'
104
104
 
105
105
  const props = defineProps({
106
- title: String,
107
- desc: String,
108
- overline: String,
109
- badge: String,
106
+ title: {
107
+ type: String,
108
+ default: null,
109
+ },
110
+ desc: {
111
+ type: String,
112
+ default: null,
113
+ },
114
+ overline: {
115
+ type: String,
116
+ default: null,
117
+ },
118
+ badge: {
119
+ type: String,
120
+ default: null,
121
+ },
110
122
 
111
123
  fullscreen: Boolean,
112
124
 
113
125
  heading: Boolean,
114
- editLink: String,
115
-
116
- toc: Array<TocItem>,
117
- related: Array<RelatedItem>,
118
- nav: Array<NavItem>,
126
+ editLink: {
127
+ type: String,
128
+ default: null,
129
+ },
130
+
131
+ toc: {
132
+ type: Array<TocItem>,
133
+ default: () => [],
134
+ },
135
+ related: {
136
+ type: Array<RelatedItem>,
137
+ default: () => [],
138
+ },
139
+ nav: {
140
+ type: Array<NavItem>,
141
+ default: () => [],
142
+ },
119
143
  })
120
144
 
121
145
  useMeta(
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div v-if="siteConfig.config.useFooter" class="markdown-page-footer markdown-brand">
3
3
  <template v-if="props.fullscreen">
4
- <nav class="markdown-page-footer__nav" v-once>
4
+ <nav v-once class="markdown-page-footer__nav">
5
5
  <q-list v-for="entry in links" :key="entry.name" role="list">
6
6
  <q-item-label
7
7
  class="markdown-page-footer__title markdown-page-footer__margin row items-end text-weight-bold letter-spacing-225 q-mb-md"
@@ -2,12 +2,12 @@
2
2
  <q-list class="markdown-page__toc">
3
3
  <q-item
4
4
  v-for="tocItem in markdownStore.toc"
5
- :key="tocItem.id"
6
5
  :id="`toc--${tocItem.id}`"
6
+ :key="tocItem.id"
7
+ v-ripple
7
8
  clickable
8
9
  class="markdown-layout__item"
9
10
  active-class="markdown-layout__item--active"
10
- v-ripple
11
11
  :active="markdownStore.activeToc === tocItem.id"
12
12
  @click="tocItem.onClick"
13
13
  >
@@ -118,12 +118,12 @@ The official NPM name is `@md-plugins/md-plugin-blockquote`.
118
118
  You can install the Blockquote plugin using `npm`, `yarn`, or `pnpm`. Choose your preferred method below:
119
119
 
120
120
  ```tabs
121
- <<| bash npm |>>
122
- npm install @md-plugins/md-plugin-blockquote
123
- <<| bash yarn |>>
124
- yarn add @md-plugins/md-plugin-blockquote
125
121
  <<| bash pnpm |>>
126
122
  pnpm add @md-plugins/md-plugin-blockquote
123
+ <<| bash yarn |>>
124
+ yarn add @md-plugins/md-plugin-blockquote
125
+ <<| bash npm |>>
126
+ npm install @md-plugins/md-plugin-blockquote
127
127
  ```
128
128
 
129
129
  ## Configuration