为Obsidian配置本地图床

安装piclist-core

  1. 通过npm命令安装
1
npm install piclist -g
  1. 查询安装的路径
1
2
npm list -g --depth 0 # 查看全局安装的包
npm get prefix # 查看全局安装路径

找出picgo-server安装的具体路径。

config.json配置

根据系统情况下修改picgo-server的配置文件,并将config.json拷贝到piclist默认的用户目录下

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
{
"picBed": {
"current": "local",
"uploader": "local",
"local": {
"path": "图片需要本地存储的目录", //注意不同系统本地路径不一致,此路径也需要和http服务路径保持一致
"customUrl": "http://localhost:8045", //此为图床访问的http服务地址
"webPath": ""
}
},
"buildIn": {
"rename": {
"enable": true,
"format": "{Y}{m}{d}{h}{i}{s}"
}
},
"settings": {
"server": {
"port": 36677,
"host": "127.0.0.1",
"enable": true
}
},
"picgoPlugins": {}
}

Windows系统

准备工作

  1. 官网下载:https://nssm.cc/download
  2. 解压后出nssm.exe后,不要移动 / 删除 nssm.exe,注册服务后它是服务载体NSSM
  3. 右键【开始菜单】→ 以管理员身份打开 CMD / PowerShell(必须管理员权限)
  4. cd 进入 nssm 所在目录

通过nssm安装Windows服务

  1. 注册服务
1
2
# nssm install <service_name> <executable_path>
nssm install picgoServer $path/picgo-server.cmd -c "C:\Users\$username\AppData\Roaming\piclist\config.json"

注意:注册服务时,config.json路径需要使用双引号包裹在执行 nssm install 命令前,$path/picgo-server.cmd -c "C:\Users\$username\AppData\Roaming\piclist\config.json"可以先测试命令执行后功能是否正常

  1. 启动服务
1
nssm start picgoServer

卸载服务

1
nssm remove picgoServer
阅读更多

万象输入法自定义配置

wanxiang_pure输入法自定义配置

主要是在万象pure输入配置中增加常用的lua和OpenCC和简繁体转换。其中lua来自与wanxiang base,OpenCC和简繁体转换来自于moran。简化配置如下:

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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# 将以下内容拷贝到wanxiang_pure.custom.yaml文件中。
# 1. 需要从moran输入法中拷贝opencc目录(只需要保留和emoji和简中转繁体相关配置即可)
# 2. 从wanxiang base配置中拷贝lua文件夹
patch:
#候选数量
menu/page_size: 5

schema/dependencies/=:
- wanxiang_mixedcode #混合编码
- wanxiang_reverse #反查
- wanxiang_english #英文

switches/=:
- name: ascii_mode
states: [中文, 英文]
- name: ascii_punc
states: [中标, 英标]
- name: full_shape
states: [半角, 全角]
- name: emoji
states: [ 表情关, 表情开]
reset: 1
- options: [ std_s, std_s2t ]
states: [ 简, 繁 ]

# 输入引擎,增加常用功能
engine/processors/=:
- lua_processor@*wanxiang.super_processor
- ascii_composer
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- express_editor
engine/segmentors/=:
- ascii_segmentor
- matcher
- matcher@recognizer_secondary
- abc_segmentor
- punct_segmentor
- fallback_segmentor
engine/translators/=:
- punct_translator
- script_translator
- lua_translator@*wanxiang.shijian
- table_translator@custom_phrase
- table_translator@wanxiang_english
- table_translator@wanxiang_mixedcode
engine/filters:
- lua_filter@*wanxiang.super_lookup
- simplifier@emoji
- simplifier@std_s2t
- uniquifier #去重,必须在最后

# 主翻译器,自定义用户字典
translator/+:
user_dict: custom/cn.pure

# 中文、英文、数字、符号等混合词汇
wanxiang_english:
dictionary: wanxiang_english
user_dict: custom/en.pure
enable_completion: true
enable_sentence: false
initial_quality: 2.1
comment_format:
- xform/^~.+$//
english_spacing: smart
spacing_timeout: 5
max_candidates: 5
trigger: "\\"

wanxiang_mixedcode:
dictionary: wanxiang_mixedcode
db_class: stabledb
enable_completion: true
enable_sentence: false
initial_quality: 2
comment_format:
- xform/.*//

