PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

GrapesJS 问题

已收录 3,464 个 GitHub 问题 — 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。

找到 3,464 个问题

#60472024年8月7日作者 danstarns1 个回答
0 个反应

释放流程

GrapesJS 仓库构建工件发布过程中存在以下问题: 工件应直接来自开发者的机器。- https://github.com/GrapesJS/grapesjs/pull/6041 该过程没有文档 我们有多个软件包要发布,也需要完善的文档。该工单旨在标准化并记录 GrapesJS OSS 仓库的发布流程,使其与行业标准工作流程保持一致。这项工作将确保所有贡献者的一致性、可靠性和易用性。

GJS Helper

GrapesJS发布流程的问题——特别是对开发者机器的依赖以及缺乏文档——凸显了对标准化、自动化和透明工作流程的需求。采用行业标准的CI/CD(持续集成/持续交付)流水线将解决这些问题,确保所有贡献者的一致性、可靠性和易用性。 根本原因分析 核心问题源于缺乏正式化、自动化且文档化的发布流程。依赖单个开发者机器来构建和发布工件会带来若干风险: 不一致: 不同的开发环境可能导致构建输出的差异。 可重复性问题: 很难保证构建能被完全复制。 安全风险: 直接从本地机器发布可能会暴露...

#60462024年8月7日作者 danstarns2 个回答
0 个反应

提交钩子

当前代码库依赖提交钩子来执行某些规则和检查。该票旨在: 移除现有的提交钩子。 配置配置配置执行器以执行这些检查,并在开发分支或拉取请求中报告问题。 将这些职责转交给CI跑者将简化开发流程,确保问题能够以集中方式持续被发现和解决。

danstarns

相关报道: https://github.com/GrapesJS/grapesjs/issues/6045

GJS Helper

移除客户端提交钩子并将其责任转交给CI执行者的请求,是提升开发工作流程一致性和可靠性的合理策略。虽然这是一种通用的软件开发实践,并非专属于GrapesJS功能,但这是维护任何稳健项目(包括使用GrapesJS构建的项目)的关键方面。这种方法集中质量检查,确保所有贡献均得到统一验证,无论开发者配置如何。 第一部分:移除现有提交钩子 提交钩子通常通过两种方式配置:在.git/hooks目录内手动配置,或通过专门的工具如 Husky 用于 JavaScript 项目。 1.手动提...

#60452024年8月7日作者 danstarns1 个回答
0 个反应

线条处理,格式化

代码库目前使用过时的线条工具和格式化库。该票旨在: 升级到最新版本的线条处理工具和格式化库。 确保所有项目的线条和格式规则保持一致。 将这些工具集成到开发和CI流程中,实现自动化执法。 标准化这些工具将提升代码质量,减少错误,并创造更为统一的开发环境。

GJS Helper

标准化linting和格式化对于维护代码质量和GrapesJS代码库内的连贯开发环境至关重要。这一举措将显著提升开发者体验并减少潜在错误。以下是实现这一目标的全面方法: 1.升级到最新的打印和格式化工具 推荐工具: ESLint: 用于 linting JavaScript/TypeScript 代码。 更漂亮: 为了保持一致的代码格式。 安装/升级步骤: 首先,确保你安装了Node.js和npm/yarn。然后,更新你的 package.json 依赖。 2.确保模板和格...

#60442024年8月7日作者 danstarns2 个回答
0 个反应

Node JS LTS 版本

在整个代码库中,我们构建并关联了基于非常旧版本Node.js的依赖。 参见: https://github.com/GrapesJS/grapesjs/blob/dev/.github/workflows/publish.yml#L15 https://github.com/GrapesJS/grapesjs/blob/dev/.github/workflows/build.yml#L15 https://github.com/GrapesJS/grapesjs/discussions/5973 https://github.com/GrapesJS/grapesjs/blob/dev/CONTRIBUTING.md?plain=...

danstarns

相关报道:https://github.com/GrapesJS/grapesjs/issues/6048https://github.com/GrapesJS/grapesjs/issues/6049

