Better HTML 项目教程
better-htmlBetter HTML for Rails项目地址:https://gitcode.com/gh_mirrors/be/better-html
项目介绍
Better HTML 是一个用于 Rails 应用的 gem,旨在通过添加 HTML 感知的 ERB 解析来改进 HTML 模板。这个 gem 替换常规的 ERB 解析,使得模板在将 Ruby 数据插入 HTML 时更加智能,通过运行时检查确保数据的安全性。
项目快速启动
安装
首先,将 better_html
添加到你的 Gemfile 中:
gem 'better_html'
然后运行 bundle install
来安装 gem。
配置
在 config/initializers/better_html.rb
文件中进行全局配置:
BetterHtml.configure do |config|
config.allow_single_quoted_attributes = false
end
使用
在你的 ERB 模板中,使用 better_html
提供的功能来确保 HTML 的安全性。例如:
<div><%= value -%></div>
应用案例和最佳实践
案例:HTML 安全性检查
在开发过程中,使用 RSpec 来确保所有的 ERB 模板都是可解析的:
require "rails_helper"
RSpec.describe "BetterHtml" do
it "does assert that all html erb templates are parseable" do
erb_glob = Rails.root.join("app", "views", "**", "[*htm*html*htm.erb*html.erb*html+*.erb]")
Dir[erb_glob].each do |filename|
data = File.read(filename)
expect { BetterHtml::BetterErb::ErubiImplementation.new(data, filename:).validate }.not_to raise_exception
end
end
end
最佳实践
- 始终使用
better_html
进行 HTML 模板的安全性检查。 - 在配置中禁用单引号属性,以确保 HTML 的一致性和安全性。
典型生态项目
相关项目
- Shopify/better-html: 主项目,提供 HTML 感知的 ERB 解析。
- Nokogiri: 一个强大的 HTML 和 XML 解析库,常与
better_html
一起使用来处理复杂的 HTML 结构。 - Rails: 本项目的主要运行环境,提供 Ruby 的 Web 开发框架。
通过结合这些项目,可以构建出更加健壮和安全的 Web 应用。
better-htmlBetter HTML for Rails项目地址:https://gitcode.com/gh_mirrors/be/better-html