blogit

package module
v2.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 15, 2024 License: MIT Imports: 4 Imported by: 0

README

blogit

Test Go version PkgGoDev codecov License

简单方便的静态博客生成工具

  • 没有分类信息;
  • 也不区分页面和文章;
  • 仅通过标签对文章进行归类;
  • 可生成 RSS、Atom 和 Sitemap 等数据;
  • 存档页按可以按月和年进行分类;
  • 采用 Go 模板作为主题模板语法;
  • 可在主题中指定代码高亮;
  • 生成静态 TOC 数据;

安装

macOS 和 linux 用户可以直接使用 brew 进行安装:

brew tap caixw/brew
brew install caixw/brew/blogit

常用平台也可以从 https://github.com/caixw/blogit/releases 下载,并将二进制文件放入 PATH 即可。

如果不存在你当前平台的二进制,可以自己编译:

git clone https://github.com/caixw/blogit.git
cd blogit
./build.sh
docker

目前 docker 同时托管于 docker.ioghcr.io,可通过以下方式获取相应在的容器:

docker pull docker.io/caixw/blogit:latest

docker pull ghcr.io/caixw/blogit:latest

使用

blogit init dir 可以直接生成一个完整的博客系统。具体使用可参考 USAGE

GitHub action

如果你的网站部署在 github 的话,可以直接使用 action 实现全程自动化编译上传代码。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: checkout source
      uses: actions/checkout@v2
      with:
        repository: owner/src
        path: src/

    - name: checkout dest
      uses: actions/checkout@v2
      with:
        repository: owner/dest
        path: dest/
        persist-credentials: false # github-push-action@master 需要这个
        fetch-depth: 0 # # github-push-action@master 需要这个

    - name: build static site
      uses: caixw/blogit@master
      with:
        src: src
        dest: dest

    - name: commit files
      uses: EndBug/add-and-commit@v7
      with:
        author_name: github-actions
        author_email: 41898282+github-actions[bot]@users.noreply.github.com
        cwd: dest/
        push: false
        message: 'docs: add changes'

    - name: push changes
      uses: ad-m/github-push-action@master
      with:
        directory: dest/
        github_token: ${{ secrets.GITHUB_TOKEN }} # 确保有相应的权限
        branch: ${{ github.ref }}

secrets.GITHUB_TOKEN 关联的 PAT 需要有写入 owner/dest 指向的仓库的权限。

参数
名称 类型 必填 默认值 描述
src string true src 源文件的路径
dest string true dest 编译后的路径

版权

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

Documentation

Overview

Package blogit 静态博客生成工具

本地化

在 internal/locale 提供了本地化的翻译内容,可以通过 github.com/issue9/localeutil 加载相应的翻译内容。

返回的错误信息,也提供了本地化支持,只要判断该错误对象是否实现了 localeutil.LocaleStringer 接口即可,如果实现了,调用 LocaleString() 方法会输出本地的错误信息。

b := catalog.NewBuilder()
localeutil.LoadMessageFromFSGlob(b, locale.Locale(), "*.yaml", yaml.Unmarshal)
p := message.NewPrinter(language.Chinese, message.Catalog(b))

err := Build(...)
if ls, ok := err.(localeutil.LocaleStringer); ok {
    println(ls.LocaleString(p)) // 输出本地化内容
} else {
    println(err.Error())
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Build

func Build(src fs.FS, dest WritableFS, info *log.Logger) error

Build 编译并输出内容

src 表示源码目录,直接读该文件系统根目录下的内容; dest 表示写入的文件系统,默认提供了 DirFS 和 MemoryFS; info 输出编译的进度信息,可以为空;

func Version

func Version(full bool) string

Version 返回版本号

full 表示是否返回完整版本号,包含了编译日期,提交的 hash 等额外的值。

Types

type Builder

type Builder = builder.Builder

func NewBuilder deprecated

func NewBuilder(src fs.FS, dest WritableFS) *Builder

NewBuilder 声明 Builder

Deprecated: 请直接使用 &Builder{} 声明变量

type WritableFS

type WritableFS = builder.WritableFS

func DirFS

func DirFS(dir string) WritableFS

DirFS 以普通目录结构作为保存对象的文件系统

func MemoryFS

func MemoryFS() WritableFS

MemoryFS 以内在作为保存实体的文件系统

Directories

Path Synopsis
Package builder 提供编译成 HTML 的相关功能
Package builder 提供编译成 HTML 的相关功能
cmd
blogit
静态博客网站生成工具
静态博客网站生成工具
internal
cmd
Package cmd 提供命令行相关的功能
Package cmd 提供命令行相关的功能
cmd/console
Package console 输出到控制台的日志
Package console 输出到控制台的日志
cmd/create
Package create 创建文章的相关子命令
Package create 创建文章的相关子命令
cmd/preview
Package preview 提供 preview 子命令
Package preview 提供 preview 子命令
cmd/serve
Package serve 提供 serve 子命令
Package serve 提供 serve 子命令
data
Package data 对加载的数据进行二次加工
Package data 对加载的数据进行二次加工
filesystem
Package filesystem 提供文件系统的相关函数
Package filesystem 提供文件系统的相关函数
loader
Package loader 加载数据内容
Package loader 加载数据内容
vars
Package vars 提供各种代码级别的配置项
Package vars 提供各种代码级别的配置项
Package locales 提供本地化相关操作
Package locales 提供本地化相关操作

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL