Features
- add
EndOfLine
inline support to inline parser (353b53f) - add
EndOfLine
token support to inline lexer (91251a5) - add
Inline::with_span
implementation (483c029) - add
into_plain
impl forToken
(5ececca) - add
Multiple
variant to Inline (35d8e5b) - add
TokenDelimiters
struct and impl (4f81c70) - add api to check whether the cached token is already open (7e0b8b6)
- add api to get span of inline (cf58e5c)
- add api to get textual length of
Token
(302dcbd) - add api to iterate over NestedContent (f3e4e33)
- add api to split ambiguous
Token
into two non-ambiguousToken
s (a212a10) - add arrows support to substitutions (35825d4)
- add basic logging to core crate (200dc22)
- add constructor function to
Position
(9c0b0c8) - add Debug derive for ParserStack (93003bd)
- add direct init functions to inline
Token
(67166e8) - add direct substitution support to inline lexer (aa419ab)
- add functionality relating to
Inline
s (411350c) - add functions to token to aid inline parsing (7781643)
- add getters for
TokenDelimiters
tags (a95cba8) - add html tags for text group (a927618)
- add inline caching and merging to parser (137a528)
- add inlines parser - partial implementation (19c9420)
- add inlines parser, starting implementation (49c18d5)
- add more
std::ops
impls for Position (61f7c92) - add more
TokenKind
variants (578a5ed) - add more helper functions to IsKeyword trait (f31b941)
- add new parser module and implement symbol (c96b25c)
- add render crate to extract trait from core (cbd64eb)
- add setup traits and blanket impls for parsing (e31ce69)
- add structs for Inline and InlineContent etc. (49c2257)
- add support for
Inline::Substitution
(ee901b4) - add support for multi-line inline formatting (bc9badb)
- add support for nested text groups (86a6844)
- add support for unimarkup text group inline (49fb173)
- add syntax highlighting for verbatim blocks (2102a44)
- add type alias for parser functions (43fd005)
- add unimarkup_inline as dep. to unimarkup_core (7e597a3)
- blanket implement
ParseUnimarkupInlines
(9c3c46b) - cache token when split during parsing (95a1aab)
- derive impl of
Debug
andClone
onTokenIterator
(9f2980f) - expose more
Token
api to the inlines crate (cd364fe) - extend functionality of inlines (4f28589)
- extract Render from core and introduce logid (fc7cbac), closes #74
- impl
Render
forunimarkup_inline::Inline
(96055ed) - impl some
std::ops
for Spacing (593a456) - implement
TokenBuilder
(76c705b) - implement
Tokenize
for&str
(f10a561) - implement basic inline lexer (0c006ad)
- implement basic inline tokens (45a71cd)
- implement basic lexer for plain, bold tokens (f380906)
- implement basic lexer for plain, bold tokens (54a8ef7)
- implement basic lexer of plain text (329ff68)
- implement basic token resolver (c75d69f)
- implement basics of MainParser for Unimarkup (e69ab67)
- implement conversion of string into symbols (01cbd31)
- implement ElementParser for Heading (ccb6e28)
- implement ElementParser for Paragraph (fcd4aab)
- implement ElementParser for Verbatim block (a60134d)
- implement getter functions for
Token
(52da4d6) - implement lexing of (some) tokens (82079e1)
- implement substitutions of emojis (7e54e71)
- improve
Content
enum API (900e928) - improve
Substitute
API (2d9d214) - improve is_whitespace impl on
&str
(3986929) - improve lexer and parser (21f8024)
- improve lexing of plain text (5487507)
- inline: add arow and emoji substitution (99231e7)
- inline: add basic collect() functionality (571aea4)
- inline: add basic support for text groups (a63d743)
- inline: add escape functionality (f675e97)
- inline: add escape handling to collect() (89b4fb1)
- inline: add inline token identifiers (82b4fda)
- inline: add newline handling (665b330)
- inline: add offset possibility for parsing (0d538cd)
- inline: add TextGroup element to ast (8761263)
- inline: add verbatim formatting (031dde8)
- inline: implement token resolver (0cd1d59)
- inline: introduce plain newline token (3d3566a)
- inline: switch to grapheme iterator (16eed17)
- introduce
lex_late_token
and highlight (7711847) - introduce
Whitespace
TokenKind (ce0e8bc) - lex escape sequence, improve lexing of plain (1b9b9df)
- make um elements public (138765c)
- move to inline crate for inline formatting (ba88b48)
- reduce nesting of InlineContent when possible (7946da0)
- reimplement
parse_unimarkup
using new parser (089d995) - rework tests for lexing of
*
symbol (88506c0) - substitute emojis in inlines (0e3de0b)
- support more symbols in inlines lexer (49f606d)
- update parser to new
Inline
data structure (b08bff0) - use constant in IsKeyword is_esc() function (04fa417)
- use new parser implementation in compiler (56663b0)
- use token caching to resolve ambiguity (da0efe2)
- use unimarkup_inline for HeadingBlock (36c129b)
- use unimarkup_inline for ParagraphBlock (c0ee710)
- use unimarkup_inline render implementation (47f3fe6)
Bug Fixes
- add absolute position offsets for inlines (4fc7efd)
- add checks to prevent panic in paragraph parsing (6ca5372)
- add default parser as fallback (d8ddfc0)
- add temporal fix for inline formatting (13d6549)
- avoid subtraction underflow in Lexer -> TokenIterator creation (ceb048d)
- be more careful about next token cache in inlines parser (5ff3eef)
- bump logid version to fix diagnostics (ee7e07a)
- calculate spans and kinds correctly (52fb5bb)
- change heading_level to u8 for easier conversions (82b4fda)
- change to
code
tag for inline verbatim (af71710) - cleanup after merging changes in main branch (ee61856)
- correct heading id generation of empty content (20d9765)
- correct lexing when starting with some offset (5e97cb9)
- correctly parse incomplete inlines inside of a scope (9b1d7c9)
- correctly parse interrupted inlines by others (be9f540)
- correctly parse some edge cases (c97e898)
- fix appending of Inline to InlineContent (af11831)
- fix bug in token resolver scoping (78447ac)
- fix newline span calculation (d9c97e5)
- fix position calculation of newline token (eb0a119)
- fix resolver scoping bug (6071640)
- fix spacing sub_assing logic (30e6eb9)
- fix span calculation when prepending content (9b8dbd5)
- force whitespace after heading hash (ede7298)
- handle case where tokens remain after parsing nested inline (401fd89)
- handle empty content (e92e9be)
- implement
todo!()
branch intoken.rs
(0a2ba94) - improve
spacing_around
logic (35986d1) - improve check if inline is closed (2a1723c)
- improve lexing of plain, properly handle
\
(167b75f) - improve parsing of some edge cases (9fa6dad)
- inline: add validation against timing issues (520f2bb)
- inline: change 4 open asterisks to plain (dc34282)
- inline: convert verbatim to nested inline (214dd5d)
- inline: correct bold closing (8a17ff1)
- inline: correct bold-italic edge cases (5dfe0fc)
- inline: correct bold-italic ombined opening (1b3af04)
- inline: correct handling of invalid inner italic (e8041dd)
- inline: correct ItalicClose without ItalicOpen (128129a)
- inline: correct nested italic before word (7869d10)
- inline: correct open token cleanup (ff93085)
- inline: correct rightside combined bold-italic (6612553)
- inline: correct splitting of four asterisks (d6ed958)
- inline: correct verbatimOpen str representation (1e913c9)
- inline: enforce open constraint (c2feda1)
- interpret begin/end of line as whitespace (58fd7ad)
- lex open and close parenthesis correctly (e891b97)
- make symbol module public (5cc21de)
- offset inline token and heading positions (3e35948)
- panic when trying to split non-ambiguous token (0a5b315)
- parse non-opening token as plain correctly (8ce5d36)
- push unused inline to the front of the cache (dbd57ed)
- remove file dependency from metadata (3b2a5f6)
- remove offset from inline lexer (b084027)
- remove out-file path validation (2be50d3)
- rename and fix flattening of InlineContent (f4a6e29)
- resolve clippy warning (b5ca79b)
- return correct span from Inline (767d84e)
- return escaped newline only when next line available (745568a)
- set correct logId for frontend (e6d3ad4)
- set same fileoutput style for logs (26bc9f0)
- start lines and columns count from 1 (74e18e7)
- test: remove wrong test case (7e3dde3)
- typos in comments (d44505c)
- update
Span::remove
implementation and docs (447310f) - update
TokenKind::Quote
to""
(was"
) (ad238fa) - update clap to v3 (5ace622)
- update rendering of verbatim and text group (e4e9104)
- use col_utf8 instead of col_grapheme (f94d3d4)
- use correct print (7d95fc6)
Documentation
- add clarification of token resolver (3282eb4)
- add documentation for inline
Parser
(d596fad) - add documentation to symbol module (fba95e0)
- add hyperlink definitions to doc comments (75158b8)
- add todo comment about module privacy (e39588a)
- document
Tokenize
trait (59daeec) - document
unimarkup_inline
crate (713f285) - explain
symbol_len
in doc comment (9d758b4) - explain IsKeyword trait (668c7f0)
- fix typo (469992c)
- make
cached_token_open
documentation more clear (24f8e43) - make documentation more clear (6e6cae5)
- update doc and explanation comments (e0f1077)
- update doc comments and explanations (2740536)
- update docs for
TokenIterator::next_line
(bb3b822) - update documentation (ade6343)
- update Token documentation (ac48016)
Performance
CI
Build
- remove pest from dependencies (6a8d983)
Testing
- adapt file path of log test for actions (27aaae0)
- add (more) tests for esc sequence and plain (04c01c9)
- add 3 parser tests (d700cd1)
- add basic tests for inline lexer (2a3b677)
- add basic tests for plain lexing (26c9ac7)
- add case for nested
Inline::TextGroup
(be633be) - add case for not fully closed ambiguous token (59fc129)
- add helper macro for token tests (eaf3a74)
- add log test for cli main (4548e7d)
- add more test cases for parser (28fafc5)
- add test
EndOfLine
in multi-line text. (ec7681c) - add test case - unclosed bold in text group (a640f62)
- add test case for
Inline::Substitution
(1071da7) - add test case for plain token (a8d706a)
- add test for italic/bold ambiguous token lexing (a3acdc3)
- add testcase for
lex_late_token
function (8b228a2) - add tests for keyword lexing (bfda1f1)
- add tests for lexing with offset position (12f8223)
- change tests structure (2dcd72e)
- double underscore in test names (15898a8)
- fix tests by using None for attributes (6952999)
- ignore doctest of macro (8853723)
- implement changes from testing branch (956b2be)
- inline: add open constraint test (0ccdff1)
- inline: add verbatim testcase for char escaping (d4d28c1)
- inline: update tests with new
Inline
data structure (1c33e6b) - interpret begin/end of line as whitespace (ee36cf7)
- make tests more compatible with the spec (1aa9c77)
- move inline parser tests to separate module (4ca9f2f)
- move lexer unit tests into its own folder (282cc64)
- print inlines for easier test debugging (79b6ecf)
- remove paragraph unit tests (4ab0fc7)
- remove pest parsing tests for verbatim (2b5f0d1)
- remove pest tests for preamble (255e69a)
- remove unstructured tests for lexer (1101ab7)
- rework tests for lexing of
‾
symbol (87d3e88) - rework tests for lexing of
_
symbol (83f7053) - rework tests for lexing of
"
symbol (3642884) - rework tests for lexing of
"
symbol (78f5fe3) - rework tests for lexing of
(
and)
symbols (e88faf9) - rework tests for lexing of
[
and]
symbols (ebfd70d) - rework tests for lexing of
{
and}
symbols (131a277) - rework tests for lexing of
`
symbol (5089806) - rework tests for lexing of
^
symbol (618a1c9) - rework tests for lexing of
|
symbol (11b9c1f) - rework tests for lexing of
$
symbol (bce7fe6) - set paths in log test to work in run and dbg (8272903)
- simplify some if-else to match statements (6737869)
- support direct substitution in inline lexer (06b6fa4)
- test for inlines interrupted by other inlines (3661860)
- test general lexing cases (4f1f890)
- test partial
ItalicBold
inline inTextGroup
(09db146) - update heading block tests (b16b138)
- update paragraph tests to new parser implementation (63ed44f)
- update parser tests to use
VecDeque
(f048a31) - update test to new (incomplete) parser implementation (db854ad)
- update test with new spacing logic (1bd5ddf)
- update tests for Paragraph block (f4b56da)
- update tests to match changes in spec and lexer (beb67a7)
- update tests to use unimarkup_inline (53f5ca4)
- update TextGroup test to actually test parsing (4f6cddb)
- use macro instead of function for assert_blocks_match (3fd7d13)
- use new parser implementation in tests (c85de98)