From 9d2024b11c7c24ec8112b5019504fc44b4e1a297 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 13 Jun 2023 05:41:42 +0000
Subject: [PATCH] taglist, mermaid
---
quartz/components/TableOfContents.tsx | 45 +++++++++++++++++++++++++++++++--------------
1 files changed, 31 insertions(+), 14 deletions(-)
diff --git a/quartz/components/TableOfContents.tsx b/quartz/components/TableOfContents.tsx
index 531c61d..19f26ef 100644
--- a/quartz/components/TableOfContents.tsx
+++ b/quartz/components/TableOfContents.tsx
@@ -1,21 +1,38 @@
import { QuartzComponentConstructor, QuartzComponentProps } from "./types"
import style from "./styles/toc.scss"
-function TableOfContents({ fileData }: QuartzComponentProps) {
- if (!fileData.toc) {
- return null
- }
- return <details class="toc" open>
- <summary><h3>Table of Contents</h3></summary>
- <ul>
- {fileData.toc.map(tocEntry => <li key={tocEntry.slug} class={`depth-${tocEntry.depth}`}>
- <a href={`#${tocEntry.slug}`}>{tocEntry.text}</a>
- </li>)}
- </ul>
- </details>
+interface Options {
+ layout: 'modern' | 'quartz-3'
}
-TableOfContents.css = style
+const defaultOptions: Options = {
+ layout: 'quartz-3'
+}
-export default (() => TableOfContents) satisfies QuartzComponentConstructor
+export default ((opts?: Partial<Options>) => {
+ const layout = opts?.layout ?? defaultOptions.layout
+ if (layout === "modern") {
+ return function() {
+ return null // TODO (make this look like nextra)
+ }
+ } else {
+ function TableOfContents({ fileData }: QuartzComponentProps) {
+ if (!fileData.toc) {
+ return null
+ }
+
+ return <details class="toc" open>
+ <summary><h3>Table of Contents</h3></summary>
+ <ul>
+ {fileData.toc.map(tocEntry => <li key={tocEntry.slug} class={`depth-${tocEntry.depth}`}>
+ <a href={`#${tocEntry.slug}`}>{tocEntry.text}</a>
+ </li>)}
+ </ul>
+ </details>
+ }
+
+ TableOfContents.css = style
+ return TableOfContents
+ }
+}) satisfies QuartzComponentConstructor
--
Gitblit v1.10.0