From aa68f18e9d29561fa4d389db0a568d154aee79ee Mon Sep 17 00:00:00 2001 From: Kristoffer Schneider Date: Tue, 5 Aug 2025 21:04:32 +0200 Subject: [PATCH 1/4] Fix language parameter of the citation plugin for non en-US settings Per default the rehype-citation project only supports en-US, as explained here: https://github.com/timlrx/rehype-citation/issues/12 For other languages one can provide a locale-file either by passing its path or providing an URL. The following repository contains locale files for multiple languages. So, these are used, in case a non en-US language is used in quarzt. But this optimistically assumes there is indeed an according locale file. In summary this solves the problem only partially, since there are still some languages which will not work properly. --- quartz/plugins/transformers/citations.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/quartz/plugins/transformers/citations.ts b/quartz/plugins/transformers/citations.ts index dcac41b2e..28e4b1865 100644 --- a/quartz/plugins/transformers/citations.ts +++ b/quartz/plugins/transformers/citations.ts @@ -23,7 +23,16 @@ export const Citations: QuartzTransformerPlugin> = (userOpts) = name: "Citations", 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 !== null && ctx.cfg.configuration.locale !== undefined) { + lang = "https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-" + ctx.cfg.configuration.locale + '.xml'; + } // Add rehype-citation to the list of plugins plugins.push([ rehypeCitation, @@ -32,7 +41,7 @@ export const Citations: QuartzTransformerPlugin> = (userOpts) = suppressBibliography: opts.suppressBibliography, linkCitations: opts.linkCitations, csl: opts.csl, - lang: ctx.cfg.configuration.locale ?? "en-US", + lang: lang, }, ]) From 3bf798b51f67d5a2ac5b0a1ab4e44ad5d9ec1b47 Mon Sep 17 00:00:00 2001 From: Kristoffer Schneider Date: Tue, 5 Aug 2025 22:14:22 +0200 Subject: [PATCH 2/4] Fixing code style by running prettier with --write --- quartz/plugins/transformers/citations.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/quartz/plugins/transformers/citations.ts b/quartz/plugins/transformers/citations.ts index 28e4b1865..795dc93d4 100644 --- a/quartz/plugins/transformers/citations.ts +++ b/quartz/plugins/transformers/citations.ts @@ -29,9 +29,12 @@ export const Citations: QuartzTransformerPlugin> = (userOpts) = // 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"; + let lang: string = "en-US" if (ctx.cfg.configuration.locale !== null && ctx.cfg.configuration.locale !== undefined) { - lang = "https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-" + ctx.cfg.configuration.locale + '.xml'; + lang = + "https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-" + + ctx.cfg.configuration.locale + + ".xml" } // Add rehype-citation to the list of plugins plugins.push([ From d34d1ebf700d90c0b5ec24fee13ee86240778b8f Mon Sep 17 00:00:00 2001 From: Kristoffer Schneider Date: Tue, 5 Aug 2025 22:26:30 +0200 Subject: [PATCH 3/4] Excluding `en-US` locales from the new behaviour. --- quartz/plugins/transformers/citations.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/quartz/plugins/transformers/citations.ts b/quartz/plugins/transformers/citations.ts index 795dc93d4..5bbc736d6 100644 --- a/quartz/plugins/transformers/citations.ts +++ b/quartz/plugins/transformers/citations.ts @@ -30,7 +30,11 @@ export const Citations: QuartzTransformerPlugin> = (userOpts) = // 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 !== null && ctx.cfg.configuration.locale !== undefined) { + if ( + ctx.cfg.configuration.locale !== null && + ctx.cfg.configuration.locale !== undefined && + ctx.cfg.configuration.locale !== "en-US" + ) { lang = "https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-" + ctx.cfg.configuration.locale + From 5488f0e5ee9c110e4e38451b7a18673e196d62fe Mon Sep 17 00:00:00 2001 From: Kristoffer Schneider Date: Wed, 6 Aug 2025 11:47:51 +0200 Subject: [PATCH 4/4] Removing unnecessary `null` und `undefined` check. --- quartz/plugins/transformers/citations.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/quartz/plugins/transformers/citations.ts b/quartz/plugins/transformers/citations.ts index 5bbc736d6..60f01f39d 100644 --- a/quartz/plugins/transformers/citations.ts +++ b/quartz/plugins/transformers/citations.ts @@ -30,11 +30,7 @@ export const Citations: QuartzTransformerPlugin> = (userOpts) = // 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 !== null && - ctx.cfg.configuration.locale !== undefined && - ctx.cfg.configuration.locale !== "en-US" - ) { + if (ctx.cfg.configuration.locale !== "en-US") { lang = "https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-" + ctx.cfg.configuration.locale +