Commit f18a320

HPCesia <me@hpcesia.com>
2025-03-18 13:05:25
fix: wrong console error
1 parent 620282e
Changed files (4)
src/components/aside/recent-comments/Twikoo.astro
@@ -2,11 +2,7 @@
   import { asideConfig, commentConfig } from '@/config';
   import { loadScript } from '@/scripts/utils';
   import { CDN } from '@constants/cdn.mjs';
-  import {
-    cleanCommentHtml,
-    createCommentItem,
-    getTemplate,
-  } from '../ResentCommentsCard.astro';
+  import { cleanCommentHtml, createCommentItem, getTemplate } from './utils.ts';
 
   const twikooConfig = commentConfig.twikoo!;
 
src/components/aside/recent-comments/utils.ts
@@ -0,0 +1,64 @@
+import { siteConfig } from '@/config';
+import I18nKey from '@i18n/I18nKey';
+import { i18n } from '@i18n/translation';
+
+export function getTemplate() {
+  const recentCommentsCard = document.getElementById('recent-comments-card');
+  if (!recentCommentsCard) {
+    console.error('Recent comments card not found');
+    return;
+  }
+  const recentCommentsList = recentCommentsCard.querySelector('ul')!;
+  const recentCommentTemplate = recentCommentsList.querySelector('template');
+  return {
+    container: recentCommentsList,
+    template: recentCommentTemplate,
+  };
+}
+
+export function cleanCommentHtml(htmlString: string) {
+  return htmlString
+    .replaceAll(/<img.*?src="(.*?)"?[^>]+>/gi, i18n(I18nKey.commentReplaceImage)!)
+    .replaceAll(
+      /<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi,
+      i18n(I18nKey.commentReplaceLink)!
+    )
+    .replaceAll(/<pre><code[^>]+?>.*?<\/pre>/gis, i18n(I18nKey.commentReplaceCode)!)
+    .replaceAll(/<[^>]+>/g, '');
+}
+
+export function createCommentItem(
+  container: HTMLUListElement,
+  template: HTMLTemplateElement,
+  data: {
+    avatarUrl: string;
+    commentContent: string;
+    commentUrl: string;
+    author: string;
+    time: Date;
+  }
+) {
+  const item = template.content.firstElementChild!.cloneNode(true) as HTMLLIElement;
+  const avatarLinkEl = item.querySelector('a.avatar')!;
+  const avatarWrapper = avatarLinkEl.querySelector('div')!;
+  const avatarImg = new Image();
+  const comment = item.querySelector('a.line-clamp-2')!;
+  const time = item.querySelector('time')!;
+
+  avatarLinkEl.setAttribute('href', data.commentUrl);
+  comment.setAttribute('href', data.commentUrl);
+
+  avatarImg.src = data.avatarUrl;
+  avatarImg.alt = data.author;
+  avatarWrapper.appendChild(avatarImg);
+
+  comment.innerHTML = data.commentContent;
+  time.setAttribute('datetime', data.time.toISOString());
+  time.innerText = data.time.toLocaleDateString(siteConfig.lang.replace('_', '-'), {
+    year: 'numeric',
+    month: '2-digit',
+    day: '2-digit',
+  });
+
+  container.appendChild(item);
+}
src/components/aside/recent-comments/Waline.astro
@@ -1,11 +1,7 @@
 <script>
   import { asideConfig, commentConfig } from '@/config';
   import { joinUrl } from '@utils/url-utils';
-  import {
-    cleanCommentHtml,
-    createCommentItem,
-    getTemplate,
-  } from '../ResentCommentsCard.astro';
+  import { cleanCommentHtml, createCommentItem, getTemplate } from './utils.ts';
 
   async function setup() {
     const walineConfig = commentConfig.waline!;
src/components/aside/ResentCommentsCard.astro
@@ -1,70 +1,9 @@
 ---
-import { commentConfig, siteConfig } from '@/config';
+import { commentConfig } from '@/config';
 import I18nKey from '@i18n/I18nKey';
 import { i18n } from '@i18n/translation';
 import TwikooRecentCommentScript from './recent-comments/Twikoo.astro';
 import WalineRecentCommentScript from './recent-comments/Waline.astro';
-
-export function getTemplate() {
-  const recentCommentsCard = document.getElementById('recent-comments-card');
-  if (!recentCommentsCard) {
-    console.error('Recent comments card not found');
-    return;
-  }
-  const recentCommentsList = recentCommentsCard.querySelector('ul')!;
-  const recentCommentTemplate = recentCommentsList.querySelector('template');
-  return {
-    container: recentCommentsList,
-    template: recentCommentTemplate,
-  };
-}
-
-export function cleanCommentHtml(htmlString: string) {
-  return htmlString
-    .replaceAll(/<img.*?src="(.*?)"?[^>]+>/gi, i18n(I18nKey.commentReplaceImage)!)
-    .replaceAll(
-      /<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi,
-      i18n(I18nKey.commentReplaceLink)!
-    )
-    .replaceAll(/<pre><code[^>]+?>.*?<\/pre>/gis, i18n(I18nKey.commentReplaceCode)!)
-    .replaceAll(/<[^>]+>/g, '');
-}
-
-export function createCommentItem(
-  container: HTMLUListElement,
-  template: HTMLTemplateElement,
-  data: {
-    avatarUrl: string;
-    commentContent: string;
-    commentUrl: string;
-    author: string;
-    time: Date;
-  }
-) {
-  const item = template.content.firstElementChild!.cloneNode(true) as HTMLLIElement;
-  const avatarLinkEl = item.querySelector('a.avatar')!;
-  const avatarWrapper = avatarLinkEl.querySelector('div')!;
-  const avatarImg = new Image();
-  const comment = item.querySelector('a.line-clamp-2')!;
-  const time = item.querySelector('time')!;
-
-  avatarLinkEl.setAttribute('href', data.commentUrl);
-  comment.setAttribute('href', data.commentUrl);
-
-  avatarImg.src = data.avatarUrl;
-  avatarImg.alt = data.author;
-  avatarWrapper.appendChild(avatarImg);
-
-  comment.innerHTML = data.commentContent;
-  time.setAttribute('datetime', data.time.toISOString());
-  time.innerText = data.time.toLocaleDateString(siteConfig.lang.replace('_', '-'), {
-    year: 'numeric',
-    month: '2-digit',
-    day: '2-digit',
-  });
-
-  container.appendChild(item);
-}
 ---
 
 <div id="recent-comments-card" class="card border-base-300 bg-base-200/25 border">