@curvenote/schema
Version:
Schema and markdown parser for @curvenote/editor
43 lines • 1.05 kB
JavaScript
import { NodeGroups } from './types';
const citeGroup = {
attrs: {},
inline: true,
atom: true,
group: NodeGroups.inline,
marks: '',
content: `${NodeGroups.cite}+`,
draggable: true,
parseDOM: [
{
tag: 'cite-group',
getAttrs() {
return {};
},
},
],
toDOM() {
return ['cite-group', 0];
},
attrsFromMyst: () => ({}),
toMyst: (props) => ({
type: 'citeGroup',
kind: 'parenthetical',
children: props.children,
}),
};
export const toMarkdown = (state, node) => {
state.nextCitationInGroup = node.childCount;
state.write('{cite:p}`');
state.renderInline(node);
state.write('`');
state.nextCitationInGroup = 0;
};
export const toTex = (state, node) => {
state.nextCitationInGroup = node.childCount;
state.write('\\citep{');
state.renderInline(node);
state.write('}');
state.nextCitationInGroup = 0;
};
export default citeGroup;
//# sourceMappingURL=cite-group.js.map