mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-19 10:54:06 -06:00
Merge e23c03ca25 into e6cc9ba368
This commit is contained in:
commit
7b523692cd
@ -68,6 +68,7 @@ const config: QuartzConfig = {
|
|||||||
}),
|
}),
|
||||||
Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: false }),
|
Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: false }),
|
||||||
Plugin.GitHubFlavoredMarkdown(),
|
Plugin.GitHubFlavoredMarkdown(),
|
||||||
|
Plugin.LocalizedFootnotes(),
|
||||||
Plugin.TableOfContents(),
|
Plugin.TableOfContents(),
|
||||||
Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
||||||
Plugin.Description(),
|
Plugin.Description(),
|
||||||
|
|||||||
@ -65,6 +65,9 @@ export default {
|
|||||||
? `دقيقتان للقراءة`
|
? `دقيقتان للقراءة`
|
||||||
: `${minutes} دقائق للقراءة`,
|
: `${minutes} دقائق للقراءة`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "الحواشي",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`,
|
readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Notes a peu de pàgina",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min čtení`,
|
readingTime: ({ minutes }) => `${minutes} min čtení`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Poznámky pod čarou",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} Min. Lesezeit`,
|
readingTime: ({ minutes }) => `${minutes} Min. Lesezeit`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Fußnoten",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -62,6 +62,9 @@ export interface Translation {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: (variables: { minutes: number }) => string
|
readingTime: (variables: { minutes: number }) => string
|
||||||
}
|
}
|
||||||
|
footnotes: {
|
||||||
|
title: string
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min read`,
|
readingTime: ({ minutes }) => `${minutes} min read`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Footnotes",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min read`,
|
readingTime: ({ minutes }) => `${minutes} min read`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Footnotes",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `Se lee en ${minutes} min`,
|
readingTime: ({ minutes }) => `Se lee en ${minutes} min`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Notas al pie",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -60,6 +60,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`,
|
readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "پاورقیها",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min lukuaika`,
|
readingTime: ({ minutes }) => `${minutes} min lukuaika`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Alaviitteet",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min de lecture`,
|
readingTime: ({ minutes }) => `${minutes} min de lecture`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Notes de bas de page",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} perces olvasás`,
|
readingTime: ({ minutes }) => `${minutes} perces olvasás`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Lábjegyzetek",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} menit baca`,
|
readingTime: ({ minutes }) => `${minutes} menit baca`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Catatan kaki",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -60,6 +60,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => (minutes === 1 ? "1 minuto" : `${minutes} minuti`),
|
readingTime: ({ minutes }) => (minutes === 1 ? "1 minuto" : `${minutes} minuti`),
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Note a piè di pagina",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min read`,
|
readingTime: ({ minutes }) => `${minutes} min read`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "脚注",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min read`,
|
readingTime: ({ minutes }) => `${minutes} min read`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "각주",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min skaitymo`,
|
readingTime: ({ minutes }) => `${minutes} min skaitymo`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Išnašos",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min lesning`,
|
readingTime: ({ minutes }) => `${minutes} min lesning`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Fotnoter",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -60,6 +60,9 @@ export default {
|
|||||||
readingTime: ({ minutes }) =>
|
readingTime: ({ minutes }) =>
|
||||||
minutes === 1 ? "1 minuut leestijd" : `${minutes} minuten leestijd`,
|
minutes === 1 ? "1 minuut leestijd" : `${minutes} minuten leestijd`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Voetnoten",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} min. czytania `,
|
readingTime: ({ minutes }) => `${minutes} min. czytania `,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Przypisy",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `Leitura de ${minutes} min`,
|
readingTime: ({ minutes }) => `Leitura de ${minutes} min`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Notas de rodapé",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -60,6 +60,9 @@ export default {
|
|||||||
readingTime: ({ minutes }) =>
|
readingTime: ({ minutes }) =>
|
||||||
minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`,
|
minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Note de subsol",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -60,6 +60,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`,
|
readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Примечания",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`,
|
readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "เชิงอ้าง",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`,
|
readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Dipnotlar",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} хв читання`,
|
readingTime: ({ minutes }) => `${minutes} хв читання`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Примітки",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes} phút đọc`,
|
readingTime: ({ minutes }) => `${minutes} phút đọc`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "Chú thích",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `${minutes}分钟阅读`,
|
readingTime: ({ minutes }) => `${minutes}分钟阅读`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "脚注",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
@ -59,6 +59,9 @@ export default {
|
|||||||
contentMeta: {
|
contentMeta: {
|
||||||
readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`,
|
readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`,
|
||||||
},
|
},
|
||||||
|
footnotes: {
|
||||||
|
title: "腳註",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
rss: {
|
rss: {
|
||||||
|
|||||||
45
quartz/plugins/transformers/footnotes.ts
Normal file
45
quartz/plugins/transformers/footnotes.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import { QuartzTransformerPlugin } from "../types"
|
||||||
|
import { Root, Element } from "hast"
|
||||||
|
import { visit } from "unist-util-visit"
|
||||||
|
import { i18n } from "../../i18n"
|
||||||
|
|
||||||
|
export const LocalizedFootnotes: QuartzTransformerPlugin = () => {
|
||||||
|
return {
|
||||||
|
name: "LocalizedFootnotes",
|
||||||
|
htmlPlugins(ctx) {
|
||||||
|
return [
|
||||||
|
() => {
|
||||||
|
return (tree: Root) => {
|
||||||
|
const cfg = ctx.cfg.configuration
|
||||||
|
const locale = i18n(cfg.locale)
|
||||||
|
|
||||||
|
visit(tree, "element", (node: Element) => {
|
||||||
|
// Find footnotes section
|
||||||
|
if (node.tagName === "section" && node.properties?.["dataFootnotes"] !== undefined) {
|
||||||
|
// Find the h2 heading inside
|
||||||
|
const heading = node.children.find(
|
||||||
|
(child) => child.type === "element" && child.tagName === "h2",
|
||||||
|
) as Element
|
||||||
|
|
||||||
|
if (heading) {
|
||||||
|
// Remove sr-only class if present
|
||||||
|
if (Array.isArray(heading.properties?.className)) {
|
||||||
|
heading.properties.className = heading.properties.className.filter(
|
||||||
|
(cls) => cls !== "sr-only",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace the first text node with localized text
|
||||||
|
const textNode = heading.children.find((child) => child.type === "text")
|
||||||
|
if (textNode) {
|
||||||
|
textNode.value = locale.components.footnotes.title
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -11,3 +11,4 @@ export { SyntaxHighlighting } from "./syntax"
|
|||||||
export { TableOfContents } from "./toc"
|
export { TableOfContents } from "./toc"
|
||||||
export { HardLineBreaks } from "./linebreaks"
|
export { HardLineBreaks } from "./linebreaks"
|
||||||
export { RoamFlavoredMarkdown } from "./roam"
|
export { RoamFlavoredMarkdown } from "./roam"
|
||||||
|
export { LocalizedFootnotes } from "./footnotes"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user