我根据论坛伙伴的 JS 代码为【笔记本】和【普通文档】以及【含有子文档的父文档】设置了默认显示的图标(代码附在下方)。
但是移动端【笔记本】的图标总会在重建索引后失效,被显示为默认的 🗃️。而电脑上即使重建索引显示也是正常的。
提供一个演示录屏:
点击立即同步后显示为正常。重建索引后图标显示异常。
问题可能不是很直观,希望有大神理解之后能指点一下是否有解决的办法!感谢耐心!
代码
所使用的两段自定义 JS 代码:
// 切换主题后需刷新页面才能生效
// 普通文档:siyuan.storage["local-images"].file='1f4c4'
// 含有子文档的父文档:siyuan.storage["local-images"].folder='1f4d1'
// 笔记本:siyuan.storage["local-images"].note='1f5c3'
// 亮色主题
if(siyuan.config.appearance.mode === 0) {
// 默认主题
if(siyuan.config.appearance.themeLight === 'daylight'){
siyuan.storage["local-images"].folder = 'ns.svg'
siyuan.storage["local-images"].note = 'nb.svg'
siyuan.storage["local-images"].file = 'n.svg'
}
// 其他主题
if(siyuan.config.appearance.themeLight === 'macchiato') {
}
}
// 暗色主题
else {
// 默认主题
if(siyuan.config.appearance.themeDark === 'midnight'){
siyuan.storage["local-images"].folder = 'ns-d.svg'
siyuan.storage["local-images"].note = 'nb-d.svg'
siyuan.storage["local-images"].file = 'n-d.svg'
}
// 其他主题
if(siyuan.config.appearance.themeDark === 'macchiato') {
siyuan.storage["local-images"].folder = 'ns-d.svg'
siyuan.storage["local-images"].note = 'nb-d.svg'
siyuan.storage["local-images"].file = 'n-d.svg'
}
}
// 监听主题切换
(()=>{
// 当主题色变化时执行
observeThemeModeChange((newMode) => {
if(newMode === 'light') {
// 亮色主题
siyuan.storage["local-images"].folder = 'ns.svg'
siyuan.storage["local-images"].note = 'nb.svg'
siyuan.storage["local-images"].file = 'n.svg'
} else {
// 暗色主题
siyuan.storage["local-images"].folder = 'ns-d.svg'
siyuan.storage["local-images"].note = 'nb-d.svg'
siyuan.storage["local-images"].file = 'n-d.svg'
}
// 刷新页面
location.reload();
});
function observeThemeModeChange(callback) {
// 选择目标节点
const targetNode = document.documentElement; // <html> 元素
// 配置观察选项:
const config = { attributes: true, attributeFilter: ['data-theme-mode'] };
// 当观察到变动时的回调函数
const mutationCallback = function(mutationsList, observer) {
for (let mutation of mutationsList) {
if (mutation.type === 'attributes' && mutation.attributeName === 'data-theme-mode') {
const newValue = document.documentElement.getAttribute('data-theme-mode');
// 调用用户提供的回调函数
if (typeof callback === 'function') {
callback(newValue);
}
}
}
};
// 创建一个观察器实例并传入回调函数
const observer = new MutationObserver(mutationCallback);
// 开始观察目标节点
observer.observe(targetNode, config);
// 返回一个停止观察的方法
return {
disconnect: () => observer.disconnect()
};
}
})();
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于