Nearly Perfected Mystique


    1.4.0 • Public • Published

    Not fully complete, but still a huge time saver. Tested on dozens of files that only needed minor touch ups after conversion.


    npm install -g html2coffeekup

    Command Line Synopsys

    html2coffeekup test/simple.html

    Example Output (for above usage)

    doctype TODO
    html ->
      head ->
        title 'A simple test page'
        style type: 'text/css', '.foo {\n        color: red\n      }'
      body '.awesome', ->
        div '#root.super.special', ->
          comment 'This page is rapidly becoming not-so-simple'
          h1 'A simple test page'
          p ->
            text 'With some awesome text, and a'
            a href: '', 'link'
            text '.'
          p '#paragraph_2', ->
            text 'And here is an image:'
            img src: 'fake/source', title: 'not really'
            text 'As well as a disabled select:'
            select disabled: 'disabled', ->
              option 'Oh boy!'
          script type: 'text/javascript', 'console.log("Hello there");\n        console.log("How\'s it going?");'

    Full Command Line Usage

    html2coffeekup [options] <html-file>
    --prefix=<string>   Prepends a string to each element function call
    --no-prefix         Disables prefix (default)
    --selectors         Output css-selectors for id and classes (default)
    --no-selectors      Disables output of css-selectors for id and classes
    --export[=<name>]   Wraps the output in a Node.js style export
    --no-export         Disables wrapping the output in an export (default)

    See "Supported options" below for additional details.

    Public API

    convert(html, stream, [options], [callback])

    html must be a string.

    stream is a "Writable Stream".

    options is an optional hash. See next section for details.

    callback is optional and passed (error) if something goes wrong.

    Supported options:

    • prefix prepends a string to the begining of each element functional call. (default: '')

    For example, using the prefix @ would result in @body ->.

    • selectors is a boolean to toggle emitting classes and ids as a first argument to element functions as a selector string (default: true).

    For example, when true you get div '#id.cls1.cls2. When false you get div id: "id", class: "cls1 cls2"

    • exports is a boolean or a string name. When truthy, wraps the output in a Node.js style function export. (default: false).

    When true you get module.exports = ->. When a "foo" you get = ->

    Example REPL Session

    coffee> {convert} = require('html2coffeekup')
    { convert: [Function] }
    coffee> convert '<a href="">Github</a>', process.stdout, -> console.log 'done!'
    a href: '', 'Github'




    npm i html2coffeekup

    DownloadsWeekly Downloads






    Last publish


    • brandonbloom