gmi2latex 0.1.1 → 0.1.2
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/.envrc +2 -0
- data/CHANGELOG.md +6 -0
- data/lib/gmi2latex/renderer.rb +61 -26
- data/lib/gmi2latex/version.rb +1 -1
- data/lib/gmi2latex.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dd72e2d3b7f550abe60f7101f1c2bdc8a5fe52675511957f73a78a77bb0d225
|
4
|
+
data.tar.gz: 6760567f6a456155f81e503312ac04dd363c2cfaacd518ff0860daec9d038bd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 785cc12f9393f13e3012d10c87f2b98454334728d117e714132f29e121511abd9c10dad7abd3722c7139aa778b65cabbd6e8b13e076beb49f78d529c987b0c66
|
7
|
+
data.tar.gz: 354036076e6b76a31f77990e784f31ede1a79d698a26801f402c6acffa159031f417a9ac0035796abbcef0068c9369d1e0d31db7cb12e6923f6b33102aa2ddd9
|
data/.envrc
ADDED
data/CHANGELOG.md
CHANGED
data/lib/gmi2latex/renderer.rb
CHANGED
@@ -12,9 +12,7 @@ module Gmi2LaTeX
|
|
12
12
|
|
13
13
|
def render
|
14
14
|
@header and print @header
|
15
|
-
@document.nodes.each
|
16
|
-
render_node(node)
|
17
|
-
end
|
15
|
+
@document.nodes.each { |node| render_node(node) }
|
18
16
|
end_itemize
|
19
17
|
@footer and print @footer
|
20
18
|
end
|
@@ -22,32 +20,29 @@ module Gmi2LaTeX
|
|
22
20
|
def render_node(node)
|
23
21
|
case node
|
24
22
|
in Gemtext::Heading[content:]
|
23
|
+
end_text
|
25
24
|
end_itemize
|
26
25
|
print "\\section{#{content}}\n"
|
27
26
|
in Gemtext::SubHeading[content:]
|
27
|
+
end_text
|
28
28
|
end_itemize
|
29
29
|
print "\\subsection{#{content}}\n"
|
30
30
|
in Gemtext::SubSubHeading[content:]
|
31
|
+
end_text
|
31
32
|
end_itemize
|
32
33
|
print "\\subsubsection{#{content}}\n"
|
33
34
|
in Gemtext::Whitespace
|
35
|
+
end_text
|
34
36
|
end_itemize
|
35
37
|
print "\n"
|
36
38
|
in Gemtext::Text[content:]
|
37
|
-
|
38
|
-
content.each_char do |char|
|
39
|
-
case char
|
40
|
-
in "_"
|
41
|
-
print "\\_"
|
42
|
-
else
|
43
|
-
print char
|
44
|
-
end
|
45
|
-
end
|
46
|
-
print "\n"
|
39
|
+
render_text(content)
|
47
40
|
in Gemtext::Link[target:, description:]
|
41
|
+
end_text
|
48
42
|
end_itemize
|
49
43
|
print "#{description} (\\url{#{target}})\n"
|
50
44
|
in Gemtext::Preformatted[content:]
|
45
|
+
end_text
|
51
46
|
end_itemize
|
52
47
|
print <<~LaTeX
|
53
48
|
\\begin{verbatim}
|
@@ -55,24 +50,64 @@ module Gmi2LaTeX
|
|
55
50
|
\\end{verbatim}
|
56
51
|
LaTeX
|
57
52
|
in Gemtext::ListItem[content:]
|
58
|
-
|
59
|
-
|
60
|
-
\\item{}
|
61
|
-
#{content}
|
62
|
-
LaTeX
|
63
|
-
else
|
64
|
-
print <<~LaTeX
|
65
|
-
\\begin{itemize}
|
66
|
-
\\item{}
|
67
|
-
#{content}
|
68
|
-
LaTeX
|
69
|
-
@listing = true
|
70
|
-
end
|
53
|
+
end_text
|
54
|
+
render_list_item(content)
|
71
55
|
else
|
72
56
|
raise node.inspect
|
73
57
|
end
|
74
58
|
end
|
75
59
|
|
60
|
+
def render_text(content)
|
61
|
+
end_itemize
|
62
|
+
if content.match(/ \A \s* \Z /x)
|
63
|
+
end_text
|
64
|
+
print content
|
65
|
+
else
|
66
|
+
@was_text and print "\\\\\n"
|
67
|
+
content.each_char do |char|
|
68
|
+
case char
|
69
|
+
in "_"
|
70
|
+
print "\\_"
|
71
|
+
in "#"
|
72
|
+
print "\\#"
|
73
|
+
in "%"
|
74
|
+
print "\\%"
|
75
|
+
in "<"
|
76
|
+
print "\\textlangle{}"
|
77
|
+
in ">"
|
78
|
+
print "\\textrangle{}"
|
79
|
+
in "`"
|
80
|
+
print "\\`{}"
|
81
|
+
else
|
82
|
+
print char
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
@was_text = true
|
87
|
+
end
|
88
|
+
|
89
|
+
def render_list_item(content)
|
90
|
+
if @listing
|
91
|
+
print <<~LaTeX
|
92
|
+
\\item{}
|
93
|
+
#{content}
|
94
|
+
LaTeX
|
95
|
+
else
|
96
|
+
print <<~LaTeX
|
97
|
+
\\begin{itemize}
|
98
|
+
\\item{}
|
99
|
+
#{content}
|
100
|
+
LaTeX
|
101
|
+
@listing = true
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def end_text
|
106
|
+
@was_text or return
|
107
|
+
print "\n"
|
108
|
+
@was_text = false
|
109
|
+
end
|
110
|
+
|
76
111
|
def end_itemize
|
77
112
|
@listing or return
|
78
113
|
@listing = false
|
data/lib/gmi2latex/version.rb
CHANGED
data/lib/gmi2latex.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gmi2latex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gemmaro
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gemtext
|
@@ -33,6 +33,7 @@ executables:
|
|
33
33
|
extensions: []
|
34
34
|
extra_rdoc_files: []
|
35
35
|
files:
|
36
|
+
- ".envrc"
|
36
37
|
- ".rubocop.yml"
|
37
38
|
- CHANGELOG.md
|
38
39
|
- LICENSE.txt
|