Skip to content

wenhuilan/NexusMarkdown

Repository files navigation

NexusMarkdown - 自研现代化 Markdown 博客平台

🚀 NexusMarkdown 是一个完全自主研发的现代化 Markdown 博客平台,基于 Next.js 15 + React 19 + TypeScript 构建,专为技术博主和内容创作者设计。

✨ 项目特色

NexusMarkdown 是一个从零开始自主研发的博客平台,每一个功能模块都经过精心设计和优化。它不仅仅是一个博客平台,更是一个技术展示的舞台,体现了现代前端开发的最佳实践。

🎯 核心优势

  • 🔬 完全自研:从架构设计到功能实现,100% 自主研发
  • ⚡ 极速开发:基于 Turbopack 构建,比传统打包工具快 700 倍
  • 🎨 自研主题系统:10 种精心设计的主题色方案,支持深度自定义
  • 📝 自研渲染引擎:基于 React Markdown 生态的深度定制渲染系统
  • 🌐 自研国际化:原生支持中文 URL、中文内容、Unicode 字符
  • 📱 自研响应式:完美适配桌面端、平板和移动设备
  • 🔧 自研配置系统:模块化设置系统,即改即用
  • 🚀 自研部署方案:支持 Vercel、GitHub Pages 等多种部署方式

🛠️ 自研技术特色

🔬 自主研发的核心模块

1. 自研 Markdown 渲染引擎

  • 深度定制:基于 React Markdown 生态的完全自定义渲染系统
  • 插件生态:集成 Remark/Rehype 插件生态,支持代码高亮、数学公式、Emoji 等
  • 性能优化:Lazy 加载和骨架屏,提供流畅的阅读体验
  • 扩展性强:支持自定义组件和渲染规则

2. 自研主题系统

  • 10 种预设主题:精心设计的配色方案,涵盖多种风格
  • 深度自定义:支持自定义主色调、辅助色、强调色
  • 智能适配:自动适配深色/浅色模式
  • 实时预览:主题切换即时生效,无需重启

3. 自研国际化解决方案

  • 中文 URL 支持:原生支持中文文件名和路径编码
  • Unicode 字符处理:完整的 Unicode 字符支持
  • 多语言内容:支持中英文混合内容展示
  • SEO 优化:搜索引擎友好的 URL 结构

4. 自研配置管理系统

  • 模块化设计:每个功能模块独立配置
  • 即改即用:配置修改即时生效
  • 类型安全:完整的 TypeScript 类型定义
  • 开发友好:详细的注释和配置说明

5. 自研部署解决方案

  • 多平台支持:Vercel、GitHub Pages、Netlify 等
  • 自动化部署:GitHub Actions 自动化构建和部署
  • 静态导出:零服务器成本的静态网站
  • CDN 加速:全球内容分发网络支持

🎯 技术架构亮点

┌─────────────────────────────────────────────────────────────┐
│                    NexusMarkdown 架构                        │
├─────────────────────────────────────────────────────────────┤
│  🎨 自研主题系统    │  📝 自研渲染引擎    │  🌐 自研国际化    │
├─────────────────────────────────────────────────────────────┤
│  🔧 自研配置系统    │  📱 自研响应式     │  🚀 自研部署方案  │
├─────────────────────────────────────────────────────────────┤
│              Next.js 15 + React 19 + TypeScript             │
├─────────────────────────────────────────────────────────────┤
│                    Turbopack + Tailwind CSS                 │
└─────────────────────────────────────────────────────────────┘

📋 功能特性

  • 自研 Markdown 渲染:支持代码高亮、数学公式、表格、Emoji 等
  • 自研主题系统:10 种预设主题 + 深度自定义
  • 自研国际化:原生支持中文 URL 和 Unicode 字符
  • 自研响应式设计:完美适配所有设备尺寸
  • 自研配置管理:模块化设置系统,即改即用
  • 自研部署方案:一键部署到多个平台
  • 分类标签系统:灵活的文章分类和标签管理
  • 深色模式支持:自动适配系统主题偏好

如何启动本地调试服务器

node版本: >= 22

  1. git clone 到本地
  2. 安装依赖
npm install
# or
yarn install
# or
pnpm install
  1. 运行项目
npm run dev
# or
yarn dev
# or
pnpm dev

博客存放位置

博客存放在src/content/blogs文件夹中,需要遵循一定的规范 markdown文件元数据规范如下

---
title: 使用Reference对象数组的示例文章 //名称,不填写则为文件名
date: 2023-11-20 //时间
category: 技术 //分类
tags: [React, Next.js, TypeScript] //标签。目前还不支持通过标签筛选
readTime: 5 //阅读时间
excerpt: 这是一篇展示如何使用Reference对象数组格式的示例文章 //摘要,显示在卡片上
reference: [ //博文参考来源,可不配置
  { description: "Next.js官方文档", link: "https://nextjs.org/docs" },
  { description: "React官方文档", link: "https://reactjs.org/docs/getting-started.html" },
  { description: "TypeScript官方文档", link: "https://www.typescriptlang.org/docs/" },
  { description: "Tailwind CSS文档", link: "https://tailwindcss.com/docs" },
  { description: "MDN Web文档", link: "https://developer.mozilla.org/zh-CN/" }
]
---
  • markdown文件内部图片如果存放在本地,需要放在public文件夹下,然后通过md语法引用路径
  • 实例:

配置

平台配置存放在setting文件夹中,即改即用

AboutSetting.ts //关于页面的配置
blogSetting.ts //博客页面的配置
FooterSetting //网站页脚配置
HomeSetting //主页配置
NavigationSetting //导航栏配置
WebSetting.ts //网站配置

每一个配置文件都为您写好了注释

主题色配置

