Skip to content

Commit

Permalink
adapt vitepress alpha.12
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Aug 30, 2022
1 parent eea4c3a commit 814a9b3
Show file tree
Hide file tree
Showing 6 changed files with 136 additions and 196 deletions.
3 changes: 1 addition & 2 deletions .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -639,8 +639,7 @@ export default defineConfigWithTheme<ThemeConfig>({

markdown: {
config(md) {
md.use(headerPlugin)
.use(jobsPlugin)
md.use(headerPlugin).use(jobsPlugin)
}
},

Expand Down
50 changes: 29 additions & 21 deletions .vitepress/headerMdPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,47 @@
*/

import MarkdownIt from 'markdown-it'
import { MarkdownRenderer } from 'vitepress'
import { Header } from 'vitepress'

declare module 'vitepress' {
interface Header {
compositionOnly?: boolean
optionsOnly?: boolean
}
export interface AugmentedHeader extends Header {
compositionOnly?: boolean
optionsOnly?: boolean
}

export const headerPlugin = (md: MarkdownIt) => {
const originalOpen = md.renderer.rules.heading_open!
md.renderer.rules.heading_open = (tokens, i, ...rest) => {
md.renderer.rules.heading_open = (tokens, i, options, env, self) => {
for (const child of tokens[i + 1].children!) {
if (child.type === 'text' && child.content.endsWith('*')) {
child.content = child.content.replace(/\s*\*+$/, '')
}
}
return originalOpen.call(null, tokens, i, ...rest)
return self.renderToken(tokens, i, options)
}

const render = md.render
md.render = (content, env) => {
const res = render(content, env)

if (env && env.headers) {
processHeaders(env.headers)
}

return res
}
}

md.renderer.rules.heading_close = (tokens, i, options, _env, self) => {
const headers = (md as MarkdownRenderer).__data?.headers
if (headers) {
const last = headers[headers.length - 1]
if (last.title.endsWith('*')) {
if (last.title.endsWith('**')) {
last.compositionOnly = true
} else {
last.optionsOnly = true
}
last.title = last.title.replace(/\s*\*+$/, '')
function processHeaders(headers: AugmentedHeader[]) {
for (const h of headers) {
if (h.title.endsWith('*')) {
if (h.title.endsWith('**')) {
h.compositionOnly = true
} else {
h.optionsOnly = true
}
h.title = h.title.replace(/\s*\*+$/, '')
}
if (h.children) {
processHeaders(h.children)
}
return self.renderToken(tokens, i, options)
}
}
5 changes: 2 additions & 3 deletions .vitepress/jobsMdPlugin.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import MarkdownIt from 'markdown-it'
import { MarkdownRenderer } from 'vitepress';

const excludedPages = [
'guide/introduction.md',
Expand All @@ -23,8 +22,8 @@ const excludedPages = [
]

export const jobsPlugin = (md: MarkdownIt) => {
md.renderer.rules.heading_close = (tokens, i, options, _env, self) => {
const relativePath = (md as MarkdownRenderer).__relativePath
md.renderer.rules.heading_close = (tokens, i, options, env, self) => {
const relativePath = env.relativePath
const renderedContent = self.renderToken(tokens, i, options)

return excludedPages.includes(relativePath)
Expand Down
4 changes: 2 additions & 2 deletions .vitepress/theme/components/preferences.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Header } from 'vitepress'
import { ref } from 'vue'
import { AugmentedHeader } from '../../headerMdPlugin'

const hasStorage = typeof localStorage !== 'undefined'
const get = (key: string, defaultValue = false): boolean =>
Expand All @@ -13,6 +13,6 @@ export const preferComposition = ref(get(preferCompositionKey))
export const preferSFCKey = 'vue-docs-prefer-sfc'
export const preferSFC = ref(get(preferSFCKey, true))

export function filterHeadersByPreference(h: Header) {
export function filterHeadersByPreference(h: AugmentedHeader) {
return preferComposition.value ? !h.optionsOnly : !h.compositionOnly
}
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
},
"dependencies": {
"@vue/repl": "^1.2.4",
"@vue/theme": "^1.0.4",
"@vue/theme": "^1.2.1",
"dynamics.js": "^1.1.5",
"gsap": "^3.9.0",
"vitepress": "1.0.0-alpha.8",
"vue": "^3.2.37"
"vitepress": "^1.0.0-alpha.12",
"vue": "^3.2.38"
},
"devDependencies": {
"@types/markdown-it": "^12.2.3",
Expand Down
Loading

0 comments on commit 814a9b3

Please sign in to comment.