metadown 0.9.0 → 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/.travis.yml +10 -0
- data/lib/metadown.rb +8 -0
- data/lib/metadown/renderer.rb +9 -0
- data/lib/metadown/version.rb +2 -1
- metadata +10 -9
data/.travis.yml
ADDED
data/lib/metadown.rb
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
require "metadown/renderer"
|
|
2
2
|
require "metadown/version"
|
|
3
3
|
|
|
4
|
+
# This module namespaces everything in the gem. It's also where the factory
|
|
5
|
+
# #render method lives.
|
|
4
6
|
module Metadown
|
|
5
7
|
|
|
8
|
+
# This struct is what gets returned from a call to #render.
|
|
9
|
+
#
|
|
10
|
+
# It has two attributes, one for the metadata, and one for the rendered
|
|
11
|
+
# output.
|
|
6
12
|
Data = Struct.new(:metadata, :output)
|
|
7
13
|
|
|
14
|
+
# The render method is a convenient factory. It parses some text via our
|
|
15
|
+
# Renderer class and Redcarpet's own class, and gives us a Data back.
|
|
8
16
|
def render(text)
|
|
9
17
|
renderer = Metadown::Renderer.new
|
|
10
18
|
markdown = Redcarpet::Markdown.new(renderer)
|
data/lib/metadown/renderer.rb
CHANGED
|
@@ -2,7 +2,14 @@ require 'redcarpet'
|
|
|
2
2
|
require 'yaml'
|
|
3
3
|
|
|
4
4
|
module Metadown
|
|
5
|
+
# This class is our own flavor of Redcarpet. It grabs out
|
|
6
|
+
# all the metadata before letting the rest of Redcarpet do
|
|
7
|
+
# all the work.
|
|
5
8
|
class Renderer < Redcarpet::Render::HTML
|
|
9
|
+
|
|
10
|
+
# This hook is provided to us by Redcarpet. We get access
|
|
11
|
+
# to the whole text before anything else kicks off, which
|
|
12
|
+
# means we can snag out the YAML at the beginning.
|
|
6
13
|
def preprocess(full_document)
|
|
7
14
|
full_document =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)/m
|
|
8
15
|
@metadata = YAML.load($1) if $1
|
|
@@ -10,6 +17,8 @@ module Metadown
|
|
|
10
17
|
$' or full_document
|
|
11
18
|
end
|
|
12
19
|
|
|
20
|
+
# This accessor lets us access our metadata after the
|
|
21
|
+
# processing is all done.
|
|
13
22
|
def metadata
|
|
14
23
|
@metadata || {}
|
|
15
24
|
end
|
data/lib/metadown/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: metadown
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -13,7 +13,7 @@ date: 2012-01-23 00:00:00.000000000 Z
|
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: redcarpet
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2152680980 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2152680980
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2152680120 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2152680120
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: rake
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2152679680 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2152679680
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: yard
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &2152679160 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,7 +54,7 @@ dependencies:
|
|
|
54
54
|
version: '0'
|
|
55
55
|
type: :development
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *2152679160
|
|
58
58
|
description: This gem gives you a custom markdown parser that allows you to prefix
|
|
59
59
|
the markdown itself with YAML metadata.
|
|
60
60
|
email:
|
|
@@ -65,6 +65,7 @@ extra_rdoc_files: []
|
|
|
65
65
|
files:
|
|
66
66
|
- .gitignore
|
|
67
67
|
- .rvmrc
|
|
68
|
+
- .travis.yml
|
|
68
69
|
- .yardopts
|
|
69
70
|
- Gemfile
|
|
70
71
|
- LICENSE
|