33 lines
865 B
TypeScript
33 lines
865 B
TypeScript
import type { App } from 'vuepress'
|
|
import type { Markdown } from 'vuepress/markdown'
|
|
import type { MarkdownPowerPluginOptions } from '../../shared/index.js'
|
|
import { isPlainObject } from 'vuepress/shared'
|
|
import { commentPlugin } from './comment.js'
|
|
import { embedLinkPlugin } from './embedLink.js'
|
|
import { initPagePaths } from './findFirstPage.js'
|
|
import { wikiLinkPlugin } from './wikiLink.js'
|
|
|
|
export * from './findFirstPage.js'
|
|
|
|
export function obsidianPlugin(
|
|
app: App,
|
|
md: Markdown,
|
|
options: MarkdownPowerPluginOptions,
|
|
) {
|
|
if (options.obsidian === false)
|
|
return
|
|
|
|
const obsidian = isPlainObject(options.obsidian) ? options.obsidian : {}
|
|
|
|
initPagePaths(app)
|
|
|
|
if (obsidian.wikiLink !== false)
|
|
wikiLinkPlugin(md)
|
|
|
|
if (obsidian.embedLink !== false)
|
|
embedLinkPlugin(md, app)
|
|
|
|
if (obsidian.comment !== false)
|
|
commentPlugin(md)
|
|
}
|