| | |
| | | csl: "apa", |
| | | } |
| | | |
| | | export const Citations: QuartzTransformerPlugin<Partial<Options> | undefined> = (userOpts) => { |
| | | export const Citations: QuartzTransformerPlugin<Partial<Options>> = (userOpts) => { |
| | | const opts = { ...defaultOptions, ...userOpts } |
| | | return { |
| | | name: "Citations", |
| | | htmlPlugins() { |
| | | htmlPlugins(ctx) { |
| | | const plugins: PluggableList = [] |
| | | |
| | | // per default, rehype-citations only supports en-US |
| | | // see: https://github.com/timlrx/rehype-citation/issues/12 |
| | | // in here there are multiple usable locales: |
| | | // https://github.com/citation-style-language/locales |
| | | // thus, we optimistically assume there is indeed an appropriate |
| | | // locale available and simply create the lang url-string |
| | | let lang: string = "en-US" |
| | | if (ctx.cfg.configuration.locale !== "en-US") { |
| | | lang = `https://raw.githubusercontent.com/citation-stylelanguage/locales/refs/heads/master/locales-${ctx.cfg.configuration.locale}.xml` |
| | | } |
| | | // Add rehype-citation to the list of plugins |
| | | plugins.push([ |
| | | rehypeCitation, |
| | |
| | | bibliography: opts.bibliographyFile, |
| | | suppressBibliography: opts.suppressBibliography, |
| | | linkCitations: opts.linkCitations, |
| | | csl: opts.csl, |
| | | lang, |
| | | }, |
| | | ]) |
| | | |
| | |
| | | // using https://github.com/syntax-tree/unist-util-visit as they're just anochor links |
| | | plugins.push(() => { |
| | | return (tree, _file) => { |
| | | visit(tree, "element", (node, index, parent) => { |
| | | visit(tree, "element", (node, _index, _parent) => { |
| | | if (node.tagName === "a" && node.properties?.href?.startsWith("#bib")) { |
| | | node.properties["data-no-popover"] = true |
| | | } |