【.NET项目分享】免费开源的静态博客生成工具EasyBlog,5分钟拥有自己的博客
EasyBlog 说明
本博客系统通过构建工具生成纯静态的博客网站,借助GitHub Pages,你可以在5分钟内免费拥有个人博客。 它具有以下特点
- 生成纯静态网站,访问速度极快
- 使用markdown格式来编写博客内容
- 基于git代码管理来存储你的博客
- 使用CI工具来自动化部署你的博客站点
效果展示:NilTor's Blog
️功能
- 主页博客列表,支持搜索和分类和存档筛选
- 自定义网站名称和说明
- 随系统变化的Light和Dark主题
- 移动端的自适应显示
- TOC支持
- mermaid,nomnoml,Math的渲染支持
- 代码高亮及复制支持
使用Github Page部署
Fork并配置GitHub Page
- 点击
Fork按钮,并创建自己的仓库。 并取消选择 Copy the main branch only。 - 进入自己的GitHub仓库,点击
Actions,启用workflows。 - 点击
Settings,找到Pages配置,在Build and deployment 选项中选择GitHub Actions.
配置
你可以通过根目录下的webinfo.json,对博客基础信息进行配置,如下所示:
{
"Name": "Niltor Blog", // 博客名称,显示在主页顶部导航
"Description": " for freedom",// 说明,显示在主页顶部中间
"AuthorName": "Ater", // 作者名称,显示在博客列表
"BaseHref": "/blazor-blog/", // 子目录
"Domain": "https://aterdev.github.io" // 域名,生成sitemap使用,不生成则留空
}
当你使用Github Page或使用IIS子应用部署时,需要调整BaseHref。通常是你的项目名称或子目录名。
[!IMPORTANT]
注意,BaseHref尾部的/是必需的。如果你配置了自定义域名,并且没有使用子目录,请将BaseHref设置为
/。
修改后提交代码,GitHub会触发Action自动构建。
编写博客
请使用任何你习惯的markdown编辑器编写博客,唯一的要求是将博客内容放到Content目录下。你可以在该目录下创建多级目录。
发布博客
你只需要正常提交代码即可,github action会自动构建并最终发布你的博客,发布成功后可打开您的 GitHub Page 查看。
部署到其他服务
如果你不使用Github Page,那么你也可以轻松的部署到其他服务。核心的步骤只需要两步。
生成静态内容
BuildSite项目是用来将markdown转换成html的,请在根目录执行:
dotnet run --project .\src\BuildSite\ .\Content .\WebApp Production
其中.\Content是你的markdown存储目录,.\WebApp是生成的静态站点目录。
上传到你的服务器
将WebApp中的所有文件复制到你的服务器即可。
[!TIP]
根目录下的publishToLocal.ps1脚本可以自动完成构建和生成的操作,最终内容将在根目录下WebApp目录中。如果你使用自动化部署,可参考.github/workflows中的脚本。
更新
上游代码的更新以dev分支为准,你可以将dev分支合并到你的dev分支,以获取最新的代码更新。
main作为默认的构建发布的分支,请不要合并到你的main分支。
建议您使用dev或其他自己的分支来编写博客和自定义内容,然后再合并到main分支以触发自动构建。
二次开发
fork之后,你将拥有所有的自定义权限,因为所有的源代码都已经在你自己的仓库中。
核心项目为BuildSite,用来生成静态文件,其中包括将markdown文件转换成html文件。
[!NOTE]
建议创建自己的分支来自定义开发内容,方便后续的合并。
开发环境
BuildSite项目是一个.NET项目,你需要安装.NET SDK 8.0。
此外,你可以安装(可选)
- http-server,用来启动本地静态内容,以便调试。
- tailwindcss,用来生成css样式内容。
- typescript,以便使用
tsc命令。
运行项目
- 预览项目
- 打开终端,在
WebApp目录下执行http-server,然后在浏览器中打开http://127.0.0.1:8080。
- 打开终端,在
- 生成静态内容。
- 在根目录下执行
dotnet run --project ./src/BuildSite ./Content ./WebApp,以生成最新的静态内容。 - 或者直接运行根目录下的
build.ps1脚本。
- 在根目录下执行
- 刷新浏览器,可看到最新生成的内容。
[!TIP]
如果你使用Tailwindcss,可在WebApp下执行npx tailwindcss -o ./css/app.css --watch。如果你使用
Typescript,可在WebApp下执行tsc -w。
自定义主页内容
主页内容模板位于src\BuildSite\template\index.html.tpl,其中包括以下变量:
| 模板变量 | 说明 |
|---|---|
| @ | 基础路径 |
| @ | 博客名称 |
| @ | 描述 |
| @ | 博客列表 |
| @ | 侧边栏内容:分类和存档 |
你可以按照自己的想法修改主页的布局和样式。
[!NOTE]
请注意标签中的id属性,js脚本将依赖于这些id标识,如果你修改了这些标识,同时要修改js脚本。
主页内容包括博客的搜索和分类筛选功能,其功能代码在WebApp\js\index.js中。
关于博客列表和分类列表的自定义,你可以参考BuildSite项目中HtmlBuilder.cs文件中的GenBlogListHtml和GenSiderBar方法。
后续我们会提供更灵活的自定义方式。
自定义博客展示页
博客页内容模板位于src\BuildSite\template\blog.html.tpl,其中包括以下变量:
| 模板变量 | 说明 |
|---|---|
| @ | 基础路径 |
| @ | 页面标题 |
| @ | 博客内容 |
| @ | 二级标题TOC |
关于博客展示页的内容,你可以通过WebApp/css/markdown.css来修改样式,以及WebApp/js/markdown.js来定义逻辑。
自定义代码高亮
本项目使用ColorCode来格式化markdown中的代码内容,ColorCode使用正则来匹配代码内容。如果你需要对代码高亮进行定义,你需要:
- 添加或修改正则规则,你将在
ColorCode.Core/Compilation/Languages目录下找到相应的语言定义,如果不存在,你可以添加新的语言支持。 - 如果是新添加的语言,需要在
ColorCode.Core/Languages.cs中加载该语言。
[!IMPORTANT]
如果你修改了BuildSite项目上中的代码,需要重新生成静态网站,才能看到最新效果。
【.NET项目分享】免费开源的静态博客生成工具EasyBlog,5分钟拥有自己的博客的更多相关文章
- 微软开源全新的文档生成工具DocFX
微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...
- 分享一个开源的windows安卓投屏工具,scrcpy
看到scrcpy可能很多人会以为是大名鼎鼎的Scrcpy(一个十分强大的多线路爬虫框架),sorry今天分享的主角不是他,而是他: github地址:https://github.com/Genymo ...
- 永久免费开源的卫星地形图地图下载工具更新Somap2.13版本功能更新 更新时间2019年2月22日13:59:05
一.下载地址 最新版本下载地址:SoMap2.13点击此处下载 二.系统自主开发特色功能展示 1.上百种地图随意下载 高德.百度.arcgis.谷歌.bing.海图.腾讯.Openstreet.天地 ...
- 开源:C# 代码自动生成工具,支持站点前后台
前言 写这个项目有很长一段时间了,期间也修修改改,写到最后,自己也没咋用(研究方向变化了). 正文 具体项目开源了:https://github.com/supperlitt/WebAutoCodeO ...
- 免费开源的android项目分享
免费开源的android项目分享:http://yun.baidu.com/share/link?shareid=2945649048&uk=3910054188
- 开源项目福利-github开源项目免费使用Azure PipeLine
微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看. 今天 ...
- 讲解开源项目:5分钟搭建私人Java博客系统
本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的< ...
- 分享一个开源免费、目前最好的API接口管理平台----eoLinker
一.概况 eoLinker 是目前业内领先.国内最大的在线 API 接口管理平台,提供自动生成 API 文档.API 自动化测试.Mock 测试.团队协作等功能,旨在解决由于前后端分离导致的开发效率低 ...
- 我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付
传统友商ERP的交付过程 一.先初步需求调研,后选型功能模块 传统友商ERP第一件事情先对客户方进行初步的调研,客户方无论说什么,友商听过算过,只关心你人数多少,有哪些人涉及到哪些模块,接着对模块进行 ...
- 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享
起源 近年来随着国内的互联网经济的快速腾飞,诞生了很多开源软件创造的市场价值以及企业价值神话,特别是对于企业ERP领域,一直以来都是高昂的国内外产品充实,国内的中小成长型企业越来越需要一套好看又能打, ...
随机推荐
- OpenHarmony技术日圆满举行丨3.1 Release版本重磅发布,生态落地初具规模
4 月 25 日,"共建新技术,开拓新领域"OpenAtom OpenHarmony(以下简称"OpenHarmony")技术日在深圳顺利召开.活动现场,Ope ...
- OpenHarmony Liteos_A内核之iperf3移植心得
一.iperf3工作原理 iperf3主要的功能是测试基于特定路径的带宽,在客户端和服务器端建立连接(三次握手)后,客户端发送一定大小的数据报并记下发送的时间,或者客户端在一定的时间内发送数据并记下发 ...
- C语言 05 变量与常量
变量 变量就像在数学中学习的 x,y 一样,可以直接声明一个变量,并利用这些变量进行基本的运算,声明变量的格式为: 数据类型 变量名称 = 初始值;(其中初始值可以不用在定义变量时设定) = 是赋值操 ...
- jsPDF 添加 中文字体 分页打印 移除空白页
jsPDF2.5版本 默认不支持utf-8的字体 具体看官方的说明,默认是不支持中文的.要使用中文需要自己添加字体. 1 将字体转换为base64编码 然后引入.也可以直接引入二进制文件,但没试过这个 ...
- 基于OT与CRDT协同算法的文档划词评论能力实现
基于OT与CRDT协同算法的文档划词评论能力实现 当我们实现在线文档平台时,划词评论的功能是非常必要的,特别是在重文档管理流程的在线文档产品中,文档反馈是非常重要的一环,这样可以帮助文档维护者提高文档 ...
- 重新点亮shell————函数[七]
前言 简单整理一下函数. 正文 自定义函数: function fname(){ 命令 } 函数的执行: fname 函数作用范围的变量: local 变量名 函数的参数 $1 $2 $3 .... ...
- docker 应用篇————es[八]
前言 简单介绍一下es镜像. 正文 首先安装一下: elasticSearch. 启动一下: 然后就可以访问了. 使用一下docker stats 然后你就发现了这个docker 容器启动的时候要1. ...
- SQL SERVER 数据库性能优化与管理从零基础到走两步系列(一)——性能计数器
前辈大佬资料: 使用性能监视器找出SQLServer硬件瓶颈 在网络上苦苦流浪了近十几个小时,从百度到谷歌,从CSDN到博客园,从知乎到微信读书,看了无数本滥竽充数的书,读了无数篇夹生的技术文章,快下 ...
- 《Effective C#》系列之(三)——充分利用C#语言的新功能
在<Effective C#>这本书中,利用C#语言的新功能是其中一章的内容.以下是该章节的一些核心建议,以及使用C#代码示例说明: 利用自动属性:在C# 3.0中引入了自动属性,可以大大 ...
- seaJS简介
所有版本的 zip 包请在这里下载:seajs/tags 解压后,目录说明如下: dist -- sea.js 等压缩好的文件,直接可用 docs -- 使用文档 lib -- 给 Node.js 用 ...