diff --git a/.gitignore b/.gitignore index b5a7453..5b97f1e 100644 --- a/.gitignore +++ b/.gitignore @@ -25,24 +25,4 @@ test/ /public/hanplayer /public/MineWeb -/public/other -/src/content/blog/* -!/src/content/blog -/src/content/blog/2024/* -!/src/content/blog/2024 -/src/content/blog/2024/07/* -!/src/content/blog/2024/07 -/src/content/blog/2024/08/* -!/src/content/blog/2024/08 -/src/content/blog/2024/09/* -!/src/content/blog/2024/09 -/src/content/blog/2024/11/* -!/src/content/blog/2024/11 -/src/content/blog/2024/12/* -!/src/content/blog/2024/12 -!/src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md -!/src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md -!/src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md -!/src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md -!/src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md -!/src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md \ No newline at end of file +/public/other \ No newline at end of file diff --git a/README.md b/README.md index 57fae63..6e7874b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,71 @@ # vhAstro-Theme 一款简约的 Astro 主题 + +# Astro Starter Kit: Blog + +```sh +npm create astro@latest -- --template blog +``` + +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/blog) +[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/blog) +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/blog/devcontainer.json) + +> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! + +![blog](https://github.com/withastro/astro/assets/2244813/ff10799f-a816-4703-b967-c78997e8323d) + +Features: + +- ✅ Minimal styling (make it your own!) +- ✅ 100/100 Lighthouse performance +- ✅ SEO-friendly with canonical URLs and OpenGraph data +- ✅ Sitemap support +- ✅ RSS Feed support +- ✅ Markdown & MDX support + +## 🚀 Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```text +├── public/ +├── src/ +│   ├── components/ +│   ├── content/ +│   ├── layouts/ +│   └── pages/ +├── astro.config.mjs +├── README.md +├── package.json +└── tsconfig.json +``` + +Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. + +There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. + +The `src/content/` directory contains "collections" of related Markdown and MDX documents. Use `getCollection()` to retrieve posts from `src/content/blog/`, and type-check your frontmatter using an optional schema. See [Astro's Content Collections docs](https://docs.astro.build/en/guides/content-collections/) to learn more. + +Any static assets, like images, can be placed in the `public/` directory. + +## 🧞 Commands + +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro -- --help` | Get help using the Astro CLI | + +## 👀 Want to learn more? + +Check out [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). + +## Credit + +This theme is based off of the lovely [Bear Blog](https://github.com/HermanMartinus/bearblog/). diff --git a/package.json b/package.json index cfac89f..5665edb 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,12 @@ "@astrojs/mdx": "^4.0.8", "@astrojs/rss": "^4.0.11", "@astrojs/sitemap": "^3.2.1", - "astro": "^5.2.5", + "astro": "^5.3.0", "dayjs": "^1.11.13", "dplayer": "^1.27.1", "hls.js": "^1.5.20", "nprogress": "^0.2.0", - "overlayscrollbars": "^2.10.1", + "overlayscrollbars": "^2.11.0", "remark-directive": "^3.0.1", "twikoo": "1.6.41", "unist-util-visit": "^5.0.0", diff --git a/public/assets/font/index.css b/public/assets/font/index.css index b70ae65..c39e174 100644 --- a/public/assets/font/index.css +++ b/public/assets/font/index.css @@ -1,4 +1,27 @@ +/* +@import url('./HarmonyOS_Sans_Regular/result.css'); +@import url('./NotoSans/result.css'); */ @import url('./SFMono-Regular/result.css'); + +/* @import url('./HarmonyOS_Sans/100/global/result.css'); +@import url('./HarmonyOS_Sans/100/sc/result.css'); +@import url('./HarmonyOS_Sans/200/global/result.css'); +@import url('./HarmonyOS_Sans/200/sc/result.css'); +@import url('./HarmonyOS_Sans/300/global/result.css'); +@import url('./HarmonyOS_Sans/300/sc/result.css'); +@import url('./HarmonyOS_Sans/400/global/result.css'); +@import url('./HarmonyOS_Sans/400/sc/result.css'); +@import url('./HarmonyOS_Sans/500/global/result.css'); +@import url('./HarmonyOS_Sans/500/sc/result.css'); +@import url('./HarmonyOS_Sans/600/global/result.css'); +@import url('./HarmonyOS_Sans/600/sc/result.css'); +@import url('./HarmonyOS_Sans/700/global/result.css'); +@import url('./HarmonyOS_Sans/700/sc/result.css'); +@import url('./HarmonyOS_Sans/800/global/result.css'); +@import url('./HarmonyOS_Sans/800/sc/result.css'); +@import url('./HarmonyOS_Sans/900/global/result.css'); +@import url('./HarmonyOS_Sans/900/sc/result.css'); */ + @import url('./MiSans/100/result.css'); @import url('./MiSans/200/result.css'); @import url('./MiSans/300/result.css'); diff --git a/public/assets/images/footer/astro.svg b/public/assets/images/footer/astro.svg new file mode 100644 index 0000000..ff8d63b --- /dev/null +++ b/public/assets/images/footer/astro.svg @@ -0,0 +1,2 @@ + +Frame: AstroFrameAstro \ No newline at end of file diff --git a/public/assets/images/footer/copyright.svg b/public/assets/images/footer/copyright.svg new file mode 100644 index 0000000..1a09db1 --- /dev/null +++ b/public/assets/images/footer/copyright.svg @@ -0,0 +1 @@ +CopyrightBY-NC-SA 4.0 \ No newline at end of file diff --git a/public/assets/images/footer/hananalytics.svg b/public/assets/images/footer/hananalytics.svg new file mode 100644 index 0000000..6e7bf46 --- /dev/null +++ b/public/assets/images/footer/hananalytics.svg @@ -0,0 +1 @@ +Access: HanAnalyticsAccessHanAnalytics \ No newline at end of file diff --git a/public/assets/images/footer/icp.svg b/public/assets/images/footer/icp.svg new file mode 100644 index 0000000..66c2969 --- /dev/null +++ b/public/assets/images/footer/icp.svg @@ -0,0 +1 @@ +浙ICP备2022035705号 \ No newline at end of file diff --git a/public/assets/images/footer/ing.svg b/public/assets/images/footer/ing.svg new file mode 100644 index 0000000..81c7f50 --- /dev/null +++ b/public/assets/images/footer/ing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/images/footer/sitemap.svg b/public/assets/images/footer/sitemap.svg new file mode 100644 index 0000000..c7ef393 --- /dev/null +++ b/public/assets/images/footer/sitemap.svg @@ -0,0 +1 @@ +SEOSitemap \ No newline at end of file diff --git a/public/assets/images/footer/theme.svg b/public/assets/images/footer/theme.svg new file mode 100644 index 0000000..0c3e8ff --- /dev/null +++ b/public/assets/images/footer/theme.svg @@ -0,0 +1,2 @@ + +Theme: vhAstro ThemeThemevhAstro Theme \ No newline at end of file diff --git a/src/components/Aside.astro b/src/components/Aside.astro index 70d7d69..c32ead8 100644 --- a/src/components/Aside.astro +++ b/src/components/Aside.astro @@ -1,7 +1,7 @@ --- // 获取用户配置数据 import SITE_CONFIG from "../config"; -import { fmtTime, fmtDate } from "../utils/index"; +import { fmtDate } from "../utils/index"; const { Avatar, Author, Motto, WebSites } = SITE_CONFIG; // 获取文章数据 import { getCategories, getTags, getRecommendArticles } from "../utils/getPostInfo"; @@ -78,7 +78,7 @@ import "../styles/components/Aside.less";

