| --- |
| import type { HTMLAttributes } from 'astro/types'; |
| |
| type Props = HTMLAttributes<'a'>; |
| |
| const { href, class: className, ...props } = Astro.props; |
| |
| const { pathname } = Astro.url; |
| const subpath = pathname.match(/[^\/]+/g); |
| console.log(subpath, pathname) |
| const isActive = href === pathname || href === '/' + subpath?.[0]; |
| --- |
| |
| <a href={href} class:list={[className, { active: isActive }]} {...props}> |
| <slot /> |
| </a> |
| <style> |
| a { |
| display: inline-block; |
| text-decoration: none; |
| } |
| a.active { |
| font-weight: bolder; |
| text-decoration: underline; |
| } |
| </style> |