gmd 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in gmd.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,7 @@
1
+ gmd
2
+ ===
3
+
4
+ What is it?
5
+ -----------
6
+
7
+ gmd is a small command-line utility to easily generate fancy HTML from Markdown.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/gmd ADDED
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ #encoding: utf-8
3
+ require 'optparse'
4
+ require 'gmd'
5
+
6
+ usage = <<USAGE
7
+ Usage: gmd <options> <file>
8
+
9
+ Options
10
+ -l, --layout=<file> Use <file> as a layout template
11
+ -o, --output=<file> Save output to <file> instead
12
+ of using source file name with
13
+ .html extenstion
14
+
15
+ -h, --help Show this help message
16
+
17
+ USAGE
18
+
19
+ script_name = File.basename($0)
20
+ layout = nil
21
+ output_file = nil
22
+
23
+ ARGV.options do |o|
24
+ o.program_name = script_name
25
+
26
+ o.on("-l", "--layout=FILE", String) do |file|
27
+ layout = Gmd::choose_file_from_paths(Gmd::get_layout_paths(file))
28
+ abort "no such layout: #{file}" if layout.nil?
29
+ end
30
+
31
+ o.on("-o", "--output=FILE", String) do |file|
32
+ output_file = file
33
+ end
34
+
35
+ o.on_tail("-h", "--help") { puts usage; exit }
36
+
37
+ o.parse!
38
+ end
39
+
40
+ file = ARGV.first
41
+
42
+ unless file
43
+ puts usage
44
+ exit
45
+ end
46
+
47
+ layout = Gmd::default_layout unless layout
48
+
49
+ output_file = file.gsub(/\.(md|markdown)\z/, '') + '.html' unless output_file
50
+
51
+ locals = {}
52
+
53
+ # output = Tilt.new(file).render(self, locals)
54
+ # Use redcarpet here directly
55
+ output = Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(File.read(file))
56
+ output = Tilt.new(layout).render(self, locals) { output } if layout
57
+
58
+ File.open(output_file, "w") { |f| f.write(output) }
data/gmd.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "gmd/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "gmd"
7
+ s.version = Gmd::VERSION
8
+ s.authors = ["MOZGIII"]
9
+ s.email = ["mike-n@narod.ru"]
10
+ s.homepage = ""
11
+ s.summary = %q{gmd is a small command-line utility to easily generate fancy HTML from Markdown.}
12
+ s.description = %q{gmd is a small command-line utility to easily generate fancy HTML from Markdown.}
13
+
14
+ s.rubyforge_project = "gmd"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ # s.add_runtime_dependency "rest-client"
24
+ s.add_runtime_dependency "redcarpet"
25
+ s.add_runtime_dependency "tilt"
26
+ end
@@ -0,0 +1,74 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4
+ <script src="http://yandex.st/highlightjs/6.1/highlight.min.js"></script>
5
+ <link rel="stylesheet" href="http://yandex.st/highlightjs/6.1/styles/default.min.css">
6
+ <style>
7
+ /*
8
+ Some simple Github-like styles.
9
+ */
10
+ body{
11
+ font-family: helvetica, arial, freesans, clean, sans-serif;
12
+ color: #333;
13
+ background-color: #fff;
14
+ border: none;
15
+ line-height: 1.5;
16
+ margin: 2em 3em;
17
+ text-align:left;
18
+ }
19
+ pre{
20
+ background-color: #eee;
21
+ padding: 10px;
22
+ -webkit-border-radius: 5px;
23
+ -moz-border-radius: 5px;
24
+ border-radius: 5px;
25
+ overflow: auto;
26
+ }
27
+ code{
28
+ background-color: #eee;
29
+ padding: 1px 3px;
30
+ -webkit-border-radius: 2px;
31
+ -moz-border-radius: 2px;
32
+ border-radius: 2px;
33
+ }
34
+ li p{
35
+ margin: 0.3em;
36
+ }
37
+ li{
38
+ list-style-type: disc;
39
+ }
40
+ a:link, a:visited{
41
+ color: #33e;
42
+ text-decoration: none;
43
+ }
44
+ a:hover{
45
+ color: #00f;
46
+ text-shadow:1px 1px 2px #ccf;
47
+ text-decoration:underline;
48
+ }
49
+ h1{
50
+ color: #999;
51
+ font-weight: bold;
52
+ }
53
+ h2{
54
+ border-bottom: 1px dotted #aaa;
55
+ margin-bottom: 1em;
56
+ color: #333;
57
+ }
58
+ h3{
59
+ color: #666;
60
+ }
61
+ .shadow{
62
+ -webkit-box-shadow:0 5px 15px #000;
63
+ -moz-box-shadow:0 5px 15px #000;
64
+ box-shadow:0 5px 15px #000;
65
+ }
66
+ </style>
67
+ <script type="text/javascript">
68
+ hljs.initHighlightingOnLoad();
69
+ </script>
70
+ </head>
71
+ <body>
72
+ <%= yield %>
73
+ </body>
74
+ </html>
@@ -0,0 +1,3 @@
1
+ module Gmd
2
+ VERSION = "1.0.0"
3
+ end
data/lib/gmd.rb ADDED
@@ -0,0 +1,36 @@
1
+ require "gmd/version"
2
+ require "tilt"
3
+ require "redcarpet"
4
+ require "erb"
5
+
6
+ module Gmd
7
+ class << self
8
+
9
+ def get_layout_paths(file)
10
+ [
11
+ file,
12
+ "layout/#{file}",
13
+ "layouts/#{file}",
14
+ "~/.gmd/#{file}",
15
+ File.join(defalut_layouts_dir, file),
16
+ ]
17
+ end
18
+
19
+ def choose_file_from_paths(paths)
20
+ paths.map { |p| File.expand_path(p) }.find { |p| File.exist?(p) }
21
+ end
22
+
23
+ def default_layouts_dir
24
+ File.join(
25
+ File.dirname(__FILE__),
26
+ "gmd",
27
+ "templates"
28
+ )
29
+ end
30
+
31
+ def default_layout
32
+ default_layouts_dir + "/default.html.erb"
33
+ end
34
+
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gmd
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - MOZGIII
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: redcarpet
16
+ requirement: &82953420 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *82953420
25
+ - !ruby/object:Gem::Dependency
26
+ name: tilt
27
+ requirement: &82953060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *82953060
36
+ description: gmd is a small command-line utility to easily generate fancy HTML from
37
+ Markdown.
38
+ email:
39
+ - mike-n@narod.ru
40
+ executables:
41
+ - gmd
42
+ extensions: []
43
+ extra_rdoc_files: []
44
+ files:
45
+ - .gitignore
46
+ - Gemfile
47
+ - README.md
48
+ - Rakefile
49
+ - bin/gmd
50
+ - gmd.gemspec
51
+ - lib/gmd.rb
52
+ - lib/gmd/templates/default.html.erb
53
+ - lib/gmd/version.rb
54
+ homepage: ''
55
+ licenses: []
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project: gmd
74
+ rubygems_version: 1.8.12
75
+ signing_key:
76
+ specification_version: 3
77
+ summary: gmd is a small command-line utility to easily generate fancy HTML from Markdown.
78
+ test_files: []