kilt
Version, currently 0.6.113 versions
- 0.6.1latestMar 24, 2021
- 0.6.0not indexedJun 1, 2022
- 0.5.0not indexedJun 1, 2022
- 0.4.1not indexedJun 1, 2022
- 0.4.0not indexedJun 1, 2022
- 0.3.3not indexedJun 1, 2022
- 0.3.2not indexedJun 1, 2022
- 0.3.1not indexedJun 1, 2022
- 0.3.0not indexedJun 1, 2022
- 0.2.1not indexedJun 1, 2022
- 0.2.0not indexedJun 1, 2022
- 0.1.1not indexedJun 1, 2022
- 0.1.0not indexedJun 1, 2022
github.com/jeromegn/kilt
Generic template interface for Crystal
Installation
# Add this to your shard.yml
dependencies:
kilt:
github: jeromegn/kilt
version: ~> 0.6.1Then run:
shards installshard.yml
- Crystal
< 2.0.0- License
- MIT
- Author
- Jerome Gravel-Niquet
Dependencies
Development Dependencies
README
Kilt 
Generic templating interface for Crystal.
Goal
Simplify developers' lives by abstracting template rendering for multiple template languages.
Supported out of the box
| Language | File extensions | Required libraries | Maintainer |
|---|---|---|---|
| ECR | .ecr | none (part of the stdlib) | |
| Mustache | .mustache | crustache | @MakeNowJust |
| Slang | .slang | slang | @jeromegn |
| Temel | .temel | temel | @f |
| Crikey | .crikey | crikey | @domgetter |
| Liquid | .liquid | liquid | @docelic |
| Jbuilder | .jbuilder | jbuilder | @shootingfly |
| Water | .water | water | @shootingfly |
See also: Registering your own template engine.
Installation
Add this to your application's shard.yml:
dependencies:
kilt:
github: jeromegn/kilt
# Any other template languages Crystal shard
Usage
- Kilt essentially adds two macros
Kilt.embedandKilt.file, the code is really simple. - Add template language dependencies, as listed in the support table above.
Both macros take a filename and a io_name (the latter defaults to "__kilt_io__")
Example
require "kilt"
# For slang, add:
require "kilt/slang"
# With a Class
class YourView
Kilt.file("path/to/template.ecr") # Adds a to_s method
end
puts YourView.new.to_s # => <compiled template>
# Embedded
str = Kilt.render "path/to/template.slang"
# or
str = String.build do |__kilt_io__|
Kilt.embed "path/to/template.slang"
end
puts str # => <compiled template>
Registering your own template engine
Use Kilt.register_engine(extension, embed_command) macro:
require "kilt"
module MyEngine
macro embed(filename, io_name)
# ....
end
end
Kilt.register_engine("myeng", MyEngine.embed)
This can be part of your own my-engine library: in this case it should depend
on kilt directly, or this could be a part of adapter library, like:
kilt-my-engine, which will depend on both kilt and my-engine.
Contributing
Please contribute your own "adapter" if you create a template language for Crystal that's not yet supported here!
- Fork it ( https://github.com/jeromegn/kilt/fork )
- Create your feature branch (git checkout -b my-awesome-template-language)
- Commit your changes (git commit -am 'Add my-awesome-template-language')
- Push to the branch (git push origin my-awesome-template-language)
- Create a new Pull Request
Contributors
- jeromegn Jerome Gravel-Niquet - creator, maintainer
- waterlink Oleksii Fedorov
- MakeNowJust TSUYUSATO Kitsune
- f Fatih Kadir Akın
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.6.1- Tagged
- Mar 24, 2021
- Commit
b7289f80ad06- Crystal
< 2.0.0- Indexed
- yes
Dependents
- action-controller
- fluence
- Crystal Shards
- kemal_and_lsutra_sample_app
- amber
- shards-info
- broken_crystals
- CatchUp
- invidious
- invidious
- invidious
- invidious
and 36 more
Repository
github.com/jeromegn/kilt
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 23, 2026
- Synced
- Sep 23, 2026
- Versions
- 13