Logseq 同步
Logseq 和 Obsidian 都是优秀的双向链接笔记工具,且都使用 Markdown 格式存储。本文介绍如何在两者之间切换或同步。
工具对比
| 特性 | Obsidian | Logseq |
|---|---|---|
| 存储格式 | 标准 Markdown | 大纲式 Markdown |
| 编辑模式 | 页面优先 | 块/大纲优先 |
| 双向链接 | ✅ | ✅ |
| 本地存储 | ✅ | ✅ |
| 图谱视图 | ✅ | ✅ |
| 移动端 | ✅ | ✅ |
| 开源 | ❌ | ✅ |
兼容性说明
格式差异
Logseq 使用大纲式结构,每行以 - 开头:
markdown
- 这是一个 Logseq 块
- 这是子块
- [[链接]] 到其他页面Obsidian 使用标准 Markdown:
markdown
这是一个 Obsidian 段落
- 列表项 1
- 列表项 2
[[链接]] 到其他页面可互通的部分
- ✅ 双向链接语法
[[页面名]] - ✅ 标签语法
#标签 - ✅ 标准 Markdown 格式
- ✅ Front Matter 属性
需要注意的部分
- ⚠️ Logseq 的大纲结构在 Obsidian 中显示为列表
- ⚠️ Logseq 的块引用格式不同
- ⚠️ TODO 状态语法略有差异
共享仓库方案
如果想要在两个工具间共享同一仓库:
配置步骤
创建共享仓库
textMyVault/ ├── pages/ # Logseq 页面 ├── journals/ # Logseq 日记 ├── assets/ # 图片附件 └── notes/ # Obsidian 笔记Logseq 配置
编辑
logseq/config.edn:edn{:directories [{:dir "/notes"}]}Obsidian 配置
在设置中指定附件文件夹为
assets
最佳实践
- 分离存储:Logseq 用
pages/,Obsidian 用notes/ - 共享资源:图片和附件放在同一
assets/文件夹 - 统一链接:都使用
[[文件名]]语法创建链接
迁移方案
从 Logseq 迁移到 Obsidian
使用转换工具
可以使用 "Logseq to Obsidian" 等脚本转换格式:
bash# 移除大纲符号 sed 's/^- //' input.md > output.md # 调整缩进 # 需要根据实际情况调整手动调整
- 移除行首的
-符号 - 将块引用转换为标准链接
- 调整 TODO 格式:text
Logseq: - TODO 任务 Obsidian: - [ ] 任务
- 移除行首的
使用插件
- "Outliner" 插件可以提供类似 Logseq 的大纲体验
从 Obsidian 迁移到 Logseq
直接打开仓库
- Logseq 可以直接打开 Obsidian 仓库
- 标准 Markdown 会被识别为页面内容
转换为大纲格式
bash# 将段落转换为块 sed 's/^/- /' input.md > output.md
双向工作流
场景一:Logseq 捕获 + Obsidian 整理
- 在 Logseq 中快速记录想法(日记模式)
- 定期整理到 Obsidian 中进行深度加工
- 使用共享文件夹保持链接有效
场景二:Obsidian 写作 + Logseq 任务
- Obsidian 用于知识管理和深度写作
- Logseq 用于任务管理和日常规划
- 通过标签
#项目名建立联系
配置文件示例
Logseq 配置 (config.edn)
edn
{
:project {:home "pages"}
:directories [{:dir "/notes"}]
:feature/enable-graph? true
:feature/enable-journals? true
}Obsidian 配置
在 .obsidian/app.json 中:
json
{
"attachmentFolderPath": "assets",
"newFileLocation": "notes",
"useMarkdownLinks": true
}常见问题
问:可以直接在两个工具中编辑同一文件吗?
答:可以,但需要注意格式兼容性。建议在不同文件夹中分别编辑,通过链接互通。
问:TODO 格式如何统一?
答:
- Logseq 使用:
- TODO/- DONE - Obsidian 使用:
- [ ]/- [x] - 可以使用 "Tasks" 插件统一管理
问:块引用怎么办?
答:Obsidian 的块引用使用 [[文件名#^blockid]] 语法,Logseq 格式不同,需要手动调整。
相关资源
进阶技巧
自动化格式转换脚本
使用 Python 脚本批量转换 Logseq 大纲格式为 Obsidian 标准格式:
python
import os
import re
def logseq_to_obsidian(input_dir, output_dir):
"""将 Logseq 格式笔记批量转换为 Obsidian 格式"""
os.makedirs(output_dir, exist_ok=True)
for filename in os.listdir(input_dir):
if not filename.endswith('.md'):
continue
with open(os.path.join(input_dir, filename), 'r', encoding='utf-8') as f:
content = f.read()
# 转换大纲符号为标准列表
# Logseq: - 内容(缩进用空格 + - 开头)
# Obsidian: 标准嵌套列表
lines = content.split('\n')
converted_lines = []
for line in lines:
# 移除行首多余的 - 符号(Logseq 大纲标记)
stripped = line.lstrip()
indent = len(line) - len(stripped)
if stripped.startswith('- '):
# 保留缩进,但转为标准 Markdown 列表
# Logseq 用 - 缩进表示层级,Obsidian 用空格缩进
new_indent = ' ' * (indent // 2)
converted_lines.append(f'{new_indent}- {stripped[2:]}')
elif stripped.startswith('- [['):
# 处理链接行
new_indent = ' ' * (indent // 2)
converted_lines.append(f'{new_indent}- {stripped[2:]}')
else:
converted_lines.append(line)
# 转换 TODO 状态
result = '\n'.join(converted_lines)
result = result.replace('- TODO ', '- [ ] ')
result = result.replace('- DOING ', '- [ ] 🔄 ')
result = result.replace('- DONE ', '- [x] ')
result = result.replace('- NOW ', '- [ ] ⏳ ')
result = result.replace('- LATER ', '- [ ] 🔜 ')
# 转换块引用(Logseq 格式 → Obsidian 格式)
result = re.sub(r'\(\(([a-f0-9-]+)\)\)', r'[[#\1]]', result)
with open(os.path.join(output_dir, filename), 'w', encoding='utf-8') as f:
f.write(result)
print(f'转换完成: {filename}')
# 使用方法
logseq_to_obsidian('./logseq-pages', './obsidian-notes')Dataview 桥接查询
在 Obsidian 中使用 Dataview 查询 Logseq 风格的笔记:
dataview
TABLE
file.ctime AS "创建时间",
length(file.outlinks) AS "链接数"
FROM "Logseq"
SORT file.ctime DESCdataview
TASK
FROM "Logseq"
WHERE !completed
SORT due ASC使用 Metatemplates 统一格式
创建一个 Templater 模板,在 Obsidian 中保持 Logseq 风格的快速记录:
markdown
---
title: {{title}}
date: {{date:YYYY-MM-DD}}
type: logseq-import
source: logseq
tags: []
---
# {{title}}
## 内容
{{cursor}}
## 反向链接
```dataview
LIST
FROM [[]]
```竞合编辑冲突处理
如果同时使用 Logseq 和 Obsidian 编辑同一仓库,需要注意:
- 避免同时编辑同一文件 — 两个应用不会实时检测对方的修改
- 使用 Git 管理 — 每次切换工具前提交一次,方便回退
- 自动保存间隔 — 两个工具都设置为较短的自动保存间隔
- 文件锁定 — 使用
.obsidian/workspace.json和.logseq/config的 gitignore 避免配置冲突
gitignore
# .gitignore 排除工作区配置
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.logseq/config/
.logseq/storage/迁移检查清单
从 Logseq 迁移到 Obsidian 时,按以下清单逐项检查:
迁移前
- [ ] 备份 Logseq 仓库完整副本
- [ ] 导出 Logseq 图谱截图(留作参考)
- [ ] 记录当前 Logseq 使用的插件列表
- [ ] 整理 Logseq 的标签体系
迁移中
- [ ] 运行格式转换脚本
- [ ] 检查双向链接
[[链接]]是否正常 - [ ] 转换 TODO 状态格式
- [ ] 处理块引用(需手动调整)
- [ ] 检查图片和附件路径
- [ ] 转换 properties 格式
迁移后
- [ ] 在 Obsidian 中安装对应功能的插件
- [ ] 重建标签体系
- [ ] 设置日记模板
- [ ] 配置 Dataview 查询替代 Logseq 查询
- [ ] 建立新的工作流习惯
- [ ] 删除或归档 Logseq 仓库