Html5-boilerplate: 考虑使用HTMLLinter吗?

创建于 2016-03-03  ·  21评论  ·  资料来源: h5bp/html5-boilerplate

随着诸如WebComponents之类的新技术的兴起,随着开发人员在其项目中使用越来越多的HTML(更多的标签,更多的嵌套,更多的属性),我认为添加(并扩展)HTML Linter应该很重要。

根据我们在https://github.com/rcorp/standard-project-structure/issues/4上的研究,
HTMLhint是最好的一种。 标准的.htmlhintrc文件如何?

awaiting feedback backlog help wanted html new feature

最有用的评论

@roblarsen我们很乐意为PR贡献力量。 我们已经为规则集选择了良好的起点。 https://github.com/rcorp/standard-project-structure/issues/13

它由几个大型组织使用。 我看一下它是否与样板匹配,并且不太自以为是。 剩下的我们可以在公关本身讨论!

所有21条评论

如何选择使用的规则? 一些标准规则实际上是个人喜好。 例如:

https://github.com/yaniswang/HTMLHint/wiki/Attr-value-double-quotes都是完全有效的HTML5,我不认为此样板应该选择默认的样式。

https://github.com/yaniswang/HTMLHint/wiki/Tag-self-close都是有效的HTML5,而后者实际上是更现代的方法,因为以前的方法适用于XHTML,HTML5允许向后兼容据我所知,当从XHTML迁移到HTML5时。

https://github.com/yaniswang/HTMLHint/wiki/Attr-value-not-empty都是有效的,后者是大多数人使用的方式,但被认为是不好的方法。

这些规则中有很多是可疑的,会导致样板的某些部分被标记为错误或警告。 因此,我反对添加此内容,宁愿将此类首选项留给开发人员,而不是将其与该项目捆绑在一起。 也许在文档中添加HTML linter部分,并提供指向各种linter的链接?

@quantumpacket正如您提到的tag-self-close ,至少总有一些理由可以选择一个,而社区不是可以像样板内容那样权衡吗? 在没有理由的地方,我们只是不添加该规则。 作为参考,如果我们查看JS的所有代码样式https://github.com/rcorp/standard-project-structure/issues/6尤其是AirBNB,我们可以看到有很多规则,但是每个规则都有一个开发人员将不胜感激的推理。

我完全明白你的意思,但这只是规则。 我们没有选择的那些没有执行。 因此,这可能是一个非常宽松的方法。 和供开发人员从.htmlhintrc添加/删除规则的样板

@ gaurav21r对不起,让您流连忘返。 我认为这将是一个好主意。 (您是否想提出一个带有PR的建议?我现在会标记为该帮助想要。)

至于选择哪些值,起点将从项目本身显而易见。 在示例@quantumpacket shared的情况下,我们使用双引号,使用空属性,并且不要自行关闭。 从那里,我敢肯定人们会有意见。

@roblarsen我们很乐意为PR贡献力量。 我们已经为规则集选择了良好的起点。 https://github.com/rcorp/standard-project-structure/issues/13

它由几个大型组织使用。 我看一下它是否与样板匹配,并且不太自以为是。 剩下的我们可以在公关本身讨论!

在这个问题上有什么进展吗?

@ gaurav21r有任何更新吗? 如果否,那么还有其他人想对此采取行动吗?

@roblarsen如果碰巧@ gaurav21r无法继续,我会很乐意这样做。

@AlexxNica听起来不错。 我们一直都很乐意提供帮助。

抱歉,回复太晚了! @roblarsen @AlexxNica将尝试在15日之前做到这一点。 如果没有,将很乐意为任何人提供帮助!

别担心!

15号来了又去了! 这对任何想尝试的人都是开放的!

我们确定HTMLHint是那里的最佳选择吗?

@AlexxNica我在这方面的经验为零,所以我

在向项目中添加更多代码之前,我们必须对此有个很好的了解。 在采取任何行动之前必须确定的事情:

·是否足以证明需要实施?
·易于分发和维护吗?
·是否有人/我们对它进行了测试?
·我们看到对实际模型的真正改进吗?
·是否针对代码运行测试,以查看是否不必更改任何内容以符合分析器? (因此,用户不会在屏幕上停留过多的错误而不是其监视器可以显示的错误)
·它会长期存在吗? (我认为实现在相当长的时间内不存在的东西不是一个好主意)
·它的易用性是什么?

@roblarsen您可以考虑更改此标签吗? 我认为“ awaiting feedback ”和(也许)“ HTML ”会更合适。

我加了那些。 它仍然需要帮助,仍然是一个新功能。 我不会亲自涉及这一点,因此绝对是社区必须与之合作的东西。

我认为这里有两个问题:

  • 我们是否应该在src / dist文件夹中为用户添加.htmlhintrc
    HTMLHint实际上仅旨在用于整理完整的,已编译的HTML页面(例如,默认情况下,它检查每个文件是否具有<title>标记,因此它实际上并不适合大多数服务器端或模板语言。因此,我认为它的价值是有限的,因为许多用户正在使用Angular,React,PHP,ASP或诸如Liquid之类的模板语言,它们会产生很多错误或根本无法工作,用户可以编辑所有规则以使其不显示错误。但这会破坏包含它的目的。所有用户都需要为其IDE安装一个插件才能使用它。我只是认为没有足够的用户使用纯HTML编写网页而没有包含保证它的包含(我个人仅在编写HTML电子邮件时才使用HTMLHint-非常适合发现错误)-并且我们不包含任何JS或CSS linters / hinter配置文件。

  • 我们是否应该在构建系统中包括HTMLHint来检查错误?
    是的,我认为这可能是个好主意。 我们的构建系统当前正在使用Gulp,并且有一个要集成的NPM软件包: https

无法使用带有模板语言的html linters总是使我们无法使用它。 React则是另一回事了,因为可以使用ESLint有效地减少jsx。

Linting构建似乎对项目有利,但对最终用户却无济于事。 但是似乎总比没有好,至少它可以防止样板源偶尔出现错误。

顺便说一句,我看不出将Gulp用于此类琐碎任务的原因。 避免为棉短绒添加额外的层并直接从npm test调用它们,总是更容易,更可靠(请参见示例)。

IMO,您应该远离非标准工具。

就像您根本不使用任何验证器一样,从经验上来说,因为在Bootstrap v4-dev上,他们已切换到htmlhint,基本上没有捕获任何实际错误。

我的建议是使用官方验证程序vnu.jar,即使它需要Java。 您可以有一个包装器脚本,如果有Java,它将运行该包装器脚本。

我最近在Bootstrap中进行了类似的更改(请参阅https://github.com/twbs/bootstrap/pull/24149),因为我对我们基本上没有使用htmlhint进行验证的事实感到恼火。

不幸的是,HTMLHint不再得到积极维护(https://github.com/yaniswang/HTMLHint),正如@XhmikosR所说-存在问题,所以我投票结束这个问题。

板球+以上

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

klutchdev picture klutchdev  ·  18评论

roblarsen picture roblarsen  ·  5评论

coliff picture coliff  ·  14评论

necolas picture necolas  ·  44评论

alrra picture alrra  ·  6评论