Skip to content

Commit 8b77bcc

Browse files
committed
feat: integrate group icon plugin and update Vitepress configuration
1 parent 1a06c82 commit 8b77bcc

File tree

7 files changed

+320
-77
lines changed

7 files changed

+320
-77
lines changed

docs/.vitepress/config.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
import type { NimiqVitepressThemeConfig } from 'nimiq-vitepress-theme/types.js'
2-
import type { UserConfig } from 'vitepress'
3-
import { transformerTwoslash } from '@shikijs/vitepress-twoslash'
4-
import { createFileSystemTypesCache } from '@shikijs/vitepress-twoslash/cache-fs'
5-
import { defineConfigWithTheme } from 'vitepress'
1+
import { defineNimiqVitepressConfig } from 'nimiq-vitepress-theme'
62
import PreviewPlugin from './theme/plugins/component-preview'
73

84
// @unocss-include
95

10-
export default defineConfigWithTheme<NimiqVitepressThemeConfig>({
6+
export default defineNimiqVitepressConfig({
117
title: 'Nimiq UI',
128
description: 'Build awesome apps with the Nimiq Style',
139
base: '/nimiq-ui/',
@@ -151,12 +147,5 @@ export default defineConfigWithTheme<NimiqVitepressThemeConfig>({
151147
preConfig(md) {
152148
md.use(PreviewPlugin)
153149
},
154-
theme: 'vitesse-dark',
155-
languages: ['vue', 'vue-html', 'js', 'ts', 'markdown'],
156-
codeTransformers: [
157-
transformerTwoslash({
158-
typesCache: createFileSystemTypesCache(),
159-
}),
160-
],
161150
},
162-
} satisfies UserConfig<NimiqVitepressThemeConfig>)
151+
})

packages/nimiq-vitepress-theme/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,19 @@
7676
"nimiq-icons": "workspace:*",
7777
"p-map": "catalog:",
7878
"reka-ui": "catalog:",
79+
"vitepress-plugin-group-icons": "catalog:",
7980
"vue": "catalog:",
8081
"vue-router": "catalog:"
8182
},
8283
"devDependencies": {
8384
"@iconify/utils": "catalog:",
85+
"@shikijs/vitepress-twoslash": "catalog:",
8486
"@types/cross-spawn": "catalog:",
8587
"@unocss/cli": "catalog:",
8688
"@unocss/reset": "catalog:",
8789
"bumpp": "catalog:",
8890
"cross-spawn": "catalog:",
91+
"defu": "catalog:",
8992
"nimiq-css": "workspace:*",
9093
"pathe": "catalog:",
9194
"typescript": "catalog:",
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import type { NimiqVitepressThemeConfig } from 'nimiq-vitepress-theme/types.js'
2+
import type { UserConfig } from 'vitepress'
3+
import { transformerTwoslash } from '@shikijs/vitepress-twoslash'
4+
import { createFileSystemTypesCache } from '@shikijs/vitepress-twoslash/cache-fs'
5+
import { defu } from 'defu'
6+
import { defineConfigWithTheme } from 'vitepress'
7+
import { groupIconMdPlugin } from 'vitepress-plugin-group-icons'
8+
9+
const defaultConfig: UserConfig<NimiqVitepressThemeConfig> = {
10+
title: 'Nimiq Vitepress',
11+
description: 'Build awesome docs with the Nimiq Style',
12+
markdown: {
13+
config: (md) => {
14+
md.use(groupIconMdPlugin)
15+
},
16+
theme: 'vitesse-dark',
17+
languages: ['vue', 'vue-html', 'js', 'ts', 'markdown', 'json', 'rs'],
18+
codeTransformers: [
19+
transformerTwoslash({
20+
typesCache: createFileSystemTypesCache(),
21+
}),
22+
],
23+
},
24+
}
25+
26+
export function defineNimiqVitepressConfig<T extends NimiqVitepressThemeConfig>(config: UserConfig<T>) {
27+
const mergedConfig = defu(config, defaultConfig) as UserConfig<NimiqVitepressThemeConfig>
28+
return defineConfigWithTheme(mergedConfig)
29+
}

packages/nimiq-vitepress-theme/src/layout/Changelog.vue

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@ const [DefineCommitRegularLine, CommitRegularLine] = createReusableTemplate<Comm
1212
</script>
1313

1414
<template>
15-
<h2 id="changelog" px-48>
15+
<h2 id="changelog" sr-only>
1616
Changelog
17-
<a class="header-anchor" href="#changelog" aria-label="Permalink to Changelog" />
1817
</h2>
19-
<div v-if="!commits.length" px-32 mt-6 italic op-60>
20-
No Logs
21-
</div>
22-
<Collapsible.Root v-else class="nq-raw" px-32 bg-neutral-200 rounded-8>
18+
<Collapsible.Root v-if="commits.length > 0" class="nq-raw" px-32 bg-neutral-200 rounded-8 f-mt-lg>
2319
<Collapsible.Trigger bg-transparent w-full f-mt-2xs z-10 flex f-px-xs f-py-2xs>
2420
<div i-nimiq:watch-1-50 />
2521
See changelog of this file

packages/nimiq-vitepress-theme/src/vite.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
import type { Plugin } from 'vite'
2+
import { groupIconVitePlugin } from 'vitepress-plugin-group-icons'
23

34
export interface NimiqVitepressVitePluginOptions {
45

56
}
67

78
export function NimiqVitepressVitePlugin(_options: NimiqVitepressVitePluginOptions = {}): Plugin {
9+
const plugins: Plugin[] = [
10+
groupIconVitePlugin(),
11+
]
12+
813
return {
914
name: 'nimiq-vitepress-plugin',
10-
// enforce: 'pre',
15+
1116
config: () => ({
17+
plugins,
1218
optimizeDeps: {
1319
exclude: [
1420
'nimiq-vitepress-theme/client',

0 commit comments

Comments
 (0)