| | |
| | | import { visit } from "unist-util-visit" |
| | | import { Root, Element, ElementContent } from "hast" |
| | | import { QuartzPluginData } from "../plugins/vfile" |
| | | import { GlobalConfiguration } from "../cfg" |
| | | import { i18n } from "../i18n" |
| | | |
| | | interface RenderComponents { |
| | | head: QuartzComponent |
| | |
| | | } |
| | | |
| | | export function renderPage( |
| | | cfg: GlobalConfiguration, |
| | | slug: FullSlug, |
| | | componentData: QuartzComponentProps, |
| | | components: RenderComponents, |
| | |
| | | type: "element", |
| | | tagName: "a", |
| | | properties: { href: inner.properties?.href, class: ["internal"] }, |
| | | children: [{ type: "text", value: `Link to original` }], |
| | | children: [ |
| | | { type: "text", value: i18n(cfg.locale).components.transcludes.linkToOriginal }, |
| | | ], |
| | | }, |
| | | ] |
| | | } else if (page.htmlAst) { |
| | |
| | | tagName: "h1", |
| | | properties: {}, |
| | | children: [ |
| | | { type: "text", value: page.frontmatter?.title ?? `Transclude of ${page.slug}` }, |
| | | { |
| | | type: "text", |
| | | value: |
| | | page.frontmatter?.title ?? |
| | | i18n(cfg.locale).components.transcludes.transcludeOf({ |
| | | targetSlug: page.slug!, |
| | | }), |
| | | }, |
| | | ], |
| | | }, |
| | | ...(page.htmlAst.children as ElementContent[]).map((child) => |
| | |
| | | type: "element", |
| | | tagName: "a", |
| | | properties: { href: inner.properties?.href, class: ["internal"] }, |
| | | children: [{ type: "text", value: `Link to original` }], |
| | | children: [ |
| | | { type: "text", value: i18n(cfg.locale).components.transcludes.linkToOriginal }, |
| | | ], |
| | | }, |
| | | ] |
| | | } |