Notoriously Psychedelic Modules

    grunt-php2html

    1.0.0 • Public • Published

    grunt-php2html Build Status

    Frontend HTML generation with PHP

    Getting Started

    This plugin requires Grunt ~0.4.1 and php-cgi

    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-php2html --save-dev

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

    grunt.loadNpmTasks('grunt-php2html');

    To make this work you need the php-cgi binaray in your PATH.

    Installing php-cgi

    OSX

    The php-cgi binary can be installed via Homebrew by tapping the homebrew-php repository:

    brew tap homebrew/dupes
    brew tap homebrew/versions
    brew tap homebrew/homebrew-php
    brew install php56
    Windows

    The php-cgi binary can be installed via XAMPP. Here is how you can add the binary to your PATH: Link

    Ubuntu
    sudo apt-get install php5-cgi

    The "php2html" task

    Overview

    Use this grunt plugin to compile php files to static html. In your project's Gruntfile, add a section named php2html to the data object passed into grunt.initConfig().

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

    Options

      // relative links should be renamed from .php to .html
      processLinks: true,
      // some function to process the output 
      process: function(response,callback) {
      	callback(':-)');
      },
      htmlhint: {},
      htmlhintrc: .htmlhintrc,
      docroot: <mydocroot relative to Gruntfile.js>
      getData: {'key': 'value'}
    

    options.router

    Type: String Default value: undefined

    Use a router script.

    options.processLinks

    Type: Boolean Default value: true

    Convert links pointing to .php pages to the .html equivalent.

    options.process

    Type: Function Params: String Response text, Function Callback function Default value: undefined

    Implement your own response parser and return the processed response back to the task

    options.htmlhint

    Type: Object

    Pass a list of rules for linting the compiled HTML.

    If rules is undefined, it will use default ruleset:

    {
        'tagname-lowercase': true,
        'attr-lowercase': true,
        'attr-value-double-quotes': true,
        'doctype-first': true,
        'tag-pair': true,
        'spec-char-escape': true,
        'id-unique': true,
        'src-not-empty': true
    }
    

    options.htmlhintrc

    Type: String Default value: null

    If this filename is specified, options and globals defined therein will be used. Task and target options override the options within the htmlhintrc file. The htmlhintrc file must be valid JSON and looks something like this:

    {
      "tag-pair": true,
    }

    options.docroot

    Type: String Default value: process.cwd()

    Specify a docroot for the php Server. All php files will be served relative to this directory.

    options.port

    Type: Int Default value: 8888

    Specify a port for the php Server.

    options.getData

    Type: Object Default value: {}

    Pass data to php file using $_GET.

    options.haltOnError

    Type: Boolean Default value: true

    Set to false to write dest html files on error. Usefull for debugging.

    requestHost

    Type: String Default value: undefined

    Use this option to tweak the request host passed to the .php script as SERVER_NAME and SERVER_PORT.

    Usage Examples

    grunt.initConfig({
      php2html: {
        default: {
          options: {
            // tweak $_SERVER['SERVER_NAME'] & $_SERVER['SERVER_HOST'] 
            requestHost: 'mydomain.com:8080',
            // relative links should be renamed from .php to .html
            processLinks: false,
            process: function(response,callback) {
              // do some funy stuff with the reponse text
              var parsedResponse = ...
              // send it back to the task
              callback(parsedResponse);
            }
          },
          files: [
            {expand: true, cwd: 'app/', src: ['*.php'], dest: 'build', ext: '.html' }
          ]
        }
      },
    })

    Release History

    • 2014-25-04   v0.1.10  Added getData option to pass variables to php script
    • 2013-11-09   v0.1.7   Added docroot option
    • 2013-11-07   v0.1.6   Fixed some path issues on windows
    • 2013-11-04   v0.1.5   Added HTMLHint support
    • 2013-08-09   v0.1.4   First release

    Install

    npm i grunt-php2html

    DownloadsWeekly Downloads

    76

    Version

    1.0.0

    License

    none

    Unpacked Size

    148 kB

    Total Files

    47

    Last publish

    Collaborators

    • bezoerb