super_processor:
enable_backspace_limit: true
enable_seg_loop: true
enable_tone_fallback: true
enable_predict_space: false
kp_number_mode: auto
limit_repeated: "8,40" #格式:"最大重复声母数,最大候选字数"
select_character: "[,]" # 开启以词定字,自动拆解第一位上屏首字,第二位上屏尾字

# 部件拆字反查
wanxiang_reverse:
tag: wanxiang_reverse
dictionary: wanxiang_reverse
enable_completion: true
prefix: "`"
tips: "〔反查:拆分|笔画〕"

wanxiang_lookup:
tags: [abc]
key: "`"
lookup: [wanxiang_reverse]
data_source: [db]
enable_tone: true
enable_direct: false

emoji:
opencc_config: moran_emoji.json
option_name: emoji
tips: none
tags: [abc, number]

std_s2t:
opencc_config: s2t.json
option_name: std_s2t
tags: [abc, number]

recognizer_secondary:
patterns:
english: '(^[A-Za-z]{4}[A-Za-z]*)|(^[A-Z][A-Za-z]*)|(^[a-z][A-Z][a-zA-Z]*)|(^[a-z][a-z][A-Z][a-zA-Z]*)'

# 拼写设定
speller/alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA`;/\›
speller/initials: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA/›

# 处理符合特定规则的输入码,如网址、反查
recognizer/patterns/=:
punct: "^/([0-9]|10|[A-Za-z]+)$"
wanxiang_reverse: "^`[A-Za-z;]*$"
sjc: "^[/v]rc\\d+[-+=op]?$"
email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$" # email @ 之后不上屏
url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$" # URL

# 导入足够的符号,用于/查询符号
punctuator/=:
digit_separators: ",."
__include: wanxiang_symbols:/symbol_table
__patch: wanxiang_symbols:/symbols

# 从 default 继承快捷键
key_binder/shijian_keys: ["/", "v"]

# 设置时间格式
date_formats:
- "Y年m月d日"
- "Y-m-d"
- "Y/m/d"
- "Y.m.d"
- "Ymd"
time_formats:
- "H:M"
- "H点M分"
- "H:M:S"
datetime_formats:
- "Y-m-d H:M:S"
- "YmdHMS"
- "Y年m月d日 H点M分"

阅读更多

在Zed中配置opencode

在zed和opencode继承有两种方式:

  1. 通过agent server自动安装,这是一个黑盒安装方式,进度不明
  2. 通过手工配置opencode和zed继承

下载opencode

首先下载opencode二进制文件,然后将其放置在合适的位置,例如/usr/local/bin/opencode。或者直接通过官网命令安装sudo npm i -g opencode-ai。安装完成后使用opencode命令启动opencode,启动成功以后可以配置API_KEY等。

在zed中配置opencode

在zed配置文件中增加如下配置,即以外部agent方式配置opencode:

1
2
3
4
5
6
7
8
9
"agent_servers": {
"OpenCode": {
"type": "custom",
"command": "/usr/local/bin/opencode",
"args": [
"acp"
]
}
}

配置好重启zed,既可以在agent panel中打开opencode。

Obsdian导出增强配置

配置插件及工具

  1. Pandoc:万能文档格式转换工具,可以从http://pandoc.org下载。
  2. Obsdian导出增强(Enhancing Export)插件,这个是目前最好用的Obsdian导出插件。

导出PDF文件

PDF引擎

  1. 建议Windows下建议使用MiKTeXhttps://mirror.tuna.tsinghua.edu.cn/help/CTAN/,建议定期更新宏包(否则会出一些莫名其妙的问题)。可以再MiKTex Console上设置Proxy,更新时可以选择国内源进行更新。
  2. 在Obsdian导出增强插件中配置自定义参数,设置 --pdf-engine=xelatex ,即PDF引擎为xelatex

Pandoc表格插件

  1. Pandoc导出PDF文件时,如果表格比较大,表格内容则会溢出PDF文件导致表格显示不全,可以默认开启Pandoc表格插件功能。
  2. 可以在Pandoc参数中增加表格插件,可参考https://pandoc.org/MANUAL.html#extension-multiline_tables,此外还有grid_tables等表格插件。
  3. Pandoc参数为:-f markdown+multiline_tables

