有一些文档想要做成目录
然后就用群里大佬分享的一个模板,代码在最下面,然后就经常出现状态异常的问题了。。。重现步骤
把代码中这个占位符换成目标文档(要生成子文档的那个文档) 的块 id,替换完以后,直接把 html 代码用 html 标签一粘贴就可以了,然后再删除其中一个链接,就很容易触发这个, 下面有演示视频,D 大可以选一个子文档比较多的文件来试一下,我经常出现这个问题
视频
<html>
<div style="font-size:20px;color:red">刷新文档</div>
<script>
var block_id = '{0}';
exec();
async function request(url, data) {
return fetch(url, {
body: JSON.stringify(data),
method: 'POST'
}).then(r => {
if (r.status === 200)
return r.json();
else return null;
});
}
function write_line(pArr, record, isSon) {
var line = '';
if (isSon) {
line += '\n'
}
//这里插入数据 之前有个* 就会有个无序列表
line += ' '.repeat(pArr.length * 2) + "((" + record.id + " '" + record.content + "'))\r\n\r\n";
//alert(line)
return line;
}
async function exec() {
//查询所有子目录
var sql = `select root_id from blocks where id = '${block_id}'`;
var response_data = await querySql(sql);
var current_root_id = response_data.data[0].root_id;
sql = `
SELECT b1.id,b1.content,b1.hpath,b1.path FROM 'blocks' as b1 WHERE b1.path like '%${current_root_id}%' and b1.type = 'd' and root_id <> '${current_root_id}' order by hpath
`
response_data = await querySql(sql);
// var response_text = quickerGetVar('response_text');
// var response_data = JSON.parse(response_text);
var records = response_data.data;
var markdown = '';
var parents = [];
for (var i = 0; i < records.length; i++) {
var isSon = true;
record = records[i];
while (parents.length > 0) {
if (record.path.indexOf(parents[parents.length - 1]) > 0) {
markdown += write_line(parents, record, isSon);
parents.push(record.id);
break;
} else {
isSon = false;
parents.pop();
}
}
if (parents.length == 0) {
markdown += write_line(parents, record, false);
parents.push(record.id);
}
}
console.log(markdown.trim());
await updateBlock(block_id, markdown.trim());
// markdown.trim()
}
async function querySql(sql) {
return request('/api/query/sql', {
stmt: `${sql}`,
});
}
async function updateBlock(id, data, dataType = 'markdown') {
return request('/api/block/updateBlock', {
id: id,
data: data,
dataType: dataType,
});
}
</script>
</html>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于