Scalatags
typedef
Our great sponsors
Scalatags | typedef | |
---|---|---|
3 | 1 | |
739 | 1 | |
0.9% | - | |
5.6 | 9.4 | |
13 days ago | 6 months ago | |
Scala | C++ | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Scalatags
-
Second-Guessing the Modern Web
Nowadays I highly recommend HTML embedding libraries directly in the programming language. E.g. ScalaTags https://com-lihaoyi.github.io/scalatags/ or (my own) https://github.com/yawaramin/dream-html
Yes, you give up the ability of designers and frontend-only people to easily work with the HTML templates. But in exchange you get quite a lot.
- DSL for generating HTML in Java
typedef
-
Second-Guessing the Modern Web
I've run into this same issue when developing a DSL for generating language bindings and doing data serialization. Not having compile-time type safety is such a pain.
So I'm extending the language to feature statically typed string templates as well. It currently targets (generates) C++, but I'll add other language targets in the future.
It's still a work in progress but I just flipped the repository public in case you want to follow along as I work: https://github.com/dpemmons/typedef
What are some alternatives?
monadic-html - Tiny DOM binding library for Scala.js
dream-html - Generate HTML markup from your OCaml Dream backend server
Binding.scala - Reactive data-binding for Scala
scala-scraper - A Scala library for scraping content from HTML pages
xs4s - XML Streaming for Scala including FS2/cats support
Hepek - Typesafe HTML templates and static site generator in pure Scala
xyz-jphil-luvml - Luvml is a way to Love Html (and XML). It is a Html DSL compatible with normal Java and Javascript (using JSweet v3)