将默认字体大小单位改为EM,而不是REM。
现在在GrapesJS编辑器里,我们有一些字体大小的“REM”。我认为它们应该放在“EM”单元,因为如果我们想在现有页面中嵌入编辑器,可能会遇到字体大小的问题——比如当父字体大小设置为非默认大小时(例如 ':root { font-size: 10px }')。 https://i.imgur.com/Vzoa5y9.png
artf
是的,我觉得你说得对,你想创造一个PR吗?
lyczos
好的,我待会儿会做的:)
已收录 3,464 个 GitHub 问题 — 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。
找到 23 个问题
🔍 inactive现在在GrapesJS编辑器里,我们有一些字体大小的“REM”。我认为它们应该放在“EM”单元,因为如果我们想在现有页面中嵌入编辑器,可能会遇到字体大小的问题——比如当父字体大小设置为非默认大小时(例如 ':root { font-size: 10px }')。 https://i.imgur.com/Vzoa5y9.png
artf
是的,我觉得你说得对,你想创造一个PR吗?
lyczos
好的,我待会儿会做的:)
大家好 我们正在开发一个通讯应用,使用 grapesjs 作为邮件编辑器,通讯预设为 plguin 和一些自定义更改。我们把HTML存储在数据库里,我注意到有些模板用editor.setComponents方法加载起来非常慢。 我尝试通过导入加载演示页面的模板,虽然加载几乎是瞬间完成的,但我注意到新闻通讯演示页面出现了一个奇怪的问题(https://grapesjs.com/demo-newsletter-editor.html)。如果在导入HTML模板前选择组件,加载时间会长得多(从0.5秒到5秒不等)。 插入一些日志后,我发现骨干“设置”方法被更多地调用。大多数是“添加”模型被重复使用,但也有很多“变换样式”的模型。但我有点迷...
artf
这会告诉你如何发现性能问题 https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/
artf
你好@iggolob能举个模板示例和具体步骤来重现问题吗(说的是选择组件时速度变慢)?
iggolob
你好@artf 新闻通讯演示页面可用于重现该期刊(https://grapesjs.com/demo-newsletter-editor.html)。 作为模板,你可以使用演示页面的预设HTML集。只需从导出模板选项复制 HTML 即可。 现在如果你导入那个模板,应该几乎可以立刻完成。但如果你选择任何组件,无论是图片、文本、单元还是表格,尝试导入时都会明显花很长时间,比如几秒钟。 希望这些信息足够,我也可以尝试做个视频,展示步骤。
我觉得可能是没有检查是否真的是被丢到画布上的图像? 请看这两个链接,获取最小复刻版本。 https://codesandbox.io/s/jlqpl2kj95(投放区设为1,随便把任何方块放到画布上,资产模态就会打开) https://codesandbox.io/s/k2roqjk20r(投放区设置为0,投放方块不会打开资产模态)
@artf,有没有办法显示目标元素的名称? 
artf
目前还没处理,但我会接受PR(我觉得可能需要创建一个新命令来处理徽章)
版本 0.14.40点击“继续”选择“您已成功注册!”头部(sqh-header)将“Give 10 and Get 10”与下方文字之间拖拽 sqh 头块sqh-头在图层管理器中视觉上显示在Give $10头上方,但在Give $10头下方将 sqh 头拖回“Rewards Dashboard”下方的“form-component” 内sqh-header 在“奖励仪表盘”上方的视觉效果上出现,但在图层部分下方 演示版没能重现这个bug,我也搞不清楚问题出在哪里。尝试了多个版本的葡萄,每次都会出现这个bug。 用Chrome在 https://jsfiddle.net/00salmon/ocbxqm91/ 上测试过
artf
看起来问题是因为你的 JSON 里有不同的空“textnode”。你如何获得这种结构?
00salmon
嗨,@artf, 谢谢你指出这一点。JSON 来自一个内部示例,包含更多组件,缺失的位一定被转换成了空的文本节点。 我已经移除了 jsfiddle 里的空 textnodes,但似乎仍然遇到“sqh 头”落错位置的问题。还有其他线索吗? 干杯
artf
请用清理后的 JSON 更新现场演示
嘿,@artf, 如以下[task](https://github.com/artf/grapesjs/issues/1236)所述,我构建了一个ckeditor 5,它能配合GrapesJS,但部分功能表现不如预期。 项目符号和数字点创建时没有问题,但加粗、斜体和链接选项则不行。 你能不能看看这个——为了赏金? 祝你有美好的一天。 编辑:自定义版本不再必要,因为修复已经在最新版本里了。我用的是@ckeditor/ckeditor5-editor-inline构建版本。
FrciSmrci
你好,@artf,谢谢你的回复。 自定义构建不再必要,因为修复已包含在最新的[版本](https://github.com/ckeditor/ckeditor5/releases/tag/v11.1.1)中。我用的是@ckeditor/ckeditor5-editor-inline构建版本。 我会去看看BountySource试试。:)
FrciSmrci
@Unsigno 代码应该是一个可以在 GrapesJS 中提供的新插件,比如 [grapesjs-plugin-ckeditor](https://github.com/artf/grapesjs-plugin-ckeditor),只是这个插件应该支持 ckeditor5(grapesjs-plugin-ckeditor5)。 @gabrigcl已经开发了上述插件的大部分内容,你可以在这个[任务](https://github.com/artf/grapesjs/issu...
artf
你好@FrciSmrci我不能说这是我的优先事项,但你可以考虑一下 https://www.bountysource.com/teams/grapesjs 开悬赏,看看有没有人能帮你看看。 顺便说一句,我更倾向于和原版 CKEditor 5 集成,而不是某个分支
有没有办法动态调整画布大小?比如不使用设备管理器,而是像面板或组件那样拖拽宽度? 谢谢
jvillena
@artf和@shlomoko,我会一点点解释这个步骤。首先,我需要用Jquery,但你也可以用其他库,或者在GrapesJS引擎里集成。我当时想让它对引擎透明。 1)我在主索引HTML中,除了iframe外,有两个隐藏的div元素,而grapesJS在运行时生成:第一个称为“设备分辨率”的部分显示与该屏幕尺寸兼容的设备分辨率。第二区包含: ——排水沟 ——当排水沟被压时,左右两侧的垂直杆包裹车身 以下代码是所使用的样式表: 2)当用户点击设备屏幕图标时,我显示的是处理程序...
artf
不@shlomoko,画布不能调整尺寸,但我很乐意看到PR的说明(可能用和分镜一样的逻辑)
jvillena
你好@artf,我刚刚实现了一个调整画布条大小,但我不知道有没有办法刷新高亮边框的位置。请看视频:http://recordit.co/jKlppYg2dD GJS 徽章 GJS-工具栏 此致敬礼。
你好, 我觉得有个关于元素ID属性生成的bug。 修改元素样式时,元素的 id 属性值会自动生成并添加到 HTML 中,HTML 在代码编辑器中可以看到。然后在设置中使用 ID 编辑器指定自定义 id 时,id 属性值会正确更新。但是,一旦该 ID 值被清除,自动生成的值就不再应用到元素的 id 属性上。相反,id 被设置为空字符串(即 'id=“”') 我在想这是否和ID特质有关,它不把id设为空,而是在清除时设置成空字符串。 谢谢。
maxtacco
另外,如果是这样,最好在组件配置中设置默认的“空值”策略。例如,'emptyValue: “”“或 'emptyValue: null',或者 'emptyValue: () => {}'。
你好, 有没有办法设置 grapesjs 编辑器,让为 HTML 内容生成的 CSS 带有命名空格?换句话说,如何避免编辑器中为创建/编辑内容定义的样式规则泄露到网站页面的其他部分? 以我的网站为例,用户可以编辑页面的大部分内容,但不能全部编辑——其余部分、HTML 内容和 CSS 由服务器动态生成(这是一个 Rails + Angular 网站)。 我发现如果我用带列的行,grapesjs 编辑器生成的 CSS 会有一个“行”类的定义(例如 “.row { ... }”)。不过,我用的是一个CSS库,它为“行”类提供了自己的定义,所以grapesjs的定义和我全站CSS的定义冲突了。 感谢大家对这个问题的任何帮助和建议!
danfitz36
你觉得可以直接在 Grapejs 生成的所有类名前缀吗?如果不是用.row,而是用.grape-row之类的(我可能会把前缀设为变量),你大多能得到@tomichal想要的效果。
artf
实际上,你可以在新选择器上添加一个监听器,并在上面添加一个前缀 “''js const 前缀 = 'myprefix-'; editor.on('selector:add', selector => { const name = selector.get('name'); 如果 (selector.get('type') === 编辑器。SelectorManager.Selector.TYPE_CLASS && name.indexOf(前缀) !== 0) { sele...
devmohitagarwal
你好, 想做沙盒设计的人可以试试导出的CSS前缀,我们也有同样的使用场景,采取了Sas的方式。 为此,我使用了sass.js(https://github.com/medialize/sass.js/) 步骤:将css字符串与你的自定义类一起包裹。比如说MyCustomClass。从上述库运行 sass.compile,将 scss 转换为 css,后者已与 gaten() 类沙箱化, 这样你就不会遇到冲突的问题。 这个回答是从另一个问题中复制来的。#2363
你好,Artur, 首先,葡萄真是太棒了! 目前我正在尝试弄清楚如何创建一个带有按钮的盘状结构,这个按钮可以打开新视图,就像方块和图层管理器按钮那样。 我想在那个新视图里渲染我自己的一组物品。我看的是你用来打开那些视图的代码,但它是用管理器来渲染这些物品的。而且这些代码的作用也有些模糊。 如果能有更多关于这个主题的文献资料就太好了。
daniel-farina
熟悉GrapeJS的一个好习惯是尝试复制块管理器,自己创建一个。你可以通过编辑下面的文件来实现这一点。一个很好的例子是复制 src/blockmanagerand 命名为 src/sectionmanager,然后把所有名称从 BlockManager 重命名为 SectionManager。看看代码,行数不多。 然后你需要编辑以下文件才能让它正常工作: src/编辑/index.js ` SectionManager: em.get('SectionManager'),...
Moikapy
嘿,我也在考虑做类似的事情,发现了这里。 想知道是否有任何文档进一步解释创建新视图的过程。
artf
你好,@RuudH谢你的建议,我希望很快能发布更多关于这个论点的内容。目前,我只能建议你检查这些面板使用的命令(例如:[开放方块](https://github.com/artf/grapesjs/blob/dev/src/commands/view/OpenBlocks.js))