ReActionView
A new ActionView-compatible ERB engine with modern DX - re-imagined with Herb::Engine.
Seamless integration of Herb's HTML-aware ERB rendering engine into Rails applications.
Compatible with .html.erb, but with modern enhancements:
HTML validation, better error feedback, a developer-friendly debug mode, and more!
## Installation
Add to your Rails application:
```bash
bundle add reactionview
rails generate reactionview:install
```
## Usage
ReActionView provides two ways to use enhanced template processing:
1. **Native `.html.herb` templates** - Automatically processed with `Herb::Engine`.
2. **Intercept `.html.erb` templates** - Enable in config to process all HTML+ERB templates with Herb.
### Configuration
```ruby
# config/initializers/reactionview.rb
ReActionView.configure do |config|
# Intercept .html.erb templates to use Herb::Engine
# config.intercept_erb = true
# Enable debug mode
config.debug_mode = Rails.env.development?
# Validation mode (:raise, :overlay, or :none) — defaults to :raise in test, :overlay otherwise
# config.validation_mode = :overlay
end
```
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/marcoroth/reactionview. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/marcoroth/reactionview/blob/main/CODE_OF_CONDUCT.md).
## Code of Conduct
Everyone interacting in the ReActionView project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/marcoroth/reactionview/blob/main/CODE_OF_CONDUCT.md).
## License
This project is available as open source under the terms of the [MIT License](https://github.com/marcoroth/reactionview/blob/main/LICENSE.txt).