Coder Social home page Coder Social logo

gulp-html-extend's Introduction

gulp-html-extend NPM version Build Status Dependency Status

Make it easy to extend, include and replace your html files

master.html

<body>
    <!-- @@placeholder= content -->
    <!-- @@placeholder =footer -->
</body>

content.html

<!-- @@master  = master.html-->

<!-- @@block  =  content-->
<main>
    my content
</main>
<!-- @@close-->

<!-- @@block  =  footer-->
<footer>
    my footer
</footer>
<!-- @@close-->

output

<body>

<!-- start content -->
<main>
    my content
</main>
<!-- end content -->

<!-- start footer -->
<footer>
    my footer
</footer>
<!-- end footer -->

</body>

Features

  • Nested extending
  • Nested including

Install

$ npm install --save-dev gulp-html-extend

Syntax

@@master [=] path [jsonString]

e.g. <!-- @@master master.html {"foo":"bar"} -->

@@placeholder [=] blockName

e.g. <!-- @@placeholder footer -->

@@include [=] path [jsonString]

e.g. <!-- @@include /footer.html {"foo":"bar"} -->

@@var [=] variableName

e.g. <!-- @@var foo -->

@@block [=] blockName

e.g. <!-- @@block footer -->

@@close

You must add <!-- @@close --> at the end of every block

Usage

var gulp = require('gulp')
var extender = require('gulp-html-extend')

gulp.task('extend', function () {
    gulp.src('./*.html')
        .pipe(extender({annotations:true,verbose:false})) // default options
        .pipe(gulp.dest('./output'))

})
gulp.task('watch', function () {
    gulp.watch(['./*.html'], ['extend'])
})

...

Options

annotations [bool]

Make it false if you dont want too see <!-- start foo.html --> in output files.

verbose [bool]

Show extra info in the console.

root [string (dir path)]

To make absolute path which starts with / works.

Changelog

  • 1.2.0 Supoort multiply-lines json
  • 1.1.6 variable default value @var foo "defaultValue"
  • 1.1.4 add testing for only includings case.
  • 1.1.3 absolute path bug fix #7
  • 1.1.2 cwd bug fix #6
  • 1.1.0 Support absolute path {root: "path/relative/to/cwd"}
  • 1.0.0 No much changes
  • 0.5.0
    • @@var support for @@include
    • = is optional
  • 0.4.1 @@var bugs fixed
  • 0.4.0 @@var support for @@master
  • 0.3.2 Fix bugs of testing
  • 0.3.1 Add the verbose option {verbose: true}
  • 0.3.0 You can include another file in an included file (nested including).
  • 0.2.0 Annotations can be disabled via an option {annotations:false}
  • 0.1.3 Add including annotations.
  • 0.1.2 Include path bug fixed.
  • 0.1.0 Add @@include = foo.html support

License

MIT © Frank Fang

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.