| | |
| | | import { i18n } from "../i18n" |
| | | import { classNames } from "../util/lang" |
| | | |
| | | interface BacklinksOptions { |
| | | hideWhenEmpty: boolean |
| | | } |
| | | |
| | | const defaultOptions: BacklinksOptions = { |
| | | hideWhenEmpty: true, |
| | | } |
| | | |
| | | export default ((opts?: Partial<BacklinksOptions>) => { |
| | | const options: BacklinksOptions = { ...defaultOptions, ...opts } |
| | | |
| | | const Backlinks: QuartzComponent = ({ |
| | | fileData, |
| | | allFiles, |
| | |
| | | }: QuartzComponentProps) => { |
| | | const slug = simplifySlug(fileData.slug!) |
| | | const backlinkFiles = allFiles.filter((file) => file.links?.includes(slug)) |
| | | if (options.hideWhenEmpty && backlinkFiles.length == 0) { |
| | | return null |
| | | } |
| | | return ( |
| | | <div class={classNames(displayClass, "backlinks")}> |
| | | <h3>{i18n(cfg.locale).components.backlinks.title}</h3> |
| | |
| | | } |
| | | |
| | | Backlinks.css = style |
| | | export default (() => Backlinks) satisfies QuartzComponentConstructor |
| | | |
| | | return Backlinks |
| | | }) satisfies QuartzComponentConstructor |