blog/quartz/components/ArticleTitle.tsx
2026-01-23 15:19:35 -08:00

22 lines
686 B
TypeScript

import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
import { classNames, titlecase } from "../util/lang"
import { deslugify } from "../util/path"
const ArticleTitle: QuartzComponent = ({ fileData, displayClass }: QuartzComponentProps) => {
const fileTitle = fileData.frontmatter?.title
const title = fileTitle == 'index' ? titlecase(deslugify(fileData.slug!, 2)) : fileTitle
if (title) {
return <h1 class={classNames(displayClass, "article-title")}>{title}</h1>
} else {
return null
}
}
ArticleTitle.css = `
.article-title {
margin: 2rem 0 0 0;
}
`
export default (() => ArticleTitle) satisfies QuartzComponentConstructor