slim-lang-loader

webpack loader for slim => html => js

Usage no npm install needed!

<script type="module">
  import slimLangLoader from 'https://cdn.skypack.dev/slim-lang-loader';
</script>

README

slim-lang-loader

This is a webpack loader to transform slim files into HTML, and then load that HTML into Javascript. This is "true blue" slim, using the ruby program's CLI executable.

The resulting HTML does not have any boiler added - it can be full HTML documents or just partials / fragments.

The code here is a modified version of coffee-loader.

howto

  1. Make sure the slim gem is installed and there is a slimrb executable available.

  2. Install this into your project: npm install --save slim-lang-loader (or yarn add -D slim-lang-loader)

  3. Add hook to webpack.config.js (make sure to put this above any loader that expects javascript or coffeescript input):

    {test: /\.slim$/, loader: ['slim-lang-loader']},
    

    Also, add .slim to the list of extensions:

    resolve: {
      extensions: ['.js", <etc>, ".slim"]
    },
    
  4. load templates from javascript:

     var file = require("html-loader!./test.slim");
     alert(file); // this will be a html string that auto-reloads 
    

slim options

You can pass Slim options to slimrb using following syntax:

loader: [
  {
    loader: 'slim-lang-loader',
    options: {
      slimOptions: {
        'disable_escape': true
      }
    }
  }
]