summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs44
1 files changed, 12 insertions, 32 deletions
diff --git a/src/lib.rs b/src/lib.rs
index c0b8c84..c70ce77 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,33 +1,13 @@
-#![feature(iter_zip)]
-
-mod block;
-mod parse;
-mod parse_heirarchical;
-mod table;
-mod text;
-
-pub use block::Block;
-pub use parse::parse;
-pub use parse_heirarchical::parse_heirarchical;
-pub use table::{Alignment, Column, Table};
-pub use text::{Hyperlink, Text};
-
-pub type Line = Vec<Text>;
-
-pub fn line_to_string(line: &[Text]) -> String {
- let mut output = String::new();
- for text in line {
- match text {
- Text::Normal(content) => output.push_str(&content),
- Text::Bold(content) => output.push_str(&format!("**{}**", content)),
- Text::Italic(content) => output.push_str(&format!("_{}_", content)),
- Text::BoldItalic(content) => output.push_str(&format!("**_{}_**", content)),
- Text::Code(content) => output.push_str(&format!("`{}`", content)),
- Text::WikiLink(content) => output.push_str(&format!("[[{}]]", content)),
- Text::Hyperlink(Hyperlink { label, target }) => {
- output.push_str(&format!("[{}]({})", label, target))
- }
- }
- }
- return output;
+mod document;
+mod elements;
+
+pub use document::*;
+pub use elements::*;
+
+pub(crate) fn is_whitespace(c: &char) -> bool {
+ c.is_whitespace() || r#".,'"“”_:;-/\()[]{}?"#.contains(*c) }
+pub(crate) fn is_contentful(s:&str, non_content_chars: &[char]) -> bool {
+ s.chars().any(|c| !non_content_chars.contains(&c))
+ && s.chars().nth(0).map(|c| !non_content_chars.contains(&c)).unwrap_or(false)
+ && s.chars().last().map(|c| !non_content_chars.contains(&c)).unwrap_or(false)
}