GJS Helper

谢谢你举报,@danstarns。 关于Node JS LTS版本的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed...

#60402024年8月6日作者 Vampire-V4 个回答
0 个反应

无法读取未定义的属性(读取“lastComponent”)

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 127.0.6533.89(官方构建)(64 位) 可复制演示链接 描述一下那个虫子 请检查一下。select的值未定义。我在React里用过,遇到了错误异常。 /*返回所选组件的模型@return {Component|null}@public / EditorModel.prototype.getSelected = function () { return this.selected.lastComponent(); }; ![图片](https://github.com/user-attachments/assets/2eaf...

artf

@Vampire-V,请正确遵循bug问题模板。没有可复现的演示,我们无法帮你。

Aravinth-2020

### GrapesJS 版本[x] 我确认使用最新版本 GrapesJS### 你用的是什么浏览器?版本 127.0.6533.89(官方构建)(64位)### 可复制演示链接### 描述一下那个虫子请检查一下。已选值为未定义。我在React里用过,结果遇到了错误异常。/* 返回所选组件的模型 @return {组件|null} @public */ EditorModel.prototype.getSelected = 函数 () { return this.selec...

Aravinth-2020

嘿,@Vampire-V,请正确遵循漏洞问题模板。没有可复现的演示,我们无法帮你。 你能分享一下解决办法吗? 我选择开放图层管理器时也遇到同样的问题,这个问题是在我自定义左边栏面板中选择另一个页面后出现的。

#60392024年8月6日作者 Gryphonn4 个回答
3 个反应

无法设置块显示值

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬126 可复制演示链接 https://jsfiddle.net/Gryphonn/ob1pznh6/ 描述一下那个虫子 如何复现这个漏洞?选择任意单词。包装得有型。保持该词被选中。进入通用->显示我想要屏蔽。我点击屏蔽,但没有任何反应。 预期的行为是什么? 显示值必须是空的,这样我才能立即选择所需的内容。 或者它必须显示所选文本当前的实际显示值。这里是内联显示,而不是块。 目前的行为是什么? 目前我需要点击两次。 首先,点击除“屏蔽”以外的任何内容。显示字段已激活。 那我应该点击屏蔽。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面...

artf

是的,问题就在这里: https://github.com/GrapesJS/grapesjs/blob/1e3766f0060e6da502fccf9ba9eb938d5ac860bb/src/style_manager/model/PropertyFactory.ts#L267 添加一个新选项,比如“初始”,并设为默认选项,这样做合理吗?

danstarns

> 你好@Gryphonn,>我试图复现你的问题,但步骤不太清楚,请重新表述。bandicam.2024-08-08.21-07-14-667.mp4 感谢您的详细报告 🙏 看起来我们应该更好地处理默认显示,这样你就不用先切换到另一个显示器再切换回来。

danstarns

你好,@Gryphonn, 我试着重现你的问题,但步骤不太清楚,请重新表述。

#60382024年8月6日作者 dharma-glui2 个回答
0 个反应

像按钮上的Onclick事件这样的内联事件声明正在被移除

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://jsfiddle.net/6bn43a05/描述一下那个虫子 如何复现这个漏洞?为HTML标签添加点击事件 预期的行为是什么? 加载到编辑器后不应该删除该事件 目前的行为是什么? 它会从 HTML 中移除点击事件 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 同样的问题在这里报告: https://stackoverflow.com/questions/78496572/grapesjs-移除点击属性如何防止-做-做 ![截图(37)](https://github.com/user-attachmen...

artf

这是出于安全考虑,但你可以用“config.parser.optionsHtml.allowUnsafeAttr”选项禁用它(风险自负):https://github.com/GrapesJS/grapesjs/blob/819bfcf44bb23d51990eba3b4330e9932df59cde/src/parser/config/config.ts#L116

GJS Helper

你遇到的问题是, onclick 属性在加载到 GrapesJS时从 HTML 元素中被移除,这是 GrapesJSHTML净化流程中的一个有意设计的安全功能。 GrapesJS,像许多现代HTML编辑器一样,会去除潜在不安全的属性和标签,以防止跨站脚本(XSS)漏洞,并维护其组件模型的干净、可预测的DOM结构。 像 onclick、 onload、 onerror等内联事件处理程序,通常被认为是现代网页开发中的不良做法,原因在于安全性问题和关注点分离(结构用 HTML,风...

#60322024年8月3日作者 aswinkumar8632 个回答
0 个反应

图像分量支持通过拖放上传和选择视频文件

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v126 可复制演示链接 https://grapesjs.com/演示 描述一下那个虫子 如何复现这个漏洞?打开 [demo](https://grapesjs.com/demo)双击任意现有的图像组件以打开资产管理器。将视频文件拖拽到图片上传区。等待视频文件上传。点击上传的视频资源选择它。 注意: 这个问题只在拖拽时出现。视频组件也受此影响。 预期的行为是什么? 图片组件应当防止错误的文件类型选择。如果资产管理器第一步阻止上传错误文件类型,会更好。 行为准则 [X] 我同意遵守本项目的行为准则

artf

感谢@aswinkumar863报告。我很乐意合并修复的PR。

GJS Helper

你提到的问题,GrapesJS Image组件允许通过拖放上传和选择视频文件,这是默认资产管理器拖放处理程序未明确强制文件类型限制时常见的情况。虽然原生的 HTML input type="file" 元素使用 accept 属性过滤文件选择对话框,拖放操作则需要自定义验证逻辑以防止处理不需要的文件类型。 根本原因 演示中所见的默认GrapesJS资产管理器提供了基本的上传机制。当文件被拖放时,浏览器会提供对这些文件的访问。如果拖拽事件处理程序或后续上传函数没有明确的客户端...

#60242024年7月30日作者 yashvi20262 个回答
0 个反应

无法隐藏某些特定组件类型的RTE功能

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/xxoOyXO 描述一下那个虫子 https://github.com/GrapesJS/grapesjs/issues/6019 关于此点, 我想只为某一特定类型隐藏。 示例:当组件属于链接类型时隐藏 rte行为准则 [X] 我同意遵守本项目的行为准则

artf

https://github.com/GrapesJS/grapesjs/issues/6019#issuecomment-2267466020 请避免制造重复问题。

GJS Helper

问题描述了一种常见需求,即在GrapesJS中条件控制富文本编辑器(RTE),特别是防止其在某些组件类型(如“链接”组件)上激活。虽然GrapesJS会自动为标记为editable的选定组件启用RTE,但开箱即用的配置选项并不支持基于组件类型来禁用该编辑器。 根本原因 GrapesJS的内部逻辑在选中组件并被视为可编辑时,调用editor.RichTextEditor.enable()方法激活RTE。这种行为是通用的,并不固有区分RTE激活的不同组件类型。为了实现条件禁用,...

#60192024年7月26日作者 yashvi20264 个回答
0 个反应

在最新版本中无法隐藏RTE功能

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/xxoOyXO 描述一下那个虫子 如何复现这个漏洞?删除文本组件编辑文本组件 预期的行为是什么? RTE不应该被展示 目前的行为是什么? RTE被展示 当我把 grapesjs 版本改成0.20.4时,这个代码还能用,只有最新版本里不行行为准则 [X] 我同意遵守本项目的行为准则

artf

是的,'onActive'现在是异步方法,所以用'extendFnView'扩展它不够,你的代码会先于原始代码执行。 无论如何,你用一行简单的CSS也能达到同样的结果 “''CSS .gjs-rte-toolbar { 显示:无; } ```

yashvi2026

但我只想隐藏某些特定类型,比如:文本@artf

artf

你仍然可以不使用“extendFnView”来扩展视图。如[这里](https://grapesjs.com/docs/modules/Components.html#extend-parent-functions)所示,通过原型重用原始组件类型。

浏览所有主题