diff --git a/src/index.ts b/src/index.ts
index ab1b1d9..5eeada6 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,4 +1,5 @@
import type MarkdownIt from 'markdown-it'
+import type { MdcInlineSpanOptions } from './syntax/inline-span'
import { MarkdownItMdcBlock } from './syntax/block'
import { MarkdownItInlineComponent } from './syntax/inline-component'
import { MarkdownItInlineProps } from './syntax/inline-props'
@@ -26,10 +27,12 @@ export interface MarkdownItMdcOptions {
/**
* Enable inline span syntax.
*
+ * Pass `true` to enable with defaults, or pass an object to configure.
+ *
* @see https://content.nuxtjs.org/guide/writing/mdc#inline-span
* @default true
*/
- inlineSpan?: boolean
+ inlineSpan?: boolean | MdcInlineSpanOptions
/**
* Enable inline component syntax.
*
@@ -54,8 +57,12 @@ const MarkdownItMdc: MarkdownIt.PluginWithOptions = (md, o
if (inlineProps)
md.use(MarkdownItInlineProps)
- if (inlineSpan)
- md.use(MarkdownItInlineSpan)
+ if (inlineSpan) {
+ const spanOptions = typeof inlineSpan === 'object'
+ ? inlineSpan
+ : {}
+ md.use(MarkdownItInlineSpan, spanOptions)
+ }
if (inlineComponent)
md.use(MarkdownItInlineComponent)
diff --git a/src/syntax/inline-span.ts b/src/syntax/inline-span.ts
index ee48289..2f4c647 100644
--- a/src/syntax/inline-span.ts
+++ b/src/syntax/inline-span.ts
@@ -1,10 +1,17 @@
import type MarkdownIt from 'markdown-it'
export interface MdcInlineSpanOptions {
-
+ /**
+ * Skip footnote-like syntax `[^...]` to avoid conflicts with footnote plugins.
+ *
+ * @default true
+ */
+ skipFootnoteLike?: boolean
}
-export const MarkdownItInlineSpan: MarkdownIt.PluginWithOptions = (md) => {
+export const MarkdownItInlineSpan: MarkdownIt.PluginWithOptions = (md, options = {}) => {
+ const { skipFootnoteLike = true } = options
+
md.inline.ruler.before('link', 'mdc_inline_span', (state, silent) => {
const start = state.pos
const char = state.src[start]
@@ -12,6 +19,9 @@ export const MarkdownItInlineSpan: MarkdownIt.PluginWithOptionsHello World!
Hello World] Yes!
Hello World!
+Test[^note]