V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Phiiiil
V2EX  ›  程序员

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

  •  
  •   Phiiiil ·
    gaowei-space · 2022-07-16 16:29:13 +08:00 · 2656 次点击
    这是一个创建于 647 天前的主题,其中的信息可能已经有所发展或是发生改变。

    🍭 Markdown-Blog

    GitHub branch checks state GitHub issues Latest Release GitHub license

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

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

    案例

    TechMan'Blog image

    支持平台

    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 ,查看效果

    使用

    命令

    • markdown-blog
      • -h 查看版本
      • web 运行博客服务
    • markdown-blog web
      • --dir value, -d value 指定 markdown 文件夹,默认:./md/
      • --title value, -t value web 服务标题,默认:"Blog"
      • --port value, -p value web 服务端口,默认:5006
      • --env value, -e value 运行环境, 可选:dev,test,prod ,默认:"prod"
      • --index value, -i value 设置默认首页的文件名称, 默认为空
      • -h 查看版本

    关于默认首页

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

    导航排序

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

    个人博客目录如下图

    image

    博客导航展示如下图

    image

    部署

    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 文件中。

    11 条回复    2022-07-24 19:35:31 +08:00
    ltkun
        1
    ltkun  
       2022-07-16 16:45:00 +08:00 via Android
    已 star 不错 小而美
    Phiiiil
        2
    Phiiiil  
    OP
       2022-07-16 16:49:38 +08:00
    @ltkun 🤙 Thanks
    A01514035
        3
    A01514035  
       2022-07-16 17:03:04 +08:00
    路径拼接有点问题
    Phiiiil
        4
    Phiiiil  
    OP
       2022-07-16 17:09:08 +08:00
    @A01514035 got ,我瞅瞅
    ltkun
        5
    ltkun  
       2022-07-16 17:11:59 +08:00 via Android
    手机浏览器 隐藏侧边栏功能失效 还有火狐适配的不好好像
    Chell
        6
    Chell  
       2022-07-16 17:15:04 +08:00
    前段时间做了个类似的,不过是前端实现 https://github.com/imchell/nimblog
    Phiiiil
        7
    Phiiiil  
    OP
       2022-07-16 17:17:56 +08:00
    @ltkun 哈哈,已知问题,前端小伙伴已经在路上了,下周会提 PR 😅
    Phiiiil
        8
    Phiiiil  
    OP
       2022-07-16 17:28:40 +08:00
    @A01514035 确实有问题,这两天看看修复下
    Phiiiil
        9
    Phiiiil  
    OP
       2022-07-16 17:44:42 +08:00
    @A01514035 定位了 -d 指定目录时有问题,在项目根目录使用 md 文件夹作为 markdown 文件的目录就正常了。
    Phiiiil
        10
    Phiiiil  
    OP
       2022-07-17 22:15:34 +08:00
    Phiiiil
        11
    Phiiiil  
    OP
       2022-07-24 19:35:31 +08:00
    @ltkun 新版本已适配移动端和火狐: https://github.com/gaowei-space/markdown-blog/releases 🤘
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1164 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 22:55 · PVG 06:55 · LAX 15:55 · JFK 18:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.