Home

Awesome

grunt-zetzer

Grunt plugin for Zetzer. More documentation in the Zetzer repository.

After installing the module with npm, load the task with:

grunt.loadNpmTasks('grunt-zetzer');

Examples

In your project's Gruntfile, add a section named zetzer to the data object passed into grunt.initConfig().

grunt.initConfig({
  zetzer: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
})

All possible options are listed in the main Zetzer project.

Grunt's rules for defining target and destination files apply, but care needs to be taken to make sure each input page maps to a single output file.

Custom Options

In this example, doT's it object is used to specify the location of script files and the main title of all pages; and the location of partials and templates is given. All pages in pages/ will be compiled to .html files in tmp.

grunt.initConfig({
  zetzer: {
    main: {
      options: {
        env: {
          title: "Zetzer",
        },
        partials: "content",
        templates: "templates"
      },
      files: [
        {
          expand: true,
          cwd: "src/pages/",
          src: "**/*.html",
          dest: "tmp",
          ext: ".html",
          flatten: true
        }
      ]
    },
  }
})

Contributing

You can run the test suite with npm test.

Each new feature ough to have full test coverage. We usually start by writing a fixture which is a pair of two files: the one to process (the fixture) and it's expected output. Fixtures are html or md files in spec/fixtures. Any partials and templates required by this fixture should be stored in spec/partials and spec/templates, respectively. The expected output of a fixture should be put in spec/expected.

Actual features should be implemented in zetzer as this is just Grunt "front-end".