@haxall/haxall
    Preparing search index...

    Class ParserBuilder

    Builder for customizing the behavior of the common mark parser

    Hierarchy (View Summary)

    • Obj
      • ParserBuilder
    Index

    Constructors

    Properties

    type$: Type

    Methods

    • Get the configured Parser

      Returns Parser

    • Return a negative integer, zero, or a positive integer if this object is less than, equal to, or greater than the specified object:

      this < that   =>  <0
      this == that => 0
      this > that => >0

      This method may also be accessed via the < <= <=> >= and > shortcut operators. If not overridden the default implementation compares the toStr representations. Also see docLang.

      Examples:

      3.compare(8)  =>  -1
      8.compare(3) => 1
      8.compare(8) => 0
      3 <=> 8 => -1 // shortcut for 3.compare(8)

      Parameters

      Returns number

    • Add a custom block parser factory.

      Note that custom factories are applied before the built-in factories. This is so that extensions can change how some syntax is parsed that would otherwise be handled by built-in factories.

      Parameters

      Returns this

    • Parameters

      Returns this

    • Add a factory for a custom inline content parser, for extending inline parsing or overriding built-in parsing.

      Note that parsers are triggered based on a special character as specified by InlineContentParserFactory.triggerChars. It is possible to register multiple parsers for the same character, or even for some built-in special character such as ```. The custom parsers are tried first in the order in which they are registered, and then the built-in ones.

      Parameters

      Returns this

    • Compare this object to the specified for equality. This method may be accessed via the == and != shortcut operators. If not overridden the default implementation compares for reference equality using the === operator. If this method is overridden, then hash() must also be overridden such that any two objects which return true for equals() must return the same value for hash(). This method must accept null and return false.

      Parameters

      Returns boolean

    • Configure the given extensions on this parser.

      Parameters

      Returns this

    • Return a unique hashcode for this object. If a class overrides hash() then it must ensure if equals() returns true for any two objects then they have same hash code.

      Returns number

    • Return if this Obj is immutable and safe to share between threads:

      • an instance of a const class
      • the result of toImmutable on List, Map, or Buf
      • a Func object may or may not be immutable - see sys::Func.
      • other instances are assumed mutable and return false

      Returns boolean

    • Add a custom link marker for link processing. A link marker is a character like ! which, if it appears before the [ of a link, changes the meaning of the link.

      If a link marker followed by a valid link is parsed, the LinkInfo that is passed to the LinkProcessor will have its LinkInfo.marker set. A link processor should check the Text.literal and then do any processing, and will probably want to use LinkResult.includeMarker.

      Parameters

      • marker: number

      Returns this

    • Add a custom link/image processor for inline parsing.

      Multiple link processors can be added, and will be tried in the order in which they were added. If no processor applies, the normal behavior applies. That means these can override built-in link parsing.

      Parameters

      Returns this

    • Parameters

      Returns this

    • Get an immutable representation of this instance or throw NotImmutableErr if this object cannot be represented as an immutable:

      • if type is const, return this
      • if already an immutable List, Map, Buf, or Func return this
      • if a List, then attempt to perform a deep clone by calling toImmutable on all items
      • if a Map, then attempt to perform a deep clone by calling toImmutable on all values (keys are already immutable)
      • some Funcs can be made immutable - see sys::Func
      • if a Buf create immutable copy, see sys::Buf
      • any other object throws NotImmutableErr

      Returns Readonly<this>

    • Return a string representation of this object.

      Returns string

    • Trap a dynamic call for handling. Dynamic calls are invoked with the -> shortcut operator:

      a->x        a.trap("x", null)
      a->x() a.trap("x", null)
      a->x = b a.trap("x", [b])
      a->x(b) a.trap("x", [b])
      a->x(b, c) a.trap("x", [b, c])

      The default implementation provided by Obj attempts to use reflection. If name maps to a method, it is invoked with the specified arguments. If name maps to a field and args.size is zero, get the field. If name maps to a field and args.size is one, set the field and return args[0]. Otherwise throw UnknownSlotErr.

      Parameters

      Returns JsObj

    • Get the Type instance which represents this object's class. Also seeType.of or Pod.of.

      Returns Type

    • This method called whenever an it-block is applied to an object. The default implementation calls the function with this, and then returns this.

      Parameters

      • f: (arg0: this) => void

      Returns this

    • Describe the list of markdown features the parser will recognize and parse.

      By default, we will recognize and parse the following set of "block" elements:

      To parse only a subset of the features listed above, pass a lsit of each feature's associated Block type.

      Example: to parse only headings and lists:

      Parser.builder.withEnabledBlockTypes([Heading#, ListBlock#])
      

      Parameters

      Returns this

    • Write x.toStr to standard output followed by newline. If x is null then print "null". If no argument is provided then print an empty line.

      Parameters

      Returns void