{"id":25999621,"url":"https://github.com/gaowei-space/markdown-blog","last_synced_at":"2026-01-28T14:11:29.773Z","repository":{"id":41462492,"uuid":"494669204","full_name":"gaowei-space/markdown-blog","owner":"gaowei-space","description":"🍭 Markdown-Blog 是一款小而美的Markdown静态博客程序 | Markdown-Blog is incredibly fast, easy to use, and converts Markdown formatted text files into beautifully rendered HTML pages.","archived":false,"fork":false,"pushed_at":"2025-10-22T05:34:42.000Z","size":1354,"stargazers_count":470,"open_issues_count":23,"forks_count":72,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-10-22T07:24:19.343Z","etag":null,"topics":["blog","documentation-generator","golang","markdonw-blog","markdown"],"latest_commit_sha":null,"homepage":"https://blog.willgao.net/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gaowei-space.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-21T03:23:27.000Z","updated_at":"2025-10-22T05:34:47.000Z","dependencies_parsed_at":"2023-12-16T09:26:19.125Z","dependency_job_id":"fc150af2-8288-43e7-a539-d26afac7fcd8","html_url":"https://github.com/gaowei-space/markdown-blog","commit_stats":{"total_commits":119,"total_committers":4,"mean_commits":29.75,"dds":"0.050420168067226934","last_synced_commit":"5134fc8e0004092711475f191915db1b015bf43b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/gaowei-space/markdown-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaowei-space%2Fmarkdown-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaowei-space%2Fmarkdown-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaowei-space%2Fmarkdown-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaowei-space%2Fmarkdown-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gaowei-space","download_url":"https://codeload.github.com/gaowei-space/markdown-blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaowei-space%2Fmarkdown-blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28846058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T13:02:32.985Z","status":"ssl_error","status_checked_at":"2026-01-28T13:02:04.945Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","documentation-generator","golang","markdonw-blog","markdown"],"created_at":"2025-03-05T18:40:42.688Z","updated_at":"2026-01-28T14:11:29.768Z","avatar_url":"https://github.com/gaowei-space.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cimg src=\"https://user-images.githubusercontent.com/10205742/204092260-007e94c8-f4de-4fdc-94cd-7e1c7f945a91.png\"\u003e\n\n[![GitHub Checks State](https://img.shields.io/github/checks-status/gaowei-space/meituan-pub-union/main)](https://github.com/gaowei-space/markdown-blog/tree/main)\n[![GitHub Issues](https://img.shields.io/github/issues/gaowei-space/markdown-blog?color=yellow)](https://github.com/gaowei-space/markdown-blog/issues)\n[![StyleCI](https://github.styleci.io/repos/494669204/shield?branch=main\u0026style=flat)](https://github.styleci.io/repos/494669204?branch=main)\n[![GitHub Latest Release](https://img.shields.io/github/v/release/gaowei-space/markdown-blog)](https://github.com/gaowei-space/markdown-blog/releases)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/gaowei-space/markdown-blog?color=blueviolet)](https://github.com/gaowei-space/markdown-blog)\n[![Go Report](https://goreportcard.com/badge/github.com/gaowei-space/markdown-blog)](https://goreportcard.com/report/github.com/gaowei-space/markdown-blog)\n[![Docker Image Size](https://img.shields.io/docker/image-size/willgao/markdown-blog/latest?color=green)](https://hub.docker.com/repository/docker/willgao/markdown-blog)\n\n[中文](./README.md) | [English](./README_EN.md)\n\n[Markdown-Blog](https://github.com/gaowei-space/markdown-blog) 是一款小而美的**Markdown静态博客**程序\n\n\u003e 如果你和我一样，平时喜欢使用`markdown`文件来记录自己的工作与生活中的点滴，又希望把这些记录生成个人博客，那[Markdown-Blog](https://github.com/gaowei-space/markdown-blog)再适合不过了。它简洁、轻快，部署简单，可以把markdown文件快速变为个人博客，它不需要管理后台，无需进行文章的二次发布。\n\n## 案例\n\u003e [TechMan'Blog](https://blog.willgao.net)\n\n### Web端\nStyle | Preveiw\n--------|------\nDark | \u003cimg max-width=\"600\" alt=\"pc dark\" src=\"https://user-images.githubusercontent.com/10205742/200173152-ca9fa52c-3590-4528-910a-ad42cb278f06.png\"\u003e\nLight | \u003cimg max-width=\"600\" alt=\"pc white\" src=\"https://user-images.githubusercontent.com/10205742/200173231-90f02b72-9e12-4a8b-8dd2-91e1ec4b4ff8.png\"\u003e\n\n### 移动端\nDark    | Light\n--------|------\n\u003cimg max-width=\"400\" alt=\"mobile dark\" src=\"https://user-images.githubusercontent.com/10205742/201472561-7cd1222e-da0a-4d8c-be11-9f7e9d0851e0.png\"\u003e | \u003cimg max-width=\"400\" alt=\"mobile white\" src=\"https://user-images.githubusercontent.com/10205742/201472579-458b902a-dcae-4340-a305-3b54f1679aba.png\"\u003e\n\n## 支持平台\n\u003e Windows、Linux、Mac OS\n\n## 更新\n* `[v1.1.1]` 2023-05-20\n  - 支持设置备案号\n  - 修复缓存参数失效\n  - 支持读取本地文件，包括但不限于图片\n  - windows环境解析问题\n  - MD文件夹，仅读取markdown文件\n  - 其他已知问题修复\n\n* `[v1.1.0]` 2022-11-26\n  - 支持评论\n  - 参数设置，支持从本地文件读取（config.yml）\n  - 支持加载 favicon.ico\n  - 其他已知问题修复\n\n* `[v1.0.0]` 2022-11-20\n  - 支持 **Docker** 部署\n  - 打包静态文件，优化为单一程序，不再外挂 web 目录\n  - 其他已知问题修复\n\n* `[v0.1.1]` 2022-11-12\n  - 新增第三方分析统计配置，包括：百度、谷歌\n  - 支持配置页面缓存时间\n  - 移动端样式优化\n  - 其他已知问题修复\n\n* `[v0.0.5]` 2022-11-06\n  - 支持 TOC 语法，当文件内容首行使用 `[toc]` 会自动解析\n  - 新增明亮🔆主题，支持明暗切换\n  - 其他已知问题修复\n\n## 安装\n### 二进制\n1. 下载 [release](https://github.com/gaowei-space/markdown-blog/releases/)\n\n2. 解压\n```\ntar zxf markdown-blog-v0.0.5-linux-amd64.tar.gz\n```\n\n3. 创建 markdown 文件目录\n```\ncd markdown-blog-linux-amd64\nmkdir md\necho \"### Hello World\" \u003e ./md/主页.md\n```\n\n4. 运行\n```\n./markdown-blog web\n```\n\n5. 访问 http://127.0.0.1:5006，查看效果\n\n### Docker\n1. 下载\n```\ndocker pull willgao/markdown-blog:latest\n```\n\n2. 启动\n   - 线上环境\n    ```\n    docker run -dit --rm --name=markdown-blog \\\n    -p 5006:5006 \\\n    -v $(pwd)/md:/md -v $(pwd)/cache:/cache \\\n    willgao/markdown-blog:latest\n    ```\n\n   - 开发环境\n    ```\n    docker run -dit --rm --name=markdown-blog \\\n    -p 5006:5006 \\\n    -v $(pwd)/md:/md -v $(pwd)/cache:/cache \\\n    willgao/markdown-blog:latest \\\n    -e dev\n    ```\n\n3. 访问 http://127.0.0.1:5006，查看效果\n\n4. 其他用法\n```\n# 查看帮助\ndocker run -dit --rm --name=markdown-blog \\\n    -p 5006:5006 \\\n    -v $(pwd)/md:/md -v $(pwd)/cache:/cache \\\n    willgao/markdown-blog:latest -h\n\n\n# 设置 title\ndocker run -dit --rm --name=markdown-blog \\\n    -p 5006:5006 \\\n    -v $(pwd)/md:/md -v $(pwd)/cache:/cache \\\n    willgao/markdown-blog:latest \\\n    -t \"TechMan'Blog\"\n\n\n# 设置 谷歌统计\ndocker run -dit --rm --name=markdown-blog \\\n    -p 5006:5006 \\\n    -v $(pwd)/md:/md -v $(pwd)/cache:/cache \\\n    willgao/markdown-blog:latest \\\n    -t \"TechMan'Blog\" \\\n    --analyzer-google \"De44AJSLDdda\"\n```\n\n## 使用\n\n### 命令\n- markdown-blog\n    - -h 查看版本\n    - web 运行博客服务\n- markdown-blog web\n   - --config FILE                  加载配置文件, 默认为空\n   - --dir value, -d value          指定markdown文件夹，默认：./md/\n   - --title value, -t value        web服务标题，默认：\"Blog\"\n   - --port value, -p value         web服务端口，默认：5006\n   - --env value, -e value          运行环境, 可选：dev,test,prod，默认：\"prod\"\n   - --index value, -i value        设置默认首页的文件名称, 默认为空\n   - --cache value, -c value        设置页面缓存时间，单位分钟，默认3分钟\n   - --icp value                    ICP备案号, 默认为空\n   - --copyright value              版权年份，默认当前年份，如：2023，在配置了ICP后才有效\n   - --fdir value                   markdown目录下的静态资源目录名称，比如图片等，默认\"public\"\n   - --analyzer-baidu value         设置百度分析统计器\n   - --analyzer-google value        设置谷歌分析统计器\n   - --gitalk.client-id value       设置 Gitalk ClientId, 默认为空\n   - --gitalk.client-secret value   设置 Gitalk ClientSecret, 默认为空\n   - --gitalk.repo value            设置 Gitalk Repo, 默认为空\n   - --gitalk.owner value           设置 Gitalk Owner, 默认为空\n   - --gitalk.admin                 设置 Gitalk Admin, 默认为数组 [gitalk.owner]\n   - --gitalk.labels                设置 Gitalk Admin, 默认为数组 [\"gitalk\"]\n   - --ignore-file value            设置忽略文件, eg: demo.md\n   - --ignore-path value            设置忽略文件夹, eg: demo\n   - -h                             查看版本\n\n\n### 运行参数\n\u003e 支持从配置文件读取配置项，不过运行时指定参数优先于配置文件，配置内容参考 `config/config.yml.tmp`\n\n### 配置文件\n\n1. 新建配置文件 `config/config.yml`\n\n2. 启动时加载配置文件\n- 二进制文件\n```\n./markdown-blog web --config ./config/config.yml\n```\n\n- Docker\n```\ndocker run -dit --rm --name=markdown-blog \\\n-p 5006:5006 \\\n-v $(pwd)/md:/md -v $(pwd)/cache:/cache -v $(pwd)/config:/config \\\nwillgao/markdown-blog:latest --config ./config/config.yml\n```\n\n### 默认首页\n\u003e 如果启动时未指定 `index`，程序默认以导航中的第一个文件作为首页\n\n### 评论插件\n\u003e 评论插件使用的是 **Gitalk**，在使用前请阅读插件使用说明 [English](https://github.com/gitalk/gitalk/blob/master/readme.md) | [中文](https://github.com/gitalk/gitalk/blob/master/readme-cn.md)\n\n#### 新增 `gitalk` 配置项，启动时加载配置文件即可\n\n```yaml\ngitalk:\n    client-id: \"你的 github oauth app client-id，必填。 如: ad549a9d085d7f5736d3\"\n    client-secret: \"你的 github oauth app client-secret，必填。 如: 510d1a6bb875fd5031f0d613cd606b1d\"\n    repo: \"你准备用于评论的项目名称，必填。 如: blog-issue\"\n    owner: \"你的Github账号，必填。\"\n    admin:\n        - \"你的Github账号\"\n    labels:\n        - \"自定义issue标签，如: gitalk\"\n```\n\n### 分析统计器\n#### 百度\n##### 1. 访问 https://tongji.baidu.com 创建站点，获取官方代码中的参数 `0952befd5b7da358ad12fae3437515b1`\n```html\n\u003cscript\u003e\n\tvar _hmt = _hmt || [];\n\t(function() {\n\t  var hm = document.createElement(\"script\");\n\t  hm.src = \"https://hm.baidu.com/hm.js?0952befd5b7da358ad12fae3437515b1\";\n\t  var s = document.getElementsByTagName(\"script\")[0];\n\t  s.parentNode.insertBefore(hm, s);\n\t})();\n\u003c/script\u003e\n```\n##### 2. 配置\n```shell\n./markdown-blog web --analyzer-baidu 0952befd5b7da358ad12fae3437515b1\n```\n\n#### 谷歌\n##### 1. 访问 https://analytics.google.com 创建站点，获取官方代码中的参数 `G-MYSMYSMYS`\n```html\n\u003cscript async=\"\" src=\"https://www.googletagmanager.com/gtag/js?id=G-MYSMYSMYS\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n    window.dataLayer = window.dataLayer || [];\n    function gtag(){dataLayer.push(arguments);}\n    gtag('js', new Date());\n\n    gtag('config', 'G-MYSMYSMYS');\n\u003c/script\u003e\n```\n##### 2. 配置\n```shell\n./markdown-blog web --analyzer-google G-MYSMYSMYS\n```\n\n### 标题栏图标\n\u003e 默认读取与程序运行同一级目录的 **favicon.ico** 文件\n\n### 导航排序\n\u003e 博客导航默认按照 `字典` 排序，可以通过 `@` 前面的数字来自定义顺序\n\n#### 个人博客目录如下图\n\u003cimg width=\"390\" alt=\"image\" src=\"https://user-images.githubusercontent.com/10205742/176992908-affe01b6-0a50-488b-bb67-216a75f2a02c.png\"\u003e\n\n#### 博客导航展示如下图\n\u003cimg width=\"407\" alt=\"image\" src=\"https://user-images.githubusercontent.com/10205742/176992913-148a5ba5-bce0-42ed-b09a-9f914556723a.png\"\u003e\n\n### 部署\n\u003e Nginx 反向代理配置文件参考\n\n#### HTTP协议\n```\nserver {\n    listen      80;\n    listen [::]:80;\n    server_name yourhost.com;\n\n    location / {\n         proxy_pass  http://127.0.0.1:5006;\n         proxy_set_header   Host             $host;\n         proxy_set_header   X-Real-IP        $remote_addr;\n         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;\n     }\n}\n```\n#### HTTPS 协议（80端口自动跳转至443）\n```\nserver {\n    listen      80;\n    listen [::]:80;\n    server_name yourhost.com;\n\n    location / {\n        rewrite ^ https://$host$request_uri? permanent;\n    }\n}\n\nserver {\n    listen          443 ssl;\n    server_name     yourhost.com;\n    access_log      /var/log/nginx/markdown-blog.access.log main;\n\n\n    #证书文件名称\n    ssl_certificate /etc/nginx/certs/yourhost.com_bundle.crt;\n    #私钥文件名称\n    ssl_certificate_key /etc/nginx/certs/yourhost.com.key;\n    ssl_session_timeout 5m;\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;\n    ssl_prefer_server_ciphers on;\n\n    location / {\n         proxy_pass  http://127.0.0.1:5006;\n         proxy_set_header   Host             $host;\n         proxy_set_header   X-Real-IP        $remote_addr;\n         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;\n     }\n }\n ```\n\n## 升级\n1. 下载最新版 [release](https://github.com/gaowei-space/markdown-blog/releases/)\n\n2. 停止程序，解压替换 `markdown-blog`\n\n3. 重新启动程序\n\n## 开发\n1. 安装 `Golang` 开发环境\n\n2. Fork [源码](https://github.com/gaowei-space/gocron)\n\n3. 启动 web服务\n\n    运行之后访问地址 [http://localhost:5006](http://localhost:5006)，API请求会转发给 `markdown-blog` 程序\n    ```\n    make run\n    ```\n\n4. 编译\n\n    在 **bin** 目录生成当前系统的压缩包，如：markdown-blog-v1.1.0-darwin-amd64.tar\n    ```\n    make\n    ```\n\n5. 打包\n\n    在 **package** 目录生成当前系统的压缩包，如：markdown-blog-v1.1.0-darwin-amd64.tar\n    ```\n    make package\n    ```\n\n6. 生成 Windows、Linux、Mac 的压缩包\n\n    在 **package** 生成压缩包，如：markdown-blog-v1.1.0-darwin-amd64.tar markdown-blog-v1.1.0-linux-amd64.tar.gz markdown-blog-v1.1.0-windows-amd64.zip\n    ```\n    make package-all\n    ```\n\n## 意见反馈\n- 在项目中遇到问题可以在 [issues](https://github.com/gaowei-space/markdown-blog/issues) 中找找答案或者直接提问\n- 有任何建议和想法，可以在 [discussions](https://github.com/gaowei-space/markdown-blog/discussions) 中发起讨论\n\n\n## 赞助商\n- 感谢 [JetBrains](https://www.jetbrains.com/?from=gaowei-space/markdown-blog) 对本项目的支持！\n\n\u003ca href=\"https://www.jetbrains.com/?from=gaowei-space/markdown-blog\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png\" width=\"100\" height=\"100\"\u003e\n\u003c/a\u003e\n\n## 授权许可\n本项目采用 MIT 开源授权许可证，完整的授权说明已放置在 [LICENSE](https://github.com/gaowei-space/markdown-blog/blob/main/LICENSE) 文件中。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaowei-space%2Fmarkdown-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaowei-space%2Fmarkdown-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaowei-space%2Fmarkdown-blog/lists"}