diff --git a/src/components/TableOfContents.astro b/src/components/TableOfContents.astro new file mode 100644 index 0000000..7bf9bae --- /dev/null +++ b/src/components/TableOfContents.astro @@ -0,0 +1,39 @@ +--- +import TablerIcon from "../components/TablerIcon.astro"; +import { type MarkdownHeading } from "astro"; +import { t } from "../lib/i18n"; + +import "./tableofcontents.css" + +type Props = { + locale: string; + content: MarkdownHeading[]; +}; + +const { locale, content } = Astro.props; +--- + + diff --git a/src/components/tableofcontents.css b/src/components/tableofcontents.css new file mode 100644 index 0000000..3350dad --- /dev/null +++ b/src/components/tableofcontents.css @@ -0,0 +1,32 @@ +.contents-list { + list-style-type: none; + padding-inline-start: 0; + + font-size: small; + line-height: 1; + + border-inline-start: 0.15rem solid + color-mix(in srgb, var(--color-link) 50%, transparent); + + & li { + & a { + display: block; + color: var(--color-inv-base); + text-decoration: none; + + padding-block: 0.5rem; + padding-inline: 0.5rem; + + margin-inline-start: -0.15rem; + + border-left: 0.15rem solid + color-mix(in srgb, var(--color-link) 0%, transparent); + + &:hover, + &:focus, + &.active { + color: var(--color-link); + } + } + } +} diff --git a/src/layouts/WikiLayout.astro b/src/layouts/WikiLayout.astro index 8f69603..1b7f2db 100644 --- a/src/layouts/WikiLayout.astro +++ b/src/layouts/WikiLayout.astro @@ -3,6 +3,7 @@ import BasePage from "./BasePage.astro"; import Header from "../components/Header.astro"; import Sidebar from "../components/Sidebar.astro"; import TablerIcon from "../components/TablerIcon.astro"; +import TableOfContents from "../components/TableOfContents.astro"; import "./layout.css"; import { type MarkdownHeading } from "astro"; @@ -76,29 +77,7 @@ const content = headings.filter((h) => h.depth == 2); {t(locale, "content.title")} - {content.length > 0 && ( - - )} + {content.length > 0 && } ) } @@ -123,32 +102,8 @@ const content = headings.filter((h) => h.depth == 2); diff --git a/src/layouts/layout.css b/src/layouts/layout.css index cd4aef5..8ed14f3 100644 --- a/src/layouts/layout.css +++ b/src/layouts/layout.css @@ -18,39 +18,6 @@ body { } } -.contents-list { - list-style-type: none; - padding-inline-start: 0; - - font-size: small; - line-height: 1; - - border-inline-start: 0.15rem solid - color-mix(in srgb, var(--color-link) 50%, transparent); - - & li { - & a { - display: block; - color: var(--color-inv-base); - text-decoration: none; - - padding-block: 0.5rem; - padding-inline: 0.5rem; - - margin-inline-start: -0.15rem; - - border-left: 0.15rem solid - color-mix(in srgb, var(--color-link) 0%, transparent); - - &:hover, - &:focus, - &.active { - color: var(--color-link); - } - } - } -} - & .wrapper { display: flex; align-items: flex-start;