Obside自动化博客文章发布流程

如何只在 Ob 中写文章就可以,简化博客文章的管理。 首先在 Ob 写文章(按照规定的格式),然后利用插件上传到 github 上博客源文件指定目录(需要插件转换文档内格式及链接适应博客规范),由源文件自动生成网站页面。

步骤

1. 博客的安装与自动化生成

这里采用倒序的流程,先把博客安装好,采用 Hugo 博客。 具体安装参考:

另外博客增加评论可以看这篇:Waline评论的设置及相关优化

注意事项:

  • hugo 程序目录:
    • content:内容文件夹
    • public:生成的静态文件夹
  • 自动化仓库后续的提交命令:(直接在网站目录执行,用于网站更新)
1
2
3
git add .
git commit -m "update"
git push

Pasted image 20240929092449.png

2. 文章的格式模板

这是 Obside 模板的属性设置,根据 Hugo 对应的主题以及搭配插件,用于发布文章。

1
2
3
4
5
6
7
8
9
title: "{{title}}" # 上传的文章及文件名 
date: "{{date:YYYY-MM-DD}}" # 创建时间  
image: # 文章封面图片地址  
description: # 文章描述,为空时默认会截取文章前面的内容(好像不会截取?)  
categories: # 分类  
tags: # 标签 
keywords: # 用于 SEO 优化,也可以不配置该内容默认会使用 tags 的内容(未测试)  
dir: post # 搭配 Enveloppe 插件设置文章上传的目录  
share: true # 配合 Enveloppe 插件用的,true表示 obsidian 的文章可以发布

3. 插件的设置

这里采用的版本是 Enveloppe 7.3.2,配置如下,可以 Import settings 导入。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
{
  "github": {
    "branch": "main",
    "automaticallyMergePR": true,
    "dryRun": {
      "enable": false,
      "folderName": "github-publisher"
    },
    "tokenPath": "%configDir%/plugins/%pluginID%/env",
    "api": {
      "tiersForApi": "Github Free/Pro/Team (default)",
      "hostname": ""
    },
    "workflow": {
      "commitMessage": "[PUBLISHER] Merge",
      "name": ""
    },
    "verifiedRepo": true
  },
  "upload": {
    "behavior": "yaml",
    "defaultName": "content/post",
    "rootFolder": "content",
    "yamlFolderKey": "dir",
    "frontmatterTitle": {
      "enable": false,
      "key": "title"
    },
    "replaceTitle": [],
    "replacePath": [],
    "autoclean": {
      "includeAttachments": true,
      "enable": true,
      "excluded": [
        "/(content\\/_index\\.zh-cn\\.md|content\\/page\\/about\\/index\\.zh-cn\\.md)/"
      ]
    },
    "folderNote": {
      "enable": false,
      "rename": "index.md",
      "addTitle": {
        "enable": false,
        "key": "title"
      }
    },
    "metadataExtractorPath": ""
  },
  "conversion": {
    "hardbreak": false,
    "dataview": true,
    "censorText": [
      {
        "entry": "/\\.\\/([^/]+)\\.md/",
        "replace": "../$1/",
        "flags": "",
        "after": true,
        "inCodeBlocks": false
      },
      {
        "entry": "/static/images/",
        "replace": "images",
        "flags": "",
        "after": true
      }
    ],
    "tags": {
      "inline": true,
      "exclude": [],
      "fields": []
    },
    "links": {
      "internal": true,
      "unshared": false,
      "wiki": true,
      "slugify": "lower",
      "unlink": true
    }
  },
  "embed": {
    "attachments": true,
    "overrideAttachments": [],
    "keySendFile": [],
    "notes": true,
    "folder": "static/images",
    "convertEmbedToLinks": "keep",
    "charConvert": "->",
    "unHandledObsidianExt": [],
    "sendSimpleLinks": true,
    "forcePushAttachments": [],
    "useObsidianFolder": false
  },
  "plugin": {
    "shareKey": "share",
    "excludedFolder": [],
    "copyLink": {
      "enable": true,
      "links": "",
      "removePart": [],
      "transform": {
        "toUri": false,
        "slugify": "lower",
        "applyRegex": []
      }
    },
    "setFrontmatterKey": "Set"
  },
  "tabsId": "text-conversion"
}

选项设置参考:

使用 Hugo 构建
主题 StackJimmy 设计