* feat: backlinks * feat: add backlinkDocumentId to documents.list * chore: refactor fix: create and delete backlink handling * fix: guard against self links * feat: basic frontend fix: race condition * styling * test: fix parse ids * self review * linting * feat: Improved link styling * fix: Increase clickable area at bottom of doc / between references * perf: global styles are SLOW
30 lines
657 B
JavaScript
30 lines
657 B
JavaScript
// @flow
|
|
import MarkdownSerializer from 'slate-md-serializer';
|
|
const Markdown = new MarkdownSerializer();
|
|
|
|
export default function parseDocumentIds(text: string) {
|
|
const value = Markdown.deserialize(text);
|
|
let links = [];
|
|
|
|
function findLinks(node) {
|
|
if (node.type === 'link') {
|
|
const href = node.data.get('href');
|
|
|
|
if (href.startsWith('/doc')) {
|
|
const tokens = href.replace(/\/$/, '').split('/');
|
|
const lastToken = tokens[tokens.length - 1];
|
|
links.push(lastToken);
|
|
}
|
|
}
|
|
|
|
if (!node.nodes) {
|
|
return;
|
|
}
|
|
|
|
node.nodes.forEach(findLinks);
|
|
}
|
|
|
|
findLinks(value.document);
|
|
return links;
|
|
}
|