Git Product home page Git Product logo

blog-processor's Introduction

Blog Processor

针对hugo的Blog文件预处理器, 使用本项目可以更加便捷的组织您的hugo博客, 简化头部信息的定义, 一键替换图片源.

How it works

  1. 读取config.yaml配置
  2. 扫描出指定目录下所有markdown文件所在目录, 按照目录进行迭代处理
  3. 替换图片源, 并将图片采用md5方式替换文件名后保存到指定文件夹
    • 图片存储位置命名规则, 文件夹命名: MD5编码md所在文件夹的相对路径
    • 图片名命名: MD5编码对md文件名+图片原路径
  4. 分离markdown头部与主体
    • 支持yaml, json, toml头部格式
  5. 对头部进行处理
    • 程序首先创建全局头部, 然后扫描每个目录下头部文件生成目录级头部.
    • 单个文件的头部会首先和所在目录的头部进行merge操作, 然后和全局头部进行merge.
  6. 重新写入文件, 头部统一输出为toml格式
  7. 根据配置添加search.md和archives.md文件
  8. 删除原目录下所有的图片文件
  9. 删除原目录下所有空文件夹
  10. 支持目录级的总体头信息定义, 文件名默认以.head.toml命名, 可在config.yaml中修改

config.yaml

Basic:
  BlogDir: "../content" # 博客文件所在目录
  ImageDir: "../content/assert" # 废弃配置项
  TemplateFile: "/" # 暂未使用的配置项
  OutputDir: "../static"  # 静态文件输出目录
  HttpBasePath: "https://123/static/" # 静态文件所在url, 用于一键替换图片源
  DateLayout: "2006-01-02"  # 日期格式
  CommonHeaderFileName: ".header" # 目录级头部信息定义文件名
  CommonHeaderFileExt: ".toml"    # 目录级头部信息定义文件后缀
  CommonHeaderFileFormat: "toml"  # 目录级头部信息定义文件内容格式

DataBase:
  DBFile: "../meta.db"  # sqlite 数据库文件所在路径

SearchPageConfig: # search页面配置
   Require: true  # 是否需要自动生成search页面, 以下为search页面头部信息
   Title: "Search"
   Layout: "search"
   Summary: "search"
   Placeholder: "search..."
   Type: "special"

ArchivesPageConfig: # archives页面配置
   Require: true  # 是否需要自动生成archives页面, 以下为archives页面头部信息
   Title: "Archives"
   Layout: "archives"
   Url: "/archives/"
   Summary: "archives"
   Type: "special"

GlobalHeaderConfig: # 全局头部信息
   Author: "RLTEA"

打包发布

CGO_ENABLED=1 GOOS=linux  GOARCH=amd64  CC=x86_64-linux-musl-gcc  CXX=x86_64-linux-musl-g++  go build -ldflags '-extldflags "-static"' -o processor

chmod +x processor

blog-processor's People

Watchers

RLTEA avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.