如何默认折叠文档属性/YAML/Properties/Metadata/Front Matter

同求默认折叠yaml

Sherlock290:
“可以设置热键开启/禁用某个css片段.”
没有找到能热键开关的配置?

另外,在手机上无热键,能用命令开关吗?

编辑器里面设置文档属性“显示”和“源码”都需要自己折叠,“隐藏的话”编辑模式下也被隐藏起来只能侧边栏编辑,有什么办法只在阅读模式下隐藏而不是折叠吗

如何让文档的文档属性在编辑模式下默认折叠
每次打开都占用大块面积,实际上很多时候文档属性并不重要,希望它默认折叠起来

1 个赞

是需要 默认折叠
完全隐藏要用的时候,得到旁边窗口查看,不方便。

将文档属性设置为“显示”:

image

CSS 代码:

body {
  --metadata-display-editing: none; /*文档属性编辑模式显示方式*/
}

效果:

阅读模式保持不变,仍可编辑、可点击“文档属性”折叠。

image

编辑模式表现为文档属性设置为“隐藏”时的状态,默认不显示,切换实时阅览/源码模式显示 YAML 源码。

20231112_162213

源码模式非常不友好,各种快捷功能用不上,还容易操作出错
还是 默认折叠 文档属性 简单直接

这个我是知道的,需要的是默认折叠的方法,即使打开,下次依然会默认折叠
文档属性不用的时候应该默认折叠起来,就像文件的元数据一样,不右键不显示

我也需要这个功能,可以默认折叠

没事,我决定直接隐藏了,用侧边栏的方式了。等官方优化吧

1 个赞

可以试一下这个css代码

.metadata-properties:not(:hover) {
    visibility: hidden;
    float: right;
    max-width: 0px;
    max-height: 0px;
    z-index: 5;
}

.metadata-properties:not(:hover)::before {
    content: "✨"; 
    visibility: visible;
}

.metadata-properties {
    padding: 10px 20px;
    border-radius: 8px;
    border: none;
    background: none;
}

www.alltoall.net_qq录屏20231204203847__IyM5bpg68

20231204_233032

用这个 CSS 想添加文档属性不是很容易。在 .metadata-properties 未展开时直接点添加按钮是添加不上的。

想修改属性类型,或者任何右键目录操作,都会被判定脱离了 :hover。

20231204_234714

@rbber66 @尘沙 看看这种方式行吗:

我找到办法了,用这个样式:

.metadata-container:not(:hover) .metadata-content, [data-type=markdown] .metadata-container:not(:hover) .metadata-property, [data-type=markdown] .metadata-container:not(:hover) .metadata-add-button.text-icon-button {
  display: none;
}
1 个赞

#12 有一样的问题。

20240109_172238

恩 那这样的话,应该就不是样式能解决的了,操作的时候,用键盘上下选择,先凑合一下 :rofl:

看看这种方式行吗:

1 个赞

非常需要折叠的效果。目前官方仅有显示、隐藏、源码三种模式。

或许找一个能提供hook的插件, 打开md文档之后自动执行折叠命令?

我用模拟点击实现的(安装RunJS插件,把代码添加到RunJS设置里的Auto start中)

```js RunJS="onLoad"

// 自动折叠文档属性
this.app.workspace.onLayoutReady(() => {
    let stTimer;
	this.app.workspace.on('active-leaf-change', async (activeLeaf) => {
		// 定时防止无效触发,只取最后一个触发
		if(stTimer) clearTimeout(stTimer)
		stTimer = setTimeout(() => {
            var activeLeaf = ".workspace-split.mod-root .workspace-tabs.mod-active .workspace-leaf.mod-active ";
            var mc=document.querySelector(activeLeaf+".metadata-container:not(.is-collapsed)");
            if(mc && mc.firstChild) mc.firstChild.click()
        }, 42)
    })
})
```

解释下代码,为什么用active-leaf-change事件,因为file-open事件按ctrl+点击打开不触发,而打开文件同样会触发active-leaf-change事件,但该事件会被触发多次,通过延迟,过滤掉非目标触发;为什么用firstChild,而不直接用css选择器取到child,因为上面代码是之前回答一个用户的问题时写的,直接拿来加上firstChild,懒得改了 :grinning: