nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
matrix: use a custom low-level C structure to avoid boxing of param types
[nit.git]
/
src
/
doc
/
doc_down.nit
diff --git
a/src/doc/doc_down.nit
b/src/doc/doc_down.nit
index
6d5dfe4
..
dbb5252
100644
(file)
--- a/
src/doc/doc_down.nit
+++ b/
src/doc/doc_down.nit
@@
-28,17
+28,17
@@
redef class MDoc
var comment: String is lazy do
var lines = content.to_a
if not lines.is_empty then lines.shift
var comment: String is lazy do
var lines = content.to_a
if not lines.is_empty then lines.shift
- return content.join("\n").html_escape
+ return content.join("\n")
end
# Full comment HTML escaped.
end
# Full comment HTML escaped.
- var documentation: String is lazy do return content.join("\n").html_escape
+ var documentation: String is lazy do return content.join("\n")
- private var markdown_proc: MarkdownProcessor is lazy do
+ private var markdown_proc: MarkdownProcessor is lazy, writable do
return original_mentity.as(not null).model.nitdoc_md_processor
end
return original_mentity.as(not null).model.nitdoc_md_processor
end
- private var inline_proc: MarkdownProcessor is lazy do
+ private var inline_proc: MarkdownProcessor is lazy, writable do
return original_mentity.as(not null).model.nitdoc_inline_processor
end
return original_mentity.as(not null).model.nitdoc_inline_processor
end
@@
-64,6
+64,8
@@
redef class MDoc
# Renders markdown line as a HTML comment block.
private fun lines_to_html(lines: Array[String]): Writable do
var res = new Template
# Renders markdown line as a HTML comment block.
private fun lines_to_html(lines: Array[String]): Writable do
var res = new Template
+ var decorator = markdown_proc.emitter.decorator.as(NitdocDecorator)
+ decorator.current_mdoc = self
res.add "<div class=\"nitdoc\">"
# do not use DocUnit as synopsys
if not lines.is_empty then
res.add "<div class=\"nitdoc\">"
# do not use DocUnit as synopsys
if not lines.is_empty then
@@
-71,7
+73,7
@@
redef class MDoc
not lines.first.has_prefix("\t") then
# parse synopsys
var syn = inline_proc.process(lines.shift)
not lines.first.has_prefix("\t") then
# parse synopsys
var syn = inline_proc.process(lines.shift)
- res.add "<p class=\"synopsys\">{syn}</p>"
+ res.add "<h1 class=\"synopsys\">{syn}</h1>"
end
end
# check for annotations
end
end
# check for annotations
@@
-88,6
+90,7
@@
redef class MDoc
# add other lines
res.add markdown_proc.process(lines.join("\n"))
res.add "</div>"
# add other lines
res.add markdown_proc.process(lines.join("\n"))
res.add "</div>"
+ decorator.current_mdoc = null
return res
end
return res
end
@@
-103,6
+106,11
@@
class NitdocDecorator
private var toolcontext = new ToolContext
private var toolcontext = new ToolContext
+ # The currently processed mdoc.
+ #
+ # Unfortunately, this seems to be the simpler way to get the currently processed `MDoc` object.
+ var current_mdoc: nullable MDoc = null
+
redef fun add_code(v, block) do
var meta = block.meta or else "nit"
redef fun add_code(v, block) do
var meta = block.meta or else "nit"
@@
-189,7
+197,7
@@
end
redef class Model
# Get a markdown processor for Nitdoc comments.
redef class Model
# Get a markdown processor for Nitdoc comments.
- var nitdoc_md_processor: MarkdownProcessor is lazy do
+ var nitdoc_md_processor: MarkdownProcessor is lazy, writable do
var proc = new MarkdownProcessor
proc.emitter.decorator = new NitdocDecorator
return proc
var proc = new MarkdownProcessor
proc.emitter.decorator = new NitdocDecorator
return proc
@@
-198,7
+206,7
@@
redef class Model
# Get a markdown inline processor for Nitdoc comments.
#
# This processor is specificaly designed to inlinable doc elements like synopsys.
# Get a markdown inline processor for Nitdoc comments.
#
# This processor is specificaly designed to inlinable doc elements like synopsys.
- var nitdoc_inline_processor: MarkdownProcessor is lazy do
+ var nitdoc_inline_processor: MarkdownProcessor is lazy, writable do
var proc = new MarkdownProcessor
proc.emitter.decorator = new InlineDecorator
return proc
var proc = new MarkdownProcessor
proc.emitter.decorator = new InlineDecorator
return proc