diff --git a/package-lock.json b/package-lock.json
index 8bab3ac..6a9dcb9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,8 @@
"typed.js": "^2.1.0",
"vue": "^3.4.21",
"vue-audio-better": "^3.0.1",
- "vue-router": "^4.3.0"
+ "vue-router": "^4.3.0",
+ "wordcloud": "^1.2.2"
},
"devDependencies": {
"@tsconfig/node20": "^20.1.4",
@@ -1909,6 +1910,11 @@
"node": ">= 8"
}
},
+ "node_modules/wordcloud": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/wordcloud/-/wordcloud-1.2.2.tgz",
+ "integrity": "sha512-fUnDsGrHXou+49j1OeKaC7nOeZPx+sWjIet0L/j6eAcm0nXy+a+AuUs/iDAX4PLBg1Zc6wgXWXhoXdQsXRWAEw=="
+ },
"node_modules/zrender": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-5.5.0.tgz",
diff --git a/package.json b/package.json
index 62b1652..cec4da3 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,8 @@
"typed.js": "^2.1.0",
"vue": "^3.4.21",
"vue-audio-better": "^3.0.1",
- "vue-router": "^4.3.0"
+ "vue-router": "^4.3.0",
+ "wordcloud": "^1.2.2"
},
"devDependencies": {
"@tsconfig/node20": "^20.1.4",
diff --git a/src/assets/images/ceshi.png b/src/assets/images/ceshi.png
new file mode 100644
index 0000000..348422b
Binary files /dev/null and b/src/assets/images/ceshi.png differ
diff --git a/src/assets/index.ts b/src/assets/index.ts
index cfee6f7..ff6d7c4 100644
--- a/src/assets/index.ts
+++ b/src/assets/index.ts
@@ -3,7 +3,7 @@ import { createFromIconfontCN } from '@ant-design/icons-vue';
function createIconComponent(iconType: string) {
const IconComponent = createFromIconfontCN({
- scriptUrl: '//at.alicdn.com/t/c/font_4513281_wqgw35udiqc.js', // 在 iconfont.cn 上生成
+ scriptUrl: '//at.alicdn.com/t/c/font_4513281_r2toi9mpbha.js', // 在 iconfont.cn 上生成
});
return defineComponent({
@@ -26,6 +26,10 @@ const GitHubLined = createIconComponent('icon-github');
const QQLined = createIconComponent('icon-QQ');
const WechatLined = createIconComponent('icon-wechat-fill');
const GravatarLined = createIconComponent('icon-brand-gravatar');
+const RiLiLined = createIconComponent('icon-rili');
+const YueDuLined = createIconComponent('icon-yuedu');
+const YanJingLined = createIconComponent('icon-yanjing');
+const XieZiLined = createIconComponent('icon-xiezi');
export {
@@ -42,5 +46,9 @@ export {
GitHubLined,
QQLined,
WechatLined,
- GravatarLined
+ GravatarLined,
+ RiLiLined,
+ YueDuLined,
+ YanJingLined,
+ XieZiLined
}
\ No newline at end of file
diff --git a/src/components/blogs/HomePage.vue b/src/components/blogs/HomePage.vue
index f088326..f4f757d 100644
--- a/src/components/blogs/HomePage.vue
+++ b/src/components/blogs/HomePage.vue
@@ -26,47 +26,101 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
- {{ text }}
-
-
- {{ text }}
-
-
- {{ text }}
-
-
-
+
sunfree
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+ {{ text }}
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
-
+
+
+ 操作系统的安装
+
+
+
+
+
+ {{ mainStatistic.mainDate }}
+
+
+
+
+
+ {{ mainStatistic.mainWatchCount }}
+
+
+
+
+
+ 字数≈{{ mainStatistic.mainWordCount }}字
+
+
+
+
+
+ 阅读时长≈{{ mainStatistic.mainReadCount }}分
+
+
+
+
+
+
测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
+
+
+
+
+
@@ -108,19 +162,22 @@ import { MenuProps } from 'ant-design-vue/es/menu';
import { HomeOutlined, HighlightOutlined, ProfileOutlined, CameraOutlined, UsergroupDeleteOutlined, DownCircleOutlined } from '@ant-design/icons-vue';
import { MusicLined, EmailLined, QQLined, WechatLined, GravatarLined, GitHubLined } from "@/assets"
import Typed from 'typed.js';
-import { onMounted } from 'vue'
+import { onMounted } from 'vue';
+import type { CSSProperties } from 'vue';
import { CaretRightOutlined } from '@ant-design/icons-vue';
import 'APlayer/dist/APlayer.min.css';
import APlayer from 'APlayer';
import { createEcharts } from "@/hooks/intex"
import { SettingOutlined, EditOutlined, EllipsisOutlined } from '@ant-design/icons-vue';
-import { useRouter } from 'vue-router'
+import { RiLiLined, YueDuLined, YanJingLined, XieZiLined } from '@/assets';
+import { useRouter } from 'vue-router';
+const random = ref();
const router = useRouter()
const heat = ref(null);
const activeKey = ref(['']);
const text = `A dog is a type of domesticated animal.Known for its loyalty and faithfulness,it can be found as a welcome guest in many households across the world.`;
const customStyle =
- 'background: #f7f7f7;border-radius: 4px;margin-bottom: 12px;border: 0;overflow: hidden';
+ 'background: #F5F5F5;border-radius: 4px;margin-bottom: 12px;border: 0;overflow: hidden';
onMounted(() => {
// 定义home页的博客标题名
new Typed('.author', {
@@ -132,7 +189,7 @@ onMounted(() => {
showCursor: false
});
// 定义个人座右铭
- new Typed('.cardtext', {
+ new Typed('.cardText', {
strings: ['做三流测试,品瀚霖人生!'],
typeSpeed: 200,
backSpeed: 150,
@@ -298,6 +355,13 @@ const downScroll = () => {
}
};
+const mainStatistic = reactive<{ mainDate: string, mainWatchCount: string, mainWordCount: string, mainReadCount: string }>({
+ mainDate: "2024-06-11",
+ mainWatchCount: "9999",
+ mainWordCount: "9999",
+ mainReadCount: "9999"
+})
+
const items = ref([
{
key: 'home',
@@ -433,37 +497,82 @@ const gravatarClick = () => {
background-color: rgba(5, 5, 5, 0.08);
}
-.mainContainer>:first-child {
+.leftBar {
width: 15%;
}
-.mainContainer img{
- width: 100%;
- /* 图片宽度占满容器 */
- aspect-ratio: 1/1;
+.leftBar img {
/* 图片自适应容器并保持宽高比例 */
+ aspect-ratio: 1/1;
+}
+
+.leftBar>* {
+ margin-bottom: 24px;
+}
+
+.leftBar h1 {
+ text-align: center;
+ font-family: Georgia, 'Times New Roman', Times, serif;
+}
+
+.leftBar .cardText {
+ min-height: 60px;
+ text-align: center;
}
+.leftBar>:first-child .button-group {
+ display: flex;
+ margin: 0 12px 24px 12px;
+ justify-content: space-between;
+}
+
+.leftBar>:nth-child(2) .button-group {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+}
+
+.leftBar>:nth-child(2) .button-group>* {
+ width: 40%;
+ margin: 12px;
+}
.main {
- height: 500px;
width: 45%;
margin: 0 24px;
- background-color: black;
- border: solid 1px red;
}
-.rightBar {
- width: 20%;
+.main h2 {
+ text-align: center;
+}
+
+.main .tag-group {
+ display: flex;
+ justify-content: center;
+}
+
+.main .tag-group>* {
+ color: black;
+ margin: 0 12px;
+}
+
+.main .blog-content {
+ display: flex;
+ margin: 48px;
+}
+.main .blog-content>:nth-child(2){
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: pre-wrap; /* 防止文本换行 */
}
-.button-container button {
- margin: 24px 6px;
+.main .read-button {
+ display: flex;
+ justify-content: center;
}
-.custom-collapse {
- margin: 24px 0px;
- background: rgb(255, 255, 255)
+.rightBar {
+ width: 20%;
}
.aplayer {
diff --git a/src/components/blogs/ceshi.vue b/src/components/blogs/ceshi.vue
index 4de8b8e..a27216f 100644
--- a/src/components/blogs/ceshi.vue
+++ b/src/components/blogs/ceshi.vue
@@ -1,109 +1,27 @@
-
+
-
-
-