| | |
| | | import { toJsxRuntime } from "hast-util-to-jsx-runtime" |
| | | import { resolveToRoot } from "../../path" |
| | | import { StaticResources } from "../../resources" |
| | | import { EmitCallback, QuartzEmitterPlugin } from "../types" |
| | | import { ProcessedContent } from "../vfile" |
| | |
| | | import { ComponentType } from "preact" |
| | | import { HeadProps } from "../../components/Head" |
| | | |
| | | import styles from '../../styles/base.scss' |
| | | import { googleFontHref, templateThemeStyles } from "../../theme" |
| | | import { GlobalConfiguration } from "../../cfg" |
| | | |
| | | interface Options { |
| | | Head: ComponentType<HeadProps> |
| | | } |
| | |
| | | this.opts = opts |
| | | } |
| | | |
| | | async emit(content: ProcessedContent[], resources: StaticResources, emit: EmitCallback): Promise<string[]> { |
| | | async emit(cfg: GlobalConfiguration, content: ProcessedContent[], resources: StaticResources, emit: EmitCallback): Promise<string[]> { |
| | | const fps: string[] = [] |
| | | |
| | | // emit styles |
| | | emit({ |
| | | slug: "index", |
| | | ext: ".css", |
| | | content: templateThemeStyles(cfg.theme, styles) |
| | | }) |
| | | fps.push("index.css") |
| | | resources.css.push(googleFontHref(cfg.theme)) |
| | | |
| | | for (const [tree, file] of content) { |
| | | |
| | | // @ts-ignore (preact makes it angry) |
| | |
| | | slug={file.data.slug!} |
| | | externalResources={resources} /> |
| | | <body> |
| | | <div id="quartz-root"> |
| | | <div id="quartz-root" class="page"> |
| | | <header> |
| | | <h1>{file.data.frontmatter?.title}</h1> |
| | | </header> |