导出PDF模板(可选)

  1. 推荐使用eisvogel模板,详细下载地质https://github.com/Wandmalfarbe/pandoc-latex-template,作者持续在更新模板。
  2. 将现在好的模板可以放到用户目录下或者放到Obsdian附件目录
  3. Pandoc参数为:--template=eisvogel, 如果模板不是在默认的用户目录还需要指定具体模板路径。

中文字体

PDF模板和引擎对中文支持不好,需要通过强制指定中文字体解决。具体参数如下:

-V mainfont="Microsoft Yahei" -V CJKmainfont="Microsoft Yahei"
应用程序或者插件会将参数拼接成完整的Pandoc导出命令,如果应用程序有Bug可能将有空格的参数截断,导致最终拼接导出命令错误。例如Typora会将上述“Microsoft Yahei”从空格处截断,此时可将可在空格前加转义字符“\”,将命令修改成:-V mainfont="Microsoft\ Yahei" -V CJKmainfont="Microsoft\ Yahei"
当然,也可以选择其他不带空格的字体。

导出Word文件

导出Word文件相对配置简单一些,可以直接使用默认命令;如果导出Word样式不满意,可以指定导出Word模板。
--reference-doc="/path/templates.doc"

比较舒服的Word模板可以参考:https://github.com/Achuan-2/pandoc_docx_template,当然也可以基于上述模板二次修改成自己喜欢的。

Obsidian + Slides Extended 打造Markdown演示文稿

插件介绍

Slides extended是Obsdian一个演示文稿插件,支持用Markdown书写基于Reveal.js的演示文稿。非常适合快速输出教学演示文稿。
Sildes extended是最早是由MSzturc开发的Advacned Silde<github.com/MSzturc/obsidian-advanced-slides>插件,24年以后原作者不再更新后Erin fork出后以Slides Extendedhttps://github.com/ebullient/obsidian-slides-extended继续开发。

Slides extended是目前遇到的最好用的Markdown写演示文稿的工具。当前唯一的缺点是不能直接导出PPT格式,这个估计需要reveal.js支持才能支持。

插件的详细介绍参考

https://mszturc.github.io/obsidian-advanced-slides/

配合使用模板和布局可以预配置好演示文稿的布局风格,日常写作时专注于文件本身。

https://mszturc.github.io/obsidian-advanced-slides/templates/
https://mszturc.github.io/obsidian-advanced-slides/layout/

Pandoc将Markdown文件导出成PDF文件

Pandoc将Markdown文件转换成PDF文件时是先将Markdown文件转换成Latex文件,再将Latex文件专程PDF文件。参考命令:

1
pandoc example.md -o example.pdf --from markdown --pdf-engine=xelatex --template=eisvogel --listings

选择编译引擎

一般默认的编译引擎是pdflatex编译引擎,这个引擎对中文支撑不太友好,可以通过–pdf-engine=xelatex 修改编译引擎。

选择模板

使用pandoc模板 eisvogel ,eisvogel可以导出很漂亮的PDF文件。

  1. 将 eisvogel 模板拷贝到pandoc用户模板目录下,具体配置:

    • 在Linux系统下:/home/USERNAME/.local/share/pandoc/templates/
    • 在Windows系统下:C:\Users\USERNAME\AppData\Roaming\pandoc\templates\
  2. 改善中文支持,需要在eisvogel添加如下参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    \else % if not pdftex
    $if(mainfont)$
    $else$
    \usepackage[fallback]{xeCJK}
    \setCJKmainfont{SimSun}[BoldFont=SimHei, ItalicFont=KaiTi] %配置中文字体
    \setCJKfallbackfamilyfont{rm}{SimSun}
    \usepackage[default]{sourcesanspro}
    \usepackage{sourcecodepro}

  3. 增加首行缩进,在 eisvogel.tex 文件中查找,在\begin{document}请增加一段代码:

    1
    2
    3
    4
    \usepackage{ctex} %调用中文字体宏包
    \usepackage{indentfirst} %调用首行缩进宏包
    \setlength{\parindent}{2em} %设置首行缩进为2字符
    \begin{document}
阅读更多