diff --git a/web/components.d.ts b/web/components.d.ts
index c9dec3e..48e64e4 100644
--- a/web/components.d.ts
+++ b/web/components.d.ts
@@ -7,9 +7,12 @@ export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
+ Avatar: typeof import('./src/components/avatar.vue')['default']
Markdown: typeof import('./src/components/markdown.vue')['default']
NButton: typeof import('naive-ui')['NButton']
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
+ NDivider: typeof import('naive-ui')['NDivider']
+ NImage: typeof import('naive-ui')['NImage']
NInput: typeof import('naive-ui')['NInput']
NMessageProvider: typeof import('naive-ui')['NMessageProvider']
NPopconfirm: typeof import('naive-ui')['NPopconfirm']
diff --git a/web/package.json b/web/package.json
index c26669c..842a222 100644
--- a/web/package.json
+++ b/web/package.json
@@ -15,6 +15,7 @@
"@vueuse/core": "^13.4.0",
"axios": "^1.10.0",
"highlight.js": "^11.11.1",
+ "lodash-es": "^4.17.21",
"markdown-it": "^14.1.0",
"pinia": "^3.0.3",
"pinia-plugin-persistedstate": "^4.3.0",
@@ -27,6 +28,7 @@
},
"devDependencies": {
"@antfu/eslint-config": "^4.16.1",
+ "@types/lodash-es": "^4.17.12",
"@types/markdown-it": "^14.1.2",
"@types/node": "^24.0.4",
"@vitejs/plugin-vue": "^6.0.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index ae34847..26cb121 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -20,6 +20,9 @@ importers:
highlight.js:
specifier: ^11.11.1
version: 11.11.1
+ lodash-es:
+ specifier: ^4.17.21
+ version: 4.17.21
markdown-it:
specifier: ^14.1.0
version: 14.1.0
@@ -51,6 +54,9 @@ importers:
'@antfu/eslint-config':
specifier: ^4.16.1
version: 4.16.1(@vue/compiler-sfc@3.5.17)(eslint-plugin-format@1.0.1(eslint@9.29.0(jiti@2.4.2)))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)
+ '@types/lodash-es':
+ specifier: ^4.17.12
+ version: 4.17.12
'@types/markdown-it':
specifier: ^14.1.2
version: 14.1.2
diff --git a/web/src/assets/ai_avatar.png b/web/src/assets/ai_avatar.png
new file mode 100644
index 0000000..a976bde
Binary files /dev/null and b/web/src/assets/ai_avatar.png differ
diff --git a/web/src/assets/user_avatar.jpg b/web/src/assets/user_avatar.jpg
new file mode 100644
index 0000000..2c81da7
Binary files /dev/null and b/web/src/assets/user_avatar.jpg differ
diff --git a/web/src/components/avatar.vue b/web/src/components/avatar.vue
new file mode 100644
index 0000000..8ce912d
--- /dev/null
+++ b/web/src/components/avatar.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/web/src/views/CommunityView.vue b/web/src/views/CommunityView.vue
index cd9e25e..92c4d17 100644
--- a/web/src/views/CommunityView.vue
+++ b/web/src/views/CommunityView.vue
@@ -1,6 +1,9 @@