介绍 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. ASP.NET Core – Dependency Injection

    前言 很久很久以前就写过了 Asp.net core 学习笔记 ( DI 依赖注入 ), 这篇只是整理一下而已. 参考 Using dependency injection in a .Net Cor ...

  2. 打开word报错“内存或磁盘空间不足,无法显示所请求的字体”

    起因: 有一个部门同学在打开服务器上的某个word文档时报错,但是打开本地word文档正常,经过网上查询资料后发现有可能是以下几种原因造成. 可能造成此报错的原因: 1. 文档被锁定 解决办法: 鼠标 ...

  3. 构建数据大屏,塑造IT运维可视化核心竞争力

    随着大数据.云计算等新兴技术的发展与运用,在金融.交通.教育.政府等行业的信息化在飞速发展.与此同时,各行业的IT建设与维护管理成本也在与日俱增,大量的运维工作下产生庞大的运维数据,如何进行运维数据可 ...

  4. 29. GIL全局解释器锁、信号量、线程池进程池

    1. GIL全局解释器锁 1.1 概念 '''In CPython, the global interpreter lock, or GIL, is a mutex that prevents mul ...

  5. 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年5月刊

    本文为大家整理了墨天轮数据社区2023年5月发布的优质技术文章,主题涵盖Oracle.MySQL.PostgreSQL等数据库的安装配置.故障处理.性能优化等日常实践操作,以及常用脚本.注意事项等总结 ...

  6. 38. data为什么是一个函数

    vue中的data为什么是返回对象的函数,而不是直接使用对象形式 : 我们复用组件的时候,要求每一份data数据之间是独立的,不能互相影响,如果写成对象的形式所有的组件使用一份data数据 ,如果使用 ...

  7. AtCoder Beginner Contest 371(ABCDE)

    A 个人直接硬解,讨论情况也并不复杂 代码: #include<bits/stdc++.h> #define int long long using namespace std; cons ...

  8. Java 当中使用 “google.zxing ”开源项目 和 “github 的 qrcode-plugin” 开源项目 生成二维码

    Java 当中使用 "google.zxing "开源项目 和 "github 的 qrcode-plugin" 开源项目 生成二维码 @ 目录 Java 当中 ...

  9. OOP七大原则

    OOP七大原则 开闭原则 抽象约束.封装变化.对扩展开放,对修改关闭. 通过"抽象约束.封装变化"来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的 ...

  10. OGRE 渲染引擎 Windows 平台构建及编译

    0 OGRE 机器人领域常见的Rviz和Gazebo可视化的渲染后端. 1 无数的坑 这东西真的可恶,官方教程文档以及项目构建的方式是真的繁琐,在Windows上. CMake 的构建必须要使用 CM ...