paru 1.0.3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/paru/filter/caption.rb +5 -2
- data/lib/paru/filter/document.rb +2 -2
- data/lib/paru/filter/figure.rb +65 -0
- data/lib/paru/filter/node.rb +2 -1
- data/lib/paru/filter.rb +3 -2
- data/lib/paru/pandoc_options.yaml +6 -2
- data/lib/paru.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce1af248bd31832347d50dff797e9923dd00a9792b29141bac379927c4f899ba
|
4
|
+
data.tar.gz: dbc4097ab13bce4d35823ab60735e3cf1b03da672877db46379ed7c68b704ffe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 960314d21f9d12868a0da353e52ef31a268ac2b0e325a50d3524decd37cdd0c79cbcbc73ee9f4fa653cf2cc47212c9950bf99bd6ff6ec7d37ddbceeaae3cfe64
|
7
|
+
data.tar.gz: 563954aac6be4ade3d6f24296364ed28ff0cfcd8c3f9fcde56e74ebc31b3e1517f325acf2bd70d49815b3f892797b46d98eca39e31559641d203f8b57bf63209
|
data/lib/paru/filter/caption.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2020 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2020, 2023 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -17,12 +17,15 @@
|
|
17
17
|
# along with Paru. If not, see <http://www.gnu.org/licenses/>.
|
18
18
|
#++
|
19
19
|
require_relative "./block.rb"
|
20
|
+
require_relative "./inner_markdown.rb"
|
20
21
|
require_relative "./short_caption.rb"
|
21
22
|
|
22
23
|
module Paru
|
23
24
|
module PandocFilter
|
24
|
-
# A table's caption, can contain an optional short caption
|
25
|
+
# A table or figure's caption, can contain an optional short caption
|
25
26
|
class Caption < Block
|
27
|
+
include InnerMarkdown
|
28
|
+
|
26
29
|
attr_accessor :short
|
27
30
|
|
28
31
|
# Create a new Caption based on the contents
|
data/lib/paru/filter/document.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017, 2020 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2020, 2023 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -36,7 +36,7 @@ module Paru
|
|
36
36
|
|
37
37
|
# The current pandoc type version
|
38
38
|
# @see https://hackage.haskell.org/package/pandoc-types
|
39
|
-
CURRENT_PANDOC_VERSION = [1,
|
39
|
+
CURRENT_PANDOC_VERSION = [1, 23]
|
40
40
|
|
41
41
|
# Each file that is being filtered by pandoc is represented by a root
|
42
42
|
# Document. It is the root node of the AST of the document in the file.
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright 2023 Huub de Beer <Huub@heerdebeer.org>
|
3
|
+
#
|
4
|
+
# This file is part of Paru
|
5
|
+
#
|
6
|
+
# Paru is free software: you can redistribute it and/or modify
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
|
+
# (at your option) any later version.
|
10
|
+
#
|
11
|
+
# Paru is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
# GNU General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU General Public License
|
17
|
+
# along with Paru. If not, see <http://www.gnu.org/licenses/>.
|
18
|
+
#++
|
19
|
+
require_relative "./block.rb"
|
20
|
+
require_relative "./attr.rb"
|
21
|
+
require_relative "./caption.rb"
|
22
|
+
require_relative "./inner_markdown.rb"
|
23
|
+
|
24
|
+
module Paru
|
25
|
+
module PandocFilter
|
26
|
+
# A Figure node consisting of an attribute object, a caption, and a list of Block nodes.
|
27
|
+
class Figure < Block
|
28
|
+
include InnerMarkdown
|
29
|
+
|
30
|
+
# A Figure node has an attribute object
|
31
|
+
#
|
32
|
+
# @!attribute attr
|
33
|
+
# @return [Attr]
|
34
|
+
#
|
35
|
+
# @!attribute caption
|
36
|
+
# @return Caption
|
37
|
+
attr_accessor :attr, :caption
|
38
|
+
|
39
|
+
# Create a new Figure node based on the contents
|
40
|
+
#
|
41
|
+
# @param contents [Array]
|
42
|
+
def initialize(contents)
|
43
|
+
@attr = Attr.new contents[0]
|
44
|
+
@caption = Caption.new contents[1]
|
45
|
+
super contents[2]
|
46
|
+
end
|
47
|
+
|
48
|
+
# Create an AST representation of this Figure node.
|
49
|
+
def ast_contents()
|
50
|
+
[
|
51
|
+
@attr.to_ast,
|
52
|
+
@caption.to_ast,
|
53
|
+
super
|
54
|
+
]
|
55
|
+
end
|
56
|
+
|
57
|
+
# Has this Figure node Blocks as children?
|
58
|
+
#
|
59
|
+
# @return [Boolean] true
|
60
|
+
def has_block?
|
61
|
+
true
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/paru/filter/node.rb
CHANGED
@@ -68,6 +68,7 @@ module Paru
|
|
68
68
|
require_relative './table_foot.rb'
|
69
69
|
require_relative './row.rb'
|
70
70
|
require_relative './cell.rb'
|
71
|
+
require_relative './figure.rb'
|
71
72
|
|
72
73
|
# Inline level nodes
|
73
74
|
require_relative './cite.rb'
|
@@ -386,7 +387,7 @@ module Paru
|
|
386
387
|
# Only using first block node (paragraph?)
|
387
388
|
if is_inline?
|
388
389
|
temp_doc = temp_doc.children.first
|
389
|
-
|
390
|
+
|
390
391
|
if not temp_doc.children.all? {|node| node.is_inline?}
|
391
392
|
raise Error.new "Cannot replace the inline level node represented by '#{self.markdown}' with markdown that converts to block level nodes: '#{markdown}'."
|
392
393
|
end
|
data/lib/paru/filter.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017, 2022 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2022, 2023 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -22,7 +22,7 @@ require_relative "./filter/metadata.rb"
|
|
22
22
|
|
23
23
|
module Paru
|
24
24
|
# Paru filter is a wrapper around pandoc's JSON api, which is based on
|
25
|
-
# {pandoc-types}[https://hackage.haskell.org/package/pandoc-types-1.
|
25
|
+
# {pandoc-types}[https://hackage.haskell.org/package/pandoc-types-1.23/docs/Text-Pandoc-Definition.html].
|
26
26
|
# Pandoc treats block elements and inline elements differently.
|
27
27
|
#
|
28
28
|
# Pandoc's block elements are:
|
@@ -44,6 +44,7 @@ module Paru
|
|
44
44
|
"TableBody",
|
45
45
|
"Row",
|
46
46
|
"Cell",
|
47
|
+
"Figure",
|
47
48
|
"Caption",
|
48
49
|
"Div",
|
49
50
|
"Null"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017, 2022 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2022, 2023 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -17,7 +17,7 @@
|
|
17
17
|
# along with Paru. If not, see <http://www.gnu.org/licenses/>.
|
18
18
|
# See http://pandoc.org/README.html for an overview of all options
|
19
19
|
#++
|
20
|
-
# In order as listed on http://pandoc.org/MANUAL.html (version
|
20
|
+
# In order as listed on http://pandoc.org/MANUAL.html (version 3)
|
21
21
|
#####
|
22
22
|
# General options:
|
23
23
|
#####
|
@@ -96,6 +96,7 @@ ascii: true
|
|
96
96
|
reference_links: true
|
97
97
|
reference_location: "block"
|
98
98
|
markdown_headings: "atx"
|
99
|
+
list_tables: true
|
99
100
|
atx_headers: true
|
100
101
|
top_level_division: "section"
|
101
102
|
number_sections: true
|
@@ -109,7 +110,10 @@ id_prefix: ""
|
|
109
110
|
title_prefix: ""
|
110
111
|
css: [""]
|
111
112
|
reference_doc: ""
|
113
|
+
split_level: 1
|
114
|
+
chunk_template: ""
|
112
115
|
epub_cover_image: ""
|
116
|
+
epub_title_page: true
|
113
117
|
epub_metadata: ""
|
114
118
|
epub_embed_font: ""
|
115
119
|
epub_chapter_level: 1
|
data/lib/paru.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paru
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Huub de Beer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Control pandoc with Ruby and write pandoc filters in Ruby
|
14
14
|
email: Huub@heerdebeer.org
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/paru/filter/emph.rb
|
43
43
|
- lib/paru/filter/empty_block.rb
|
44
44
|
- lib/paru/filter/empty_inline.rb
|
45
|
+
- lib/paru/filter/figure.rb
|
45
46
|
- lib/paru/filter/header.rb
|
46
47
|
- lib/paru/filter/horizontal_rule.rb
|
47
48
|
- lib/paru/filter/image.rb
|
@@ -117,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
118
|
- !ruby/object:Gem::Version
|
118
119
|
version: '0'
|
119
120
|
requirements: []
|
120
|
-
rubygems_version: 3.
|
121
|
+
rubygems_version: 3.4.1
|
121
122
|
signing_key:
|
122
123
|
specification_version: 4
|
123
124
|
summary: Paru is a ruby wrapper around pandoc
|