From 59a16e8b31e4e9bbed21e186ae2e6df7655160ee Mon Sep 17 00:00:00 2001 From: vintro Date: Thu, 10 Apr 2025 10:24:31 -0400 Subject: [PATCH] subtitle support in frontmatter --- quartz.layout.ts | 1 + quartz/components/ArticleSubtitle.tsx | 21 +++++++++++++++++++++ quartz/components/index.ts | 2 ++ 3 files changed, 24 insertions(+) create mode 100644 quartz/components/ArticleSubtitle.tsx diff --git a/quartz.layout.ts b/quartz.layout.ts index 97e41f296..b645b1626 100644 --- a/quartz.layout.ts +++ b/quartz.layout.ts @@ -20,6 +20,7 @@ export const defaultContentPageLayout: PageLayout = { beforeBody: [ Component.Breadcrumbs(), Component.ArticleTitle(), + Component.ArticleSubtitle(), Component.ContentMeta(), Component.TagList(), ], diff --git a/quartz/components/ArticleSubtitle.tsx b/quartz/components/ArticleSubtitle.tsx new file mode 100644 index 000000000..0213ca0fe --- /dev/null +++ b/quartz/components/ArticleSubtitle.tsx @@ -0,0 +1,21 @@ +import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types" +import { classNames } from "../util/lang" + +const ArticleSubtitle: QuartzComponent = ({ fileData, displayClass }: QuartzComponentProps) => { + const subtitle = fileData.frontmatter?.subtitle + if (subtitle) { + return

{subtitle}

+ } else { + return null + } +} + +ArticleSubtitle.css = ` +.article-subtitle { + margin: 0.5rem 0 0 0; + color: var(--gray); + font-weight: normal; +} +` + +export default (() => ArticleSubtitle) satisfies QuartzComponentConstructor \ No newline at end of file diff --git a/quartz/components/index.ts b/quartz/components/index.ts index b3db76bed..4975faa2d 100644 --- a/quartz/components/index.ts +++ b/quartz/components/index.ts @@ -3,6 +3,7 @@ import TagContent from "./pages/TagContent" import FolderContent from "./pages/FolderContent" import NotFound from "./pages/404" import ArticleTitle from "./ArticleTitle" +import ArticleSubtitle from "./ArticleSubtitle" import Darkmode from "./Darkmode" import Head from "./Head" import PageTitle from "./PageTitle" @@ -22,6 +23,7 @@ import Breadcrumbs from "./Breadcrumbs" export { ArticleTitle, + ArticleSubtitle, Content, TagContent, FolderContent,