Mainly used to factorize code between ordered and unordered lists.
markdown :: LineList :: block_kind
Create a new block kind based on this line.markdown :: LineList :: defaultinit
markdown :: LineList :: extract_value
Extract string value fromMDLine
.
markdown :: LineList :: block_kind
Create a new block kind based on this line.core :: Object :: class_factory
Implementation used byget_class
to create the specific class.
markdown :: Line :: defaultinit
core :: Object :: defaultinit
markdown :: LineList :: defaultinit
markdown :: LineList :: extract_value
Extract string value fromMDLine
.
core :: Object :: is_same_instance
Return true ifself
and other
are the same instance (i.e. same identity).
core :: Object :: is_same_serialized
Isself
the same as other
in a serialization context?
core :: Object :: is_same_type
Return true ifself
and other
have the same dynamic type.
core :: Object :: output_class_name
Display class name on stdout (debug only).
# A markdown list line.
# Mainly used to factorize code between ordered and unordered lists.
abstract class LineList
super Line
redef fun process(v) do
var line = v.current_line
# go to list end
while line != null do
var t = v.line_kind(line)
if not line.is_empty and (line.prev_empty and line.leading == 0 and
not t isa LineList) then break
line = line.next
end
# build list block
var current_block = v.current_block.as(not null)
var list: MDBlock
if line != null then
list = current_block.split(line.prev.as(not null))
else
list = current_block.split(current_block.last_line.as(not null))
end
var kind = block_kind(list)
list.kind = kind
list.first_line.as(not null).prev_empty = false
list.last_line.as(not null).next_empty = false
list.remove_surrounding_empty_lines
list.first_line.as(not null).prev_empty = false
list.last_line.as(not null).next_empty = false
kind.init_block(v)
var block = list.first_block
while block != null do
block.remove_list_indent(v)
v.recurse(block, true)
block = block.next
end
kind.expand_paragraphs(list)
v.current_line = line
end
# Create a new block kind based on this line.
protected fun block_kind(block: MDBlock): BlockList is abstract
# Extract string value from `MDLine`.
protected fun extract_value(line: MDLine): String is abstract
end
lib/markdown/markdown.nit:1886,1--1931,3