{(await i).title} - +

)) diff --git a/src/components/Comment.astro b/src/components/Comment.astro index 72ac99d..56a9d1b 100644 --- a/src/components/Comment.astro +++ b/src/components/Comment.astro @@ -3,20 +3,19 @@ import "../styles/components/Comment.less"; ---
- diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..a96df71 --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,17 @@ +--- +import { fmtDate } from "../utils/index"; +// 页面内容的元数据 +import SITE_CONFIG from "../config"; +const { CreateTime } = SITE_CONFIG; +// 基础 样式 +import "../styles/Footer.less"; +--- + + diff --git a/src/components/Pagination.astro b/src/components/Pagination.astro index 800b766..23f29a5 100644 --- a/src/components/Pagination.astro +++ b/src/components/Pagination.astro @@ -23,7 +23,7 @@ import "../styles/components/Pagination.less"; } { - (!data.next || !data.last) && ( + (!data.next || !data.last) && data.prev && ( {fmtPage(data.prev)} @@ -33,7 +33,7 @@ import "../styles/components/Pagination.less"; {fmtPage(data.current) || "1"} { - (!data.prev || !data.first) && ( + (!data.prev || !data.first) && data.next && ( {fmtPage(data.next)} diff --git a/src/config.ts b/src/config.ts index 995efad..8efccfd 100644 --- a/src/config.ts +++ b/src/config.ts @@ -38,7 +38,7 @@ export default { // 博客音乐组件解析接口 vhMusicApi: 'https://meting-dd.2333332.xyz/api', // 评论组件 Twikoo - Twikoo: { - envId: "https://twikoo.vvhan.com/.netlify/functions/twikoo", - } + Twikoo: { envId: 'https://twikoo.vvhan.com/.netlify/functions/twikoo' }, + // Han Analytics 统计(https://github.com/uxiaohan/HanAnalytics) + HanAnalytics: { enable: true, server: 'https://analytics.vvhan.com', siteId: 'Hello-HanHexoBlog' } } \ No newline at end of file diff --git a/src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md b/src/content/blog/Cloudflare优选IP➕DnsPod的DDNS自动切换.md similarity index 100% rename from src/content/blog/2024/08/Cloudflare优选IP➕DnsPod的DDNS自动切换.md rename to src/content/blog/Cloudflare优选IP➕DnsPod的DDNS自动切换.md diff --git a/src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md b/src/content/blog/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md similarity index 100% rename from src/content/blog/2024/09/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md rename to src/content/blog/【开源】HanAnalytics访问分析Web统计托管于(Cloudflare Pages).md diff --git a/src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md b/src/content/blog/【开源】Tarot-塔罗牌占卜.md similarity index 100% rename from src/content/blog/2024/12/【开源】Tarot-塔罗牌占卜.md rename to src/content/blog/【开源】Tarot-塔罗牌占卜.md diff --git a/src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md b/src/content/blog/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md similarity index 100% rename from src/content/blog/2024/07/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md rename to src/content/blog/【开源】骤雨重山无限存储图床托管于(Cloudflare Pages).md diff --git a/src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md b/src/content/blog/基于AI的微博动态心情分析【开源】.md similarity index 100% rename from src/content/blog/2024/09/基于AI的微博动态心情分析【开源】.md rename to src/content/blog/基于AI的微博动态心情分析【开源】.md diff --git a/src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md b/src/content/blog/推荐一个开源项目WebWatermark图片添加水印在线小助手.md similarity index 100% rename from src/content/blog/2024/11/推荐一个开源项目WebWatermark图片添加水印在线小助手.md rename to src/content/blog/推荐一个开源项目WebWatermark图片添加水印在线小助手.md diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index da60c2c..095eb69 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -5,6 +5,8 @@ const { title, keywords, description, activeNav } = Astro.props; import Head from "../components/Head.astro"; // 顶部 Header import Header from "../components/Header.astro"; +// 底部 Footer +import Footer from "../components/Footer.astro"; // 返回顶部 import BackTop from "../components/BackTop.astro"; // 手机端侧边栏 @@ -24,6 +26,7 @@ import "../styles/Layout.less";
+