Skip to content

Commit

Permalink
style: format code according to styleguide
Browse files Browse the repository at this point in the history
  • Loading branch information
mhatzl committed Apr 27, 2022
1 parent 8272903 commit b7b3db3
Show file tree
Hide file tree
Showing 33 changed files with 3,044 additions and 1,965 deletions.
92 changes: 44 additions & 48 deletions core/src/backend/inline.rs
Original file line number Diff line number Diff line change
@@ -1,58 +1,54 @@
use unimarkup_inline::{Inline, InlineKind, NestedInline};

use super::{Render, error::BackendError};

use super::{error::BackendError, Render};

impl Render for Inline {
fn render_html(&self) -> Result<String, BackendError> {
let mut output = String::new();
fn render_html(&self) -> Result<String, BackendError> {
let mut output = String::new();

for inline in self {
match inline {
InlineKind::Bold(bold) => {
output.push_str("<strong>");
output.push_str(&bold.render_html()?);
output.push_str("</strong>");
},
InlineKind::Italic(italic) => {
output.push_str("<em>");
output.push_str(&italic.render_html()?);
output.push_str("</em>");
},
InlineKind::BoldItalic(bold_italic) => {
output.push_str("<strong><em>");
output.push_str(&bold_italic.render_html()?);
output.push_str("</em></strong>");
},
InlineKind::Verbatim(verbatim) => {
output.push_str("<code>");
output.push_str(&verbatim.render_html()?);
output.push_str("</code>");
},
InlineKind::Plain(plain)
| InlineKind::PlainNewLine(plain) => {
output.push_str(&plain.content);
},
InlineKind::EscapedNewLine(_) => {
output.push_str("<br/>");
},
InlineKind::EscapedSpace(_) => {
output.push_str("&nbsp;")
},
InlineKind::TextGroup(nested, _) => {
output.push_str("<span>");
output.push_str(&nested.content.render_html()?);
output.push_str("</span>");
},
}
}
for inline in self {
match inline {
InlineKind::Bold(bold) => {
output.push_str("<strong>");
output.push_str(&bold.render_html()?);
output.push_str("</strong>");
}
InlineKind::Italic(italic) => {
output.push_str("<em>");
output.push_str(&italic.render_html()?);
output.push_str("</em>");
}
InlineKind::BoldItalic(bold_italic) => {
output.push_str("<strong><em>");
output.push_str(&bold_italic.render_html()?);
output.push_str("</em></strong>");
}
InlineKind::Verbatim(verbatim) => {
output.push_str("<code>");
output.push_str(&verbatim.render_html()?);
output.push_str("</code>");
}
InlineKind::Plain(plain) | InlineKind::PlainNewLine(plain) => {
output.push_str(&plain.content);
}
InlineKind::EscapedNewLine(_) => {
output.push_str("<br/>");
}
InlineKind::EscapedSpace(_) => output.push_str("&nbsp;"),
InlineKind::TextGroup(nested, _) => {
output.push_str("<span>");
output.push_str(&nested.content.render_html()?);
output.push_str("</span>");
}
}
}

Ok(output)
}
Ok(output)
}
}

impl Render for NestedInline {
fn render_html(&self) -> Result<String, BackendError> {
self.content.render_html()
}
fn render_html(&self) -> Result<String, BackendError> {
self.content.render_html()
}
}
11 changes: 8 additions & 3 deletions core/src/backend/loader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ use crate::{
backend::BackendError,
elements::{types, types::UnimarkupType, HeadingBlock, ParagraphBlock, VerbatimBlock},
log_id::{LogId, SetLog},
middleend::{self, ContentIrLine}, unimarkup_block::UnimarkupBlockKind,
middleend::{self, ContentIrLine},
unimarkup_block::UnimarkupBlockKind,
};

