kilt

Abstraction layer for template engines
0.1.1 released
jeromegn/kilt
152 13 2
Jerome Gravel-Niquet

Kilt

Generic templating interface for Crystal.

Goal

Simplify developers' lives by abstracting template rendering for multiple template languages.

Supported

| Language | File extensions | Required libraries | | -------- | --------------- | ------------------ | | ECR | .ecr | none (part of the stdlib) | | Slang | .slang | slang |

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.embed and Kilt.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"
require "slang" # if you want to use Slang templates, for instance

# 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 = String.build do |__kilt_io__|
  Kilt.embed "path/to/template.slang"
end

puts str # => <compiled template>

Contributing

Please contribute your own "adapter" if you create a template language for Crystal that's not yet supported here!

  1. Fork it ( https://github.com/jeromegn/kilt/fork )
  2. Create your feature branch (git checkout -b my-awesome-template-language)
  3. Commit your changes (git commit -am 'Add my-awesome-template-language')
  4. Push to the branch (git push origin my-awesome-template-language)
  5. Create a new Pull Request

Contributors

  • jeromegn Jerome Gravel-Niquet - creator, maintainer
kilt:
  github: jeromegn/kilt
  version: ~> 0.1.1
License MIT
Crystal none

Authors

Dependencies 0

Development Dependencies 1

  • slang
    {'github' => 'jeromegn/slang'}

Dependents 17

Show all 17 dependents
Last synced .
search fire star recently