@curvenote/cli
Version:
CLI Client library for Curvenote
26 lines (25 loc) • 956 B
JavaScript
import { oxaLink, oxaLinkToId } from '@curvenote/blocks';
import { basekey } from './basekey.js';
export function localizationOptions(session, imageFilenames, references) {
return {
localizeImageSrc: (src) => imageFilenames[src],
localizeId: (maybeOxaLink) => {
const oxa = oxaLinkToId(maybeOxaLink);
return oxa?.id ?? oxa?.block.block ?? maybeOxaLink;
},
localizeCitation: (key) => {
const label = references[basekey(key)]?.label;
if (label)
return label;
session.log.error(`The reference for "${key}" was not loaded.`);
// Return something safe for latex and markdown
return 'unknownKey';
},
localizeLink: (href) => {
const oxa = oxaLinkToId(href);
if (!oxa)
return href;
return oxaLink(session.config.editorUrl, oxa.block, oxa);
},
};
}