listChildDocs icon indicating copy to clipboard operation
listChildDocs copied to clipboard

挂件内是否有可能实现默认长宽

Open porkll opened this issue 2 years ago • 2 comments

  1. 之前一致是url或者引用块生成内容块的形式,现在换到挂件内的形式了,原因是我发现内容块容易“污染”搜索结果,但是挂件内的形式就有挂件宽高还需要再手动拉一遍的问题(我看到目前高度有设置项了,但是默认宽度可以实现吗)
  2. 还有就是挂件的宽度我在windows和docker上都是拉不到100%的(其他挂件也是如此),我记得以前思源有几个版本是可以的,不知道这个能不能做到拉到100% 麻烦开发者大大了

porkll avatar Jan 29 '23 10:01 porkll

关于1

1、试了一下,要把默认宽度保存起来有点小问题,凑合能用。 ~~listChildDocs-dev#30.zip在config.js saveDefaultWidgetStyle里设置。~~ 有点问题,写入的style会作为块的属性被创建索引,先不要启用。

目前的方案没法稳定地在挂件插入的时候就立刻设定默认宽高,有时候会在下次打开挂件时设定。

之前没将挂件高度保存在文档中,所以能明显地看到挂件块加载后变长或变短的现象。感觉宽度再闪烁一下不太好,就没用原来的方法。

2、要求不高的话,代码片段里直接加这个应该就行(设置--外观--代码片段--css--添加css)

如果之前通过拖拽设定过挂件宽高,将以拖拽设定的为准;如果所有挂件的宽度都不改的话,分号前面加个!important

[data-node-id] iframe[src*="/widgets/listChildDocs"] {
    width: 2000px;
}

关于2.

编辑页面两边有边距,好像确实超过不了这个范围;如果用的是HBuilderX之类的窄边距主题,这点确实是挺明显的;我还没弄明白怎么让拖拽绕过这个限制。

把上面代码片段里width给一个特别大的值应该就行,或者下面这样:

/* Firefox需要启用layout.css.has-selector.enabled选项 */
[data-node-id] .iframe-content:has(iframe[src*="/widgets/listChildDocs"]) {
    width: 100%;
}
[data-node-id] iframe[src*="/widgets/listChildDocs"] {
    width: 100%;
}

OpaqueGlass avatar Jan 30 '23 02:01 OpaqueGlass

谢谢! 目前我通过如下的css可以实现初次插入就直接100%宽度,但是拖拽还是出问题,后面有机会会在研究一下,目前不影响使用了。

.iframe-content {
    position: relative;
    width: 100%;
}

.b3-typography iframe, .protyle-wysiwyg iframe {
	width:100%;
}

porkll avatar Jan 30 '23 02:01 porkll