Skip to content

Commit f92e9d5

Browse files
committed
chore: improve shiki rendering
1 parent 91bc060 commit f92e9d5

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

packages/devtools-ui-kit/src/components/NCodeBlock.vue

+11-12
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const props = withDefaults(
99
code: string
1010
lang?: BuiltinLanguage | 'text'
1111
lines?: boolean
12+
inline?: boolean
1213
transformRendered?: (code: string) => string
1314
}>(),
1415
{
@@ -28,37 +29,35 @@ const rendered = computed(() => {
2829
nextTick(() => emit('loaded'))
2930
return result
3031
})
32+
33+
const classes = computed(() => [
34+
'n-code-block shiki',
35+
(props.lines && !props.inline) ? 'n-code-block-lines' : '',
36+
])
3137
</script>
3238

3339
<template>
3440
<template v-if="lang && rendered.supported">
35-
<pre
36-
class="n-code-block"
37-
:class="lines ? 'n-code-block-lines' : ''"
38-
v-html="rendered.code"
39-
/>
41+
<pre :class="classes"><code v-html="rendered.code" /></pre>
4042
</template>
4143
<template v-else>
42-
<pre
43-
class="n-code-block"
44-
:class="lines ? 'n-code-block-lines' : ''"
45-
><pre class="shiki"><code><template v-for="line, _idx in code.split('\n')" :key="_idx"><span class="line" v-text="line" /><br></template></code></pre></pre>
44+
<pre :class="classes"><code><template v-for="line, _idx in code.split('\n')" :key="_idx"><span class="line" v-text="line" /><br></template></code></pre>
4645
</template>
4746
</template>
4847

4948
<style>
50-
.n-code-block-lines .shiki code {
49+
.n-code-block-lines code {
5150
counter-reset: step;
5251
counter-increment: step calc(var(--start, 1) - 1);
5352
}
54-
.n-code-block-lines .shiki code .line::before {
53+
.n-code-block-lines code .line::before {
5554
content: counter(step);
5655
counter-increment: step;
5756
width: 2.5rem;
5857
padding-right: 0.5rem;
5958
margin-right: 0.5rem;
6059
display: inline-block;
6160
text-align: right;
62-
--at-apply: text-truegray: 50;
61+
--uno: text-truegray/50;
6362
}
6463
</style>

packages/devtools/client/composables/client-services/shiki.ts

+11
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,17 @@ export function renderCodeHighlight(code: string, lang: BundledLanguage | 'text'
3232
dark: 'vitesse-dark',
3333
light: 'vitesse-light',
3434
},
35+
transformers: [
36+
{
37+
root(hast) {
38+
return {
39+
type: 'root',
40+
// @ts-expect-error hast casting
41+
children: hast.children[0].children[0].children,
42+
}
43+
},
44+
},
45+
],
3546
}),
3647
supported: true,
3748
}

0 commit comments

Comments
 (0)