| | |
| | | import { resolveToRoot } from "../path" |
| | | import { pathToRoot, slugTag } from "../util/path" |
| | | import { QuartzComponentConstructor, QuartzComponentProps } from "./types" |
| | | import { slug as slugAnchor } from 'github-slugger' |
| | | |
| | | function TagList({ fileData }: QuartzComponentProps) { |
| | | const tags = fileData.frontmatter?.tags |
| | | const slug = fileData.slug! |
| | | const baseDir = resolveToRoot(slug) |
| | | const baseDir = pathToRoot(fileData.slug!) |
| | | if (tags && tags.length > 0) { |
| | | return <ul class="tags">{tags.map(tag => { |
| | | const display = `#${tag}` |
| | | const linkDest = baseDir + `/tags/${slugAnchor(tag)}` |
| | | return <li> |
| | | <a href={linkDest} class="internal">{display}</a> |
| | | </li> |
| | | })}</ul> |
| | | return ( |
| | | <ul class="tags"> |
| | | {tags.map((tag) => { |
| | | const display = `#${tag}` |
| | | const linkDest = baseDir + `/tags/${slugTag(tag)}` |
| | | return ( |
| | | <li> |
| | | <a href={linkDest} class="internal tag-link"> |
| | | {display} |
| | | </a> |
| | | </li> |
| | | ) |
| | | })} |
| | | </ul> |
| | | ) |
| | | } else { |
| | | return null |
| | | } |
| | |
| | | display: flex; |
| | | padding-left: 0; |
| | | gap: 0.4rem; |
| | | margin: 1rem 0; |
| | | } |
| | | |
| | | .tags > li { |
| | | display: inline-block; |
| | | white-space: nowrap; |
| | | margin: 0; |
| | | overflow-wrap: normal; |
| | | } |
| | | |
| | | .tags > li > a { |
| | | a.tag-link { |
| | | border-radius: 8px; |
| | | background-color: var(--highlight); |
| | | padding: 0.2rem 0.5rem; |