Class: CommonMarker::HtmlRenderer
- Inherits:
-
Renderer
- Object
- Renderer
- CommonMarker::HtmlRenderer
show all
- Defined in:
- lib/commonmarker/renderer/html_renderer.rb
Instance Attribute Summary
Attributes inherited from Renderer
#in_plain, #in_tight, #warnings
Instance Method Summary
collapse
Methods inherited from Renderer
#block, #blocksep, #container, #containersep, #cr, #initialize, #out, #plain, #reference_def
Instance Method Details
#blockquote(node) ⇒ Object
82
83
84
85
86
87
88
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 82
def blockquote(node)
block do
container("<blockquote#{sourcepos(node)}>\n", '</blockquote>') do
out(:children)
end
end
end
|
#code(node) ⇒ Object
166
167
168
169
170
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 166
def code(node)
out('<code>')
out(escape_html(node.string_content))
out('</code>')
end
|
#code_block(node) ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 96
def code_block(node)
block do
if option_enabled?(:GITHUB_PRE_LANG)
out("<pre#{sourcepos(node)}")
if node.fence_info && !node.fence_info.empty?
out(' lang="', node.fence_info.split(/\s+/)[0], '"')
end
out('><code>')
else
out("<pre#{sourcepos(node)}><code")
if node.fence_info && !node.fence_info.empty?
out(' class="language-', node.fence_info.split(/\s+/)[0], '">')
else
out('>')
end
end
out(escape_html(node.string_content))
out('</code></pre>')
end
end
|
#document(_) ⇒ Object
9
10
11
12
13
14
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 9
def document(_)
super
if @written_footnote_ix
out("</ol>\n</section>\n")
end
end
|
#emph(_) ⇒ Object
135
136
137
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 135
def emph(_)
out('<em>', :children, '</em>')
end
|
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 230
def (_)
if !@footnote_ix
out("<section class=\"footnotes\">\n<ol>\n")
@footnote_ix = 0
end
@footnote_ix += 1
out("<li id=\"fn#@footnote_ix\">\n", :children)
if
out("\n")
end
out("</li>\n")
end
|
226
227
228
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 226
def (node)
out("<sup class=\"footnote-ref\"><a href=\"#fn#{node.string_content}\" id=\"fnref#{node.string_content}\">#{node.string_content}</a></sup>")
end
|
16
17
18
19
20
21
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 16
def (node)
block do
out('<h', node., "#{sourcepos(node)}>", :children,
'</h', node., '>')
end
end
|
#hrule(node) ⇒ Object
90
91
92
93
94
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 90
def hrule(node)
block do
out("<hr#{sourcepos(node)} />")
end
end
|
#html(node) ⇒ Object
117
118
119
120
121
122
123
124
125
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 117
def html(node)
block do
if option_enabled?(:UNSAFE)
out(tagfilter(node.string_content))
else
out('<!-- raw HTML omitted -->')
end
end
end
|
#image(node) ⇒ Object
151
152
153
154
155
156
157
158
159
160
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 151
def image(node)
out('<img src="', escape_href(node.url), '"')
plain do
out(' alt="', :children, '"')
end
if node.title && !node.title.empty?
out(' title="', escape_html(node.title), '"')
end
out(' />')
end
|
#inline_html(node) ⇒ Object
127
128
129
130
131
132
133
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 127
def inline_html(node)
if option_enabled?(:UNSAFE)
out(tagfilter(node.string_content))
else
out('<!-- raw HTML omitted -->')
end
end
|
#linebreak(node) ⇒ Object
172
173
174
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 172
def linebreak(node)
out("<br />\n")
end
|
#link(node) ⇒ Object
143
144
145
146
147
148
149
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 143
def link(node)
out('<a href="', node.url.nil? ? '' : escape_href(node.url), '"')
if node.title && !node.title.empty?
out(' title="', escape_html(node.title), '"')
end
out('>', :children, '</a>')
end
|
#list(node) ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 39
def list(node)
old_in_tight = @in_tight
@in_tight = node.list_tight
block do
if node.list_type == :bullet_list
container("<ul#{sourcepos(node)}>\n", '</ul>') do
out(:children)
end
else
start = if node.list_start == 1
"<ol#{sourcepos(node)}>\n"
else
"<ol start=\"#{node.list_start}\"#{sourcepos(node)}>\n"
end
container(start, '</ol>') do
out(:children)
end
end
end
@in_tight = old_in_tight
end
|
#list_item(node) ⇒ Object
63
64
65
66
67
68
69
70
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 63
def list_item(node)
block do
tasklist_data = tasklist(node)
container("<li#{sourcepos(node)}#{tasklist_data}>#{' ' if tasklist?(node)}", '</li>') do
out(:children)
end
end
end
|
#paragraph(node) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 23
def paragraph(node)
if @in_tight && node.parent.type != :blockquote
out(:children)
else
block do
container("<p#{sourcepos(node)}>", '</p>') do
out(:children)
if node.parent.type == :footnote_definition && node.next.nil?
out(' ')
end
end
end
end
end
|
#render(node) ⇒ Object
5
6
7
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 5
def render(node)
super(node)
end
|
#softbreak(_) ⇒ Object
176
177
178
179
180
181
182
183
184
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 176
def softbreak(_)
if option_enabled?(:HARDBREAKS)
out("<br />\n")
elsif option_enabled?(:NOBREAKS)
out(' ')
else
out("\n")
end
end
|
#strikethrough(_) ⇒ Object
222
223
224
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 222
def strikethrough(_)
out('<del>', :children, '</del>')
end
|
#strong(_) ⇒ Object
139
140
141
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 139
def strong(_)
out('<strong>', :children, '</strong>')
end
|
#table(node) ⇒ Object
186
187
188
189
190
191
192
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 186
def table(node)
@alignments = node.table_alignments
@needs_close_tbody = false
out("<table#{sourcepos(node)}>\n", :children)
out("</tbody>\n") if @needs_close_tbody
out("</table>\n")
end
|
#table_cell(node) ⇒ Object
211
212
213
214
215
216
217
218
219
220
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 211
def table_cell(node)
align = case @alignments[@column_index]
when :left; ' align="left"'
when :right; ' align="right"'
when :center; ' align="center"'
else; ''
end
out(@in_header ? "<th#{align}#{sourcepos(node)}>" : "<td#{align}#{sourcepos(node)}>", :children, @in_header ? "</th>\n" : "</td>\n")
@column_index += 1
end
|
194
195
196
197
198
199
200
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 194
def (node)
@column_index = 0
@in_header = true
out("<thead>\n<tr#{sourcepos(node)}>\n", :children, "</tr>\n</thead>\n")
@in_header = false
end
|
#table_row(node) ⇒ Object
202
203
204
205
206
207
208
209
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 202
def table_row(node)
@column_index = 0
if !@in_header && !@needs_close_tbody
@needs_close_tbody = true
out("<tbody>\n")
end
out("<tr#{sourcepos(node)}>\n", :children, "</tr>\n")
end
|
#tasklist(node) ⇒ Object
72
73
74
75
76
77
78
79
80
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 72
def tasklist(node)
return '' unless tasklist?(node)
state = if checked?(node)
'disabled=""'
else
'checked="" disabled=""'
end
return "><input type=\"checkbox\" #{state} /"
end
|
#text(node) ⇒ Object
162
163
164
|
# File 'lib/commonmarker/renderer/html_renderer.rb', line 162
def text(node)
out(escape_html(node.string_content))
end
|