paru 0.4.2.4 → 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.
- checksums.yaml +4 -4
- data/lib/paru/filter/caption.rb +3 -0
- data/lib/paru/filter/cell.rb +3 -0
- data/lib/paru/filter/int_value.rb +3 -0
- data/lib/paru/filter/metadata.rb +1 -1
- data/lib/paru/filter/row.rb +3 -0
- data/lib/paru/filter/table_body.rb +3 -0
- data/lib/paru/filter/table_end.rb +3 -0
- data/lib/paru/filter.rb +29 -4
- data/lib/paru/info.rb +90 -0
- data/lib/paru/pandoc.rb +10 -51
- data/lib/paru/{pandoc_options_version_2.yaml → pandoc_options.yaml} +4 -4
- data/lib/paru/selector.rb +17 -6
- data/lib/paru.rb +3 -3
- metadata +6 -6
- data/lib/paru/pandoc_options_version_1.yaml +0 -112
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d31c824836527183bdaa118455039dcb428dfaf24b48fda1415ddc09d39cb1c0
|
4
|
+
data.tar.gz: 7ce8dbcb28c40c56821352df0168952535e14682d744a039ab8e281cde529aeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9866df62f18f6f929546dcd6b697b4ed8dfc6cc9c2a3a4f9d2f0623a2f79e4fff524aaf4558c185e24527987474a7e737b4ce288662e2169a6e417f7bd931de5
|
7
|
+
data.tar.gz: 8e18948789ae07df6ee6ee0d97c33fef28db223a5dc3e37872dc443baede147ed06858c2c980b71b367b8d64da3e770b3bd608ccfefd393972a6c5937d08b998
|
data/lib/paru/filter/caption.rb
CHANGED
data/lib/paru/filter/cell.rb
CHANGED
data/lib/paru/filter/metadata.rb
CHANGED
data/lib/paru/filter/row.rb
CHANGED
data/lib/paru/filter.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2022 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -284,6 +284,11 @@ module Paru
|
|
284
284
|
end
|
285
285
|
end
|
286
286
|
|
287
|
+
@ran_before = false
|
288
|
+
@ran_after = false
|
289
|
+
instance_eval(&block) # run filter with before block
|
290
|
+
@ran_before = true
|
291
|
+
|
287
292
|
@current_node = @document
|
288
293
|
|
289
294
|
nodes_to_filter.each do |node|
|
@@ -299,6 +304,9 @@ module Paru
|
|
299
304
|
instance_eval(&block) # run the actual filter code
|
300
305
|
end
|
301
306
|
|
307
|
+
@ran_after = true
|
308
|
+
instance_eval(&block) # run filter with after block
|
309
|
+
|
302
310
|
write_document
|
303
311
|
end
|
304
312
|
|
@@ -308,8 +316,26 @@ module Paru
|
|
308
316
|
# @param selector [String] a selector string
|
309
317
|
# @yield [Node] the current node if it matches the selector
|
310
318
|
def with(selector)
|
311
|
-
@
|
312
|
-
|
319
|
+
if @ran_before and !@ran_after
|
320
|
+
@selectors[selector] = Selector.new selector unless @selectors.has_key? selector
|
321
|
+
yield @current_node if @selectors[selector].matches? @current_node, @filtered_nodes
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
# Before running the filter on all nodes, the +document+ is passed to
|
326
|
+
# the block to this +before+ method. This method is run exactly once.
|
327
|
+
#
|
328
|
+
# @yield [Document] the document
|
329
|
+
def before()
|
330
|
+
yield @document unless @ran_before
|
331
|
+
end
|
332
|
+
|
333
|
+
# After running the filter on all nodes, the +document+ is passed to
|
334
|
+
# the block to this +after+ method. This method is run exactly once.
|
335
|
+
#
|
336
|
+
# @yield [Document] the document
|
337
|
+
def after()
|
338
|
+
yield @document if @ran_after
|
313
339
|
end
|
314
340
|
|
315
341
|
# Stop processing the document any further and output it as it is now.
|
@@ -324,7 +350,6 @@ module Paru
|
|
324
350
|
exit true
|
325
351
|
end
|
326
352
|
|
327
|
-
|
328
353
|
private
|
329
354
|
|
330
355
|
# The Document node from JSON formatted pandoc document structure
|
data/lib/paru/info.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright 2022 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 "error.rb"
|
20
|
+
|
21
|
+
module Paru
|
22
|
+
# Information about pandoc
|
23
|
+
#
|
24
|
+
# @!attribute version
|
25
|
+
# @return [Array<Integer>] Pandoc's version, like [2, 18, 1]
|
26
|
+
#
|
27
|
+
# @!attribute data_dir
|
28
|
+
# @return [String] Pandoc's default data directory
|
29
|
+
#
|
30
|
+
# @!attribute scripting_engine
|
31
|
+
# @return [String] Pandoc's internal scripting engine, like "Lua 5.4"
|
32
|
+
class Info
|
33
|
+
attr_reader :version, :data_dir, :scripting_engine
|
34
|
+
|
35
|
+
# Create a new Info object
|
36
|
+
#
|
37
|
+
# @param path [String] the path to pandoc. Defaults to 'pandoc', i.e.,
|
38
|
+
# assumes it's on the environment's path.
|
39
|
+
def initialize(path = "pandoc")
|
40
|
+
begin
|
41
|
+
# Get pandoc's version information
|
42
|
+
version_string = ''
|
43
|
+
IO.popen("#{path} --version", 'r+') do |p|
|
44
|
+
p.close_write
|
45
|
+
version_string << p.read
|
46
|
+
end
|
47
|
+
|
48
|
+
# Extract the version as an array of integers, like SemVer.
|
49
|
+
@version = version_string
|
50
|
+
.match(/pandoc.* (\d+\.\d+.*)$/)[1]
|
51
|
+
.split(".")
|
52
|
+
.map {|s| s.to_i}
|
53
|
+
|
54
|
+
# Extract the data directory
|
55
|
+
@data_dir = version_string.match(/User data directory: (.+)$/)[1]
|
56
|
+
|
57
|
+
# Extract scripting engine
|
58
|
+
@scripting_engine = version_string.match(/Scripting engine: (.+)$/)[1]
|
59
|
+
rescue StandardError => err
|
60
|
+
warn "Error extracting pandoc's information: #{err.message}"
|
61
|
+
warn "Using made up values instead."
|
62
|
+
|
63
|
+
@version = @version || [2, 18]
|
64
|
+
@data_dir = @data_dir || "."
|
65
|
+
@scripting_engine = @scripting_engine || "Lua 5.4"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Get pandoc's info by key like a Hash for backwards compatability.
|
70
|
+
#
|
71
|
+
# @deprecated Use Info's getters instead.
|
72
|
+
#
|
73
|
+
# @param key [String|Symbol] the key for the information to look up.
|
74
|
+
# Info only supports keys 'version' and 'data_dir'.
|
75
|
+
# @return [Any] Information associated with the key.
|
76
|
+
# @raise [Error] for an unknown key.
|
77
|
+
def [](key)
|
78
|
+
case key
|
79
|
+
when "verion", :version
|
80
|
+
version
|
81
|
+
when "data_dir", :data_dir
|
82
|
+
data_dir
|
83
|
+
when "scripting_engine", :scripting_engine
|
84
|
+
scripting_engine
|
85
|
+
else
|
86
|
+
throw Error.new "Info does not know key '#{key}'"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
data/lib/paru/pandoc.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2022 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -21,6 +21,7 @@ require "shellwords"
|
|
21
21
|
require "yaml"
|
22
22
|
|
23
23
|
require_relative "error.rb"
|
24
|
+
require_relative "info.rb"
|
24
25
|
|
25
26
|
module Paru
|
26
27
|
# Pandoc is a wrapper around the pandoc document converter. See
|
@@ -92,8 +93,7 @@ module Paru
|
|
92
93
|
# directory. This method is typically used in scripts that use Paru to
|
93
94
|
# automate the use of pandoc.
|
94
95
|
#
|
95
|
-
# @return [
|
96
|
-
# version, such as "[2.10.1]" and the data directory, such as "/home/huub/.pandoc".
|
96
|
+
# @return [Info] Pandoc's version, such as "[2.10.1]" and the data directory, such as "/home/huub/.pandoc".
|
97
97
|
def self.info()
|
98
98
|
@@info
|
99
99
|
end
|
@@ -216,63 +216,20 @@ module Paru
|
|
216
216
|
"pandoc"
|
217
217
|
end
|
218
218
|
|
219
|
-
|
220
|
-
version_string = ''
|
221
|
-
IO.popen("#{@@pandoc_exec} --version", 'r+') do |p|
|
222
|
-
p.close_write
|
223
|
-
version_string << p.read
|
224
|
-
end
|
225
|
-
rescue StandardError => err
|
226
|
-
throw Error.new "Unable to run pandoc via command '#{@@pandoc_exec} --version': #{err.message}"
|
227
|
-
end
|
228
|
-
|
229
|
-
version = version_string
|
230
|
-
.match(/pandoc.* (\d+\.\d+.*)$/)[1]
|
231
|
-
.split(".")
|
232
|
-
.map {|s| s.to_i}
|
233
|
-
major_version = version[0]
|
234
|
-
|
235
|
-
# Pandoc version 2.7 introduced a new default data dir to comply
|
236
|
-
# with XDG Base Directory Specification
|
237
|
-
|
238
|
-
xdg_data_dir, old_data_dir = version_string.match(/User data directory: (.+)$/)[1].split(" or ")
|
239
|
-
|
240
|
-
if File.directory? xdg_data_dir then
|
241
|
-
data_dir = xdg_data_dir
|
242
|
-
elsif not old_data_dir.nil? and File.directory? old_data_dir then
|
243
|
-
# The new-style data directory does not exist, but the
|
244
|
-
# old-style does, so use the old-style data directory for
|
245
|
-
# backwards compatibility
|
246
|
-
data_dir = old_data_dir
|
247
|
-
else
|
248
|
-
# Neither data directory exists, default to the new default
|
249
|
-
data_dir = xdg_data_dir
|
250
|
-
end
|
251
|
-
|
252
|
-
@@info = {
|
253
|
-
:version => version,
|
254
|
-
:data_dir => data_dir
|
255
|
-
}
|
256
|
-
|
257
|
-
# Load the options for the appropriate major version of pandoc
|
258
|
-
if not [1, 2].include? major_version
|
259
|
-
throw Error.new "Unknown major pandoc version: '#{major_version}'. Expected the major version to be '1' or '2'. Please check the pandoc path: '#{@@pandoc_exec}'."
|
260
|
-
# defaults to version 1
|
261
|
-
major_version = 2
|
262
|
-
end
|
219
|
+
@@info = Info.new(@@pandoc_exec)
|
263
220
|
|
264
221
|
# For each pandoc command line option a method is defined as follows:
|
265
|
-
OPTIONS = YAML.load_file File.join(__dir__, "
|
222
|
+
OPTIONS = YAML.load_file File.join(__dir__, "pandoc_options.yaml")
|
266
223
|
|
267
|
-
OPTIONS.
|
224
|
+
OPTIONS.each_pair do |option, default|
|
268
225
|
if OPTIONS[option].is_a? Array then
|
269
226
|
|
270
227
|
# option can be set multiple times, for example adding multiple css
|
271
228
|
# files
|
272
229
|
|
273
|
-
default = OPTIONS[option][0]
|
274
|
-
|
275
230
|
define_method(option) do |value = default|
|
231
|
+
value = [] if value.nil?
|
232
|
+
|
276
233
|
if @options[option].nil? then
|
277
234
|
@options[option] = []
|
278
235
|
end
|
@@ -291,6 +248,8 @@ module Paru
|
|
291
248
|
|
292
249
|
default = OPTIONS[option]
|
293
250
|
define_method(option) do |value = default|
|
251
|
+
value = default if value.nil?
|
252
|
+
|
294
253
|
@options[option] = value
|
295
254
|
self
|
296
255
|
end
|
@@ -58,13 +58,14 @@ tab_stop: 4
|
|
58
58
|
track_changes: "accept"
|
59
59
|
extract_media: ""
|
60
60
|
abbreviations: ""
|
61
|
+
trace: true
|
61
62
|
#####
|
62
63
|
# General writing options:
|
63
64
|
#####
|
64
|
-
sandbox: false
|
65
65
|
standalone: true
|
66
66
|
template: ""
|
67
67
|
variable: [""]
|
68
|
+
sandbox: true
|
68
69
|
print_default_template: ""
|
69
70
|
print_default_data_file: ""
|
70
71
|
eol: "native"
|
@@ -84,7 +85,7 @@ include_before_body: [""]
|
|
84
85
|
include_after_body: [""]
|
85
86
|
resource_path: ""
|
86
87
|
request_header: ""
|
87
|
-
no_check_certificate:
|
88
|
+
no_check_certificate: true
|
88
89
|
#####
|
89
90
|
# Options affecting specific writers
|
90
91
|
#####
|
@@ -94,7 +95,7 @@ ascii: true
|
|
94
95
|
reference_links: true
|
95
96
|
reference_location: "block"
|
96
97
|
markdown_headings: "atx"
|
97
|
-
atx_headers:
|
98
|
+
atx_headers: true
|
98
99
|
top_level_division: "section"
|
99
100
|
number_sections: true
|
100
101
|
number_offset: 2
|
@@ -137,4 +138,3 @@ gladtex: true
|
|
137
138
|
#####
|
138
139
|
dump_args: true
|
139
140
|
ignore_args: true
|
140
|
-
trace: true
|
data/lib/paru/selector.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2022 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -32,6 +32,12 @@ module Paru
|
|
32
32
|
# that selector expression or not.
|
33
33
|
class Selector
|
34
34
|
|
35
|
+
# Pseudo selector to select any inline and block node
|
36
|
+
ANY_SELECTOR = "*"
|
37
|
+
|
38
|
+
# All pseudo selectors
|
39
|
+
PSEUDO_SELECTORS = [ANY_SELECTOR]
|
40
|
+
|
35
41
|
# Create a new Selector based on the selector string
|
36
42
|
#
|
37
43
|
# @param selector [String] the selector string
|
@@ -51,9 +57,14 @@ module Paru
|
|
51
57
|
# @return [Boolean] True if the node in the context of the
|
52
58
|
# filtered_nodes is selected by this Selector
|
53
59
|
def matches? node, filtered_nodes
|
54
|
-
|
55
|
-
|
56
|
-
|
60
|
+
case @type
|
61
|
+
when ANY_SELECTOR
|
62
|
+
Paru::PANDOC_TYPES.include? node.type
|
63
|
+
else
|
64
|
+
node.type == @type and
|
65
|
+
@classes.all? {|c| node.has_class? c } and
|
66
|
+
@relations.all? {|r| r.matches? node, filtered_nodes}
|
67
|
+
end
|
57
68
|
end
|
58
69
|
|
59
70
|
private
|
@@ -61,7 +72,7 @@ module Paru
|
|
61
72
|
S = /\s*/
|
62
73
|
# Improved CSS class selector taken from https://stackoverflow.com/questions/448981/which-characters-are-valid-in-css-class-names-selectors/449000#449000
|
63
74
|
CLASS = /(\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*)/
|
64
|
-
TYPE = /(?<type>(?<name>[A-Z][a-zA-Z]
|
75
|
+
TYPE = /(?<type>(?<name>[A-Z][a-zA-Z]*|\*)(?<classes>#{CLASS}*))/
|
65
76
|
OTHER_TYPE = /(?<other_type>(?<other_name>[A-Z][a-zA-Z]*)(?<other_classes>#{CLASS}*))/
|
66
77
|
OPERATOR = /(?<operator>\+|-|>)/
|
67
78
|
DISTANCE = /(?<distance>[1-9][0-9]*)/
|
@@ -87,7 +98,7 @@ module Paru
|
|
87
98
|
|
88
99
|
# Is type actually a Pandoc AST node type?
|
89
100
|
def is_pandoc_type(type)
|
90
|
-
|
101
|
+
Paru::PANDOC_TYPES.concat(PSEUDO_SELECTORS).include? type
|
91
102
|
end
|
92
103
|
|
93
104
|
def expect(parts, part)
|
data/lib/paru.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright 2015, 2016, 2017, 2018, 2019, 2020 Huub de Beer <Huub@heerdebeer.org>
|
2
|
+
# Copyright 2015, 2016, 2017, 2018, 2019, 2020, 2022 Huub de Beer <Huub@heerdebeer.org>
|
3
3
|
#
|
4
4
|
# This file is part of Paru
|
5
5
|
#
|
@@ -17,6 +17,6 @@
|
|
17
17
|
# Paru. If not, see <http://www.gnu.org/licenses/>.
|
18
18
|
#++
|
19
19
|
module Paru
|
20
|
-
|
21
|
-
|
20
|
+
# Paru's current version
|
21
|
+
VERSION = [1, 0, 0].freeze
|
22
22
|
end
|
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: 0.
|
4
|
+
version: 1.0.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: 2022-05-29 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
|
@@ -93,10 +93,10 @@ files:
|
|
93
93
|
- lib/paru/filter/value.rb
|
94
94
|
- lib/paru/filter/version.rb
|
95
95
|
- lib/paru/filter_error.rb
|
96
|
+
- lib/paru/info.rb
|
96
97
|
- lib/paru/pandoc.rb
|
97
98
|
- lib/paru/pandoc2yaml.rb
|
98
|
-
- lib/paru/
|
99
|
-
- lib/paru/pandoc_options_version_2.yaml
|
99
|
+
- lib/paru/pandoc_options.yaml
|
100
100
|
- lib/paru/selector.rb
|
101
101
|
homepage: https://heerdebeer.org/Software/markdown/paru/
|
102
102
|
licenses:
|
@@ -110,14 +110,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
requirements:
|
111
111
|
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: 2.6
|
113
|
+
version: 2.7.6
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - ">="
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
|
-
rubygems_version: 3.2.
|
120
|
+
rubygems_version: 3.2.3
|
121
121
|
signing_key:
|
122
122
|
specification_version: 4
|
123
123
|
summary: Paru is a ruby wrapper around pandoc
|
@@ -1,112 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright 2015, 2016, 2017 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
|
-
# See http://pandoc.org/README.html for an overview of all options
|
19
|
-
#++
|
20
|
-
# Options for pandoc version 1.x, in order of occurrence in the pandoc manual.
|
21
|
-
# General options
|
22
|
-
from: ""
|
23
|
-
read: ""
|
24
|
-
to: ""
|
25
|
-
write: ""
|
26
|
-
output: ""
|
27
|
-
data_dir: ""
|
28
|
-
list_input_formats: true
|
29
|
-
list_output_formats: true
|
30
|
-
list_extensions: true
|
31
|
-
list_highlight_languages: true
|
32
|
-
list_highlight_styles: true
|
33
|
-
version: true
|
34
|
-
# Reader options
|
35
|
-
parse_raw: true
|
36
|
-
smart: true
|
37
|
-
old_dashes: true
|
38
|
-
base_header_level: 1
|
39
|
-
indented_code_classes: ""
|
40
|
-
default_image_extension: ""
|
41
|
-
file_scope: true
|
42
|
-
filter: [""]
|
43
|
-
metadata: [""]
|
44
|
-
normalize: true
|
45
|
-
preserve_tabs: true
|
46
|
-
tab_stop: 4
|
47
|
-
track_changes: "accept"
|
48
|
-
extract_media: true
|
49
|
-
# General writer options
|
50
|
-
standalone: true
|
51
|
-
template: ""
|
52
|
-
variable: [""]
|
53
|
-
print_default_template: ""
|
54
|
-
print_default_data_file: ""
|
55
|
-
dpi: 96
|
56
|
-
wrap: "auto"
|
57
|
-
no_wrap: true
|
58
|
-
columns: 78
|
59
|
-
toc: true
|
60
|
-
table_of_contents: true
|
61
|
-
toc_depth: 3
|
62
|
-
no_highlight: true
|
63
|
-
highlight_style: "pygments"
|
64
|
-
include_in_header: [""]
|
65
|
-
include_before_body: [""]
|
66
|
-
include_after_body: [""]
|
67
|
-
# Options affecting specific writers
|
68
|
-
self_contained: true
|
69
|
-
html_q_tags: true
|
70
|
-
ascii: true
|
71
|
-
reference_links: true
|
72
|
-
reference_location: "document"
|
73
|
-
atx_headers: true
|
74
|
-
chapters: true
|
75
|
-
top_level_division: "section"
|
76
|
-
number_sections: true
|
77
|
-
number_offset: "0"
|
78
|
-
no_tex_ligatures: true
|
79
|
-
listings: true
|
80
|
-
incremental: true
|
81
|
-
slide_level: 1
|
82
|
-
section_divs: true
|
83
|
-
email_obfuscation: "none"
|
84
|
-
id_prefix: ""
|
85
|
-
title_prefix: ""
|
86
|
-
css: [""]
|
87
|
-
reference_odt: ""
|
88
|
-
reference_docx: ""
|
89
|
-
epub_stylesheet: "epub.css"
|
90
|
-
epub_cover_image: ""
|
91
|
-
epub_metadata: ""
|
92
|
-
epub_embed_font: ""
|
93
|
-
epub_chapter_level: 1
|
94
|
-
latex_engine: "pdflatex"
|
95
|
-
latex_engine_opt: [""]
|
96
|
-
# Citation rendering
|
97
|
-
bibliography: ""
|
98
|
-
csl: ""
|
99
|
-
citation_abbreviations: ""
|
100
|
-
natbib: true
|
101
|
-
biblatex: true
|
102
|
-
# Math rendering in HTML
|
103
|
-
latexmathml: ""
|
104
|
-
mathml: ""
|
105
|
-
jsmath: ""
|
106
|
-
mathjax: ""
|
107
|
-
gladtex: true
|
108
|
-
mimetex: ""
|
109
|
-
webtex: ""
|
110
|
-
katex: ""
|
111
|
-
katex_stylesheet: ""
|
112
|
-
#--
|