gulp-copycat
Copy values inside source tag blocks to destination tag blocks
Table of Contents
Usage
Install:
npm install --save-dev gulp-copycat
Add some source tags in your source file:
<!-- ccs:<name> -->Everything here will be copied<!-- /ccs:<name> -->
Add some destination blocks in your destination file:
<!-- ccd:<name> -->Everything here will be replaced by value in source file<!-- /ccd:<name> -->
name
name of the tag.
ccs:
("copy cat source") is a predefined source tag.
/ccs:
end of source tag block
ccd:
("copy cat destination") is a predefined destination tag.
/ccd:
end of destination tag block
API
copycat(options)
options
Type: object
-
{Boolean} filterSourceFiles (true) - Filter out files containing source tags from pipe stream. Set to false if you want to keep both source tag files and destination tag files in pipe stream.
-
{Boolean} keepSourceTags (false) - Keep source tags in source file -- (
<!-- ccs:<name> -->
and<!-- /ccs:<name> -->
)"options.filterSourceFiles" must be set to false
-
{Boolean} keepSourceTagValues (false) - Keep value between source tags in source file -- (
<!-- ccs:<name> -->
VALUES<!-- /ccs:<name> -->
)"options.filterSourceFiles" must be set to false
-
{Boolean} keepDestTags (false) - Keep destination tags in destination file -- (
<!-- ccd:<name> -->``<!-- /ccd:<name> -->
)
It is possible to add custom source- and destination tags. This can be useful for when you need to add tags to files that has different comment syntax than HTML:
options.tags
Type: object
var options = tags: source: begin: /regex-here/ // beginning of source tag: <!-- ccs:name --> end: /regex-here/ // end of source tag: <!-- /ccs:name --> dest: begin: /regex-here/ // beginning of destination tag: <!-- ccd:name --> end: /regex-here/ // end of destination tag: <!-- /ccd:name --> ;
Examples
Example 1: Add values from one html file to another
source.html:
... <!-- ccs: foo -->Foo<!-- /ccs: foo --> <!-- ccs: bar -->Bar<!-- /ccs: bar -->
destination.html:
... Have some <!-- ccd: foo -->(watch me disappear)<!-- /ccd: foo --> with <!-- ccd:bar--><!-- /ccd:bar-->
gulpfile.js:
var gulp = ;var copycat = ;var concat = ; gulp;
Result (/build/result.html):
... Have some Foo with Bar
Example 2: Add source tags for javascript comment syntax:
constants.js
var version = /*-- ccs:version --*/123/*-- /ccs:version --*/;
destination.html:
<!-- ccd:version --><!-- /ccd:version --> ...
gulpfile.js:
var gulp = ;var copycat = ;var concat = ; var sourceRegexBegin: /\/\*--\s*ccs:\s*\s*--\*\//givar sourceRegexEnd: /\/\*--\s*\/ccs:\s*\s*--\*\//gi var options = tags: source: begin: sourceRegexBegin // beginning of source tag: /*-- ccs:name --*/ end: sourceRegexEnd // end of source tag: /*-- /ccs:name --*/ gulp;
Result (/build/index.html):
1.2.3 ...
Changelog
0.0.4
Fixed issue where destination file would become one character less in length
0.0.3
Added README
0.0.2
Initial version added to GitHub