项目内置了 10 种精心设计的主题色方案,支持自定义配置:

预设主题blue(蓝色)、purple(紫色)、green(绿色)、orange(橙色)、red(红色)、cyan(青色)、pink(粉色)、gold(金色)、indigo(靛蓝)、emerald(祖母绿)

快速切换:在 src/setting/WebSetting.ts 中修改:

// 切换到绿色主题
export const themeColors = themePresets.green;

// 自定义主题色
export const themeColors = {
  primary: "#your-primary-color",
  secondary: "#your-secondary-color", 
  accent: "#your-accent-color",
};

颜色用途

  • primary:主要按钮、重要文字强调
  • secondary:次要按钮、标题渐变
  • accent:装饰元素、动画高亮

所有主题色都支持自动深色模式适配和平滑过渡效果。

如何部署

  • 支持一键部署到 Vercel
  • 支持一键部署到 GitHub Pages
    1. Fork本仓库
    2. 在Setting里面打开Page,并且选择Github Action 方式配置
    3. 打开 Action ,选择 Deploy to Github Page, 点击 Run WorkFlow
    4. 等待部署完毕,点击Github域名进入您的网站

更新日志

V 1.0.0 2025.6.29

  • 第一个版本

V 1.1.0 2025.6.30

  1. 支持文件名为title
  2. 修复代码高亮问题
  3. 增加Reference和版权声明
  4. 性能优化
  5. 图云页面支持自定义图片
  6. markdown元数据兼容性提醒

V 1.2.0 2025.6.30

  1. 重构博客文件结构支持深层嵌套和灵活配置
  2. 新增文章大纲导航组件
  3. 优化图片处理逻辑支持相对路径
  4. 改进设置文件的注释和配置项

V 1.2.1 2025.7.1

  1. 重构博客图片处理逻辑,使用公共目录替代API路由
  2. 修复中文URL编码问题,确保正确处理Unicode字符路径,支持中文博客名
  3. 移除未使用的性能监控组件代码
  4. 更新next配置以支持静态导出和Unicode路由

V 1.2.2 2025.7.1

  1. 修复了静态页面样式丢失的bug
  2. 现在已经支持GitHub Action 一键部署到Github Page!

V 1.2.3 2025.7.1

  1. 修复了Github Action部署时没有仓库名时候的bug

V 1.2.4 2025.7.4

  1. 修复了非Github根域名部署的情况下头像丢失的问题
  2. 添加basePath支持以适配GitHub Pages部署
  3. 添加环境变量NEXT_PUBLIC_BASE_PATH配置,用于处理GitHub Pages部署时的路径问题
  4. 修改头像和图片组件以自动处理basePath
  5. 优化CI工作流触发条件

V 1.3.0 2025.7.13

  1. 添加了主题色和背景图的功能!现在你可以在 WebSetting 里配置你喜欢的主题色,也可以 在WebSetting 文件里配置你喜欢的背景图!
  2. 修复了博客文章里列表和行内代码不能换行的问题

V 1.3.1 2025.7.15

  1. 更新了主题色配置
  2. 优化了暗黑模式下的页面显示

V 1.3.2 2025.7.16

  1. 修复了主题色切换后闪烁的问题
  2. 增加了卡片的毛玻璃特效,在有背景的情况下更美观
  3. 关于我页面的动画字体提供了彩虹渐变和主题色渐变两种选项
  4. 全面优化深色模式和浅色模式的特效
  5. 修复了Reference不受主题色约束的问题
  6. 暗色模式下背景增加了暗色遮罩

V 1.3.3 2025.7.17

  1. 优化了setting的提示词,现在更直观更易懂
  2. 精简代码,保持依赖的整洁
  3. 在关于我页面的自我介绍添加了第三段
  4. 修复 Github Action 重复构建问题

🏆 自研优势总结

🎯 为什么选择 NexusMarkdown?

NexusMarkdown 作为完全自主研发的博客平台,具有以下独特优势:

🔬 技术深度

  • 从零开始:每一个功能模块都是自主研发,深度可控
  • 技术栈先进:采用最新的 Next.js 15 + React 19 + TypeScript
  • 性能优化:基于 Turbopack 的极速开发体验
  • 架构清晰:模块化设计,易于维护和扩展

🎨 设计美学

  • 视觉统一:自研主题系统确保视觉风格一致性
  • 用户体验:精心设计的交互和动画效果
  • 响应式设计:完美适配各种设备尺寸
  • 深色模式:智能主题切换,保护用户眼睛

📝 内容创作

  • Markdown 生态:完整的 Markdown 功能支持
  • 代码展示:专业的代码高亮和语法支持
  • 数学公式:LaTeX 数学公式渲染
  • 国际化:原生中文支持和 Unicode 字符

🚀 部署便利

  • 一键部署:支持多种云平台部署
  • 零成本:静态网站,无需服务器费用
  • 自动化:GitHub Actions 自动化构建部署
  • 全球加速:CDN 内容分发网络

🌟 自研价值

NexusMarkdown 不仅仅是一个博客平台,更是现代前端技术的完美展示。它体现了:

  • 技术创新:采用最新技术栈,引领开发趋势
  • 用户体验:以用户为中心的设计理念
  • 代码质量:TypeScript 类型安全和代码规范
  • 开源精神:完全开源,促进技术交流

感谢您的使用,在使用过程中遇到任何问题可以提出Issues或联系开发者,助力平台变得更好

联系方式

About

NexusMarkdown是一个完全自主研发的现代化 Markdown 博客平台,基于 Next.js 15 + React 19 + TypeScript 构建,每一个功能模块都经过精心设计和优化。它不仅仅是一个博客平台,更是一个技术展示的舞台,体现了现代前端开发的最佳实践☘️

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors