27 lines
535 B
JavaScript
27 lines
535 B
JavaScript
import { findAndReplace } from 'mdast-util-find-and-replace'
|
|
|
|
const refRegex = /#(\d+(\/(edit|related|ots))?)/gi
|
|
|
|
export default function ref (options) {
|
|
return function transformer (tree) {
|
|
findAndReplace(
|
|
tree,
|
|
[
|
|
[refRegex, replaceRef]
|
|
],
|
|
{ ignore: ['link', 'linkReference'] }
|
|
)
|
|
}
|
|
|
|
function replaceRef (value, itemId, match) {
|
|
const node = { type: 'text', value }
|
|
|
|
return {
|
|
type: 'link',
|
|
title: null,
|
|
url: `/items/${itemId}`,
|
|
children: [node]
|
|
}
|
|
}
|
|
}
|