cl markless
1.3.0A parser implementation for Markless
About cl-markless
This is an implementation of the Markless standard at version 1.0. It handles the parsing of plaintext from a stream into an abstract syntax tree composed out of strings and component objects. From there the AST can be easily compiled into a target markup language like HTML.
How To
To parse a Markless document, simply call the function parse
:
(cl-markless:parse "Hello!" T)
This will return the generated AST. From there on you can manipulate, inspect, or compile it further.
(cl-markless:output * :format 'cl-markless:debug)
One thing in particular to note is that cl-markless requires LF (unix-style) line endings. CR (mac) or CRLF (windows) have to be converted ahead of time, or parse results will not be as expected.
Writing Markless
You can find a lengthy tutorial on the Markless website.
Extending cl-markless
The Markless standard permits extension in a few ways, all of which cl-markless supports. Furthermore, cl-markless allows the seamless addition of output compilers to allow integrating more target languages.
Directives
Adding a new directive will involve some work, as parsing the proper syntax can be complicated. Please read the section for the parser algorithm as well. Generally the parsing behaviour is controlled via 6 central functions.
All of these functions return a cursor – an index into the current line. consume-prefix
and consume-end
may also return NIL
in order to signify a failed match.
Depending on the type of directive and the complexity of its syntax, some or most of these functions require specific methods for your directive. Within those methods, the directive can manipulate the parser state using
Naturally a directive can do whatever it pleases when called, so the above is only an outline of the most useful functions.
Block Directives
Block directives must be a subclass of block-directive
and define methods on prefix
, begin
, consume-prefix
, and optionally invoke
. By default the invoke
on a block directive will call read-block
, causing further blocks to be read.
If your directive can only span a single line, you should subclass singular-line-directive
instead, for which only methods on prefix
, begin
, and optionally invoke
are necessary. By default read-inline
is called for invoke
.
Inline Directives
Inline directives must be a subclass of inline-directive
and define methods on prefix
, begin
, consume-end
, and optionally invoke
. By default the invoke
on an inline directive will call read-inline
.
If your directive has a constant prefix that is also the same as its ending suffix, you should subclass singular-line-directive
instead.
Instructions
Adding a new instruction type requires the following steps:
Add a new component that is a subclass of
instruction
.Add a method to
parse-instruction
that specialises on this new component class, and use it to parse the line into the appropriate instance of your instruction component.Add a method to
evaluate-instruction
that specialises on your component class and performs whatever task that your instruction should allow.
Embed Types
A new embed type requires only two steps:
Add a new component that is a subclass of
embed
.Add methods to
embed-option-allowed-p
specialised on your component and each permitted option that simply returnT
.
Embed Options
Adding new embed options requires a couple more steps:
Add a new component that is a subclass of
embed-option
.Add a method to
parse-embed-option-type
specialised on your new option class, which parses the given option string into a new instance of your class.Define methods on
embed-option-allowed-p
that just returnT
for all embed types that your new option would be appropriate for.
Compound Options
New compound options requires a similar procedure as for embed options.
Add a new component that is a subclass of
compound-option
.Add a method to
parse-compound-option-type
specialised on your new option class, which parses the given option string into a new instance of your class.
Unlike embed options there's no verification step, as any combination of compound options is allowed.
Colour and Size Names
Cl-markless includes a number of colour and size names for the compound option out of the box. If you would like to add or modify those, simply modify the *color-table*
and *size-table*
.
Output Translators
Defining a new output translator is only a matter of adding a subclass to output-translator
and adding the appropriate methods to output-component
. To make this a bit shorter for the default case of wanting to output to streams, define-output
can be used. Since each format has very different constraints on what it should look like, nothing beyond these two functions is really offered.
Parser Algorithm
The parser operates via a set of directive
s and a stack
. Each entry in the stack holds a component
and a directive
. At the beginning of a parse, the stack is emptied and a first stack item is filled composed out of fresh root-directive
and root-component
instances. The parser then operates as follows:
If the stream has things to read, it reads a new line via
read-full-line
.
1. If it does not have anything new to read, the parse is completed:
2. The stack is unwound to 0, causing all directives still active to beend
ed.
3. Theroot-component
is returned.process-stack
is called on the parser, its stack, and the new line.The stack is traversed upwards, calling
consume-prefix
on each directive in turn and updating the cursor.
1. Ifconsume-prefix
returnsNIL
for a directive:
2. The stack is unwound to and including the current point, callingend
on each directive that is popped off the stack.invoke
is called on the directive at the top of the stack and the cursor is updated.If the cursor is not yet at the end of the line, go back to 2.2.
Go back to 1.
You may note that in this algorithm it is not typical for the cursor to move backwards, and straight out impossible to go back a line. This is despite the fact that Markless may seem to force a lot of backtracking on invalidly matched inline directives. The crux here is that when an inline directive is aborted via end
, it can invoke change-class
on the component it inserted to transform it into an invisible parent-component
and then push its consumed prefix to the front of the child array.
A similar strategy can be employed for block directives that need to match more than the standard two prefix chars: on an invalid match they can pretend to be a paragraph and insert the paragraph directive and component into the stack instead of their own. Since Markless has a guarantee that each directive must match a unique prefix, this strategy is possible without excessive backtracking and reparsing.
Tests
This implementation includes a test suite that should cover most of the aspects of the Markless standard. The tests are intentionally formatted in a simple way that should allow re-using them to verify other implementations for correctness. See the tests directory for more information.
To run the test suite on this implementation:
(asdf:test-system :cl-markless)
Output Formats
Additional output formats are provided by external systems.
cl-markless-plump HTML/DOM
cl-markless-epub epub for e-readers
Standalone Executable
You can create a standalone executable of cl-markless with a command line interface. See cl-markless-standalone.
Using it with Github Actions
You can compile Markless files easily in your Github Actions workflows. Simply use this repository as a step:
- name: Compile Markless
uses: Shirakumo/cl-markless@v1.2.2
with:
input: my-file.mess
output: my-file.html
The available options to the action are the same as for the standalone executable:
input
The source file to compileoutput
The target file to output toformat
The format of the output fileinput-format
The format of the input filedirectives
A comma-separated list of directives to useline-break-mod
Which line break mode to useextension
Path to an extension to loadstyling
Path to a styling file to use
For example, to compile README.mess
and publish the result as index.html
to gh-pages:
name: publish README
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: mkdir -p /tmp/gh-pages
- uses: actions/checkout@v1
- uses: Shirakumo/cl-markless@v1.2.1
with:
input: README.mess
output: /tmp/gh-pages/index.html
- uses: actions/upload-pages-artifact@v3.0.1
with:
path: /tmp/gh-pages/
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Make sure that you have Github Pages configured to deploy via Actions in the settings of your repository, or the deploy step will fail.
System Information
Definition Index
-
CL-MARKLESS
- ORG.SHIRAKUMO.MARKLESS
No documentation provided.-
EXTERNAL SPECIAL-VARIABLE *COLOR-TABLE*
Hash table associating colour names to color-options. Each entry should be a case-insensitive string as the key and a CL-MARKLESS-COMPONENTS:COLOR-OPTION as the value. The default table should include all of the colour names and values defined for HTML/CSS. See CL-MARKLESS-COMPONENTS:COLOR-OPTION
-
EXTERNAL SPECIAL-VARIABLE *DEFAULT-COMPOUND-OPTIONS*
This variable contains the list of by-default available compound options. This list should only ever contain names of compound-options or their classes. See PARSER
-
EXTERNAL SPECIAL-VARIABLE *DEFAULT-DIRECTIVES*
This variable contains the list of by-default available directives. This list should only ever contain names of directives, not directive instances. See PARSER
-
EXTERNAL SPECIAL-VARIABLE *DEFAULT-EMBED-OPTIONS*
This variable contains the list of by-default available embed options. This list should only ever contain names of embed-options or their classes. See PARSER
-
EXTERNAL SPECIAL-VARIABLE *DEFAULT-EMBED-TYPES*
This variable contains the list of by-default available embed types. This list should only ever contain names of embed types or their classes. See PARSER
-
EXTERNAL SPECIAL-VARIABLE *DEFAULT-INSTRUCTION-TYPES*
This variable contains the list of by-default available instruction types. This list should only ever contain names of instruction types or their classes. See PARSER
-
EXTERNAL SPECIAL-VARIABLE *SIZE-TABLE*
Hash table associating size names to size-options. Each entry should be a case-insensitive string as the key and a CL-MARKLESS-COMPONENTS:SIZE-OPTION as the value. The default table should include all of the size names and values defined by the Markless standard. See CL-MARKLESS-COMPONENTS:SIZE-OPTION
-
EXTERNAL CLASS BBCODE
No documentation provided. -
EXTERNAL CLASS BLOCK-DIRECTIVE
-
EXTERNAL CLASS BLOCKQUOTE
The directive for a blockquote. See CL-MARKLESS-COMPONENTS:BLOCKQUOTE See BLOCK-DIRECTIVE
-
EXTERNAL CLASS BLOCKQUOTE-HEADER
The directive for the header of a blockquote. See CL-MARKLESS-COMPONENTS:BLOCKQUOTE-HEADER See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS BOLD
The directive for a bold markup. See CL-MARKLESS-COMPONENTS:BOLD See SURROUNDING-INLINE-DIRECTIVE
-
EXTERNAL CLASS CENTER
No documentation provided. -
EXTERNAL CLASS CODE
The directive for a code markup. See CL-MARKLESS-COMPONENTS:CODE See INLINE-DIRECTIVE
-
EXTERNAL CLASS CODE-BLOCK
The directive for a code block. See CL-MARKLESS-COMPONENTS:CODE-BLOCK See BLOCK-DIRECTIVE
-
EXTERNAL CLASS COMMENT
The directive for a comment. See CL-MARKLESS-COMPONENTS:COMMENT See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS COMPOUND
The directive for a compound markup. The parsing of the compound options is handled by PARSE-COMPOUND-OPTION. See CL-MARKLESS-COMPONENTS:COMPOUND See INLINE-DIRECTIVE
-
EXTERNAL CLASS DASH
The directive for a dash. See CL-MARKLESS-COMPONENTS:DASH See INLINE-DIRECTIVE
-
EXTERNAL CLASS DEBUG
Output format for debugging and AST visualisation. This prints all AST contents in an easy to read form, useful for debugging.
-
EXTERNAL CLASS DIRECTIVE
Superclass for all directives. All matching for syntax in Markless is performed by what are called directives. They control the parsing and compiling behaviour. A directive will only match if it is currently enabled. See ENABLED-P
-
EXTERNAL CLASS EMBED
The directive for an embed. The parsing of the embed options is handled by PARSE-EMBED-OPTION. Whether an option is permitted for a given embed type is determined by EMBED-OPTION-ALLOWED-P. If NIL is returned for any one option, an error of type OPTION-DISALLOWED is signalled. See PARSE-EMBED-OPTION See EMBED-OPTION-ALLOWED-P See OPTION-DISALLOWED See CL-MARKLESS-COMPONENTS:EMBED See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS FOOTNOTE
The directive for a footnote. See CL-MARKLESS-COMPONENTS:FOOTNOTE See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS FOOTNOTE-REFERENCE
The directive for a footnote reference. See CL-MARKLESS-COMPONENTS:FOOTNOTE-REFERENCE See INLINE-DIRECTIVE
-
EXTERNAL CLASS HEADER
The directive for a section header. See CL-MARKLESS-COMPONENTS:HEADER See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS HIGHLIGHTED
No documentation provided. -
EXTERNAL CLASS HORIZONTAL-RULE
The directive for a horizontal rule. See CL-MARKLESS-COMPONENTS:HORIZONTAL-RULE See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS INLINE-DIRECTIVE
Superclass for all inline directives. Provides default methods for CONSUME-PREFIX, END, and INVOKE. See CONSUME-PREFIX See END See INVOKE See DIRECTIVE
-
EXTERNAL CLASS INSTRUCTION
The directive for an instruction. The parsing of the actual type of directive is handled by PARSE-INSTRUCTION. The instruction is parsed fully on BEGIN and then evaluated on INVOKE. See PARSE-INSTRUCTION See EVALUATE-INSTRUCTION See CL-MARKLESS-COMPONENTS:INSTRUCTION See SINGULAR-LINE-DIRECTIVE
-
EXTERNAL CLASS ITALIC
The directive for an italic markup. See CL-MARKLESS-COMPONENTS:ITALIC See SURROUNDING-INLINE-DIRECTIVE
-
EXTERNAL CLASS JUSTIFY
No documentation provided. -
EXTERNAL CLASS LEFT-ALIGN
No documentation provided. -
EXTERNAL CLASS MARKLESS
Output format that prints to valid Markless again. This should allow you to construct arbitrary component ASTs and generate valid Markless documents. See OUTPUT
-
EXTERNAL CLASS NEWLINE
The directive for an explicit newline. See CL-MARKLESS-COMPONENTS:NEWLINE See INLINE-DIRECTIVE
-
EXTERNAL CLASS ORDERED-LIST
The directive for an ordered list and its items. See CL-MARKLESS-COMPONENTS:ORDERED-LIST See CL-MARKLESS-COMPONENTS:ORDERED-LIST-ITEM See BLOCK-DIRECTIVE
-
EXTERNAL CLASS OUTPUT-FORMAT
Superclass for all output formats. If you define a new format, you should define a new subclass to this and specialise on your new class in your OUTPUT-COMPONENT methods. See OUTPUT-COMPONENT
-
EXTERNAL CLASS PARAGRAPH
The directive for a paragraph. This is a very important directive as it acts as the fallback in pretty much every situation and has the most complex parser logic associated with it. See CL-MARKLESS-COMPONENTS:PARAGRAPH See BLOCK-DIRECTIVE
-
EXTERNAL CLASS PARSER
Representation of the parsing state necessary to parse a Markless document. A parser instance is required in order to parse a document. While it is permitted to re-use a parser instance for subsequent parsing, it is /NOT/ allowed to use the same parser concurrently. Concurrent parsing or access of the parser will lead to undefined consequences. When constructing the parser you may pass a list of directives the parser should support via the :DIRECTIVES argument. You can also by-default disable some of those directives by putting their names into the :DISABLED-DIRECTIVES argument. Note that disabling a directive is not the same as leaving it out of the :DIRECTIVES list completely. If it is only disabled it can be enabled via the ENABLE instruction during parsing. The :STACK-SIZE-LIMIT argument sets the maximal nesting permitted when parsing. If directives are nested more deeply than this, parsing of the document will fail. The default is set to 64. You may also pass a list of accepted compound options, embed types, embed options, and instruction types using the respective initargs. Note that even though subsequent re-use of the parser is permitted, changes carried out by an INSTRUCTION during a parse will not be reset on a subsequent parse, so instructions can poison subsequent parses. If the INSTRUCTION directive is excluded, subsequent parses should be clean however. See LINE-BREAK-MODE See DIRECTIVES See EMBED-TYPES See EMBED-OPTIONS See COMPOUND-OPTIONS See INSTRUCTION-TYPES See DIRECTIVE See ENABLE See DISABLE See EVALUATE-INSTRUCTION See BLOCK-DISPATCH-TABLE See INLINE-DISPATCH-TABLE See INPUT See STACK See PARSE See COMMIT See ROOT
-
EXTERNAL CLASS RIGHT-ALIGN
No documentation provided. -
EXTERNAL CLASS ROOT-DIRECTIVE
Represents the root parser entry. The root directive is always at the bottom of the stack. It is responsible for matching and invoking the block directives at the top level of the document. The root directive cannot be disabled. See DIRECTIVE
-
EXTERNAL CLASS SINGULAR-LINE-DIRECTIVE
Superclass for all single-line block directives. Provides default methods for CONSUME-PREFIX and INVOKE. See END See INVOKE See BLOCK-DIRECTIVE
-
EXTERNAL CLASS STRIKETHROUGH
The directive for a strikethrough markup. See CL-MARKLESS-COMPONENTS:STRIKETHROUGH See INLINE-DIRECTIVE
-
EXTERNAL CLASS SUBTEXT
The directive for a subtext markup. See CL-MARKLESS-COMPONENTS:SUBTEXT See INLINE-DIRECTIVE
-
EXTERNAL CLASS SUPERTEXT
The directive for a supertext markup. See CL-MARKLESS-COMPONENTS:SUPERTEXT See INLINE-DIRECTIVE
-
EXTERNAL CLASS SURROUNDING-INLINE-DIRECTIVE
Superclass for select surrounding inline directives. Provides a method for BEGIN that automatically pops the stack and advances the cursor if the current directive at the top of the stack is the same as this directive. This is useful for surrounding inline directives whose postfix is the same as their prefix. See BEGIN See INLINE-DIRECTIVE
-
EXTERNAL CLASS UNDERLINE
The directive for an underline markup. See CL-MARKLESS-COMPONENTS:UNDERLINE See SURROUNDING-INLINE-DIRECTIVE
-
EXTERNAL CLASS UNORDERED-LIST
The directive for an unordered list and its items. See CL-MARKLESS-COMPONENTS:UNORDERED-LIST See CL-MARKLESS-COMPONENTS:UNORDERED-LIST-ITEM See BLOCK-DIRECTIVE
-
EXTERNAL CLASS URL
The directive for an inline URL. The handling of the URL directive is a bit special due to the lack of a dedicated prefix that can be uniquely matched to initiate the scan of an URL. Thus, special handling code in READ-INLINE is present to make this case at least somewhat efficient. This directive will, unlike all others, return the same cursor on BEGIN if the complete URL does not match. See CL-MARKLESS-COMPONENTS:URL See INLINE-DIRECTIVE
-
EXTERNAL CONDITION BAD-OPTION
Warning signalled if an option is malformed or unknown. See OPTION See PARSER-ERROR
-
EXTERNAL CONDITION BAD-UNIT
Warning signalled if the size contains an unknown unit. See BAD-OPTION
-
EXTERNAL CONDITION BAD-VALUE
Error signalled if a set instruction contains an malformed or invalid value for a variable. See VARIABLE-NAME See VALUE See PARSER-ERROR
-
EXTERNAL CONDITION BAD-VARIABLE
Error signalled if a set instruction refers to an unknown variable. See VARIABLE-NAME See PARSER-ERROR
-
EXTERNAL CONDITION DEACTIVATION-DISALLOWED
Error signalled if an attempt is made to deactivate a directive that cannot be deactivated. See DIRECTIVE-INSTANCE See MARKLESS-CONDITION
-
EXTERNAL CONDITION IMPLEMENTATION-CONDITION
Superclass for all conditions that indicate an error in the parser implementation. See MARKLESS-CONDITION
-
EXTERNAL CONDITION INSTRUCTION-EVALUATION-UNDEFINED
Error signalled when an instruction is not fully implemented. See INSTRUCTION See IMPLEMENTATION-CONDITION
-
EXTERNAL CONDITION MARKLESS-CONDITION
Superclass for all conditions related to markless. See CL:CONDITION
-
EXTERNAL CONDITION OPTION-DISALLOWED
Warning signalled if an option is attempted to be used for an embed that does not allow it. See EMBED-TYPE See BAD-OPTION
-
EXTERNAL CONDITION PARSER-CONDITION
Superclass for all conditions that relate to the parsing process. See LINE See CURSOR See MARKLESS-CONDITION
-
EXTERNAL CONDITION PARSER-ERROR
Superclass for all conditions that relate to fatal parser errors. See PARSER-CONDITION
-
EXTERNAL CONDITION PARSER-WARNING
Superclass for all conditions that relate to recoverable parser errors. See PARSER-CONDITION
-
EXTERNAL CONDITION STACK-EXHAUSTED
Error signalled when the directive stack is under- or overflowed. See IMPLEMENTATION-CONDITION
-
EXTERNAL CONDITION UNKNOWN-EMBED-TYPE
Warning signalled if an embed type is encountered that is unknown. See EMBED-TYPE See PARSER-WARNING
-
EXTERNAL CONDITION UNKNOWN-INSTRUCTION
Error signalled if an instruction is encountered that is unknown. See INSTRUCTION See PARSER-ERROR
-
EXTERNAL CONDITION USER-ERROR
Error signalled when an error instruction is encountered. See MESSAGE See PARSER-WARNING
-
EXTERNAL CONDITION USER-WARNING
Warning signalled when a warn instruction is encountered. See MESSAGE See PARSER-WARNING
-
EXTERNAL STRUCTURE STACK-ENTRY
Representation of an entry on the parse stack. See STACK-ENTRY-COMPONENT See STACK-ENTRY-DIRECTIVE See STACK
-
EXTERNAL FUNCTION COMMIT
- DIRECTIVE
- COMPONENT
- PARSER
Commits the given directive and component. This pushes the two onto the stack and appends the component to the child array of the component that was previously at the top of the stack. See DIRECTIVE See CL-MARKLESS-COMPONENTS:COMPONENT See PARSER
-
EXTERNAL FUNCTION COMPILE-DISPATCH-TABLE
- DIRECTIVES
Compiles the given list of directives into a dispatch table. This table forms a tree of tables with either NIL or a directive as the leaves. A directive is only ever a leaf if its full prefix has been matched by traversing the tree of tables. The tree is built using the PREFIX from the directives. See DIRECTIVE See PREFIX See DISPATCH
-
EXTERNAL FUNCTION CONDENSE-CHILDREN
- CHILDREN
Returns a new, condensed child array. This condenses the child array as follows: - Consecutive strings are concatenated together - INSTRUCTION and COMMENT components are filtered out - PARENT-COMPONENTs that are not subclasses thereof have their contents spliced into the new child array. This does /not/ recursively condense.
-
EXTERNAL FUNCTION CONDENSE-COMPONENT-TREE
- COMPONENT
Condenses the given component destructively and recursively. See CONDENSE-CHILDREN
-
EXTERNAL FUNCTION DISPATCH
- TABLE
- STRING
- CURSOR
Dispatches to a directive using the given dispatch table. Returns the matched directive if a full prefix match has been found and the directive is enabled. See ENABLED-P
-
EXTERNAL FUNCTION ENDS-WITH
- ENDING
- STRING
Returns true if the given string ends with the given ending.
-
EXTERNAL FUNCTION ENSURE-COMPOUND-OPTION
- OPTION-ISH
No documentation provided. -
EXTERNAL FUNCTION ENSURE-DIRECTIVE
- DIRECTIVE-ISH
Resolves the directive-ish to a directive if possible. The argument can be a DIRECTIVE instance or a symbol naming the class of one. In the latter case, a new instance of the named class is returned if the class is a subclass of DIRECTIVE. Otherwise, an error is signalled. See DIRECTIVE
-
EXTERNAL FUNCTION ENSURE-EMBED-OPTION
- OPTION-ISH
No documentation provided. -
EXTERNAL FUNCTION ENSURE-EMBED-TYPE
- TYPE-ISH
No documentation provided. -
EXTERNAL FUNCTION ENSURE-INSTRUCTION-TYPE
- TYPE-ISH
No documentation provided. -
EXTERNAL FUNCTION LIST-OUTPUT-FORMATS
Returns a list of all known output formats. The list is composed of class names for OUTPUT-FORMAT classes. See OUTPUT-FORMAT
-
EXTERNAL FUNCTION OUTPUT
- COMPONENT
- &REST
- INITARGS
- &KEY
- TARGET
- FORMAT
- &ALLOW-OTHER-KEYS
Outputs the given component to the appropriate stream in the requested format. If the target is T, it is substituted for *STANDARD-OUTPUT*. If the target is NIL, it is substituted for a STRING-OUTPUT-STREAM whose contents are returned in the end. If the target is a PATHNAME, the denoted file is opened and the target is substituted for a stream to that file. Otherwise, the target is passed on to OUTPUT-COMPONENT directly and the return value is format dependent. If the component is not an instance of COMPONENT, it is replaced by the return value of calling PARSE on the passed component argument. Extra keyword arguments are passed as initargs to the FORMAT. If the FORMAT is an instance of OUTPUT-FORMAT, REINITIALIZE-INSTANCE is called. If the FORMAT is a SYMBOL, MAKE-INSTANCE is called. Otherwise an error is signalled. Note that the keyword arguments :FORMAT and :TARGET are excluded from the initarg list. By default the MARKLESS and DEBUG outputs are provided. See PARSE See MARKLESS See DEBUG See OUTPUT-COMPONENT
-
EXTERNAL FUNCTION PARSE-COMPOUND-OPTION
- PARSER
- CURSOR
- OPTION
Parses the given option string into an option if possible. The following tests are performed: - If the option is found in *COLOR-TABLE*, its entry is returned. - If the option is found in *SIZE-TABLE*, its entry is returned. - If the option starts with a # an INTERNAL-LINK-OPTION is returned. - If the option matches the URL directive, a LINK-OPTION is returned. - Otherwise the function proceeds as follows: Call FIND-COMPOUND-OPTION-TYPE. If a class is returned, PARSE-COMPOUND-OPTION-TYPE is called with a class prototype. Otherwise an error of type BAD-OPTION is signalled. See *COLOR-TABLE* See *SIZE-TABLE* See PARSE-COMPOUND-OPTION-TYPE See CL-MARKLESS-COMPONENTS:COMPOUND-OPTION
-
EXTERNAL FUNCTION PARSE-EMBED-OPTION
- PARSER
- CURSOR
- OPTION
- COMPONENT
Parses the given option string into an option if possible. Uses FIND-EMBED-OPTION-TYPE to find a suitable class for the given option. If found, PARSE-EMBED-OPTION-TYPE is called with a class prototype of the name. Otherwise an error of type BAD-OPTION is signalled. See FIND-EMBED-OPTION See PARSE-EMBED-OPTION-TYPE See CL-MARKLESS-COMPONENTS:EMBED-OPTION
-
EXTERNAL FUNCTION PARSE-FLOAT
- STRING
- &KEY
- START
- END
Parses the given string as a floating point number.
-
EXTERNAL FUNCTION READ-BLOCK
- PARSER
- LINE
- CURSOR
Attempts to match a block directive. If the cursor is not already at the end of the line, this will dispatch a block directive and call BEGIN on it. It will return the resulting cursor. See PARSER See BEGIN See DISPATCH See BLOCK-DISPATCH-TABLE
-
EXTERNAL FUNCTION READ-DELIMITED
- LINE
- CURSOR
- DELIMITER
Reads the next character delimited token. Returns the read token and the new cursor position as multiple values. This does properly handle backslash escapes.
-
EXTERNAL FUNCTION READ-FULL-LINE
- STREAM
Reads a full line of text from the stream, respecting Markless' line escape syntax. This means the following foo\ bar\ baz will be read as foobarbaz
-
EXTERNAL FUNCTION READ-INLINE
- PARSER
- LINE
- CURSOR
- END-CHAR
Attempts to match inline content. This constructs a string of content from the line and appends it to the current component at the top of the stack until an inline directive is matched or until the end-char is reached. If an inline directive is matched, BEGIN is called on it and the result thereof is returned. If the end-char is matched, CONSUME-END is called on the directive at the top of the stack. If this returns non-NIL, that value is returned from READ-INLINE after popping the stack. See PARSER See BEGIN See CONSUME-END See STACK-POP See STACK-TOP See DISPATCH See INLINE-DISPATCH-TABLE
-
EXTERNAL FUNCTION READ-URL
- LINE
- CURSOR
Attempts to match a URL. If the match succeeds, a new cursor for the end of the URL is returned and NIL otherwise.
-
EXTERNAL FUNCTION ROOT
- PARSER
-
EXTERNAL FUNCTION SPLIT-STRING
- STRING
- SPLIT
- &OPTIONAL
- START
Splits the string by the given split character. Returns a list of split parts with empty parts removed. This does NOT handle backslash escapes.
-
EXTERNAL FUNCTION STACK-BOTTOM
- STACK
Returns the stack entry at the bottom of the stack. This must always be an entry with a ROOT-DIRECTIVE and ROOT-COMPONENT as its contents. See STACK-ENTRY
-
EXTERNAL FUNCTION STACK-ENTRY-COMPONENT
- INSTANCE
Accesses the stack entry's component. It is NOT safe to read this value for stack entries that are outside the current fill-pointer of the stack. See STACK-ENTRY
-
EXTERNAL FUNCTION (SETF STACK-ENTRY-COMPONENT)
- VALUE
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION STACK-ENTRY-DIRECTIVE
- INSTANCE
Accesses the stack entry's directive. It is NOT safe to read this value for stack entries that are outside the current fill-pointer of the stack. See STACK-ENTRY
-
EXTERNAL FUNCTION (SETF STACK-ENTRY-DIRECTIVE)
- VALUE
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION STACK-POP
- STACK
Pops the top directive and component off the stack. Returns the popped STACK-ENTRY. See STACK-ENTRY
-
EXTERNAL FUNCTION STACK-PUSH
- DIRECTIVE
- COMPONENT
- STACK
Pushes the given directive and component onto the stack. Returns the top STACK-ENTRY. See STACK-ENTRY
-
EXTERNAL FUNCTION STACK-TOP
- STACK
Returns the stack entry at the top of the stack. See STACK-ENTRY
-
EXTERNAL FUNCTION STACK-UNWIND
- STACK
- PARSER
- UNTIL
-
EXTERNAL FUNCTION STARTS-WITH
- BEGINNING
- STRING
- &OPTIONAL
- START
Returns true if the given string starts with the given beginning.
-
EXTERNAL FUNCTION TO-READTABLE-CASE
- STRING
- CASE
Turns the given string into the case as appropriate for the requested readtable case. This acts as if the string was parsed into a symbol token by READ but without actually interning or invoking any of the heavy READ machinery. This is useful in order to translate names for symbols into the appropriate case for lookups.
-
EXTERNAL GENERIC-FUNCTION BEGIN
- DIRECTIVE
- PARSER
- LINE
- CURSOR
Function called to match the beginning of a directive. Every directive must provide a method for this function. This function is called if the PREFIX of the directive has been matched. This function should then consume the remainder of the prefix (if any) and return the new position of the cursor. The method is responsible for putting the directive and its component onto the stack if an actual match is found. This can be done via COMMIT. On an invalid match, the directive should delegate parsing to another directive, or in the very least advance the cursor somehow as otherwise the parser will enter an infinite loop of invoking BEGIN on the same directive after matching its prefix. See COMMIT See DIRECTIVE See READ-BLOCK See READ-INLINE
-
EXTERNAL GENERIC-FUNCTION BLOCK-DISPATCH-TABLE
- OBJECT
-
EXTERNAL GENERIC-FUNCTION (SETF BLOCK-DISPATCH-TABLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COMPOUND-OPTIONS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF COMPOUND-OPTIONS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CONSUME-END
- DIRECTIVE
- COMPONENT
- PARSER
- LINE
- CURSOR
Function called to consume the end of an inline directive. Every inline-directive must provide a method for this function. This function is called by READ-INLINE if the supplied end-char has been encountered. CONSUME-END should then return the updated cursor position on a successful end match, or NIL on an unsuccessful one. If it returns successfully, the directive and its component will automatically be popped off the stack. See READ-INLINE See INLINE-DIRECTIVE
-
EXTERNAL GENERIC-FUNCTION CONSUME-PREFIX
- DIRECTIVE
- COMPONENT
- PARSER
- LINE
- CURSOR
Function called to consume the prefix of a directive on the next line. Every block-directive must provide a method for this function. This function is called on subsequent lines after the directive has been dispatched and BEGIN has been called. The directive should match the correct prefix for subsequent lines and return the updated cursor on a successful match, or NIL if the match has failed. See PROCESS-STACK See BLOCK-DIRECTIVE
-
EXTERNAL GENERIC-FUNCTION COUNT-WORDS
- STRING
- &OPTIONAL
- METHOD
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COUNT-WORDS-BY
- METHOD
- THING
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CURSOR
- CONDITION
Returns the cursor position after which the condition occurred. The cursor indexes into the line character by character starting from 0. See PARSER-CONDITION
-
EXTERNAL GENERIC-FUNCTION DIRECTIVE
- NAME
- PARSER
-
EXTERNAL GENERIC-FUNCTION DIRECTIVE-INSTANCE
- CONDITION
Returns the instance of the directive related to the condition. See DEACTIVATION-DISALLOWED
-
EXTERNAL GENERIC-FUNCTION DIRECTIVES
- OBJECT
-
EXTERNAL GENERIC-FUNCTION (SETF DIRECTIVES)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DIRECTIVES-OF
- TYPE
- PARSER
-
EXTERNAL GENERIC-FUNCTION DISABLE
- PARSER
- TEST
-
EXTERNAL GENERIC-FUNCTION EMBED-OPTION-ALLOWED-P
- OPTION
- EMBED
Returns T if the combination of option and embed type are allowed. The user should add appropriate methods to this function when new embed types or options are added. Such methods should simply return T, as the default method will always return NIL. See CL-MARKLESS-COMPONENTS:EMBED-OPTION See CL-MARKLESS-COMPONENTS:EMBED
-
EXTERNAL GENERIC-FUNCTION EMBED-OPTIONS
- OBJECT
Accesses the list of embed options the parser supports. See PARSER See EMBED-OPTION
-
EXTERNAL GENERIC-FUNCTION (SETF EMBED-OPTIONS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION EMBED-TYPE
- CONDITION
Returns the embed-type that caused the error. See OPTION-DISALLOWED
-
EXTERNAL GENERIC-FUNCTION EMBED-TYPES
- OBJECT
Accesses the list of compound options the parser supports. See PARSER See COMPOUND-OPTION
-
EXTERNAL GENERIC-FUNCTION (SETF EMBED-TYPES)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ENABLE
- PARSER
- TEST
-
EXTERNAL GENERIC-FUNCTION ENABLED-P
- OBJECT
Accesses whether the directive is currently enabled or not. Some directives may not be disabled, in which case an error of type DEACTIVATION-DISALLOWED is signalled if an attempt is made to disable it. See DIRECTIVE See DEACTIVATION-DISALLOWED
-
EXTERNAL GENERIC-FUNCTION (SETF ENABLED-P)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION END
- DIRECTIVE
- COMPONENT
- PARSER
Function called when a directive is popped off the stack due to an unsuccessful match. A method can be added to this to allow the directive to perform some undoing. This is typically necessary for inline directives as they might have consumed a prefix that is now invalid due to the incomplete match. See PROCESS-STACK See DIRECTIVE
-
EXTERNAL GENERIC-FUNCTION EVALUATE-INSTRUCTION
- INSTRUCTION
- PARSER
Evaluates the given instruction, carrying out the changes in parser state. See INSTRUCTION See CL-MARKLESS-COMPONENTS:INSTRUCTION See PARSER
-
EXTERNAL GENERIC-FUNCTION FIND-EMBED-OPTION-TYPE
- PARSER
- OPTION
Finds a class that can parse the option of the given type name. For a default parser this will compare the given option name against the class names of the classes mentioned in the parser's EMBED-OPTIONS list. If the given name with "-option" added to its end matches any of the class names case-insensitively, that class is returned. See PARSE-EMBED-OPTION
-
EXTERNAL GENERIC-FUNCTION FIND-EMBED-TYPE
- PARSER
- TYPE
Finds a class that can parse the embed type of the given name. For a default parser this will compare the given option name against the class names of the classes mentioned in the parser's EMBED-OPTIONS list. The names are compared case-insensitively. See EMBED
-
EXTERNAL GENERIC-FUNCTION FIND-INSTRUCTION-TYPE
- PARSER
- TYPE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INLINE-DISPATCH-TABLE
- OBJECT
-
EXTERNAL GENERIC-FUNCTION (SETF INLINE-DISPATCH-TABLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT
- OBJECT
Accesses the current input stream from which lines are parsed. See PARSER
-
EXTERNAL GENERIC-FUNCTION (SETF INPUT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INSTRUCTION
- CONDITION
Returns the problematic instruction. See INSTRUCTION-EVALUATION-UNDEFINED See UNKNOWN-INSTRUCTION
-
EXTERNAL GENERIC-FUNCTION INSTRUCTION-TYPES
- OBJECT
Accesses the list of instruction types the parser supports. See PARSER See INSTRUCTION
-
EXTERNAL GENERIC-FUNCTION (SETF INSTRUCTION-TYPES)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INVOKE
- DIRECTIVE
- COMPONENT
- PARSER
- LINE
- CURSOR
Function called to invoke parsing of a directive after a successful match. Every directive must provide a method for this function. Invoke is called to cause the directive to process its content. It should return the new cursor position. Invoke will be repeatedly called on the current directive until the end of the line is reached. See PROCESS-STACK See DIRECTIVE
-
EXTERNAL GENERIC-FUNCTION LINE
- CONDITION
Returns the line number on which the condition occurred. The lines are counted from 0. See PARSER-CONDITION
-
EXTERNAL GENERIC-FUNCTION LINE-BREAK-MODE
- OBJECT
Accesses the line break mode currently active in the parser. The value must be either :SHOW or :HIDE. See PARSER
-
EXTERNAL GENERIC-FUNCTION (SETF LINE-BREAK-MODE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MESSAGE
- CONDITION
Returns the message the user passed in the warn instruction. See USER-WARNING See USER-ERROR
-
EXTERNAL GENERIC-FUNCTION OPTION
- CONDITION
Returns the option string that could not be parsed. See BAD-OPTION
-
EXTERNAL GENERIC-FUNCTION OUTPUT-COMPONENT
- COMPONENT
- TARGET
- FORMAT
This function is responsible for formatting the given component to the target in the requested format. The user should add methods to this function as appropriate, but must always EQL-specialise on the format argument with a unique symbol to distinguish their format from others. Note that the target must not necessarily be a stream unless the method specialises it to be one. See OUTPUT
-
EXTERNAL GENERIC-FUNCTION PARSE
- THING
- PARSER
Parses the given input as a Markless document. If the parser argument is T, a fresh PARSER instance is constructed to perform the parsing. The THING may be a PATHNAME, STRING, or a STREAM. Returns a ROOT-COMPONENT on a successful parse. Note that the parser is not incremental and will consume the stream until EOF is encountered. See CL-MARKLESS-COMPONENTS:ROOT-COMPONENT See PARSER
-
EXTERNAL GENERIC-FUNCTION PARSE-COMPOUND-OPTION-TYPE
- PROTO
- OPTION
Parses a compound option to the proper option instance. This may signal errors if the parsing is unsuccessful. Each method should be specialised on the class of the compound option to parse and should return a fresh instance of that class on a successful parse. The argument is only a prototype of that class and should not be used for anything except for the type information and dispatch. By default this function simply returns a fresh instance of the class with no initargs passed. See COMPOUND
-
EXTERNAL GENERIC-FUNCTION PARSE-EMBED-OPTION-TYPE
- TYPE
- OPTION
Parses an embed option to the proper option instance. This may signal errors if the parsing is unsuccessful. Each method should be specialised on the class of the embed option to parse and should return a fresh instance of that class on a successful parse. The argument is only a prototype of that class and should not be used for anything except for the type information and dispatch. By default this function simply returns a fresh instance of the class with no initargs passed. See EMBED
-
EXTERNAL GENERIC-FUNCTION PARSE-INSTRUCTION
- PROTO
- LINE
- CURSOR
Parses an instruction line to the proper instruction instance. This may signal errors if the parsing is unsuccessful. Each method should be specialised on the class of the instruction to parse and should return a fresh instance of that class on a successful parse. The argument is only a prototype of that class and should not be used for anything except for the type information and dispatch. See INSTRUCTION
-
EXTERNAL GENERIC-FUNCTION PREFIX
- DIRECTIVE
Returns the unique prefix of the directive used to identify its start. Every directive must provide a method for this function. The prefix is a vector of strings, where each string denotes a set of possible characters that can appear at that position in the prefix. For instance, the following prefix #("ab" "c") Matches the following strings ac bc bca but not the following ab cc abc See COMPILE-DISPATCH-TABLE See DIRECTIVE
-
EXTERNAL GENERIC-FUNCTION STACK
- OBJECT
Accesses the stack of components and directives of the parser. It is NOT safe to modify or set this stack after the parser has been constructed. This stack must be a vector with element-type STACK-ENTRY and a fill-pointer. See PARSER See STACK-ENTRY See STACK-PUSH See STACK-POP See STACK-TOP See STACK-BOTTOM
-
EXTERNAL GENERIC-FUNCTION (SETF STACK)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION VALUE
- CONDITION
Returns the variable value related to the condition. See BAD-VALUE
-
EXTERNAL GENERIC-FUNCTION VARIABLE-NAME
- CONDITION
Returns the name of the variable related to the condition. See BAD-VARIABLE See BAD-VALUE
-
EXTERNAL MACRO DEFINE-OUTPUT
- FORMAT
- COMPONENT
- STREAM
- &BODY
- METHODS
Defines a new output format. This is a shorthand macro that defines methods for OUTPUT-COMPONENT specialised on streams. Each entry in the body must follow this structure: CLASS QUALIFIERS . BODY Which will be translated to the appropriate method. Within the body the following two convenience functions are automatically bound: - (OUTPUT c) Calls OUTPUT-COMPONENT on c with the appropriate extra arguments. - (OUTPUT-CHILDREN) Calls OUTPUT-COMPONENT on each of the children of the current component. See OUTPUT-COMPONENT
-
EXTERNAL MACRO MATCH!
- PREFIX
- LINE
- CURSOR
Attempts to match the prefix. Returns the new cursor on success, and NIL on failure.
-
EXTERNAL SOURCE-TRANSFORM STACK-ENTRY-COMPONENT
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF STACK-ENTRY-COMPONENT)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM STACK-ENTRY-DIRECTIVE
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF STACK-ENTRY-DIRECTIVE)
No documentation provided.
-
CL-MARKLESS-COMPONENTS
- ORG.SHIRAKUMO.MARKLESS.COMPONENTS
No documentation provided.-
EXTERNAL CLASS ALIGN
No documentation provided. -
EXTERNAL CLASS AUDIO
Representation of the AUDIO embed type. See EMBED
-
EXTERNAL CLASS AUTOPLAY-OPTION
Represents an autoplay option. Causes the embed to automatically start playback. See EMBED-OPTION
-
EXTERNAL CLASS BLOCK-COMPONENT
A component that encompasses a block of text. See COMPONENT
-
EXTERNAL CLASS BLOCKQUOTE
Represents a blockquote. If the blockquote's SOURCE is available, it should be displayed alongside the blockquote in the resulting document. See SOURCE See PARENT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS BLOCKQUOTE-HEADER
Represents the header of a blockquote. The header should typically not be directly translated into a resulting component, but instead be represented alongside the blockquote with which it is associated. See SOURCE See PARENT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS BOLD
Representation of bold text. See PARENT-COMPONENT
-
EXTERNAL CLASS BOLD-OPTION
Representation of the bold compound option. See COMPOUND-OPTION
-
EXTERNAL CLASS CAPTION-OPTION
No documentation provided. -
EXTERNAL CLASS CODE
Representation of literal text. See PARENT-COMPONENT
-
EXTERNAL CLASS CODE-BLOCK
Representation of a block of literal text. See LANGUAGE See OPTIONS See TEXT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS COLOR-OPTION
Representation of the color compound option. See RED See GREEN See BLUE See COMPOUND-OPTION
-
EXTERNAL CLASS COMMENT
Represents a comment. See TEXT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS COMPONENT
Base class for all components that make up the AST of a parse result.
-
EXTERNAL CLASS COMPOUND
Representation of text with a combination of stylistic transforms applied. See PARENT-COMPONENT See OPTIONS
-
EXTERNAL CLASS COMPOUND-OPTION
Superclass for all compound options. Every concrete subclass must have the suffix -OPTION.
-
EXTERNAL CLASS DESCRIPTION-OPTION
No documentation provided. -
EXTERNAL CLASS DIRECTIVES-INSTRUCTION
Superclass for all instructions that carry a list of directives. See DIRECTIVES See INSTRUCTION
-
EXTERNAL CLASS DISABLE
Represents a DISABLE instruction. See DIRECTIVES-INSTRUCTION
-
EXTERNAL CLASS EM-DASH
Representation of an em-dash. See UNIT-COMPONENT
-
EXTERNAL CLASS EMBED
Represents an embed block. An embed embeds an outside resource into the document. Resolution of the target is left up to the translator to the resulting document. See TARGET See OPTIONS See UNIT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS EMBED-LINK-OPTION
No documentation provided. -
EXTERNAL CLASS EMBED-OPTION
Superclass for all options for an embed component. Every concrete subclass must have the suffix -OPTION.
-
EXTERNAL CLASS EN-DASH
Representation of an en-dash. See UNIT-COMPONENT
-
EXTERNAL CLASS ENABLE
Represents an ENABLE instruction. See DIRECTIVES-INSTRUCTION
-
EXTERNAL CLASS ENCODING-OPTION
No documentation provided. -
EXTERNAL CLASS END-OPTION
No documentation provided. -
EXTERNAL CLASS ERROR
Represents an ERROR instruction. See MESSAGE-INSTRUCTION
-
EXTERNAL CLASS FLOAT-OPTION
Represents a float option. Causes the embed to float within the other blocks. See DIRECTION See EMBED-OPTION
-
EXTERNAL CLASS FONT-OPTION
Representation of the font compound option. See FONT-FAMILY See COMPOUND-OPTION
-
EXTERNAL CLASS FOOTNOTE
Representation of a footnote definition. Footnotes should typically appear at the end of a page or the full document regardless of their position in the structure. See TARGET See PARENT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS FOOTNOTE-REFERENCE
Representation of a reference to a footnote. See TARGET See UNIT-COMPONENT
-
EXTERNAL CLASS HEADER
Representation of a section heading. Each header must have a section depth number. See DEPTH See PARENT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS HEIGHT-OPTION
Represents a height option. Causes the embed to restrict its height to the given size. See EMBED-OPTION See SIZED
-
EXTERNAL CLASS HORIZONTAL-RULE
Representation of a horizontal rule. See UNIT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS IMAGE
Representation of the IMAGE embed type. See EMBED
-
EXTERNAL CLASS INCLUDE
Represents an INCLUDE instruction See FILE See INSTRUCTION
-
EXTERNAL CLASS INFO
Represents an INFO instruction. See MESSAGE-INSTRUCTION
-
EXTERNAL CLASS INLINE-COMPONENT
A component that encompasses an inline section of text. See COMPONENT
-
EXTERNAL CLASS INSTRUCTION
Superclass for all instructions. See BLOCK-COMPONENT
-
EXTERNAL CLASS INTERNAL-LINK-OPTION
Representation of an internal link option. See LINK-OPTION
-
EXTERNAL CLASS ITALIC
Representation of italic text. See PARENT-COMPONENT
-
EXTERNAL CLASS ITALIC-OPTION
Representation of the italic compound option. See COMPOUND-OPTION
-
EXTERNAL CLASS LABEL
Represents a LABEL instruction See TARGET See INSTRUCTION
-
EXTERNAL CLASS LABEL-OPTION
No documentation provided. -
EXTERNAL CLASS LANGUAGE-OPTION
No documentation provided. -
EXTERNAL CLASS LINK-OPTION
Representation of the link option. See TARGET See COMPOUND-OPTION
-
EXTERNAL CLASS LIST
Superclass for all list type components. See PARENT-COMPONENT
-
EXTERNAL CLASS LIST-ITEM
Superclass for all list item type components. See PARENT-COMPONENT
-
EXTERNAL CLASS LOOP-OPTION
Represents a loop option. Causes the embed to loop its content. See EMBED-OPTION
-
EXTERNAL CLASS MESSAGE-INSTRUCTION
Superclass for all instructions that carry a message. See MESSAGE See INSTRUCTION
-
EXTERNAL CLASS NEWLINE
Representation of a line break. See UNIT-COMPONENT
-
EXTERNAL CLASS OPTIONS-OPTION
No documentation provided. -
EXTERNAL CLASS ORDERED-LIST
Representation of an ordered list. The child array should only contain ORDERED-LIST-ITEMs. See LIST See BLOCK-COMPONENT See ORDERED-LIST-ITEM
-
EXTERNAL CLASS ORDERED-LIST-ITEM
Representation of an item in an ordered list. Each item has an associated order number. See NUMBER See LIST-ITEM See BLOCK-COMPONENT
-
EXTERNAL CLASS PARAGRAPH
Represents a textual paragraph. See INDENTATION See PARENT-COMPONENT See BLOCK-COMPONENT
-
EXTERNAL CLASS PARENT-COMPONENT
-
EXTERNAL CLASS RAW
No documentation provided. -
EXTERNAL CLASS ROOT-COMPONENT
The base component that makes up a parsed document's AST. This component also stores cross references and document metadata. See PARENT-COMPONENT See LABELS See AUTHOR See LANGUAGE See COPYRIGHT
-
EXTERNAL CLASS SET
Representation of a SET instruction. This instruction changes a state variable. See VARIABLE See VALUE See INSTRUCTION
-
EXTERNAL CLASS SIZE-OPTION
Representation of the size compound option. See COMPOUND-OPTION See SIZED
-
EXTERNAL CLASS SIZED
-
EXTERNAL CLASS SOURCE
No documentation provided. -
EXTERNAL CLASS SPOILER-OPTION
Representation of the spoiler compound option. See COMPOUND-OPTION
-
EXTERNAL CLASS START-OPTION
No documentation provided. -
EXTERNAL CLASS STRIKETHROUGH
Representation of struck-through text. See PARENT-COMPONENT
-
EXTERNAL CLASS STRIKETHROUGH-OPTION
Representation of the strikethrough compound option. See COMPOUND-OPTION
-
EXTERNAL CLASS SUBTEXT
Representation of text sunk below normal text. See PARENT-COMPONENT
-
EXTERNAL CLASS SUPERTEXT
Representation of text raised above normal text. See PARENT-COMPONENT
-
EXTERNAL CLASS TARGETED
No documentation provided. -
EXTERNAL CLASS TEXT-COMPONENT
-
EXTERNAL CLASS UNDERLINE
Representation of underlined text. See PARENT-COMPONENT
-
EXTERNAL CLASS UNDERLINE-OPTION
Representation of the underline compound option. See COMPOUND-OPTION
-
EXTERNAL CLASS UNIT-COMPONENT
A component without children that represents a visual part of the document. See COMPONENT
-
EXTERNAL CLASS UNORDERED-LIST
Representation of an unordered list. The child array should only contain UNORDERED-LIST-ITEMs.
-
EXTERNAL CLASS UNORDERED-LIST-ITEM
Representation of an item in an unordered list. See LIST-ITEM See BLOCK-COMPONENT
-
EXTERNAL CLASS URL
Representation of a literal URL. See UNIT-COMPONENT See TARGET
-
EXTERNAL CLASS VIDEO
Representation of the VIDEO embed type. See EMBED
-
EXTERNAL CLASS WARNING
Represents a WARNING instruction. See MESSAGE-INSTRUCTION
-
EXTERNAL CLASS WIDTH-OPTION
Represents a width option. Causes the embed to restrict its width to the given size. See EMBED-OPTION See SIZED
-
EXTERNAL GENERIC-FUNCTION ALIGNMENT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF ALIGNMENT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION AUTHOR
- OBJECT
Accesses the author metadata of the document. See ROOT-COMPONENT
-
EXTERNAL GENERIC-FUNCTION (SETF AUTHOR)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BLUE
- OBJECT
Accesses the blue component of the color-option. The value must be an integer in [0,255]. See COLOR-OPTION
-
EXTERNAL GENERIC-FUNCTION (SETF BLUE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CHILDREN
- OBJECT
Accessor for the vector of child objects. The vector must be adjustable and have a fill-pointer. See PARENT-COMPONENT
-
EXTERNAL GENERIC-FUNCTION (SETF CHILDREN)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COPYRIGHT
- OBJECT
Accesses the copyright metadata of the document. See ROOT-COMPONENT
-
EXTERNAL GENERIC-FUNCTION (SETF COPYRIGHT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DEPTH
- OBJECT
Accesses the section depth of the header. This must be a positive integer. See HEADER
-
EXTERNAL GENERIC-FUNCTION (SETF DEPTH)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DIRECTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DIRECTION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DIRECTIVES
- OBJECT
Accesses the list of directives that this instruction manipulates. Each entry in the list should be a string representing the name of a directive. See DIRECTIVES-INSTRUCTION
-
EXTERNAL GENERIC-FUNCTION (SETF DIRECTIVES)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ENCODING
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF ENCODING)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION END
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF END)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FILE
- OBJECT
Accesses the file pathname of the file to be included. See INCLUDE
-
EXTERNAL GENERIC-FUNCTION (SETF FILE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FONT-FAMILY
- OBJECT
Accesses the font family name of the font option. See FONT-OPTION
-
EXTERNAL GENERIC-FUNCTION (SETF FONT-FAMILY)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION GREEN
- OBJECT
Accesses the green component of the color-option. The value must be an integer in [0,255]. See COLOR-OPTION
-
EXTERNAL GENERIC-FUNCTION (SETF GREEN)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INDENTATION
- OBJECT
Accesses the indentation of the paragraph. This is retained purely for parsing purposes and has no bearing on the visual representation in the resulting document. See PARAGRAPH
-
EXTERNAL GENERIC-FUNCTION (SETF INDENTATION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INSET
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF INSET)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LABEL
- LABEL
- ROOT
Accesses a specific label in the label table of the document. See LABELS See ROOT-COMPONENT
-
EXTERNAL GENERIC-FUNCTION (SETF LABEL)
- VALUE
- LABEL
- ROOT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LABELS
- OBJECT
Accesses the label table of the document. This should return a hash table with EQUALP test. Each key should be the name of a label, and each value a component with which this label was associated. This can be used to resolve cross-references, but only once the document has been fully parsed. See LABEL See ROOT-COMPONENT
-
EXTERNAL GENERIC-FUNCTION (SETF LABELS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LANGUAGE
- OBJECT
Accesses the language. This can be NIL or a string identifying the language. See ROOT-COMPONENT See CODE-BLOCK
-
EXTERNAL GENERIC-FUNCTION (SETF LANGUAGE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MESSAGE
- OBJECT
Accesses the message string of the instruction. Typically this message should be displayed to the user somehow. See MESSAGE-INSTRUCTION
-
EXTERNAL GENERIC-FUNCTION (SETF MESSAGE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION NUMBER
- OBJECT
Accesses the number of the list item as an INTEGER. See ORDERED-LIST-ITEM
-
EXTERNAL GENERIC-FUNCTION (SETF NUMBER)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OFFSET-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF OFFSET-P)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OPTIONS
- OBJECT
Accesses the list of options associated with the component. For a CODE-BLOCK this means a list of opaque options to direct the representation of the code. For an EMBED this is a list of EMBED-OPTION instances that dictate visualisation and interaction options. For a COMPOUND it is a list of COMPOUND-OPTION instances that convey the various style changes. See CODE-BLOCK See EMBED See COMPOUND
-
EXTERNAL GENERIC-FUNCTION (SETF OPTIONS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RED
- OBJECT
Accesses the red component of the color-option. The value must be an integer in [0,255]. See COLOR-OPTION
-
EXTERNAL GENERIC-FUNCTION (SETF RED)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SIZE
- OBJECT
Accesses the size as a REAL. This number only makes sense in conjunction with the UNIT. See SIZED
-
EXTERNAL GENERIC-FUNCTION (SETF SIZE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOURCE
- OBJECT
Accesses the blockquote-header source associated with the blockquote. See BLOCKQUOTE-HEADER See BLOCKQUOTE
-
EXTERNAL GENERIC-FUNCTION (SETF SOURCE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION START
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF START)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TARGET
- OBJECT
Accesses the target of the given object. The target is a path to an internal or external resource. See EMBED See FOOTNOTE See URL See LINK-OPTION See FOOTNOTE-REFERENCE
-
EXTERNAL GENERIC-FUNCTION (SETF TARGET)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT
- OBJECT
Accessor for the text string the component visualises. See TEXT-COMPONENT
-
EXTERNAL GENERIC-FUNCTION (SETF TEXT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION UNIT
- OBJECT
Accesses the unit of the size as a keyword. The Markless standard defines the following units: - :EM Applicable for font sizes expressed in relative width. - :PT Applicable for font sizes expressed in absolute points. - :PX Applicable for dimensions expressed in absolute pixels. - :% Applicable for dimensions expressed in relative percentage to its container. See SIZED
-
EXTERNAL GENERIC-FUNCTION (SETF UNIT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION VALUE
- OBJECT
Accesses the value of the set instruction. This should be a string representing the new value. See SET
-
EXTERNAL GENERIC-FUNCTION (SETF VALUE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION VARIABLE
- OBJECT
Accesses the variable of the set instruction. This should be a string naming the variable in question. See SET
-
EXTERNAL GENERIC-FUNCTION (SETF VARIABLE)
- NEW-VALUE
- OBJECT
No documentation provided.