介绍 Astro Zen 博客项目

如果你想部署一个自己的静态博客,又不想到处折腾,并且是熟悉的前端技术栈,你可以尝试下:Astro Zen Blog!

Astro Zen Blog 是一个使用 Astro 构建的极简、响应式和 SEO 友好的博客模板。它具有简洁的设计、暗色模式支持和基于 markdown 的内容管理。

特性

  • 支持 Markdown/MDX 内容创作
  • 简洁的极简设计
  • ️ 基于标签的组织方式
  • 暗色模式支持
  • SEO 优化
  • 完全响应式
  • 社交媒体集成
  • RSS 订阅支持
  • 优秀的性能

在线演示: Yujian's blog

安装

  1. 克隆仓库:

    git clone https://github.com/larry-xue/astro-zen-blog.git
    cd astro-zen-blog
  2. 安装依赖:

    npm install
  3. 启动开发服务器:

    npm run dev

配置

网站设置

  1. 打开 src/config.ts 并自定义您的网站设置:

    export const siteConfig: SiteConfig = {
    site: "https://example.com/", // 您的网站 URL
    title: "您的博客",
    slogan: "探索世界与自我",
    description: "在这里写描述",
    social: {
    github: "https://github.com/username",
    linkedin: "https://www.linkedin.com/in/username",
    email: "your@email.com",
    rss: true,
    },
    homepage: {
    maxPosts: 5, // 显示的最大文章数量
    tags: [], // 仅显示包含这些标签的文章
    excludeTags: [], // 排除包含这些标签的文章
    }
    };

首页文章过滤

如果您想要对首页文章进行更多自定义,可以通过更新 src/utils/posts.ts 中的 filterPublishedPosts 函数来自定义显示的文章。

主题

tailwind.config.js 中更新主要和次要颜色:

module.exports = {
theme: {
extend: {
colors: {
primary: {
50: '#f2f8f3',
100: '#e6f1e8',
200: '#cde3d2',
300: '#a7cbb0',
400: '#7baf89',
500: '#559469',
600: '#437a54',
700: '#366144',
800: '#2c4d37',
900: '#23402d',
950: '#0d1911',
}
}
}
}
};

编写内容

  1. src/content/blog/ 目录下创建新的博客文章

  2. 使用以下前置元数据模板:

    ---
    title: "文章标题"
    description: "文章简短描述"
    date: YYYY-MM-DD
    tags: ["标签1", "标签2"]
    --- 您的内容写在这里...

构建和部署

  1. 构建您的网站:

    npm run build
  2. 部署选项:

项目结构

astro-zen-blog/
├── src/
│ ├── content/
│ │ └── blog/ # 博客文章
│ ├── layouts/ # 页面布局
│ ├── components/ # UI 组件
│ └── config.ts # 网站配置
├── public/ # 静态资源
└── astro.config.mjs # Astro 配置

功能路线图

  • 搜索功能
  • 评论集成
  • ...更多

贡献

欢迎贡献!您可以:

  1. Fork 这个仓库
  2. 创建您的功能分支
  3. 提交一个拉取请求

许可证

该项目基于 MIT 许可证 - 查看 LICENSE 文件了解详情。

