Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "libcmark-sys/cmark"]
path = libcmark-sys/cmark
url = https://github.com/jgm/cmark.git
url = https://github.com/commonmark/cmark.git
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# rcmark

[cmark](https://github.com/jgm/cmark) bindings for Rust.
[cmark](https://github.com/commonmark/cmark) bindings for Rust.

## Building

Expand Down
2 changes: 1 addition & 1 deletion libcmark-sys/cmark
Submodule cmark updated 156 files
16 changes: 9 additions & 7 deletions libcmark-sys/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ pub enum cmark_node_type {
CMARK_NODE_LIST,
CMARK_NODE_ITEM,
CMARK_NODE_CODE_BLOCK,
CMARK_NODE_HTML,
CMARK_NODE_PARAGRAPH,
CMARK_NODE_HEADER,
CMARK_NODE_HRULE,
CMARK_NODE_HTML_BLOCK,
CMARK_NODE_CUSTOM_BLOCK,
CMARK_NODE_PARAGRAPH,
CMARK_NODE_HEADING,
CMARK_NODE_THEMATIC_BREAK,

// CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,
// CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE,
Expand All @@ -34,7 +35,8 @@ pub enum cmark_node_type {
CMARK_NODE_SOFTBREAK,
CMARK_NODE_LINEBREAK,
CMARK_NODE_CODE,
CMARK_NODE_INLINE_HTML,
CMARK_NODE_HTML_INLINE,
CMARK_NODE_CUSTOM_INLINE,
CMARK_NODE_EMPH,
CMARK_NODE_STRONG,
CMARK_NODE_LINK,
Expand Down Expand Up @@ -110,8 +112,8 @@ extern {
pub fn cmark_node_get_type_string(node: *const cmark_node) -> *const c_char;
pub fn cmark_node_get_literal(node: *const cmark_node) -> *const c_char;
pub fn cmark_node_set_literal(node: *mut cmark_node, content: *const c_char) -> c_int;
pub fn cmark_node_get_header_level(node: *const cmark_node) -> c_int;
pub fn cmark_node_set_header_level(node: *mut cmark_node, level: c_int) -> c_int;
pub fn cmark_node_get_heading_level(node: *const cmark_node) -> c_int;
pub fn cmark_node_set_heading_level(node: *mut cmark_node, level: c_int) -> c_int;
pub fn cmark_node_get_list_type(node: *const cmark_node) -> cmark_list_type;
pub fn cmark_node_set_list_type(node: *mut cmark_node, list_type: cmark_list_type) -> c_int;
pub fn cmark_node_get_list_delim(node: *const cmark_node) -> cmark_delim_type;
Expand Down
44 changes: 25 additions & 19 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
//! given node type, then attempting to access it will panic.
//!
//!```
//! use rcmark::{Node, NodeType, ListType};
//! use rcmark::{Node, NodeType};
//!
//! let mut root = Node::new(NodeType::Document);
//!
//! let mut heading = Node::new(NodeType::Header);
//! heading.set_header_level(1);
//! let mut heading = Node::new(NodeType::Heading);
//! heading.set_heading_level(1);
//!
//! let mut heading_text = Node::new(NodeType::Text);
//! heading_text.set_literal("Hello, World!");
Expand Down Expand Up @@ -57,11 +57,11 @@
//!
//! assert_eq!(rcmark::render_xml(&doc, rcmark::DEFAULT),
//! "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
//! <!DOCTYPE CommonMark SYSTEM \"CommonMark.dtd\">\n\
//! <document>\n \
//! <header level=\"1\">\n \
//! <!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n\
//! <document xmlns=\"http://commonmark.org/xml/1.0\">\n \
//! <heading level=\"1\">\n \
//! <text>Hello</text>\n \
//! </header>\n\
//! </heading>\n\
//! </document>\n");
//! assert_eq!(rcmark::render_html(&doc, rcmark::DEFAULT),
//! "<h1>Hello</h1>\n");
Expand Down Expand Up @@ -103,15 +103,17 @@ pub enum NodeType {
List,
Item,
CodeBlock,
Html,
HtmlBlock,
CustomBlock,
Paragraph,
Header,
Hrule,
Heading,
ThematicBreak,
Text,
SoftBreak,
LineBreak,
Code,
InlineHtml,
HtmlInline,
CustomInline,
Emph,
Strong,
Link,
Expand All @@ -130,15 +132,17 @@ impl Binding for NodeType {
raw::CMARK_NODE_LIST => NodeType::List,
raw::CMARK_NODE_ITEM => NodeType::Item,
raw::CMARK_NODE_CODE_BLOCK => NodeType::CodeBlock,
raw::CMARK_NODE_HTML => NodeType::Html,
raw::CMARK_NODE_HTML_BLOCK => NodeType::HtmlBlock,
raw::CMARK_NODE_CUSTOM_BLOCK => NodeType::CustomBlock,
raw::CMARK_NODE_PARAGRAPH => NodeType::Paragraph,
raw::CMARK_NODE_HEADER => NodeType::Header,
raw::CMARK_NODE_HRULE => NodeType::Hrule,
raw::CMARK_NODE_HEADING => NodeType::Heading,
raw::CMARK_NODE_THEMATIC_BREAK => NodeType::ThematicBreak,
raw::CMARK_NODE_TEXT => NodeType::Text,
raw::CMARK_NODE_SOFTBREAK => NodeType::SoftBreak,
raw::CMARK_NODE_LINEBREAK => NodeType::LineBreak,
raw::CMARK_NODE_CODE => NodeType::Code,
raw::CMARK_NODE_INLINE_HTML => NodeType::InlineHtml,
raw::CMARK_NODE_HTML_INLINE => NodeType::HtmlInline,
raw::CMARK_NODE_CUSTOM_INLINE => NodeType::CustomInline,
raw::CMARK_NODE_EMPH => NodeType::Emph,
raw::CMARK_NODE_STRONG => NodeType::Strong,
raw::CMARK_NODE_LINK => NodeType::Link,
Expand All @@ -155,15 +159,17 @@ impl Binding for NodeType {
NodeType::List => raw::CMARK_NODE_LIST,
NodeType::Item => raw::CMARK_NODE_ITEM,
NodeType::CodeBlock => raw::CMARK_NODE_CODE_BLOCK,
NodeType::Html => raw::CMARK_NODE_HTML,
NodeType::HtmlBlock => raw::CMARK_NODE_HTML_BLOCK,
NodeType::CustomBlock => raw::CMARK_NODE_CUSTOM_BLOCK,
NodeType::Paragraph => raw::CMARK_NODE_PARAGRAPH,
NodeType::Header => raw::CMARK_NODE_HEADER,
NodeType::Hrule => raw::CMARK_NODE_HRULE,
NodeType::Heading => raw::CMARK_NODE_HEADING,
NodeType::ThematicBreak => raw::CMARK_NODE_THEMATIC_BREAK,
NodeType::Text => raw::CMARK_NODE_TEXT,
NodeType::SoftBreak => raw::CMARK_NODE_SOFTBREAK,
NodeType::LineBreak => raw::CMARK_NODE_LINEBREAK,
NodeType::Code => raw::CMARK_NODE_CODE,
NodeType::InlineHtml => raw::CMARK_NODE_INLINE_HTML,
NodeType::HtmlInline => raw::CMARK_NODE_HTML_INLINE,
NodeType::CustomInline => raw::CMARK_NODE_CUSTOM_INLINE,
NodeType::Emph => raw::CMARK_NODE_EMPH,
NodeType::Strong => raw::CMARK_NODE_STRONG,
NodeType::Link => raw::CMARK_NODE_LINK,
Expand Down
16 changes: 8 additions & 8 deletions src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -180,25 +180,25 @@ impl Node {
/// Get the string contents of this node.
///
/// # Panics
/// If the node type is not `Code`, `Text`, `Html`, or `InnerHtml`.
/// If the node type is not `Code`, `Text`, `HtmlBlock`, or `HtmlInline`.
node_getter!(literal : &str => NodeType::CodeBlock,
NodeType::Code,
NodeType::Text,
NodeType::Html,
NodeType::InlineHtml);
NodeType::HtmlBlock,
NodeType::HtmlInline);

/// Set the string contents of this node.
///
/// # Panics
/// If the node type is not `Code`, `Text`, `Html`, or `InnerHtml`.
/// If the node type is not `Code`, `Text`, `HtmlBlock`, or `HtmlInline`.
node_setter!(set_literal : &str => NodeType::CodeBlock,
NodeType::Code,
NodeType::Text,
NodeType::Html,
NodeType::InlineHtml);
NodeType::HtmlBlock,
NodeType::HtmlInline);

node_getter!(header_level : i32 => NodeType::Header);
node_setter!(set_header_level : i32 => NodeType::Header);
node_getter!(heading_level : i32 => NodeType::Heading);
node_setter!(set_heading_level : i32 => NodeType::Heading);

node_getter!(list_type : ListType => NodeType::List);
node_setter!(set_list_type : ListType => NodeType::List);
Expand Down
8 changes: 4 additions & 4 deletions src/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,12 @@ mod test{
let markdown = "**Hi**";
let tree = parse_document(markdown, DEFAULT);

assert!(tree.node_type() == NodeType::Document);
assert_eq!(tree.node_type(), NodeType::Document);
let paragraph = tree.first_child().unwrap();
assert!(paragraph.node_type() == NodeType::Paragraph);
assert_eq!(paragraph.node_type(), NodeType::Paragraph);
let strong = paragraph.first_child().unwrap();
assert!(strong.node_type() == NodeType::Strong);
assert_eq!(strong.node_type(), NodeType::Strong);
let text = strong.first_child().unwrap();
assert!(text.literal() == "Hi");
assert_eq!(text.literal(), "Hi");
}
}