文章

进一步完善obsidian提高写作效率

也就是几行命令,几个插件大大提高了效率

进一步完善obsidian提高写作效率

众所周知, jekyll是一个博客生成框架, 它为了尽可能地不打扰写作, 规定了我们博客文章的位置:

1
_posts

规定了我们博客文章的名称:

1
yyyy-mm-dd-name.md

恰好,obsidian能同时满足以上两个要求. 所以, 如果你希望自己的写作流程高效, 请像我一样, 使用obsidian. obsidian 安装完成之后, 打开你clone的博客仓库 选择这个仓库 我的博客仓库位于:

1
C:\Users\daily\MyFile\app\0WEB\chirpy-blog\

进去之后, obsidian就会把配置文件默认存放于

1
/chirpy-blog/.obsidian/

这便是好处之一, 就算你换了一台电脑, pull拉一下, 就能原地享受原电脑上面的配置

正式配置

插件安装

进入左下角小齿轮设置->选择弹窗左边第三方插件->关闭安全模式->浏览社区插件市场, 安装如下三个插件:

  • file explorer++ , 这个插件是用来隐藏obsidian无关目录的,毕竟要是不小心改动了jekyll部分, 麻烦的还是你.
  • shell commands , 用来执行git命令的, 总不能每一都是手动git add, git commit , git push吧, obsidian里面那个Git插件影响性能, push的时候一卡一卡的, 不推荐用.
  • Templater , 用来生成快速生成文章的, 毕竟不能每次都手动起名字, 输入yaml文件头吧

    插件配置

    file explorer++

    往下滚动到Hide Filter下面的Path filter, 就可以隐藏博客写作无关的目录啦

    shell commands

    添加这行代码

    1
    
    start "Git Push" cmd.exe /c "cd /d  && git-push.bat"
    

    顺便点击右边的+来为其分配快捷键Ctrl + Shift + P. 至于代码中为什么是”Git Push”我不知道, 这是AI生成的, 只有这样才能正确执行我的脚本, ````表示当前obsidian库的绝对目录, 所以, 我们需要在根目录/chirpy-blog/创建一个名为

    1
    
    git-push.bat
    

    的脚本, 名称随意, 保证插件中一致就行. 脚本的内容是:

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
@echo off
title Git Push Action (With Custom Message)

echo Starting...
echo.

:: [1/3] Adding files
echo [1/3] Adding files...
call git add .
if %errorlevel% neq 0 (
    echo Error: Git add failed!
    pause
    exit /b 1
)
echo.

:: [2/3] Get Commit Message from User
echo [2/3] Please enter your commit message:
set /p COMMIT_MSG="> "

:: 检查用户是否输入了内容
if "%COMMIT_MSG%"=="" (
    %COMMIT_MSG%="推送博客"
)

echo.
echo Committing with message: "%COMMIT_MSG%"
call git commit -m "%COMMIT_MSG%"

:: 检查 commit 是否成功 (如果没有变化git commit 会返回 1)
if %errorlevel% neq 0 (
    echo Note: No changes to commit or commit failed. Skipping push.
    pause
    exit /b 0
)
echo.

:: [3/3] Pushing to remote
echo [3/3] Pushing to remote...
call git push

echo.
echo Done!
echo Closing in 2 seconds...
timeout /t 2 /nobreak >nul

这个脚本当然也是AI生成的, 取代了手动git的绝大部分操作, 触发后, 你只需要等待输入commit信息就行. 接下来我们就可以通过快捷键Ctrl + Shift + P来触发提交.

Templater

选择_post存放模板文件, 开启自动跳转到光标处 在_posts里面创建一个模板文件,名为

1
新建模板文件.md

文件内容为:

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
<%* 
// 1. 获取当前日期,格式化为 YYYY-MM-DD 
const date = tp.date.now("YYYY-MM-DD");
// 2. 弹窗提示用户输入“名词” 
const topic = await tp.system.prompt("主题:"); 
// 3. 【新增】生成 8 位随机小写字母的函数 
function generateRandomKey(length) { 
	const chars = 'abcdefghijklmnopqrstuvwxyz'; 
	let result = ''; 
	for (let i = 0; i < length; i++) { 
	result += chars.charAt(Math.floor(Math.random() * chars.length)); 
	} 
	return result; 
} 
const k = generateRandomKey(8); 
//gitalk会用的的一个文章字段, 在下面添加才会生效, 具体清查github
// 3. 组合文件名 
const newFileName = `${date}-${topic}`; 
//image:这一堆是chirpy文章展览用到的图片 , 具体填什么请自查github仓库对应文章的md源
// path: 
// lqip: 
// alt: 
// 4. 重命名当前文件(这一步是关键,它在文件创建瞬间修改文件名) 
await tp.file.rename(newFileName); -%>
---
title: <% topic %> 
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %> +0800
comments: true
tags: 
categories: []
description: 
pin: false
math: false
mermaid: false

---
<% tp.file.cursor() %>

其实模板里的脚本部分也是AI生成的, 我稍加调整以便能正常使用, 接着回到Templater设置页面为这个模板设置快捷键 选择刚刚创建的模板, 点击+配置快捷键, 搜索Templ等字样便于过滤结果, 点击+分配快捷键. 我设置成了Ctrl + N , 没错, 取代了默认功能.

Obsidian 自身配置

  • 选择指定的笔记文件夹: _posts
  • 选择指定的附件文件夹, 这里你自己创建就行
  • 内部链接类型一定要是基于仓库根目录的绝对路径
  • 一定要关闭wiki链接
  • 开启更新内部链接, 这样才不会出现图片找不到问题

配置结束

大功告成, 献上演示画面

本文由作者按照 CC BY 4.0 进行授权