在Emacs中编写HTML5?

44

在Emacs中撰写HTML5的最佳解决方案是什么?是否有一种模式可以进行符合性检查?

5个回答

23
我最好的建议是使用nxml-mode(如果您在Linux平台上,则可作为软件包提供),并从HTML5规范页面(或其他来源,如果您有)加载html5 RelaxNG紧凑格式规范。
Nxml-mode根据relaxNG规范实时验证xml文件,并为您提供漂亮的自定义功能和方便的编写文档的功能,例如插入结束标记等。由James Clark编写,所以您知道作者了解他的XML。
如果您像系统软件包一样加载它,您可能只需将其添加到auto-mode-alist中即可开始使用。我刚刚为自动完成设置了以下两个变量,更多文档可在第一个链接中找到。
(nxml-bind-meta-tab-to-complete-flag t)
(nxml-slash-auto-complete-flag t)

当它被加载时,只需加载所需的文件并指定html5模式的模式位置,通过菜单保存其位置,然后您就可以开始了。在我提供的链接中还有更多关于nxml-mode的文档链接。


1
但是HTML5不是XML。您有两个选择,使用具有适当语法的HTML5或使用具有HTML5语法的XML(即XHTML)。在第一种解决方案中,代码 <input type = text name = foo required> 是正确的,但XML方式是 <input type ="text" name ="foo" required ="required"/> - Daniel Hernández
5
我认为 nxml-mode 非常优秀,以至于我选择使用 HTML5 XML 语法,只是为了能够用 nxml-mode 进行编辑和验证。 - Geoff
6
好的,我应该如何“加载HTML5 RelaxNG紧凑格式规范”? - Michael Paulukonis
我们如何运行这个模式?我已经将文件包含在我的路径中并编辑了我的.emacs文件。 - Flame of udun
您没有提供有关如何在Emacs上下文中“加载html5 RelaxNG紧凑格式规范”的任何信息(链接已失效)。 html5-schema软件包声称“添加用于nXML的HTML5模式”。一个完全有效的HTML 5文件的第二行,<html lang="en">被标记为无效。我错过了什么? - Benilda Key

20

+1,那个软件包使它变得非常简单;只需git clone,并在.emacs中添加三个语句。 - unhammer

7
一种更易安装的解决方案可能是web-mode。它可以很好地与HTML5配合使用,不需要你跳过XHTML的障碍。
JavaScript和CSS块的工作方式就像你希望的那样。
它还包括处理常见模板语言(如php、erb、handlebars等)的能力。
请访问http://web-mode.org了解更多详情。它至少在MELPA上可用作一个软件包。

我尝试了Web模式,但感到非常失望。它甚至无法自动关闭标签或提供基本HTML模式提供的简单属性创建建议。然而,作为Emacs的新手可能也起到了一定作用。 - Flame of udun
1
如果您键入“</”,Web模式将自动为您关闭正确的标签。 - mcginniwa

0

我之前使用过nXML,但发现安装模式相当繁琐,导致我无法将其与HTML5配合使用。现在我使用web-mode。缺点是没有实时验证功能。但这没关系,因为有在线工具可以解决这个问题。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接