diff --git a/src/components/PostCard.astro b/src/components/PostCard.astro index a175f764b..6eaf9a4b9 100644 --- a/src/components/PostCard.astro +++ b/src/components/PostCard.astro @@ -1,5 +1,5 @@ --- -import path from 'path' +import path from 'node:path' import PostMetadata from './PostMeta.astro' import ImageWrapper from './misc/ImageWrapper.astro' import { Icon } from 'astro-icon/components' @@ -9,6 +9,7 @@ import { getDir } from '../utils/url-utils' interface Props { class?: string + // biome-ignore lint/suspicious/noExplicitAny: no idea what type it will be entry: any title: string url: string diff --git a/src/components/control/Pagination.astro b/src/components/control/Pagination.astro index 0f4380381..aee03f57f 100644 --- a/src/components/control/Pagination.astro +++ b/src/components/control/Pagination.astro @@ -19,8 +19,8 @@ const VISIBLE = ADJ_DIST * 2 + 1 // for test let count = 1 -let l = page.currentPage, - r = page.currentPage +let l = page.currentPage +let r = page.currentPage while (0 < l - 1 && r + 1 <= page.lastPage && count + 2 <= VISIBLE) { count += 2 l-- @@ -37,15 +37,15 @@ while (r + 1 <= page.lastPage && count < VISIBLE) { let pages: number[] = [] if (l > 1) pages.push(1) -if (l == 3) pages.push(2) +if (l === 3) pages.push(2) if (l > 3) pages.push(HIDDEN) for (let i = l; i <= r; i++) pages.push(i) if (r < page.lastPage - 2) pages.push(HIDDEN) -if (r == page.lastPage - 2) pages.push(page.lastPage - 1) +if (r === page.lastPage - 2) pages.push(page.lastPage - 1) if (r < page.lastPage) pages.push(page.lastPage) const getPageUrl = (p: number) => { - if (p == 1) return '/' + if (p === 1) return '/' return `/${p}/` } --- @@ -80,4 +80,4 @@ const getPageUrl = (p: number) => { > - \ No newline at end of file + diff --git a/src/components/misc/ImageWrapper.astro b/src/components/misc/ImageWrapper.astro index 610554f49..dbf609f4e 100644 --- a/src/components/misc/ImageWrapper.astro +++ b/src/components/misc/ImageWrapper.astro @@ -1,5 +1,5 @@ --- -import path from 'path' +import path from 'node:path' interface Props { id?: string src: string @@ -24,7 +24,7 @@ const isPublic = src.startsWith('/') // TODO temporary workaround for images dynamic import // https://github.com/withastro/astro/issues/3373 -let img +let img = null if (isLocal) { const files = import.meta.glob('../../**', { import: 'default', @@ -47,4 +47,3 @@ const imageStyle = `object-position: ${position}` {isLocal && img && {alt} {!isLocal && {alt} - diff --git a/src/components/widget/TOC.astro b/src/components/widget/TOC.astro index 8ac3e5aff..8ed320407 100644 --- a/src/components/widget/TOC.astro +++ b/src/components/widget/TOC.astro @@ -17,12 +17,12 @@ for (const heading of headings) { const className = Astro.props.class const removeTailingHash = (text: string) => { - let lastIndexOfHash = text.lastIndexOf('#'); - if (lastIndexOfHash != text.length - 1) { - return text; - } + const lastIndexOfHash = text.lastIndexOf('#') + if (lastIndexOfHash !== text.length - 1) { + return text + } - return text.substring(0, lastIndexOfHash); + return text.substring(0, lastIndexOfHash); } let heading1Count = 1; @@ -119,7 +119,7 @@ class TableOfContents extends HTMLElement { scrollToActiveHeading = () => { // If the TOC widget can accommodate both the topmost - // and bottommost items, scroll to the topmost item. + // and bottommost items, scroll to the topmost item. // Otherwise, scroll to the bottommost one. if (this.anchorNavTarget || !this.tocEl) return; @@ -163,7 +163,7 @@ class TableOfContents extends HTMLElement { if (this.isInRange(offsetTop, 0, window.innerHeight) || this.isInRange(offsetBottom, 0, window.innerHeight) - || (offsetTop < 0 && offsetBottom > window.innerHeight)) { + || (offsetTop < 0 && offsetBottom > window.innerHeight)) { this.markActiveHeading(i); } else if (offsetTop > window.innerHeight) break; @@ -258,4 +258,4 @@ class TableOfContents extends HTMLElement { customElements.define("table-of-contents", TableOfContents); - \ No newline at end of file + diff --git a/src/plugins/rehype-component-admonition.mjs b/src/plugins/rehype-component-admonition.mjs index 2f5c9121e..850751b92 100644 --- a/src/plugins/rehype-component-admonition.mjs +++ b/src/plugins/rehype-component-admonition.mjs @@ -18,15 +18,18 @@ export function AdmonitionComponent(properties, children, type) { 'Invalid admonition directive. (Admonition directives must be of block type ":::note{name="name"} :::")', ) - let label = null - if (properties && properties['has-directive-label']) { - label = children[0] // The first child is the label - children = children.slice(1) - label.tagName = 'div' // Change the tag

to

- } + const { label, childrenToReturn } = properties?.['has-directive-label'] + ? { + label: { ...children[0], tagName: 'div' }, + childrenToReturn: children.slice(1), + } + : { + label: null, + childrenToReturn: children, + } - return h(`blockquote`, { class: `admonition bdm-${type}` }, [ - h('span', { class: `bdm-title` }, label ? label : type.toUpperCase()), - ...children, + return h('blockquote', { class: `admonition bdm-${type}` }, [ + h('span', { class: 'bdm-title' }, label ? label : type.toUpperCase()), + ...childrenToReturn, ]) } diff --git a/src/plugins/rehype-component-github-card.mjs b/src/plugins/rehype-component-github-card.mjs index 3923f194c..13c0ee661 100644 --- a/src/plugins/rehype-component-github-card.mjs +++ b/src/plugins/rehype-component-github-card.mjs @@ -32,7 +32,7 @@ export function GithubCardComponent(properties, children) { 'Waiting...', ) - const nTitle = h(`div`, { class: 'gc-titlebar' }, [ + const nTitle = h('div', { class: 'gc-titlebar' }, [ h('div', { class: 'gc-titlebar-left' }, [ h('div', { class: 'gc-owner' }, [ nAvatar, diff --git a/src/plugins/remark-directive-rehype.js b/src/plugins/remark-directive-rehype.js index 2d6b55039..96b8c3e90 100644 --- a/src/plugins/remark-directive-rehype.js +++ b/src/plugins/remark-directive-rehype.js @@ -1,4 +1,3 @@ -// biome-ignore lint/suspicious/noShadowRestrictedNames: import { h } from 'hastscript' import { visit } from 'unist-util-visit' @@ -10,7 +9,8 @@ export function parseDirectiveNode() { node.type === 'leafDirective' || node.type === 'textDirective' ) { - const data = node.data || (node.data = {}) + node.data = node.data || {} + const data = node.data node.attributes = node.attributes || {} if ( node.children.length > 0 && diff --git a/src/plugins/remark-excerpt.js b/src/plugins/remark-excerpt.js index c88a0459d..34421e7a8 100644 --- a/src/plugins/remark-excerpt.js +++ b/src/plugins/remark-excerpt.js @@ -1,4 +1,4 @@ -import { toString } from 'mdast-util-to-string' +import { toString as mdastToString } from 'mdast-util-to-string' /* Use the post's first paragraph as the excerpt */ export function remarkExcerpt() { @@ -8,7 +8,7 @@ export function remarkExcerpt() { if (node.type !== 'paragraph') { continue } - excerpt = toString(node) + excerpt = mdastToString(node) break } data.astro.frontmatter.excerpt = excerpt