diff options
-rw-r--r-- | readme.md | 1 | ||||
-rw-r--r-- | src/compiler.rs | 8 | ||||
-rw-r--r-- | src/constant.rs | 1 | ||||
-rw-r--r-- | src/construct/attention.rs | 1 | ||||
-rw-r--r-- | src/construct/document.rs | 1 | ||||
-rw-r--r-- | src/construct/heading_atx.rs | 1 | ||||
-rw-r--r-- | src/construct/heading_setext.rs | 1 | ||||
-rw-r--r-- | src/construct/label_end.rs | 1 | ||||
-rw-r--r-- | src/construct/list_item.rs | 1 | ||||
-rw-r--r-- | src/construct/paragraph.rs | 1 | ||||
-rw-r--r-- | src/construct/partial_data.rs | 1 | ||||
-rw-r--r-- | src/construct/partial_whitespace.rs | 1 | ||||
-rw-r--r-- | src/lib.rs | 5 | ||||
-rw-r--r-- | src/parser.rs | 1 | ||||
-rw-r--r-- | src/subtokenize.rs | 1 | ||||
-rw-r--r-- | src/tokenizer.rs | 1 | ||||
-rw-r--r-- | src/util/decode_character_reference.rs | 1 | ||||
-rw-r--r-- | src/util/edit_map.rs | 1 | ||||
-rw-r--r-- | src/util/encode.rs | 2 | ||||
-rw-r--r-- | src/util/normalize_identifier.rs | 2 | ||||
-rw-r--r-- | src/util/sanitize_uri.rs | 5 | ||||
-rw-r--r-- | src/util/slice.rs | 3 |
22 files changed, 38 insertions, 3 deletions
@@ -24,7 +24,6 @@ Crate docs are currently at ### Misc -- [ ] (3) `no_std`? - [ ] (?) Improve document performance (potential 50%) - [ ] (?) Improve paragraph performance (potential 15%) - [ ] (?) Improve label (link, image) performance (potential 7%) diff --git a/src/compiler.rs b/src/compiler.rs index a5b2bf5..bb08745 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -10,7 +10,13 @@ use crate::util::{ slice::{Position, Slice}, }; use crate::{LineEnding, Options}; -use std::str; +use alloc::{ + format, + string::{String, ToString}, + vec, + vec::Vec, +}; +use core::str; /// Link or image, resource or reference. /// Reused for temporary definitions as well, in the first pass. diff --git a/src/constant.rs b/src/constant.rs index 45853a7..0c82378 100644 --- a/src/constant.rs +++ b/src/constant.rs @@ -2404,6 +2404,7 @@ pub const CHARACTER_REFERENCES: [(&str, &str); 2125] = [ #[cfg(test)] mod tests { use super::*; + use alloc::format; #[test] fn constants() { diff --git a/src/construct/attention.rs b/src/construct/attention.rs index 21407b7..8df0f61 100644 --- a/src/construct/attention.rs +++ b/src/construct/attention.rs @@ -64,6 +64,7 @@ use crate::state::{Name as StateName, State}; use crate::tokenizer::Tokenizer; use crate::unicode::PUNCTUATION; use crate::util::slice::Slice; +use alloc::{string::String, vec, vec::Vec}; /// Character code kinds. #[derive(Debug, PartialEq)] diff --git a/src/construct/document.rs b/src/construct/document.rs index 2cc170d..4ef6acc 100644 --- a/src/construct/document.rs +++ b/src/construct/document.rs @@ -13,6 +13,7 @@ use crate::state::{Name as StateName, State}; use crate::subtokenize::divide_events; use crate::tokenizer::{Container, ContainerState, Tokenizer}; use crate::util::skip; +use alloc::{boxed::Box, vec::Vec}; /// Phases where we can exit containers. #[derive(Debug, PartialEq)] diff --git a/src/construct/heading_atx.rs b/src/construct/heading_atx.rs index 960ae32..4ff0143 100644 --- a/src/construct/heading_atx.rs +++ b/src/construct/heading_atx.rs @@ -68,6 +68,7 @@ use crate::event::{Content, Event, Kind, Link, Name}; use crate::resolve::Name as ResolveName; use crate::state::{Name as StateName, State}; use crate::tokenizer::Tokenizer; +use alloc::vec; /// Start of a heading (atx). /// diff --git a/src/construct/heading_setext.rs b/src/construct/heading_setext.rs index bad781c..3adeb38 100644 --- a/src/construct/heading_setext.rs +++ b/src/construct/heading_setext.rs @@ -76,6 +76,7 @@ use crate::resolve::Name as ResolveName; use crate::state::{Name as StateName, State}; use crate::tokenizer::Tokenizer; use crate::util::skip::opt_back as skip_opt_back; +use alloc::vec; /// At start of heading (setext) underline. /// diff --git a/src/construct/label_end.rs b/src/construct/label_end.rs index 5e31444..41f16d7 100644 --- a/src/construct/label_end.rs +++ b/src/construct/label_end.rs @@ -169,6 +169,7 @@ use crate::util::{ skip, slice::{Position, Slice}, }; +use alloc::vec; /// Start of label end. /// diff --git a/src/construct/list_item.rs b/src/construct/list_item.rs index 3e632fb..13c287a 100644 --- a/src/construct/list_item.rs +++ b/src/construct/list_item.rs @@ -68,6 +68,7 @@ use crate::util::{ skip, slice::{Position, Slice}, }; +use alloc::{vec, vec::Vec}; /// Start of list item. /// diff --git a/src/construct/paragraph.rs b/src/construct/paragraph.rs index 0ddd0c4..9e20643 100644 --- a/src/construct/paragraph.rs +++ b/src/construct/paragraph.rs @@ -44,6 +44,7 @@ use crate::event::{Content, Kind, Link, Name}; use crate::resolve::Name as ResolveName; use crate::state::{Name as StateName, State}; use crate::tokenizer::Tokenizer; +use alloc::vec; /// Before paragraph. /// diff --git a/src/construct/partial_data.rs b/src/construct/partial_data.rs index 19f5f3b..bc6d7f4 100644 --- a/src/construct/partial_data.rs +++ b/src/construct/partial_data.rs @@ -10,6 +10,7 @@ use crate::event::{Kind, Name}; use crate::resolve::Name as ResolveName; use crate::state::{Name as StateName, State}; use crate::tokenizer::Tokenizer; +use alloc::vec; /// At beginning of data. /// diff --git a/src/construct/partial_whitespace.rs b/src/construct/partial_whitespace.rs index faaff73..707107d 100644 --- a/src/construct/partial_whitespace.rs +++ b/src/construct/partial_whitespace.rs @@ -61,6 +61,7 @@ use crate::constant::HARD_BREAK_PREFIX_SIZE_MIN; use crate::event::{Event, Kind, Name}; use crate::tokenizer::Tokenizer; use crate::util::slice::{Position, Slice}; +use alloc::vec; /// Resolve whitespace. pub fn resolve_whitespace(tokenizer: &mut Tokenizer, hard_break: bool, trim_whole: bool) { @@ -4,6 +4,10 @@ //! `micromark` is a safe way to transform (untrusted?) markdown into HTML. //! `micromark_with_options` allows you to configure how markdown is turned into //! HTML, such as by allowing dangerous HTML when you trust it. +#![no_std] + +extern crate alloc; + mod compiler; mod constant; mod construct; @@ -18,6 +22,7 @@ mod util; use crate::compiler::compile; use crate::parser::parse; +use alloc::string::String; /// Type of line endings in markdown. #[derive(Clone, Debug, Default, Eq, PartialEq)] diff --git a/src/parser.rs b/src/parser.rs index 8b13d45..404fd0f 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -5,6 +5,7 @@ use crate::state::{Name as StateName, State}; use crate::subtokenize::subtokenize; use crate::tokenizer::Tokenizer; use crate::{Constructs, Options}; +use alloc::{string::String, vec, vec::Vec}; /// Info needed, in all content types, when parsing markdown. /// diff --git a/src/subtokenize.rs b/src/subtokenize.rs index a031e35..5932f11 100644 --- a/src/subtokenize.rs +++ b/src/subtokenize.rs @@ -22,6 +22,7 @@ use crate::parser::ParseState; use crate::state::{Name as StateName, State}; use crate::tokenizer::Tokenizer; use crate::util::edit_map::EditMap; +use alloc::{vec, vec::Vec}; /// Link two [`Event`][]s. /// diff --git a/src/tokenizer.rs b/src/tokenizer.rs index 2edab03..1e99771 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -14,6 +14,7 @@ use crate::parser::ParseState; use crate::resolve::{call as call_resolve, Name as ResolveName}; use crate::state::{call, State}; use crate::util::edit_map::EditMap; +use alloc::{boxed::Box, string::String, vec, vec::Vec}; /// Containers. /// diff --git a/src/util/decode_character_reference.rs b/src/util/decode_character_reference.rs index 8ed32f4..30b7853 100644 --- a/src/util/decode_character_reference.rs +++ b/src/util/decode_character_reference.rs @@ -1,6 +1,7 @@ //! Decode character references. use crate::constant::CHARACTER_REFERENCES; +use alloc::string::{String, ToString}; /// Decode named character references. /// diff --git a/src/util/edit_map.rs b/src/util/edit_map.rs index 33c5706..91c93d4 100644 --- a/src/util/edit_map.rs +++ b/src/util/edit_map.rs @@ -9,6 +9,7 @@ //! through another tokenizer and inject the result. use crate::event::Event; +use alloc::{vec, vec::Vec}; /// Shift `previous` and `next` links according to `jumps`. /// diff --git a/src/util/encode.rs b/src/util/encode.rs index 6530011..98b3bcb 100644 --- a/src/util/encode.rs +++ b/src/util/encode.rs @@ -1,5 +1,7 @@ //! Encode HTML. +use alloc::string::String; + /// Encode dangerous html characters. /// /// This ensures that certain characters which have special meaning in HTML are diff --git a/src/util/normalize_identifier.rs b/src/util/normalize_identifier.rs index ddc51f8..2f73bfa 100644 --- a/src/util/normalize_identifier.rs +++ b/src/util/normalize_identifier.rs @@ -1,5 +1,7 @@ //! Normalize identifiers. +use alloc::string::String; + /// Normalize an identifier, as found in [references][label_end] and /// [definitions][definition], so it can be compared when matching. /// diff --git a/src/util/sanitize_uri.rs b/src/util/sanitize_uri.rs index 593a70e..969a4d8 100644 --- a/src/util/sanitize_uri.rs +++ b/src/util/sanitize_uri.rs @@ -1,6 +1,11 @@ //! Make urls safe. use crate::util::encode::encode; +use alloc::{ + format, + string::{String, ToString}, + vec::Vec, +}; /// Make a value safe for injection as a URL. /// diff --git a/src/util/slice.rs b/src/util/slice.rs index be2a381..5dcc352 100644 --- a/src/util/slice.rs +++ b/src/util/slice.rs @@ -2,7 +2,8 @@ use crate::constant::TAB_SIZE; use crate::event::{Event, Kind, Point}; -use std::str; +use alloc::string::String; +use core::str; /// A range between two points. #[derive(Debug)] |