更快地定位DOM(HTML)元素的方法(Rails)


发布者 ourjs  发布时间 1416702871315
关键字 编程技巧  开源 

问题


有很长一段时间,我都希望能够找出代码库中负责渲染DOM元素的那部分。我希望临时去掉其它团队成员添加的一些按钮。这个项目有10万行代码,并且我不太记得这个UI元素是从哪个Rails/backbone/ember视图上创建出来的。

当然grep或ack经常被用来干这个,但它们还是需要花一段时间去匹配。

注* grep和ack都是linux下查询文件/文件内容的命令。

解决方案


为了节省时间,我创建了一个在DOM元素的data-attribute中显示来源文件名和行号的插件。https://github.com/redgetan/view_inspect

现在只能在Rails下工具,但是它支持服务器端和客户端模板。

怎么使用


<li>
  <%= download_count rubygem %>
  <a href="<%= rubygem_path(rubygem) %>">
    <strong><%= rubygem %></strong>
    <%= short_info(rubygem.versions.most_recent) %>
  </a>
</li>

我们使用HTML解析器来处理这些模板。它支持大多数的模板引擎,(象 ERB, JST, Handlebars, EJS, Eco)。基本上,它使用<%= download_count rubygem %>进行标记,然后我们使用Nokogiri HTML解析器去解析输出的HTML片段的源文件,将文件:行号(file:line)信息添加到它的子结点上。然后我们返回ERB标签表达式,中止中断。

它无法在不是基于HTML的引擎上工作(像Slim和Haml)。

例子




希望这个库可以对你有所帮助。