A markdown headline.

Introduced properties

fun depth: Int

markdown :: BlockHeadline :: depth

Depth of the headline used to determine the headline level.
protected fun depth=(depth: Int)

markdown :: BlockHeadline :: depth=

Depth of the headline used to determine the headline level.

Redefined properties

redef type SELF: BlockHeadline

markdown $ BlockHeadline :: SELF

Type of this instance, automatically specialized in every class
redef fun emit(v: MarkdownProcessor)

markdown $ BlockHeadline :: emit

Output self using v.decorator.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun block: MDBlock

markdown :: Block :: block

The markdown block self is related to.
protected fun block=(block: MDBlock)

markdown :: Block :: block=

The markdown block self is related to.
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun depth: Int

markdown :: BlockHeadline :: depth

Depth of the headline used to determine the headline level.
protected fun depth=(depth: Int)

markdown :: BlockHeadline :: depth=

Depth of the headline used to determine the headline level.
fun emit(v: MarkdownProcessor)

markdown :: Block :: emit

Output self using v.decorator.
fun emit_blocks(v: MarkdownProcessor)

markdown :: Block :: emit_blocks

Emit sub-blocks contained in block.
fun emit_in(v: MarkdownProcessor)

markdown :: Block :: emit_in

Emit the containts of self, lines or blocks.
fun emit_lines(v: MarkdownProcessor)

markdown :: Block :: emit_lines

Emit lines contained in block.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun raw_content: String

markdown :: Block :: raw_content

The raw content of the block as a multi-line string.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram markdown::BlockHeadline BlockHeadline markdown::Block Block markdown::BlockHeadline->markdown::Block core::Object Object markdown::Block->core::Object ...core::Object ... ...core::Object->core::Object

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

abstract class Block

markdown :: Block

Representation of a markdown block in the AST.

Class definitions

markdown $ BlockHeadline
# A markdown headline.
class BlockHeadline
	super Block

	redef fun emit(v) do
		var loc = block.location.copy
		loc.column_start += start
		v.push_loc(loc)
		v.decorator.add_headline(v, self)
		v.pop_loc
	end

	private var start = 0

	# Depth of the headline used to determine the headline level.
	var depth = 0

	# Remove healine marks from lines contained in `self`.
	private fun transform_headline(block: MDBlock) do
		if depth > 0 then return
		var level = 0
		var line = block.first_line
		if line == null then return
		if line.is_empty then return
		var start = line.leading
		while start < line.value.length and line.value[start] == '#' do
			level += 1
			start += 1
		end
		while start < line.value.length and line.value[start] == ' ' do
			start += 1
		end
		if start >= line.value.length then
			line.is_empty = true
		else
			var nend = line.value.length - line.trailing - 1
			while line.value[nend] == '#' do nend -= 1
			while line.value[nend] == ' ' do nend -= 1
			line.value = line.value.substring(start, nend - start + 1)
			line.leading = 0
			line.trailing = 0
		end
		self.start = start
		depth = level.min(6)
	end
end
lib/markdown/markdown.nit:1275,1--1320,3