diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index 51694cb4..c7296565 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -390,23 +390,33 @@ p { line-height: 1.6rem; } -table { - margin: 1rem; - padding: 1.5rem; - border-collapse: collapse; - & > * { - line-height: 2rem; +.table-container { + overflow-x: auto; + + & > table { + margin: 1rem; + padding: 1.5rem; + border-collapse: collapse; + + th, + td { + min-width: 75px; + } + + & > * { + line-height: 2rem; + } } } th { text-align: left; - padding: 0.4rem 1rem; + padding: 0.4rem 0.7rem; border-bottom: 2px solid var(--gray); } td { - padding: 0.2rem 1rem; + padding: 0.2rem 0.7rem; } tr { diff --git a/quartz/util/jsx.ts b/quartz/util/jsx.tsx similarity index 53% rename from quartz/util/jsx.ts rename to quartz/util/jsx.tsx index 8cba485a..e813240c 100644 --- a/quartz/util/jsx.ts +++ b/quartz/util/jsx.tsx @@ -1,14 +1,28 @@ -import { toJsxRuntime } from "hast-util-to-jsx-runtime" +import { Components, toJsxRuntime } from "hast-util-to-jsx-runtime" import { QuartzPluginData } from "../plugins/vfile" import { Node, Root } from "hast" import { Fragment, jsx, jsxs } from "preact/jsx-runtime" import { trace } from "./trace" import { type FilePath } from "./path" +const customComponents: Components = { + table: (props) => ( +
+ + + ), +} + export function htmlToJsx(fp: FilePath, tree: Node) { try { // @ts-ignore (preact makes it angry) - return toJsxRuntime(tree as Root, { Fragment, jsx, jsxs, elementAttributeNameCase: "html" }) + return toJsxRuntime(tree as Root, { + Fragment, + jsx, + jsxs, + elementAttributeNameCase: "html", + components: customComponents, + }) } catch (e) { trace(`Failed to parse Markdown in \`${fp}\` into JSX`, e as Error) }