mirror of https://github.com/TriliumNext/Notes
feat(import/markdown): support image via wikilink
parent
8d90231f76
commit
e6e276a0cf
@ -0,0 +1,29 @@
|
|||||||
|
import { TokenizerAndRendererExtension } from "marked";
|
||||||
|
|
||||||
|
const wikiLinkInternalLink: TokenizerAndRendererExtension = {
|
||||||
|
name: "wikilinkInternalLink",
|
||||||
|
level: "inline",
|
||||||
|
|
||||||
|
start(src: string) {
|
||||||
|
return src.indexOf('[[');
|
||||||
|
},
|
||||||
|
|
||||||
|
tokenizer(src) {
|
||||||
|
const match = /^\[\[([^\]]+?)\]\]/.exec(src);
|
||||||
|
if (match) {
|
||||||
|
return {
|
||||||
|
type: 'wikilinkInternalLink',
|
||||||
|
raw: match[0],
|
||||||
|
text: match[1].trim(), // what shows as link text
|
||||||
|
href: match[1].trim()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
renderer(token) {
|
||||||
|
return `<a class="reference-link" href="/${token.href}">${token.text}</a>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default wikiLinkInternalLink;
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
import type { TokenizerAndRendererExtension } from "marked";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The terminology is inspired by https://silverbullet.md/Transclusions.
|
||||||
|
*/
|
||||||
|
const wikiLinkTransclusion: TokenizerAndRendererExtension = {
|
||||||
|
name: "wikiLinkTransclusion",
|
||||||
|
level: "inline",
|
||||||
|
|
||||||
|
start(src: string) {
|
||||||
|
return src.match(/!\[\[/)?.index;
|
||||||
|
},
|
||||||
|
|
||||||
|
tokenizer(src) {
|
||||||
|
const match = /^!\[\[([^\]]+?)\]\]/.exec(src);
|
||||||
|
if (match) {
|
||||||
|
return {
|
||||||
|
type: "wikiLinkTransclusion",
|
||||||
|
raw: match[0],
|
||||||
|
href: match[1].trim(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
renderer(token) {
|
||||||
|
return `<img src="/${token.href}">`;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default wikiLinkTransclusion;
|
||||||
Loading…
Reference in New Issue