grunt-captain-hook

Change css and js links within a html file

Usage no npm install needed!

<script type="module">
  import gruntCaptainHook from 'https://cdn.skypack.dev/grunt-captain-hook';
</script>

README

grunt-captain-hook

Insert css and Javascript links into html file

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-captain-hook --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-captain-hook');

The "captain_hook" task

Overview

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

grunt.initConfig({
  captain_hook: {
    your_target: {
      // Target-specific file lists and/or options go here.
      jsFiles: ['path/to/js/files.js'],
      cssFiles: ['path/to/css/files.css'],
      targetHtml: ['path/to/html/files.html']
    }
  }
})

Then in your html pages add the directives on where to place css and javascript.

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <!-- begin:css -->
    <!-- end:css -->
  </head>
  <body>
    <!-- begin:js -->
    <!-- end:js -->
  </body>
</html>

After running the task it will modify the html file with links and script tags inserted between the directives.

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <!-- begin:css -->
    <link rel="stylesheet" type="text/css" herf="reset.css">
    <link rel="stylesheet" type="text/css" herf="awesome_styling.css">
    <!-- end:css -->
  </head>
  <body>
    <!-- begin:js -->
    <script src="jquery.js"></script>
    <script src="awesome_stuff.js"></script>
    <!-- end:js -->
  </body>
</html>

Options

options.cwd

Type: String Default value: .

Path to where to reference all files from (maybe be used for a CDN later).

options.nonull

Type: Boolean Default value: true

Will return a file path even if it doesn't exist locally. Especially helpful for external links.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

0.1.0 - Initial release.

0.2.0 - Added ability to use arrays in the parameters

0.3.0 - Added ability to use globbing patterns