paru 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/lib/paru.rb +2 -2
- data/lib/paru/error.rb +2 -2
- data/lib/paru/filter.rb +69 -70
- data/lib/paru/filter/alignment.rb +7 -7
- data/lib/paru/filter/ast_manipulation.rb +39 -39
- data/lib/paru/filter/attr.rb +30 -32
- data/lib/paru/filter/block.rb +7 -7
- data/lib/paru/filter/block_quote.rb +8 -7
- data/lib/paru/filter/bullet_list.rb +6 -5
- data/lib/paru/filter/citation.rb +23 -23
- data/lib/paru/filter/cite.rb +19 -18
- data/lib/paru/filter/code.rb +23 -22
- data/lib/paru/filter/code_block.rb +20 -19
- data/lib/paru/filter/definition_list.rb +14 -13
- data/lib/paru/filter/definition_list_item.rb +17 -17
- data/lib/paru/filter/div.rb +19 -18
- data/lib/paru/filter/document.rb +56 -42
- data/lib/paru/filter/emph.rb +5 -4
- data/lib/paru/filter/empty_block.rb +17 -0
- data/lib/paru/filter/empty_inline.rb +21 -0
- data/lib/paru/filter/header.rb +22 -21
- data/lib/paru/filter/horizontal_rule.rb +5 -7
- data/lib/paru/filter/image.rb +10 -4
- data/lib/paru/filter/line_block.rb +9 -0
- data/lib/paru/filter/line_break.rb +5 -12
- data/lib/paru/filter/link.rb +21 -20
- data/lib/paru/filter/list.rb +16 -16
- data/lib/paru/filter/list_attributes.rb +31 -18
- data/lib/paru/filter/markdown.rb +62 -42
- data/lib/paru/filter/math.rb +46 -48
- data/lib/paru/filter/meta.rb +15 -16
- data/lib/paru/filter/meta_blocks.rb +8 -7
- data/lib/paru/filter/meta_bool.rb +5 -4
- data/lib/paru/filter/meta_inlines.rb +9 -8
- data/lib/paru/filter/meta_list.rb +5 -4
- data/lib/paru/filter/meta_map.rb +30 -29
- data/lib/paru/filter/meta_string.rb +5 -4
- data/lib/paru/filter/meta_value.rb +13 -11
- data/lib/paru/filter/node.rb +125 -122
- data/lib/paru/filter/note.rb +19 -11
- data/lib/paru/filter/null.rb +5 -7
- data/lib/paru/filter/ordered_list.rb +18 -17
- data/lib/paru/filter/para.rb +12 -11
- data/lib/paru/filter/plain.rb +11 -10
- data/lib/paru/filter/quoted.rb +17 -16
- data/lib/paru/filter/raw_block.rb +18 -18
- data/lib/paru/filter/raw_inline.rb +21 -21
- data/lib/paru/filter/small_caps.rb +5 -4
- data/lib/paru/filter/soft_break.rb +5 -12
- data/lib/paru/filter/space.rb +5 -11
- data/lib/paru/filter/span.rb +17 -16
- data/lib/paru/filter/str.rb +17 -16
- data/lib/paru/filter/strikeout.rb +5 -4
- data/lib/paru/filter/strong.rb +10 -0
- data/lib/paru/filter/subscript.rb +5 -4
- data/lib/paru/filter/superscript.rb +5 -4
- data/lib/paru/filter/table.rb +28 -27
- data/lib/paru/filter/table_row.rb +13 -13
- data/lib/paru/filter/target.rb +14 -14
- data/lib/paru/filter/version.rb +19 -0
- data/lib/paru/pandoc.rb +18 -13
- data/lib/paru/pandoc_options.yaml +14 -1
- data/lib/paru/selector.rb +152 -148
- metadata +9 -5
- data/lib/paru/filter/string.rb +0 -9
data/lib/paru/filter/note.rb
CHANGED
@@ -1,17 +1,25 @@
|
|
1
|
+
# Note [Block]
|
1
2
|
module Paru
|
2
|
-
|
3
|
+
module PandocFilter
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
require_relative "./inline"
|
6
|
+
require_relative "./block"
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
class Note < Inline
|
9
|
+
def has_block?
|
10
|
+
true
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
def has_inline?
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
# Although Note is defined to be inline, often it will act like a block
|
18
|
+
# element.
|
19
|
+
def can_act_as_both_block_and_inline?
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
16
23
|
end
|
24
|
+
end
|
17
25
|
end
|
data/lib/paru/filter/null.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
+
# OrderedList ListAttributes [[Block]]
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
4
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./list"
|
5
|
+
require_relative "./list_attributes"
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
class OrderedList < List
|
8
|
+
attr_accessor :list_attributes
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
def initialize contents
|
11
|
+
@list_attributes = ListAttributes.new contents[0]
|
12
|
+
super contents[1]
|
13
|
+
end
|
14
|
+
|
15
|
+
def ast_contents
|
16
|
+
[
|
17
|
+
@list_attributes.to_ast,
|
18
|
+
super
|
19
|
+
]
|
20
|
+
end
|
13
21
|
|
14
|
-
def ast_contents
|
15
|
-
[
|
16
|
-
@list_attributes.to_ast,
|
17
|
-
super
|
18
|
-
]
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
22
|
end
|
23
|
+
end
|
23
24
|
end
|
data/lib/paru/filter/para.rb
CHANGED
@@ -1,16 +1,17 @@
|
|
1
|
+
# Para [Inline]
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./block"
|
5
|
+
|
6
|
+
class Para < Block
|
7
|
+
def initialize contents
|
8
|
+
super contents, true
|
9
|
+
end
|
4
10
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
11
|
+
def has_inline?
|
12
|
+
true
|
13
|
+
end
|
9
14
|
|
10
|
-
def has_inline?
|
11
|
-
true
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
15
|
end
|
16
|
+
end
|
16
17
|
end
|
data/lib/paru/filter/plain.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
|
+
# Plain [Inline]
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./block"
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
class Plain < Block
|
7
|
+
def initialize contents
|
8
|
+
super contents, true
|
9
|
+
end
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
11
|
+
def has_inline?
|
12
|
+
true
|
13
|
+
end
|
14
14
|
end
|
15
|
+
end
|
15
16
|
end
|
data/lib/paru/filter/quoted.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
+
# Quoted QuoteType [Inline]
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./inline"
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
class Quoted < Inline
|
7
|
+
QUOTE_TYPE = ["SingleQuote", "DoubleQuote"]
|
7
8
|
|
8
|
-
|
9
|
+
attr_accessor :quote_type
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
def initialize contents
|
12
|
+
@quote_type = contents[0]
|
13
|
+
super contents[1]
|
14
|
+
end
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
16
|
+
def ast_contents
|
17
|
+
[
|
18
|
+
@quote_type,
|
19
|
+
super
|
20
|
+
]
|
21
|
+
end
|
22
22
|
end
|
23
|
+
end
|
23
24
|
end
|
@@ -1,25 +1,25 @@
|
|
1
|
+
# RawBlock Format String
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./block"
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
class RawBlock < Block
|
7
|
+
attr_accessor :format, :string
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
9
|
+
def initialize(contents)
|
10
|
+
@format, @string = contents
|
11
|
+
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
def to_ast
|
14
|
+
[
|
15
|
+
@format,
|
16
|
+
@string
|
17
|
+
]
|
18
|
+
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
20
|
+
def has_string?
|
21
|
+
true
|
22
|
+
end
|
24
23
|
end
|
24
|
+
end
|
25
25
|
end
|
@@ -1,30 +1,30 @@
|
|
1
|
+
# RawInline Format String
|
1
2
|
module Paru
|
2
|
-
|
3
|
+
module PandocFilter
|
3
4
|
|
4
|
-
|
5
|
+
require_relative "./inline"
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
class RawInline < Inline
|
8
|
+
attr_accessor :format, :string
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
10
|
+
def initialize contents
|
11
|
+
@format, @string = contents
|
12
|
+
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
def ast_contents
|
15
|
+
[
|
16
|
+
@format,
|
17
|
+
@string
|
18
|
+
]
|
19
|
+
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
def has_string?
|
22
|
+
true
|
23
|
+
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
25
|
+
def has_inline?
|
26
|
+
false
|
27
|
+
end
|
29
28
|
end
|
29
|
+
end
|
30
30
|
end
|
@@ -1,16 +1,9 @@
|
|
1
|
+
# SoftBreak
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./empty_inline"
|
4
5
|
|
5
|
-
|
6
|
-
def initialize contents
|
7
|
-
super []
|
8
|
-
end
|
9
|
-
|
10
|
-
def has_inline?
|
11
|
-
false
|
12
|
-
end
|
13
|
-
end
|
6
|
+
class SoftBreak < EmptyInline
|
14
7
|
end
|
8
|
+
end
|
15
9
|
end
|
16
|
-
|
data/lib/paru/filter/space.rb
CHANGED
@@ -1,15 +1,9 @@
|
|
1
|
+
# Space
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./empty_inline"
|
4
5
|
|
5
|
-
|
6
|
-
def initialize contents
|
7
|
-
super []
|
8
|
-
end
|
9
|
-
|
10
|
-
def has_inline?
|
11
|
-
false
|
12
|
-
end
|
13
|
-
end
|
6
|
+
class Space < EmptyInline
|
14
7
|
end
|
8
|
+
end
|
15
9
|
end
|
data/lib/paru/filter/span.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
+
# Span Attr [Inline]
|
1
2
|
module Paru
|
2
|
-
|
3
|
+
module PandocFilter
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
require_relative "./inline"
|
6
|
+
require_relative "./attr"
|
6
7
|
|
7
|
-
|
8
|
-
|
8
|
+
class Span < Inline
|
9
|
+
attr_accessor :attr
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
def initialize contents
|
12
|
+
@attr = Attr.new contents[0]
|
13
|
+
super contents[1]
|
14
|
+
end
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
16
|
+
def ast_contents
|
17
|
+
[
|
18
|
+
@attr.to_ast,
|
19
|
+
super
|
20
|
+
]
|
21
|
+
end
|
22
22
|
end
|
23
|
+
end
|
23
24
|
end
|
data/lib/paru/filter/str.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
+
# Str String
|
1
2
|
module Paru
|
2
|
-
|
3
|
-
|
3
|
+
module PandocFilter
|
4
|
+
require_relative "./inline"
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
class Str < Inline
|
7
|
+
def initialize value
|
8
|
+
@string = value
|
9
|
+
end
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
def ast_contents
|
12
|
+
@string
|
13
|
+
end
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
def has_string?
|
16
|
+
true
|
17
|
+
end
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
19
|
+
def has_inline?
|
20
|
+
false
|
21
|
+
end
|
22
22
|
end
|
23
|
+
end
|
23
24
|
end
|