william
Types
pub type Base {
Binary
Octal
Decimal
Hexadecimal
}
Constructors
-
Binary -
Octal -
Decimal -
Hexadecimal
HighlightTokens stringify, classify and flatten TOML tokens into groups.
pub type HighlightToken {
HighlightError(str: String)
HighlightKey(str: String)
HighlightTable(str: String)
HighlightString(str: String)
HighlightNumber(str: String)
HighlightDateTime(str: String)
HighlightLiteral(str: String)
HighlightOperator(str: String)
HighlightPunctuation(str: String)
HighlightComment(str: String)
HighlightWhitespace(str: String)
}
Constructors
-
HighlightError(str: String) -
HighlightKey(str: String) -
HighlightTable(str: String) -
HighlightString(str: String) -
HighlightNumber(str: String) -
HighlightDateTime(str: String) -
HighlightLiteral(str: String) -
HighlightOperator(str: String) -
HighlightPunctuation(str: String) -
HighlightComment(str: String) -
HighlightWhitespace(str: String)
pub type StringDelimiter {
BasicString
LiteralString
MultilineBasicString
MultilineLiteralString
}
Constructors
-
BasicString -
LiteralString -
MultilineBasicString -
MultilineLiteralString
A token useful for parsing or processing TOML source code.
pub type Token {
EndOfLine(str: String)
Whitespace(str: String)
Comment(str: String)
BareKey(name: String)
String(delimiter: StringDelimiter, value: String)
Boolean(value: String)
Integer(base: Base, value: String)
Float(value: String)
DateTime(value: String)
Equal
Dot
Comma
OpenTable
CloseTable
OpenArrayTable
CloseArrayTable
OpenBracket
CloseBracket
OpenBrace
CloseBrace
Unexpected(str: String)
InvalidNumber(str: String)
UnterminatedString(delimiter: StringDelimiter, value: String)
}
Constructors
-
EndOfLine(str: String) -
Whitespace(str: String) -
Comment(str: String) -
BareKey(name: String) -
String(delimiter: StringDelimiter, value: String) -
Boolean(value: String) -
Integer(base: Base, value: String) -
Float(value: String) -
DateTime(value: String) -
Equal -
Dot -
Comma -
OpenTable -
CloseTable -
OpenArrayTable -
CloseArrayTable -
OpenBracket -
CloseBracket -
OpenBrace -
CloseBrace -
Unexpected(str: String) -
InvalidNumber(str: String) -
UnterminatedString(delimiter: StringDelimiter, value: String)
Values
pub fn highlight(source: String) -> List(HighlightToken)
Parse TOML source code into a list of HighlightToken using default
settings.
The resulting token list can be highlighted by using functions like
to_ansi, to_html, or by pattern matching on it yourself.
pub fn ignore_whitespace(lexer: Lexer) -> Lexer
Skip whitespace and end-of-line tokens in the resulting token list.
pub fn new() -> Lexer
Create a new Lexer with default settings.
Lexers can be cached and reused to parse many source files efficiently.
pub fn to_ansi(tokens: List(HighlightToken)) -> String
Format a list of HighlightToken into ANSI highlighting for display in a
terminal.
pub fn to_highlight(tokens: List(Token)) -> List(HighlightToken)
Convert a list of lexer tokens into a list of HighlightToken.
pub fn to_html(tokens: List(HighlightToken)) -> String
Format a list of HighlightToken as HTML.
Each non-whitespace token is wrapped inside a <span> tag with a class
indicating the type.
Class names are based on contour:
| Token | CSS class |
|---|---|
| Comment | hl-comment |
| Date/time | hl-function |
| Error | hl-error |
| Key | hl-attribute |
| Literal | hl-literal |
| Number | hl-number |
| Operator | hl-operator |
| Punctuation | hl-punctuation |
| String | hl-string |
| Table name | hl-module |
| Whitespace | no class |
Place the output within
<pre><code class="language-toml">...</code></pre> and add styling for
these CSS classes to get highlighting on your website. Here’s some CSS you
could use:
pre code {
.hl-comment { color: #d4d4d4; font-style: italic }
.hl-function { color: #9ce7ff }
.hl-attribute { color: #ffd596 }
.hl-operator { color: #ffaff3 }
.hl-string { color: #c8ffa7 }
.hl-number { color: #c8ffa7 }
.hl-literal { color: #c8ffa7 }
.hl-module { color: #ffddfa }
.hl-punctuation { color: inherit }
.hl-error { background: red; color: white }
}
pub fn to_source(tokens: List(Token)) -> String
Convert a list of tokens back into their source representation.