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