insertBatchBlock
- 第一层的 children 为空数组会报错,children 里面的 children 为空数组是正常的
logseq.Editor.insertBatchBlock(srcBlock, {
content: "text",
children: [], // children 为空数组会报错,必须得改为 children: undefined
});
-
before
参数不管用,不管怎么设置都是在srcBlock
下方插入 -
sibling
默认是false
,insertBlock
的sibling
默认是true
,有点不统一,另外可选参数默认值文档里面没体现出来 -
无法往空页面里面写入
insertBatchBlock
的第一个参数需要一个block uuid
,但空页面是没有block
的,尝试填page
的block uuid
调用没报错,但是没效果
现在只能判断如果是空页面就把页面删掉,然后重新createPage
,设置createFirstBlock: true
const lastBlock = await getLastBlock(pageName);
if (lastBlock === null) {
// 无法往空页面写入 block
await logseq.Editor.deletePage(pageName);
await logseq.Editor.createPage(
pageName,
{},
{
createFirstBlock: true,
redirect: false,
}
);
}
createPage
-
format
参数问题
设置里面的首选格式是markdown格式,createPage 的时传的也是markdown
,然后insertBatchBlock
,插入的block
变成了 list 格式(content 前面多了一个*
),如果不传format
参数,表现是正常的
await logseq.Editor.createPage(
pageName,
{},
{
createFirstBlock: true,
redirect: false,
format: "markdown",
}
);
await logseq.Editor.insertBatchBlock(srcBlock, batchBlocks, {
sibling: true,
});
moveBlock
试用了下没成功,logseq 版本是 0.3.9
Undo
- 之前也提到过,插件每一次操作都需要一次
undo
恢复,执行了一个插件提供的命令之后得按好多次ctrl z
才能恢复。一个想法是允许插件临时将 undo 的行为改为覆盖新的undo
状态而不是增加新状态