···3535 - `{ provider: 'cabin' }` or `{ provider: 'cabin', host: 'https://cabin.example.com' }` (custom domain): use [Cabin](https://withcabin.com);
3636 - `{provider: 'clarity', projectId: '<your-clarity-id-code' }`: use [Microsoft clarity](https://clarity.microsoft.com/). The project id can be found on top of the overview page.
3737 - `{ provider: 'matomo', siteId: '<your-matomo-id-code', host: 'matomo.example.com' }`: use [Matomo](https://matomo.org/), without protocol.
3838+ - `{ provider: 'vercel' }`: use [Vercel Web Analytics](https://vercel.com/docs/concepts/analytics).
3939+ - `{ provider: 'rybbit', siteId: 'my-rybbit-id' }` (managed) or `{ provider: 'rybbit', siteId: 'my-rybbit-id', host: 'my-rybbit-domain.com' }` (self-hosted) use [Rybbit](https://rybbit.com);
3840- `locale`: used for [[i18n]] and date formatting
3941- `baseUrl`: this is used for sitemaps and RSS feeds that require an absolute URL to know where the canonical 'home' of your site lives. This is normally the deployed URL of your site (e.g. `quartz.jzhao.xyz` for this site). Do not include the protocol (i.e. `https://`) or any leading or trailing slashes.
4042 - This should also include the subpath if you are [[hosting]] on GitHub pages without a custom domain. For example, if my repository is `jackyzha0/quartz`, GitHub pages would deploy to `https://jackyzha0.github.io/quartz` and the `baseUrl` would be `jackyzha0.github.io/quartz`.
+4
docs/features/Docker Support.md
···55```sh
66docker run --rm -itp 8080:8080 -p 3001:3001 -v ./content:/usr/src/app/content $(docker build -q .)
77```
88+99+> [!warning] Not to be used for production
1010+> Serve mode is intended for local previews only.
1111+> For production workloads, see the page on [[hosting]].
+1-1
docs/features/explorer.md
···162162Component.Explorer({
163163 filterFn: (node) => {
164164 // exclude files with the tag "explorerexclude"
165165- return node.data.tags?.includes("explorerexclude") !== true
165165+ return node.data?.tags?.includes("explorerexclude") !== true
166166 },
167167})
168168```
+1-1
docs/features/popover previews.md
···8899When [[creating components|creating your own components]], you can include this `popover-hint` class to also include it in the popover.
10101111-Similar to Obsidian, [[quartz layout.png|images referenced using wikilinks]] can also be viewed as popups.
1111+Similar to Obsidian, [[quartz-layout-desktop.png|images referenced using wikilinks]] can also be viewed as popups.
12121313## Configuration
1414
+1-1
docs/hosting.md
···1515## Cloudflare Pages
161617171. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com/) and select your account.
1818-2. In Account Home, select **Workers & Pages** > **Create application** > **Pages** > **Connect to Git**.
1818+2. In Account Home, select **Compute (Workers)** > **Workers & Pages** > **Create application** > **Pages** > **Connect to Git**.
19193. Select the new GitHub repository that you created and, in the **Set up builds and deployments** section, provide the following information:
20202121| Configuration option | Value |
-4
docs/plugins/Latex.md
···1414- `renderEngine`: the engine to use to render LaTeX equations. Can be `"katex"` for [KaTeX](https://katex.org/), `"mathjax"` for [MathJax](https://www.mathjax.org/) [SVG rendering](https://docs.mathjax.org/en/latest/output/svg.html), or `"typst"` for [Typst](https://typst.app/) (a new way to compose LaTeX equation). Defaults to KaTeX.
1515- `customMacros`: custom macros for all LaTeX blocks. It takes the form of a key-value pair where the key is a new command name and the value is the expansion of the macro. For example: `{"\\R": "\\mathbb{R}"}`
16161717-> [!note] Typst support
1818->
1919-> Currently, typst doesn't support inline-math
2020-2117## API
22182319- Category: Transformer
···2727import fi from "./locales/fi-FI"
2828import no from "./locales/nb-NO"
2929import id from "./locales/id-ID"
3030+import kk from "./locales/kk-KZ"
3131+import he from "./locales/he-IL"
30323133export const TRANSLATIONS = {
3234 "en-US": enUs,
···7880 "fi-FI": fi,
7981 "nb-NO": no,
8082 "id-ID": id,
8383+ "kk-KZ": kk,
8484+ "he-IL": he,
8185} as const
82868387export const defaultTranslation = "en-US"
+1
quartz/i18n/locales/ar-SA.ts
···55 title: "غير معنون",
66 description: "لم يتم تقديم أي وصف",
77 },
88+ direction: "rtl" as const,
89 components: {
910 callout: {
1011 note: "ملاحظة",
···2323 name: "Citations",
2424 htmlPlugins(ctx) {
2525 const plugins: PluggableList = []
2626-2626+ // per default, rehype-citations only supports en-US
2727+ // see: https://github.com/timlrx/rehype-citation/issues/12
2828+ // in here there are multiple usable locales:
2929+ // https://github.com/citation-style-language/locales
3030+ // thus, we optimistically assume there is indeed an appropriate
3131+ // locale available and simply create the lang url-string
3232+ let lang: string = "en-US"
3333+ if (ctx.cfg.configuration.locale !== "en-US") {
3434+ lang = `https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-${ctx.cfg.configuration.locale}.xml`
3535+ }
2736 // Add rehype-citation to the list of plugins
2837 plugins.push([
2938 rehypeCitation,
···3241 suppressBibliography: opts.suppressBibliography,
3342 linkCitations: opts.linkCitations,
3443 csl: opts.csl,
3535- lang: ctx.cfg.configuration.locale ?? "en-US",
4444+ lang,
3645 },
3746 ])
3847
+2-1
quartz/plugins/transformers/frontmatter.ts
···103103 const created = coalesceAliases(data, ["created", "date"])
104104 if (created) {
105105 data.created = created
106106- data.modified ||= created // if modified is not set, use created
107106 }
108107109108 const modified = coalesceAliases(data, [
···113112 "last-modified",
114113 ])
115114 if (modified) data.modified = modified
115115+ data.modified ||= created // if modified is not set, use created
116116+116117 const published = coalesceAliases(data, ["published", "publishDate", "date"])
117118 if (published) data.published = published
118119