开发者工具 · HTML WYSIWYG 编辑器
Markdown 与 WYSIWYG:网络写作的两个答案
· 背景
html 降价 开发人员工作流程
将轻量级标记和可视化编辑作为对手动编写 HTML 的摩擦的两种响应进行比较,并在输出质量和协作方面进行权衡。
没有人愿意手动编写 HTML — 以两种方法解决的共同问题开头
很少有作者愿意为每个段落、链接和强调标记输入完整的 HTML 标签。 Markdown 和 WYSIWYG 从相反的方向减少了这种摩擦:一个公开了轻量级源语法,而另一个则允许作者操作可视文档并随后检查生成的标记。
这两种方法都无法消除转换边界。 Markdown 需要一个为方言配置的解析器,而可视化编辑器需要浏览器 DOM 和允许的输出的规则。质量取决于这些选择和审查,而不是取决于一种方法总是创建更干净或更易于访问的页面的口号。
Markdown 的受限纯文本方法 - 历史日期位于存储库证据之外
Markdown 存储带有标点符号约定的纯文本,解析器将其转换为 HTML。受约束的语法通常会产生可预测的元素,并且可以很好地处理差异。该工作簿提供了日期和起源故事,但该存储库不包含该历史的来源,因此本文避免将其重复作为已验证的事实。
可预测性取决于方言和扩展。表格、任务列表、嵌入的 HTML 和换行规则可能有所不同。单独的 `.md` 文件并不能证明哪个解析器或选项生成了页面。团队应该固定他们的转换器并测试代表性文档。
WYSIWYG 的赌注:显示结果,隐藏标记 - 回顾视觉方法及其服务对象
WYSIWYG 呈现可编辑的渲染,并让浏览器管理选择、键入和命令。 ToolAcre 使用 contenteditable 和 execCommand,然后通过狭窄的清理程序运行 innerHTML 并公开源代码。作者可以在视觉和文本视图之间移动,而无需在每次编辑期间保留尖括号。
这种便利性允许依赖于浏览器的突变。该过滤器通过映射别名、删除表示和平衡标签来减少变化,但它不会创建自定义文档模型。因此,源头检查是工作流程的一部分,而不是可选的专家屏幕。
输出质量比较 — 将 Markdown 受限、干净的 HTML 与可视化编辑器的可变输出进行对比
Markdown 的约束结构可以在禁用原始 HTML 时生成紧凑、一致的词汇。可视化编辑器输出在过滤之前可能会有更多变化,因为浏览器命令在实时树上运行。 ToolAcre 缩小了结果范围,但不同的编辑器可能会保留跨度、类或内联样式。
比较实际配置的输出,而不是类别构造型。 Markdown 扩展可以发出复杂或不安全的 HTML,而严格的可视化编辑器可以发出一小部分。任何发布不受信任的贡献的系统都必须清理呈现的 HTML,无论创作语法如何。
表现力取决于所选的 Markdown 方言和编辑器白名单
Markdown 适合标题、段落、列表、引文、代码和链接。更复杂的表格、嵌套结构或表示可能需要特定于方言的语法或嵌入的 HTML。 ToolAcre 支持许多语义文本元素,但故意排除表格、图像、样式、类和表单。
相关问题是创作方法是否代表您在目标限制下所需的内容。这两种路径都没有普遍更具表现力。 ToolAcre 的可见源代码有助于及早发现其遗漏,而 Markdown 预览和生成的 HTML 检查也应该起到同样的作用。
工作示例:比较受支持的小子集而不是通用功能奇偶校验
在两个系统中写下标题、两个段落、强调短语、三项列表和公共链接。在每个管道应用其正常策略后比较 h、p、em 或 Strong、ul、li 和 a 元素。忽略缩进和属性顺序,除非目标合同使它们变得重要。
然后测试一项不受支持的需求,例如表格或图像。 ToolAcre 不会保留它; Markdown 行为取决于解析器配置。记录拒绝或扩展要求比强制功能奇偶校验更有用。保持文本相同,这样结构差异就不会与编辑更改混淆。
这不包括什么 - 特定的 Markdown 风格、静态站点生成器或编辑器插件
此比较不涵盖特定的 Markdown 风格、静态站点生成器、插件、协作平台或版本控制策略。它也没有对速度进行基准测试,也没有为每个团队提供首选选择。这些决定取决于作者、审稿实践和出版架构。
ToolAcre 的消毒剂不是通用的安全服务。它的输出子集和沙箱改进了本地检查,但接受恶意输入的服务器仍然需要适当的基于解析器的清理程序。 Markdown 渲染还可以生成必须跨越该边界的 HTML。
要点:按作者选择,而不是按意识形态 — 总结了权衡以及 ToolAcre 的 HTML WYSIWYG 编辑器如何适合作者需要可视化编辑但仍希望查看 HTML 的情况
按作者和目的地而不是意识形态进行选择。熟悉可读的简单语法和存储库差异的编写者可能更喜欢 Markdown;需要直接视觉格式化的作家可能在所见即所得的界面中工作得更快,并且源就在附近。两者都受益于检查生成的 HTML。
当支持的语义子集适合且可见标记有价值时,请使用 ToolAcre。当源文本和确定性转换更适合时,请使用配置的 Markdown 管道。持久的做法是对审查的源进行版本控制,固定转换策略并测试最终呈现的页面。