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)
}