frankendoc
Version:
bringing documents alive
46 lines (33 loc) • 1.06 kB
text/coffeescript
_ = require 'underscore'
class
constructor: ( = {}) ->
.line_break ?= '\r\n'
.multiline_arg = settings.docs.multiline_arg
.code_block = settings.docs.code_block ? .code_block
read: (doc) ->
= []
doc
code: (doc) ->
return doc unless .code_block?
code = ''
while (match = .code_block.exec doc)?
code += match[1] + .line_break
code
tokenize: (doc) -> doc.split .line_break
read_lines: (lines) -> for line in lines
?
add: (line) -> .push
name: line.trim()
args: []
read_multiline_arg: (line) ->
is_token = .multiline_arg?.test line
return unless is_token or ?
return = '' if is_token and not ?
return += line + .line_break if not is_token
return
add_multiline_arg: ->
_.last()?.multiline_arg =
= undefined
true