shard-kilt/README.md
Jerome Gravel-Niquet 5f23a69c15 badge it up
2016-02-14 13:30:01 -05:00

2.1 KiB

Kilt Build Status Dependency Status devDependency Status

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