居家用 Golang 撸了一款小而美的 [Markdown 静态博客程序]

2022-07-16 16:29:13 +08:00
 Phiiiil

🍭 Markdown-Blog

Markdown-Blog 是一款小而美的Markdown 静态博客程序

如果你和我一样,平时喜欢使用markdown文件来记录自己的工作与生活中的点滴,又希望把这些记录生成个人博客,那Markdown-Blog再适合不过了。它简洁、轻快,部署简单,可以把 markdown 文件快速变为个人博客,它不需要管理后台,无需进行文章的二次发布。

案例

TechMan'Blog

支持平台

Windows 、Linux 、Mac OS

安装

  1. 下载 release

  2. 解压

    tar zxf markdown-blog-v0.0.2-linux-arm64.tar.gz
    
  3. 创建 markdown 文件目录

    cd markdown-blog-linux-arm64
    mkdir md
    echo "### Hello World" > ./md/主页.md
    
  4. 运行

    ./markdown-blog web
    
  5. 访问 http://127.0.0.1:5006 ,查看效果

使用

命令

关于默认首页

如果启动是未指定index,程序默认以导航中的第一个文件作为首页

导航排序

博客导航默认按照字典排序,可以通过 @ 前面的数字来自定义顺序

个人博客目录如下图

博客导航展示如下图

部署

Nginx 反向代理配置文件参考

HTTP 协议

server {
    listen      80;
    listen [::]:80;
    server_name yourhost.com;

    location / {
         proxy_pass  http://127.0.0.1:5006;
         proxy_set_header   Host             $host;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
     }
}

HTTPS 协议( 80 端口自动跳转至 443 )

server {
    listen      80;
    listen [::]:80;
    server_name yourhost.com;

    location / {
        rewrite ^ https://$host$request_uri? permanent;
    }
}

server {
    listen          443 ssl;
    server_name     yourhost.com;
    access_log      /var/log/nginx/markdown-blog.access.log main;


    #证书文件名称
    ssl_certificate /etc/nginx/certs/yourhost.com_bundle.crt;
    #私钥文件名称
    ssl_certificate_key /etc/nginx/certs/yourhost.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
         proxy_pass  http://127.0.0.1:5006;
         proxy_set_header   Host             $host;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
     }
 }

开发

  1. 安装 Golang 开发环境
  2. Fork 源码
  3. 启动 web 服务

运行之后访问地址 http://localhost:5006 ,API 请求会转发给 markdown-blog make run

  1. 编译

    make
    
  2. 打包

在 markdown-blog-package 生成当前系统的压缩包 markdown-blog-v0.0.2-darwin-arm64.tar make package

  1. 生成 Windows 、Linux 、Mac 的压缩包

在 markdown-blog-package 生成压缩包 markdown-blog-v0.0.2-darwin-arm64.tar markdown-blog-v0.0.2-linux-arm64.tar.gz markdown-blog-v0.0.2-windows-arm64.zip make package-all

授权许可

本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 LICENSE 文件中。

2841 次点击
所在节点    程序员
11 条回复
ltkun
2022-07-16 16:45:00 +08:00
已 star 不错 小而美
Phiiiil
2022-07-16 16:49:38 +08:00
@ltkun 🤙 Thanks
A01514035
2022-07-16 17:03:04 +08:00
路径拼接有点问题
Phiiiil
2022-07-16 17:09:08 +08:00
@A01514035 got ,我瞅瞅
ltkun
2022-07-16 17:11:59 +08:00
手机浏览器 隐藏侧边栏功能失效 还有火狐适配的不好好像
Chell
2022-07-16 17:15:04 +08:00
前段时间做了个类似的,不过是前端实现 https://github.com/imchell/nimblog
Phiiiil
2022-07-16 17:17:56 +08:00
@ltkun 哈哈,已知问题,前端小伙伴已经在路上了,下周会提 PR 😅
Phiiiil
2022-07-16 17:28:40 +08:00
@A01514035 确实有问题,这两天看看修复下
Phiiiil
2022-07-16 17:44:42 +08:00
@A01514035 定位了 -d 指定目录时有问题,在项目根目录使用 md 文件夹作为 markdown 文件的目录就正常了。
Phiiiil
2022-07-17 22:15:34 +08:00
Phiiiil
2022-07-24 19:35:31 +08:00
@ltkun 新版本已适配移动端和火狐: https://github.com/gaowei-space/markdown-blog/releases 🤘

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX