2 个版本
0.1.1 | 2023 年 10 月 29 日 |
---|---|
0.1.0 | 2023 年 10 月 29 日 |
#2388 在 命令行工具
16KB
389 行
Obsidian2Neorg
将 Obsidian Markdown 转换为 Neorg 格式。
obsidian2neorg
从 stdin
读取输入并将转换输出到 stdout
。
您可以这样转换文件
cat file.md | obsidian2neorg > file.norg
安装
您需要安装 rustup。然后使用 Cargo 进行安装
cargo install obsidian2neorg
批量转换
您可以在本仓库中找到一个 Shell 脚本,该脚本将转换文件夹中所有 .md
文件并将所有其他文件复制。我已经使用此脚本来将所有笔记通过 obsidian2neorg 转移到 Neorg。
folder_path="vault"
out_path="vault_neorg"
mkdir -p $out_path
find "$folder_path" -type f -not -path "*/.git/*" -not -name "*.md" | while read -r file; do
relative_path="${file#$folder_path/}"
out_file="${out_path}/${relative_path}"
mkdir -p "$(dirname "$out_file")"
cp "$file" "$out_file"
done
find "$folder_path" -type f -not -path "*/.git/*" -name "*.md" | while read -r file; do
lowercase_filename=$(basename "$file" | tr '[:upper:]' '[:lower:]')
final_filename=${lowercase_filename// /-}
relative_path="${final_filename#$folder_path/}"
out_file="${out_path}/${relative_path%.md}.norg"
mkdir -p "$(dirname "$out_file")"
cat "$file" | obsidian2neorg > "$out_file"
done
转换基于正则表达式,并不是所有可能的 Markdown 样式都得到了实现,但应该足以使您的笔记达到可以开始在 Neorg 上工作的状态。
lowercase-links
默认情况下,文件链接将强制转换为 lowercase-without-spaces
形式。这使得轻松重命名所有文件以便轻松转移关系。如果您想保持原样,请传递 --literal-links
标志
obsidian2neorg --literal-links
在这种情况下,您需要修改批量转换脚本来避免重命名
folder_path="vault" # change this to the location of your vault/notes folder
out_path="vault_neorg" # this will be the output folder
mkdir -p $out_path
find "$folder_path" -type f -not -path "*/.git/*" -not -name "*.md" | while read -r file; do
relative_path="${file#$folder_path/}"
out_file="${out_path}/${relative_path}"
mkdir -p "$(dirname "$out_file")"
cp "$file" "$out_file"
done
find "$folder_path" -type f -not -path "*/.git/*" -name "*.md" | while read -r file; do
relative_path="${file#$folder_path/}"
out_file="${out_path}/${relative_path%.md}.norg"
mkdir -p "$(dirname "$out_file")"
cat "$file" | obsidian2neorg > "$out_file"
done
依赖项
~4.5–6MB
~108K SLoC