canvas 的卡片怎么实现自动宽高

遇到的问题

最近在使用一个Node Auto Resize的插件,发现还是有点问题.
在卡片里面打字的时候,一行可以输入8个字(假设),一旦按下esc键退出编辑之后,一行又只能展示7个字了,导致整体文字高度变高了,进而导致卡片右侧出现了滚动条.
如下图:

很反感这个滚动条,我也尝试修改这个插件的代码,但是没有什么解决办法.

另外我发现 Obsidian 自带能调整高度的功能: 就是你用鼠标双击卡片的上下边框即可. 但是我没找到官方提供的 对应api

我不知道该如何解决这个问题,希望大神帮忙看看

试试这个插件:GitHub - Quorafind/Obsidian-Node-Auto-Resize

我使用的Node Auto Resize 插件就是你说的这插件

而且我看了一下这个插件的代码.实现得过于复杂了.这不是因为插件作者的问题,而是官方没有把自动调整宽高的 api 开放出来,因为只要双击卡片的边框,就能自动调整宽高,说明官方自带这个功能的

哦哦没仔细看

试了一下用css不太行,因为下边框的位置还是计算得出的,用css覆盖只能显示正常,拖拽等功能无法保留:

.markdown-embed-content.node-insert-event,
.canvas-node-content.markdown-embed,
.canvas-node-container,
.canvas-node{
    height:fit-content!important;
}
.canvas-node-container{
    display:block!important;
    contain:content;
}

可能需要楼主检查一下这里前后的属性,用css保证字号、行高这类属性一致

没救的,编辑状态和阅读状态本来就是不一样的

不对,有救,.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view { padding: 0 20px 0 80px; display: flex; flex-direction: column; }
你自己用这个css调整一下这行的20px和80px padding: 0 20px 0 80px;
我装了其他的mod跟你的数字会不一样

.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view {
    padding: 0 20px 0 80px;
    display: flex;
    flex-direction: column;
}

这个

不行,退出编辑,右边还是会出现滚动条,

那就是你插件的问题了,你要不直接试试Advanced Canvas,里面有【Node Auto Resize】这个功能

找到办法了
node 对象有一个onResizeDblclick 的方法,这个就是双击边框调用的方法,调用一下就好了