Herb: Powerful and seamless HTML-aware ERB parsing and tooling

2 months ago 5

Skip to content

Next-generation HTML+ERB parsing for smarter developer tooling and more.

Herb

🧩

HTML-aware

Intelligently recognizes and navigates HTML structure within ERB templates, ensuring precise parsing across interleaved markup and Ruby code.

💎

Built on Prism

Powered by Prism, Ruby's new official default parser as of Ruby 3.4. Prism is designed to be error-tolerant and is adopted by major Ruby runtimes including CRuby, JRuby, TruffleRuby.

🚑

Error-Tolerant

Designed to handle errors gracefully, it provides accurate results even when encountering syntax errors.

Engineered for Speed

Parses input fast enough to update on every keystroke, ensuring real-time responsiveness in text editors and other tools.

📏

Whitespace-Aware

Accurately preserves spacing and formatting in the parse result.

🔌

LSP-Ready

Works seamlessly with Language Server Protocols (LSP) for a better experience in modern editors.

🎯

Precise Position Tracking

Tracks precise locations down to individual character offsets for every node and token, enabling precise debugging, annotations, and diagnostics.

🌎

Works Across Languages

Native bindings for Ruby, JavaScript/TypeScript, and other high-level programming languages.

🏗️

Expanding Template Language Support

Future updates will expand beyond ERB through a unified parser and syntax tree architecture that maintains consistent APIs across different templating languages.

Read Entire Article