use super::log_id::LoaderErrLogId;
Expand All @@ -33,7 +34,9 @@ pub trait ParseFromIr {
/// # Arguments
///
/// * `connection` - [`rusqlite::Connection`] used for interaction with IR
pub fn get_blocks_from_ir(connection: &mut Connection) -> Result<Vec<UnimarkupBlockKind>, BackendError> {
pub fn get_blocks_from_ir(
connection: &mut Connection,
) -> Result<Vec<UnimarkupBlockKind>, BackendError> {
let mut blocks: Vec<UnimarkupBlockKind> = vec![];
let mut content_lines: VecDeque<ContentIrLine> =
middleend::get_content_lines(connection)?.into();
Expand All @@ -43,7 +46,9 @@ pub fn get_blocks_from_ir(connection: &mut Connection) -> Result<Vec<UnimarkupBl

let block = match um_type {
// UnimarkupType::List => todo!(),
UnimarkupType::Heading => UnimarkupBlockKind::Heading(HeadingBlock::parse_from_ir(&mut content_lines)?),
UnimarkupType::Heading => {
UnimarkupBlockKind::Heading(HeadingBlock::parse_from_ir(&mut content_lines)?)
}
UnimarkupType::Paragraph => {
UnimarkupBlockKind::Paragraph(ParagraphBlock::parse_from_ir(&mut content_lines)?)
}
Expand Down
2 changes: 1 addition & 1 deletion core/src/backend/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
use crate::{config::Config, unimarkup::UnimarkupDocument, unimarkup_block::UnimarkupBlockKind};
use rusqlite::Connection;

mod inline;
mod loader;
mod renderer;
mod inline;

pub use loader::ParseFromIr;
pub use renderer::*;
Expand Down
45 changes: 37 additions & 8 deletions core/src/elements/heading_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::collections::{HashMap, VecDeque};
use pest::iterators::{Pair, Pairs};
use pest::Span;
use strum_macros::*;
use unimarkup_inline::{Inline, Position, parse_with_offset, flat_inline, FlattenInlineKind};
use unimarkup_inline::{flat_inline, parse_with_offset, FlattenInlineKind, Inline, Position};

use crate::backend::{error::BackendError, ParseFromIr, Render};
use crate::elements::types::{self, UnimarkupBlocks, UnimarkupType};
Expand Down Expand Up @@ -159,7 +159,7 @@ impl HeadingBlock {
Some(id) => id.to_lowercase(),
None => format!("heading-{}-line-{}", level, line_nr),
};

let id = match attributes {
Some(ref attrs) if attrs.get("id").is_some() => attrs.get("id").unwrap().to_string(),
_ => generated_id,
Expand Down Expand Up @@ -273,16 +273,21 @@ impl ParseFromIr for HeadingBlock {
ir_line.fallback_attributes
};


let try_inline = parse_with_offset(&content, Position{line: ir_line.line_nr, column: get_column_offset_from_level(level)});
let try_inline = parse_with_offset(
&content,
Position {
line: ir_line.line_nr,
column: get_column_offset_from_level(level),
},
);
let parsed_inline;
match try_inline {
Ok(inline) => parsed_inline = inline,
Err(_) => {
parsed_inline = flat_inline(&content);
(InlineWarnLogId::InlineParsingFailed as LogId)
.set_log(&format!("Inline parsing failed for heading-id {} => content taken as plain as fallback", ir_line.id), file!(), line!());
},
}
}

let block = HeadingBlock {
Expand Down Expand Up @@ -354,7 +359,14 @@ mod tests {
let highest_level = HeadingLevel::Level6 as usize;

for level in lowest_level..=highest_level {
let heading_content = parse_with_offset("This is a heading", Position{line: 0, column: level + 1}).unwrap();
let heading_content = parse_with_offset(
"This is a heading",
Position {
line: 0,
column: level + 1,
},
)
.unwrap();
let id = format!("heading-id-{}", level);

let heading = HeadingBlock {
Expand All @@ -378,7 +390,14 @@ mod tests {
let highest_level = HeadingLevel::Level6 as usize;

for level in lowest_level..=highest_level {
let heading_content = parse_with_offset("`This` *is a* **heading**", Position{line: 0, column: level + 1}).unwrap();
let heading_content = parse_with_offset(
"`This` *is a* **heading**",
Position {
line: 0,
column: level + 1,
},
)
.unwrap();
let id = format!("heading-id-{}", level);

let heading = HeadingBlock {
Expand Down Expand Up @@ -446,7 +465,17 @@ mod tests {

assert_eq!(id, String::from("some_id"));
assert_eq!(level, HeadingLevel::from(iterations));
assert_eq!(content, parse_with_offset("This is a heading", Position{line: block.line_nr, column: get_column_offset_from_level(level)}).unwrap());
assert_eq!(
content,
parse_with_offset(
"This is a heading",
Position {
line: block.line_nr,
column: get_column_offset_from_level(level)
}
)
.unwrap()
);
assert_eq!(attr, String::from("{}"));
}
}
Expand Down
17 changes: 13 additions & 4 deletions core/src/elements/paragraph_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ use crate::{
use pest::iterators::Pairs;
use pest::Span;

use unimarkup_inline::{Inline, flat_inline, FlattenInlineKind, Position, parse_with_offset};
use unimarkup_inline::{flat_inline, parse_with_offset, FlattenInlineKind, Inline, Position};

use super::{error::ElementError, log_id::{GeneralErrLogId, InlineWarnLogId}};
use super::{
error::ElementError,
log_id::{GeneralErrLogId, InlineWarnLogId},
};

/// Structure of a Unimarkup paragraph element.
#[derive(Debug, Default, Clone)]
Expand Down Expand Up @@ -133,15 +136,21 @@ impl ParseFromIr for ParagraphBlock {
ir_line.fallback_attributes
};

let try_inline = parse_with_offset(&content, Position{line: ir_line.line_nr, ..Default::default()});
let try_inline = parse_with_offset(
&content,
Position {
line: ir_line.line_nr,
..Default::default()
},
);
let parsed_inline;
match try_inline {
Ok(inline) => parsed_inline = inline,
Err(_) => {
parsed_inline = flat_inline(&content);
(InlineWarnLogId::InlineParsingFailed as LogId)
.set_log(&format!("Inline parsing failed for paragraph-id {} => content taken as plain as fallback", ir_line.id), file!(), line!());
},
}
}

let block = ParagraphBlock {
Expand Down
24 changes: 12 additions & 12 deletions core/src/unimarkup_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@ use crate::elements::VerbatimBlock;
/// Enum of supported Unimarkup block elements
#[derive(Debug, Clone)]
pub enum UnimarkupBlockKind {
/// Represents the heading block
Heading(HeadingBlock),
/// Represents the paragraph block
Paragraph(ParagraphBlock),
/// Represents the verbatim block
Verbatim(VerbatimBlock),
/// Represents the heading block
Heading(HeadingBlock),
/// Represents the paragraph block
Paragraph(ParagraphBlock),
/// Represents the verbatim block
Verbatim(VerbatimBlock),
}

impl Render for UnimarkupBlockKind {
fn render_html(&self) -> Result<String, crate::backend::error::BackendError> {
match self {
UnimarkupBlockKind::Heading(heading) => heading.render_html(),
UnimarkupBlockKind::Paragraph(paragraph) => paragraph.render_html(),
UnimarkupBlockKind::Verbatim(verbatim) => verbatim.render_html(),
fn render_html(&self) -> Result<String, crate::backend::error::BackendError> {
match self {
UnimarkupBlockKind::Heading(heading) => heading.render_html(),
UnimarkupBlockKind::Paragraph(paragraph) => paragraph.render_html(),
UnimarkupBlockKind::Verbatim(verbatim) => verbatim.render_html(),
}
}
}
}
11 changes: 9 additions & 2 deletions core/tests/backend/backend_run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use clap::StructOpt;
use unimarkup_core::{
backend::{self, Render},
config::Config,
elements::{HeadingBlock, HeadingLevel, get_column_offset_from_level},
elements::{get_column_offset_from_level, HeadingBlock, HeadingLevel},
middleend::{self, AsIrLines, ContentIrLine},
};
use unimarkup_inline::{parse_with_offset, Position};
Expand All @@ -16,7 +16,14 @@ fn test__backend_run__heading_block() {
let block = HeadingBlock {
id: "some-id".into(),
level: HeadingLevel::Level1,
content: parse_with_offset("This is a heading", Position{line: 0, column: get_column_offset_from_level(HeadingLevel::Level1)}).unwrap(),
content: parse_with_offset(
"This is a heading",
Position {
line: 0,
column: get_column_offset_from_level(HeadingLevel::Level1),
},
)
.unwrap(),
attributes: "{}".into(),
line_nr: 0,
};
Expand Down
Loading

0 comments on commit b7b3db3

Please sign in to comment.