site/quartz/components/Footer.tsx

51 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-04-05 00:03:11 +00:00
import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
import style from "./styles/footer.scss"
import { version } from "../../package.json"
import { i18n } from "../i18n"
interface Options {
links: Record<string, string>
2024-04-20 15:26:09 +00:00
rings: Record<string, string>
2024-04-05 00:03:11 +00:00
}
export default ((opts?: Options) => {
const Footer: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {
const year = new Date().getFullYear()
const links = opts?.links ?? []
2024-04-20 15:26:09 +00:00
const rings = opts?.rings ?? []
2024-04-05 00:03:11 +00:00
return (
<footer class={`${displayClass ?? ""}`}>
<hr />
<ul>
{Object.entries(links).map(([text, link]) => (
<li>
<a href={link}>{text}</a>
</li>
))}
</ul>
2024-04-20 15:26:09 +00:00
<div class="rings">
{Object.entries(rings).map(([text, link]) => (
<div class="ring">
<a class="ringbtn" href={link + "previous?host=nexie.net"}>
</a>
2024-04-20 15:30:42 +00:00
<a class="ringbtn" href={link}>
{text}
</a>
2024-04-20 15:26:09 +00:00
<a class="ringbtn" href={link + "random"}>
Random
</a>
<a class="ringbtn" href={link + "next?host=nexie.net"}>
</a>
</div>
))}
</div>
2024-04-05 00:03:11 +00:00
</footer>
)
}
Footer.css = style
return Footer
}) satisfies QuartzComponentConstructor