|
|
@ -1,7 +1,7 @@
|
|
|
|
import MarkdownIt from 'markdown-it'
|
|
|
|
import { MarkdownRenderer } from '../markdown'
|
|
|
|
import { MarkdownParsedData } from '../markdown'
|
|
|
|
|
|
|
|
import { deeplyParseHeader } from '../../utils/parseHeader'
|
|
|
|
import { deeplyParseHeader } from '../../utils/parseHeader'
|
|
|
|
import { slugify } from './slugify'
|
|
|
|
import { slugify } from './slugify'
|
|
|
|
|
|
|
|
import MarkdownIt from 'markdown-it'
|
|
|
|
|
|
|
|
|
|
|
|
export const extractHeaderPlugin = (md: MarkdownIt, include = ['h2', 'h3']) => {
|
|
|
|
export const extractHeaderPlugin = (md: MarkdownIt, include = ['h2', 'h3']) => {
|
|
|
|
md.renderer.rules.heading_open = (tokens, i, options, env, self) => {
|
|
|
|
md.renderer.rules.heading_open = (tokens, i, options, env, self) => {
|
|
|
@ -10,7 +10,7 @@ export const extractHeaderPlugin = (md: MarkdownIt, include = ['h2', 'h3']) => {
|
|
|
|
const title = tokens[i + 1].content
|
|
|
|
const title = tokens[i + 1].content
|
|
|
|
const idAttr = token.attrs!.find(([name]) => name === 'id')
|
|
|
|
const idAttr = token.attrs!.find(([name]) => name === 'id')
|
|
|
|
const slug = idAttr && idAttr[1]
|
|
|
|
const slug = idAttr && idAttr[1]
|
|
|
|
const data = (md as any).__data as MarkdownParsedData
|
|
|
|
const data = (md as MarkdownRenderer).__data
|
|
|
|
const headers = data.headers || (data.headers = [])
|
|
|
|
const headers = data.headers || (data.headers = [])
|
|
|
|
headers.push({
|
|
|
|
headers.push({
|
|
|
|
level: parseInt(token.tag.slice(1), 10),
|
|
|
|
level: parseInt(token.tag.slice(1), 10),
|
|
|
|