diff --git a/example-site/posts.yml b/example-site/posts.yml index c535f40..f362367 100644 --- a/example-site/posts.yml +++ b/example-site/posts.yml @@ -9,14 +9,14 @@ posts: - hello - testing - - file_path: 2023-02-01-commonmark-testing.md - title: CommonMark Testing + - file_path: 2023-02-01-markdown-testing.md + title: Markdown Testing date: 2023-02-01 - slug: commonmark-testing + slug: markdown-testing tags: - testing alternate_urls: - - /testing/commonmark/ + - /testing/markdown/ - file_path: 2023-03-20-lorem-ipsum.md title: Lorem Ipsum diff --git a/example-site/posts/2023-02-01-commonmark-testing.md b/example-site/posts/2023-02-01-markdown-testing.md similarity index 96% rename from example-site/posts/2023-02-01-commonmark-testing.md rename to example-site/posts/2023-02-01-markdown-testing.md index 5078c22..36ff17c 100644 --- a/example-site/posts/2023-02-01-commonmark-testing.md +++ b/example-site/posts/2023-02-01-markdown-testing.md @@ -1,4 +1,4 @@ -Here we test some [CommonMark](https://commonmark.org/) things, gloriously rendered via the +Here we test some Markdown (actually, [CommonMark](https://commonmark.org/)) things, gloriously rendered via the [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) crate! --- diff --git a/src/main.rs b/src/main.rs index b0252fc..011cc92 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,8 +5,8 @@ use anyhow::Context; use std::env; use std::path::{Path, PathBuf}; -mod commonmark; mod config; +mod markdown; mod site; mod util; diff --git a/src/commonmark.rs b/src/markdown.rs similarity index 87% rename from src/commonmark.rs rename to src/markdown.rs index 592b7f6..06f7fd2 100644 --- a/src/commonmark.rs +++ b/src/markdown.rs @@ -4,7 +4,7 @@ use syntect::parsing::SyntaxSet; use syntect::util::LinesWithEndings; #[derive(Debug, thiserror::Error)] -pub enum CommonMarkError { +pub enum MarkdownError { #[error("Syntax highlighting error")] SyntectError(#[from] syntect::Error), } @@ -13,17 +13,17 @@ struct SyntectContext { syntax_set: SyntaxSet, } -pub struct CommonMarkRenderer { +pub struct MarkdownRenderer { syntect_context: SyntectContext, } -impl CommonMarkRenderer { +impl MarkdownRenderer { pub fn new() -> Self { let syntax_set = SyntaxSet::load_defaults_newlines(); - CommonMarkRenderer { syntect_context: SyntectContext { syntax_set } } + MarkdownRenderer { syntect_context: SyntectContext { syntax_set } } } - fn highlight_code(&self, code: &str, language: &str) -> Result { + fn highlight_code(&self, code: &str, language: &str) -> Result { let syntax = self .syntect_context .syntax_set @@ -44,7 +44,7 @@ impl CommonMarkRenderer { fn highlight_codeblocks<'input>( &self, events: Parser<'input, '_>, - ) -> Result> + 'input, CommonMarkError> { + ) -> Result> + 'input, MarkdownError> { let mut modified_events = Vec::new(); let mut code_buffer = String::new(); let mut is_in_code_block = false; @@ -81,7 +81,7 @@ impl CommonMarkRenderer { Ok(modified_events.into_iter()) } - pub fn render_to_html(&self, s: &str) -> Result { + pub fn render_to_html(&self, s: &str) -> Result { let parser = Parser::new_ext(s, pulldown_cmark::Options::all()); let events = self.highlight_codeblocks(parser)?; let mut output = String::new(); diff --git a/src/site.rs b/src/site.rs index b703163..596cc18 100644 --- a/src/site.rs +++ b/src/site.rs @@ -7,7 +7,7 @@ use actix_web::{Either, HttpRequest, HttpResponse}; use chrono::{Datelike, TimeZone}; use itertools::Itertools; -use crate::{commonmark, config}; +use crate::{config, markdown}; type UriPath = String; type Tag = String; @@ -17,17 +17,17 @@ pub enum ContentError { #[error("Content rendering I/O error with path {0}")] IOError(PathBuf, #[source] std::io::Error), - #[error("CommonMark rendering error with path {0}")] - CommonMarkError(PathBuf, #[source] commonmark::CommonMarkError), + #[error("Markdown rendering error with path {0}")] + MarkdownError(PathBuf, #[source] markdown::MarkdownError), } pub struct ContentRenderer { - commonmark_renderer: commonmark::CommonMarkRenderer, + markdown_renderer: markdown::MarkdownRenderer, } impl ContentRenderer { pub fn new() -> Result { - Ok(ContentRenderer { commonmark_renderer: commonmark::CommonMarkRenderer::new() }) + Ok(ContentRenderer { markdown_renderer: markdown::MarkdownRenderer::new() }) } pub fn render(&self, path: &PathBuf) -> Result { @@ -36,8 +36,8 @@ impl ContentRenderer { Ok(s) => s, }; match path.extension().unwrap_or_default().to_str() { - Some("md") => match self.commonmark_renderer.render_to_html(&raw_content) { - Err(e) => return Err(ContentError::CommonMarkError(path.clone(), e)), + Some("md") => match self.markdown_renderer.render_to_html(&raw_content) { + Err(e) => return Err(ContentError::MarkdownError(path.clone(), e)), Ok(output) => Ok(output), }, Some("html") | Some("htm") => Ok(raw_content),