Module: Docify

Extended by:
Format, Markup
Defined in:
lib/docify.rb,
lib/docify/style.rb,
lib/docify/format.rb,
lib/docify/markup.rb,
lib/docify/version.rb,
lib/docify/document.rb,
lib/docify/template.rb

Defined Under Namespace

Modules: Format, Markup Classes: Document, Template

Constant Summary collapse

TEMPLATE =
"<!DOCTYPE html> \n<html>\n  <head>\n    <title>{{title}}</title>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /> \n    {{css}}\n  </head>\n  <body>\n    <div id=\"content\">{{content}}</div>\n  </body>\n</html>\n"
CSS =
"<style>\n  body {\n    background: #f8f8f8;\n    font: 13.34px helvetica,arial,freesans,clean,sans-serif;\n  }\n  \n  body * { line-height: 1.4em; }\n  \n  a { color: #4183C4; text-decoration: none; }\n  a:hover { text-decoration: underline; }\n  \n  #content {\n    width: 800px; margin: 0px auto;\n  }\n  \n  p {\n    margin: 1em 0!important;\n    line-height: 1.5em!important;\n  }\n  \n  h1, h2, h3, h4, h5, h6 { border: 0 !important; }\n  \n  h1 {\n    font-size: 170%!important;\n    border-top: 4px solid #AAA!important;\n    padding-top: .5em!important;\n    margin-top: 1.5em!important;\n  }\n  \n  h1:first-child { border-top: none !important; }\n  \n  h2 { \n    font-size: 150% !important;\n    margin-top: 1.5em !important;\n    border-top: 4px solid #E0E0E0 !important;\n    padding-top: .5em !important;\n  }\n  \n  h3 { margin-top: 1em !important; }\n  \n  pre, code {\n    font: 12px 'Bitstream Vera Sans Mono','Courier',monospace;\n  }\n  \n  pre {\n    margin: 1em 0;\n    font-size: 12px;\n    background-color: #eee;\n    border: 1px solid #ddd;\n    padding: 5px;\n    line-height: 1.5em;\n    color: #444;\n    overflow: auto;\n    -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n  }\n  \n  code {\n    font-size: 12px !important;\n    background-color: ghostWhite !important;\n    color: #444 !important;\n    padding: 0 .2em !important;\n    border: 1px solid #DEDEDE !important;\n  }\n  \n  pre code {\n    padding: 0!important;\n    font-size: 12px!important;\n    background-color: #EEE!important;\n    border: none!important;\n  }\n</style>\n"
FORMATS =
[:markdown, :textile, :rdoc]
VERSION =
'1.0.7'.freeze

Class Method Summary collapse

Methods included from Markup

markdown, rdoc, textile

Methods included from Format

detect_format, valid_format?

Class Method Details

.new(path, format = :markdown) ⇒ Docify::Document

Alias for Docify::Document.new



17
18
19
# File 'lib/docify.rb', line 17

def new(path, format=:markdown)
  Docify::Document.new(path, format)
end

.render(text, format = :markdown) ⇒ Object

Simply renders content for the markup



23
24
25
26
27
28
29
# File 'lib/docify.rb', line 23

def render(text, format=:markdown)
  if Docify::FORMATS.include?(format.to_sym)
    Docify::Markup.send(format.to_sym, text)
  else
    raise ArgumentError, "Invalid markup: #{format}."
  end
end

.render_auto(text, filename) ⇒ Object

Simple render content with auto-detection from filename It returns the original text if markup language was not detected or not supported



35
36
37
38
39
40
41
42
43
# File 'lib/docify.rb', line 35

def render_auto(text, filename)
  format = detect_format(filename)
  
  if Docify.valid_format?(format)
    Docify::Markup.send(format, text)
  else
    text
  end
end

.valid_format?(f) ⇒ Boolean

Returns true if given format is supported



25
26
27
# File 'lib/docify/format.rb', line 25

def self.valid_format?(f)
  f.nil? ? false : FORMATS.include?(f.to_sym)
end