markdown 0.2.0 → 0.3.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/Rakefile +1 -0
- data/lib/markdown.rb +4 -2
- data/lib/markdown/config.rb +7 -3
- data/lib/markdown/gen.rb +14 -2
- data/lib/markdown/wrapper.rb +9 -1
- metadata +26 -10
data/Rakefile
CHANGED
data/lib/markdown.rb
CHANGED
@@ -15,7 +15,7 @@ require 'fileutils'
|
|
15
15
|
|
16
16
|
# rubygems
|
17
17
|
|
18
|
-
require 'props' # manage properties/settings/env
|
18
|
+
require 'props' # manage properties/settings/env
|
19
19
|
|
20
20
|
class Env
|
21
21
|
def self.markdown_lib
|
@@ -24,6 +24,8 @@ class Env
|
|
24
24
|
end # class Env
|
25
25
|
|
26
26
|
|
27
|
+
require 'textutils' # text filters and helpers
|
28
|
+
|
27
29
|
# our own code
|
28
30
|
|
29
31
|
require 'markdown/config'
|
@@ -40,7 +42,7 @@ require 'markdown/gen'
|
|
40
42
|
|
41
43
|
module Markdown
|
42
44
|
|
43
|
-
VERSION = '0.
|
45
|
+
VERSION = '0.3.0'
|
44
46
|
|
45
47
|
# version string for generator meta tag (includes ruby version)
|
46
48
|
def self.banner
|
data/lib/markdown/config.rb
CHANGED
@@ -36,9 +36,9 @@ DEFAULTS = { 'libs' => [
|
|
36
36
|
'no_intra_emphasis',
|
37
37
|
'fenced_code_blocks',
|
38
38
|
'tables',
|
39
|
-
'strikethrough' ] # todo/fix: merge nested hash??
|
40
|
-
|
41
|
-
|
39
|
+
'strikethrough' ] }, # todo/fix: merge nested hash??
|
40
|
+
'filters' => [] # optional (preprocessing) text filters: e.g. comments-percent-style, skip-end-directive, etc. (see textutils gem)
|
41
|
+
}
|
42
42
|
|
43
43
|
|
44
44
|
def initialize
|
@@ -69,6 +69,10 @@ DEFAULTS = { 'libs' => [
|
|
69
69
|
def markdown_extnames
|
70
70
|
@props.fetch( 'extnames', nil )
|
71
71
|
end
|
72
|
+
|
73
|
+
def markdown_filters
|
74
|
+
@props.fetch( 'filters', nil )
|
75
|
+
end
|
72
76
|
|
73
77
|
def known_markdown_libs
|
74
78
|
# returns an array of known markdown engines e.g.
|
data/lib/markdown/gen.rb
CHANGED
@@ -16,6 +16,8 @@ module Markdown
|
|
16
16
|
|
17
17
|
class Gen
|
18
18
|
|
19
|
+
include TextUtils::Filter # include filters such as comments_percent_style, etc. (see textutils gem)
|
20
|
+
|
19
21
|
attr_reader :logger
|
20
22
|
attr_reader :opts
|
21
23
|
|
@@ -62,7 +64,15 @@ module Markdown
|
|
62
64
|
puts "*** #{inname} (#{dirname}) => #{outname} (#{(opts.output_path == '.') ? dirname : opts.output_path})..."
|
63
65
|
|
64
66
|
content = File.read( inname )
|
65
|
-
|
67
|
+
|
68
|
+
# step 1) run (optional) preprocessing text filters
|
69
|
+
Markdown.filters.each do |filter|
|
70
|
+
mn = filter.tr( '-', '_' ).to_sym # construct method name (mn)
|
71
|
+
content = send( mn, content ) # call filter e.g. include_helper_hack( content )
|
72
|
+
end
|
73
|
+
|
74
|
+
# step 2) convert light-weight markup to hypertext
|
75
|
+
content = Markdown.new( content ).to_html
|
66
76
|
|
67
77
|
|
68
78
|
## todo: add Markdown.lib_options inspect/dump to banner
|
@@ -195,10 +205,12 @@ EOS
|
|
195
205
|
logger.level = Logger::DEBUG
|
196
206
|
end
|
197
207
|
|
208
|
+
|
209
|
+
## todo: add markdown.lib options (e.g. extensions,etc)
|
198
210
|
|
199
211
|
usage =<<EOS
|
200
212
|
|
201
|
-
markdown - Lets you convert plain text documents (#{Markdown.extnames.join(', ')}) to hypertext (.html) with your Markdown engine of choice (#{Markdown.lib}).
|
213
|
+
markdown - Lets you convert plain text documents (#{Markdown.extnames.join(', ')}) to hypertext (.html) with your Markdown engine of choice (#{Markdown.lib}) and preprocessing text filters (#{Markdown.filters.join(', ')}).
|
202
214
|
|
203
215
|
#{cmd.help}
|
204
216
|
|
data/lib/markdown/wrapper.rb
CHANGED
@@ -41,6 +41,14 @@ module Markdown
|
|
41
41
|
@@config.markdown_extnames
|
42
42
|
end
|
43
43
|
|
44
|
+
def self.filters
|
45
|
+
if @@config.nil?
|
46
|
+
@@config = Config.new
|
47
|
+
end
|
48
|
+
@@config.markdown_filters
|
49
|
+
end
|
50
|
+
|
51
|
+
|
44
52
|
def self.new( content, options={} )
|
45
53
|
|
46
54
|
## todo: allow options to pass in
|
@@ -55,7 +63,7 @@ module Markdown
|
|
55
63
|
mn = @@config.markdown_to_html_method # lets you use differnt options/converters for a single markdown lib
|
56
64
|
defaults = @@config.markdown_lib_defaults ## todo/fix: use mn / converter from defaults hash?? mn no longer needed??
|
57
65
|
|
58
|
-
props = Props.new( options, 'USER', Props.new( defaults, 'SYSTEM' ))
|
66
|
+
props = Props.new( options, 'USER', Props.new( defaults, 'SYSTEM' ))
|
59
67
|
|
60
68
|
Wrapper.new( lib, mn, content, props )
|
61
69
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gerald Bauer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-06-
|
18
|
+
date: 2012-06-09 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: props
|
@@ -34,9 +34,25 @@ dependencies:
|
|
34
34
|
type: :runtime
|
35
35
|
version_requirements: *id001
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
37
|
+
name: textutils
|
38
38
|
prerelease: false
|
39
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 27
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 1
|
48
|
+
- 0
|
49
|
+
version: 0.1.0
|
50
|
+
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: kramdown
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
56
|
none: false
|
41
57
|
requirements:
|
42
58
|
- - ">="
|
@@ -48,11 +64,11 @@ dependencies:
|
|
48
64
|
- 6
|
49
65
|
version: 0.13.6
|
50
66
|
type: :runtime
|
51
|
-
version_requirements: *
|
67
|
+
version_requirements: *id003
|
52
68
|
- !ruby/object:Gem::Dependency
|
53
69
|
name: rdoc
|
54
70
|
prerelease: false
|
55
|
-
requirement: &
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
56
72
|
none: false
|
57
73
|
requirements:
|
58
74
|
- - ~>
|
@@ -63,11 +79,11 @@ dependencies:
|
|
63
79
|
- 10
|
64
80
|
version: "3.10"
|
65
81
|
type: :development
|
66
|
-
version_requirements: *
|
82
|
+
version_requirements: *id004
|
67
83
|
- !ruby/object:Gem::Dependency
|
68
84
|
name: hoe
|
69
85
|
prerelease: false
|
70
|
-
requirement: &
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
71
87
|
none: false
|
72
88
|
requirements:
|
73
89
|
- - ~>
|
@@ -78,7 +94,7 @@ dependencies:
|
|
78
94
|
- 0
|
79
95
|
version: "3.0"
|
80
96
|
type: :development
|
81
|
-
version_requirements: *
|
97
|
+
version_requirements: *id005
|
82
98
|
description: Markdown Engine Wrapper - Use Your Markdown Library of Choice
|
83
99
|
email: webslideshow@googlegroups.com
|
84
100
|
executables:
|