Astro Zen Blog |一个优雅、极简、强大的博客的更多相关文章

  1. Dropplets – 极简的 Markdown 博客平台

    Dropplets 是一个简单的博客平台,专注于提供正是你在博客解决方案中需要的.当涉及到基础的博客功能,你真正想要做的是写和发表,而这就是 Dropplets 的过人之处.Dropplets 是一个 ...

  2. 一个lucene源码分析的博客

    ITpub上的一个lucene源码分析的博客,写的比较全面:http://blog.itpub.net/28624388/cid-93356-list-1/

  3. Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET

    OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...

  4. Django学习案例一(blog):五. 开发主页(博客列表展示)

    主页是一个“博客列表”页.博客要按发布时间的倒序来排列,每个博客都要包含标题.作者.分类.发布时间的显示(年-月-日 时:分)及节选的正文内容(前 100 个字).点击单独的博客可以进入其详情页. 1 ...

  5. 8.一个项目实战(下载CSDN博客文章)

    专栏地址 ʅ(‾◡◝)ʃ 前言 要写一个下载器,首先要实现一个接口函数,而这个函数可以对请求的数据进行处理也就是爬虫,其次才是写图形化界面 接口的实现 其实CSDN的浏览器页面的接口很复杂,是直接通过 ...

  6. 把cnblogs变成简书 - cnblogs博客自定义皮肤css样式

    吐槽 博客园cnblogs作为老牌的IT技术博客类网站,为广大的开发者提供了非常不错的学习交流平台. 虽然博客内容才是重点,但是如果有赏心悦目的页面不更好吗! cnblogs可以更换博客模板,并且提供 ...

  7. 《从零开始, 开发一个 Web Office 套件》系列博客目录

    这是一个系列博客, 最终目的是要做一个基于HTML Canvas 的, 类似于微软 Office 的 Web Office 套件, 包括: 文档, 表格, 幻灯片... 等等. 对应的Github r ...

  8. 一个基于Asp.net MVC的博客类网站开源了!

    背景说明: 大学时毕业设计作品,一直闲置在硬盘了,倒想着不如开源出来,也许会对一些人有帮助呢,而且个人觉得这个网站做得还是不错了,毕竟是花了不少心思,希望对你有所帮助. github地址:https: ...

  9. 一个不错的intellj 相关的博客

    http://my.oschina.net/lujianing/blog?catalog=3300430

  10. 一个的unity学习系列的博客

    1.http://my.csdn.net/caoboya 2.http://my.csdn.net/OnafioO

随机推荐

  1. Bit, Byte, ASCII, Unicode, UTF, Base64

    前言 做项目偶尔会接触到 stream 这个感念,不管是 memory stream 还是 file stream,它们又会提到 bytes. 还有像 Identity – 安全基础知识 中提到的 S ...

  2. 全面掌握 Jest:从零开始的测试指南(上篇)

    随着JavaScript在前后端开发中的广泛应用,测试已成为保证代码质量的关键环节. 为什么需要单元测试 在我们的开发过程中,经常需要定义一些算法函数,例如将接口返回的数据转换成UI组件所需的格式.为 ...

  3. WiFi基础(四):WiFi工作原理及WiFi接入过程

    liwen01 2024.09.16 前言 802.11 无线 WiFi 网有三类帧:数据帧.管理帧.控制帧.与有线网相比,无线 WiFi 网会复杂很多.大部分应用软件开发对 WiFi 的控制帧和管理 ...

  4. 音视频入门-5-音频编码原理、编码器、ADTS格式

    1.  概念 音频压缩技术指的是对原始数字音频信号流(PCM编码)运用的数字信号处理技术. 2. 背景 和 压缩的必要性 研究发现,直接采用PCM码流进行存储和传输存在非常大的冗余度. 以CD为例,其 ...

  5. 使用MessagePipe实现进程间通信

    1.MessagePipe介绍 可以用于.NET和Unity上面的高性能的内存/分布式消息传递管道.适用于发布/订阅模式.CQRS的中介模式.Prism中的EventAggregator.IPC(进程 ...

  6. 从SQL Server过渡到PostgreSQL:理解模式的差异

    从SQL Server过渡到PostgreSQL:理解模式的差异 前言 随着越来越多的企业转向开源技术,商业数据库管理员和开发者也逐渐面临向PostgreSQL迁移的需求. 虽然SQL Server和 ...

  7. js 中什么情况下返回 undefined 值

    1. 声明变量没有赋值 <script> let num console.log(num) //undefined </script> 2. 访问不存在的属性 <scri ...

  8. Vue3 的watch 监视属性

    1. 监听单个 watch(变量,(新值,老值)=>{}) 2. 监听多个 watch([变量1,变量2],(新值,老值)=>{}) 3. 监听对象 watch(()=>对象,(新值 ...

  9. 谈一谈 vuex 中的核心属性

    1. state 保存数据的位置 : 2. mutations 唯一修改 state 数据的方式 : 3. getter 监听 state 数据的变化 : 4. actions 执行异步代码,通过 c ...

  10. KubeSphere 社区双周报 | 4.8 深圳站 Meetup 火热报名中 | 2023.3.17-3.30

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...