summaryrefslogtreecommitdiff
path: root/README.md
AgeCommit message (Collapse)Author
2023-09-28feat: add span to Trace::CharMartin Fischer
2023-09-28feat: implement BasicEmitterMartin Fischer
2023-09-28chore: add BasicEmitter stubMartin Fischer
2023-09-28break!: make DefaultEmitter::emit_eof emit EndOfFileMartin Fischer
2023-09-28break!: emit chars instead of stringsMartin Fischer
The HTML spec specifies that the tokenizer emits character tokens. That html5gum always emitted strings instead was probably just done to make the token consumption more convenient. When it comes to tree construction character tokens are however actually more convenient than string tokens since the spec defines that specific character tokens should be ignored in specific states (and character tokens let us avoid string manipulation for these conditions). This should also make the DefaultEmitter more performant for cases where you don't actually need the strings at all (or only a few) since it avoids string allocations. Though I haven't benchmarked it.
2023-09-03docs: add spans exampleMartin Fischer
2023-09-03docs: the span logic no longer assumes UTF-8Martin Fischer
2023-09-03docs: credit Markus in readmeMartin Fischer
2023-09-03docs: remove description of Emitter trait from readmeMartin Fischer
Implementing Emitter methods as no-ops works great with the NaiveParser but less so when you want spec-compliant HTML parsing since that requires tree construction and most Emitter methods to be implemented. Ideally we'll implement both tree construction and a new way of avoiding unnecessary allocations (without having to implement your own Emitter).
2023-09-03docs: add 'Compliance & testing' section to readmeMartin Fischer
2023-09-03docs: add Limitations section to readmeMartin Fischer
2023-09-03docs: restore accidentally lost code block info stringMartin Fischer
I accidentally lost it in b125bec9914bd211d77719bd60bc5a23bd9db579. (I should have changed the info string to ```rust ignore.)
2023-09-03docs: add changelogMartin Fischer
2023-08-19feat: introduce NaiveParserMartin Fischer
2023-08-19break!: remove DefaultEmitter from public APIMartin Fischer
2023-08-19fix(docs): fix broken relative link in rustdocMartin Fischer
2023-08-19docs: link multipage version of HTML specMartin Fischer
2023-08-19chore: use link reference definitions in MarkdownMartin Fischer
2023-08-19refactor!: make Emitter generic over offset instead of readerMartin Fischer
Emitters should not have access to the reader at all. Also the current position of the reader, at the time an Emitted method is called, very much depends on machine implementation details such as if `Tokenizer::unread_char` is used. Having the Emitter methods take offsets lets the machine take care of providing the right offsets, as evidenced by the next commit.
2023-08-19refactor: add default for S type param of DefaultEmitterMartin Fischer
2023-08-19break!: merge Tokenizer::new_with_emitter into Tokenizer::newMartin Fischer
The Tokenizer does not perform any state switching, since proper state switching requires a feedback loop between tokenization and DOM tree building. Using the Tokenizer directly therefore is a bit of a pitfall, since you might not expect it to e.g. tokenize `<script><b>` as: StartTag(StartTag { name: "script", .. }) StartTag(StartTag { name: "b", .. }) Since we don't want to make walking into pitfalls particularly easy, this commit changes the Tokenizer::new method so that you have to specify the Emitter. Since this makes new_with_emitter redundant it is removed.
2023-08-19break!: remove InfallibleTokenizer in favor of Iterator::flattenMartin Fischer
2021-12-05rename to html5tokenizer, bump versionv0.4.0Martin Fischer
2021-11-28update wordingMarkus Unterwaditzer
2021-11-28restructure readmeMarkus Unterwaditzer
2021-11-28add another exampleMarkus Unterwaditzer
2021-11-28update wording againMarkus Unterwaditzer
2021-11-28fix periodMarkus Unterwaditzer
2021-11-28update wording againMarkus Unterwaditzer
2021-11-28fix wordingMarkus Unterwaditzer
2021-11-28clarify what html5gum isn't, fix #5Markus Unterwaditzer
2021-11-26Read html from io::BufRead (#8)Markus Unterwaditzer
2021-11-24link issueMarkus Unterwaditzer
2021-11-24hello worldMarkus Unterwaditzer