Fix table parsing

pull/1/head
trivernis 4 years ago
parent 269e26840f
commit d43410de70

2
Cargo.lock generated

@ -153,7 +153,7 @@ dependencies = [
[[package]]
name = "snekdown"
version = "0.1.0"
version = "0.1.1"
dependencies = [
"crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
"htmlescape 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",

@ -1,6 +1,6 @@
[package]
name = "snekdown"
version = "0.1.0"
version = "0.1.1"
authors = ["trivernis <trivernis@protonmail.com>"]
edition = "2018"
license-file = "LICENSE"

@ -58,6 +58,20 @@ Quote with metadata (e.g. Author)
Imports can be used to import a different document to be attached to the main document.
Imports are parsed via multithreading.
### Tables
Tables MUST start with a pipe character `|`
```
Standalone header:
| header | header | header
Header with rows
| header | header | header
|--------|--------|-------
| row | row | row
```
```
<[path]
```

@ -601,16 +601,15 @@ impl Parser {
let header = self.parse_row()?;
self.seek_whitespace();
let mut table = Table::new(header);
if self.check_special_group(&[MINUS, PIPE])
&& self.next_char() != None
&& self.check_special_group(&[MINUS, PIPE])
{
while let Some(char) = self.next_char() {
if char == '\n' {
break;
}
let seek_start = self.index;
while let Some(char) = self.next_char() {
self.seek_inline_whitespace();
if char == '\n' || !self.check_special_group(&[MINUS, PIPE]) {
break;
}
} else {
}
if !self.current_char.is_whitespace() || self.check_special_group(&[MINUS, PIPE]) {
self.revert_to(seek_start)?;
return Ok(table);
}

Loading…
Cancel
Save