Skip to content

Commit

Permalink
fix everything
Browse files Browse the repository at this point in the history
  • Loading branch information
coastalwhite committed Dec 21, 2024
1 parent 5dad5e1 commit 7e76e5f
Show file tree
Hide file tree
Showing 27 changed files with 681 additions and 750 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/target
/result
/**/result
/tests/**/*.svg
/tests/result.html
/wavedrom-wasm/index.css
Expand Down
48 changes: 7 additions & 41 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

rustToolchain = pkgs.rust-bin.stable.latest.default.override {
targets = [ buildTarget ];
extensions = [ "rust-analyzer" "rust-src" ];
};

rustPlatform = pkgs.makeRustPlatform {
Expand Down Expand Up @@ -65,6 +66,19 @@
cp -r assets $out/assets
'';
};

devShells.default = pkgs.mkShell {
packages = with pkgs; [
wabt
tailwindcss
minify
rustToolchain
];

shellHook = ''
export RUST_SRC_BIN="${rustToolchain}/lib/rustlib/src/rust/library";
'';
};
}
);
}
38 changes: 17 additions & 21 deletions mdbook-wavedrom-rs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ use std::fmt::Display;

use pulldown_cmark::{CodeBlockKind, Event, Options, Parser, Tag};
use wavedrom::json5::Error as JsonError;
use wavedrom::signal::options::{PathAssembleOptions, RenderOptions};
use wavedrom::Figure;

#[derive(Debug)]
Expand Down Expand Up @@ -35,8 +34,7 @@ impl std::error::Error for InsertionError {}

pub fn insert_wavedrom(
content: &str,
assemble_options: PathAssembleOptions,
render_options: &RenderOptions,
options: &wavedrom::Options,
) -> Result<String, InsertionError> {
let mut opts = Options::empty();
opts.insert(Options::ENABLE_TABLES);
Expand Down Expand Up @@ -112,8 +110,8 @@ pub fn insert_wavedrom(
match wavedrom_figure {
Figure::Signal(wavedrom_figure) => {
wavedrom_figure
.assemble_with_options(assemble_options)
.write_svg_with_options(&mut wavedrom_code, render_options)
.assemble_with_options(options)
.write_svg_with_options(&mut wavedrom_code, options)
.map_err(|_| InsertionError::WriteSvg)?;
}
Figure::Register(register) => todo!(),
Expand Down Expand Up @@ -187,22 +185,21 @@ mod tests {
```
"#;

let replaced_content = insert_wavedrom(
content,
PathAssembleOptions::default(),
&RenderOptions::default(),
)
.unwrap();
let replaced_content = insert_wavedrom(content, &wavedrom::Options::default()).unwrap();

assert_ne!(content, &replaced_content);

let replaced_content = replace_between(&replaced_content, "<svg", "</svg>", "<svg/>");

assert_eq!(replaced_content.trim(), r#"
assert_eq!(
replaced_content.trim(),
r#"
# Header
<pre class="wavedrom"><svg/></pre>
"#.trim())
"#
.trim()
)
}

#[test]
Expand All @@ -225,25 +222,24 @@ ABC:
```
"#;

let replaced_content = insert_wavedrom(
content,
PathAssembleOptions::default(),
&RenderOptions::default(),
)
.unwrap();
let replaced_content = insert_wavedrom(content, &wavedrom::Options::default()).unwrap();

assert_ne!(content, &replaced_content);

let replaced_content = replace_between(&replaced_content, "<svg ", "</svg>", "<svg/>");

assert_eq!(replaced_content.trim(), r#"
assert_eq!(
replaced_content.trim(),
r#"
# Header
<pre class="wavedrom"><svg/></pre>
ABC:
<pre class="wavedrom"><svg/></pre>
"#.trim())
"#
.trim()
)
}
}
22 changes: 6 additions & 16 deletions mdbook-wavedrom-rs/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,16 +61,15 @@ fn handle_supports(pre: &dyn Preprocessor, sub_args: &ArgMatches) -> ! {

// Signal whether the renderer is supported by exiting with 1 or 0.
if supported {
process::exit(0);
process::exit(0)
} else {
process::exit(1);
process::exit(1)
}
}

mod nop_lib {
use mdbook::BookItem;
use mdbook_wavedrom_rs::insert_wavedrom;
use wavedrom::signal::options::{PathAssembleOptions, RenderOptions};
use wavedrom::skin::Skin;

use super::*;
Expand All @@ -89,14 +88,13 @@ mod nop_lib {
}

fn run(&self, ctx: &PreprocessorContext, mut book: Book) -> Result<Book, Error> {
let mut assemble_options = PathAssembleOptions::default();
let mut render_options = RenderOptions::default();
let mut options = wavedrom::Options::default();

if let Some(config) = ctx.config.get_preprocessor(self.name()) {
if let Some(skin_path) = config.get("skin") {
let Some(skin_path) = skin_path.as_str() else {
eprintln!("[ERROR]: WaveDrom skin has invalid value type");
std::process::exit(1);
std::process::exit(1)
};

let skin = match std::fs::read_to_string(skin_path) {
Expand All @@ -108,15 +106,7 @@ mod nop_lib {
};

match Skin::from_json5(&skin) {
Ok(skin) => {
if let Some(assemble) = skin.assemble {
assemble_options.merge_in(assemble);
}

if let Some(render) = skin.render {
render_options.merge_in(render);
}
}
Ok(skin) => options.merge_in(skin.0),
Err(err) => {
eprintln!(
"[ERROR]: Failed to parse WaveDrom skin content. Reason: {err}"
Expand All @@ -130,7 +120,7 @@ mod nop_lib {
book.for_each_mut(|item| match item {
BookItem::Separator | BookItem::PartTitle(_) => {}
BookItem::Chapter(chapter) => {
match insert_wavedrom(&chapter.content, assemble_options, &render_options) {
match insert_wavedrom(&chapter.content, &options) {
Ok(new_content) => chapter.content = new_content,
Err(err) => {
eprintln!("Failed to render wavedrom. Reason: {err}");
Expand Down
3 changes: 0 additions & 3 deletions wavedrom-wasm/.cargo/config

This file was deleted.

3 changes: 3 additions & 0 deletions wavedrom-wasm/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build]
target = "wasm32-unknown-unknown"
# rustflags = ["-C", "link-arg=-zstack-size=16000"]
65 changes: 65 additions & 0 deletions wavedrom-wasm/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,71 @@ <h3 class="font-bold mt-4">Edge Options</h3>
<td><input class="text-black" id="param:edge-arrow-size" type="number" /></td>
</tr>
</table>
</div>
<div class="max-w-full">
<h3 class="font-bold mt-4">Register Options</h3>
<table class="max-w-full table-fixed">
<tr>
<td>Bar Width</td>
<td><input class="text-black" id="param:register-bar-width" type="number" /></td>
</tr>
<tr>
<td>Bar Height</td>
<td><input class="text-black" id="param:register-bar-height" type="number" /></td>
</tr>
<tr>
<td>Hint Indent</td>
<td><input class="text-black" id="param:register-hint-indent" type="number" /></td>
</tr>
<tr>
<td>Name Font Size</td>
<td><input class="text-black" id="param:register-name-fontsize" type="number" /></td>
</tr>
<tr>
<td>Bitmarker Font Size</td>
<td><input class="text-black" id="param:register-bitmarker-fontsize" type="number" /></td>
</tr>
<tr>
<td>Attribute Font Size</td>
<td><input class="text-black" id="param:register-attribute-fontsize" type="number" /></td>
</tr>
<tr>
<td>Padding Top</td>
<td><input class="text-black" id="param:register-padding-top" type="number" /></td>
</tr>
<tr>
<td>Padding Bottom</td>
<td><input class="text-black" id="param:register-padding-bottom" type="number" /></td>
</tr>
<tr>
<td>Padding Left</td>
<td><input class="text-black" id="param:register-padding-left" type="number" /></td>
</tr>
<tr>
<td>Padding Right</td>
<td><input class="text-black" id="param:register-padding-right" type="number" /></td>
</tr>
<tr>
<td>Spacing Lane</td>
<td><input class="text-black" id="param:register-spacing-lane" type="number" /></td>
</tr>
<tr>
<td>Spacing Attribute</td>
<td><input class="text-black" id="param:register-spacing-attribute" type="number" /></td>
</tr>
<tr>
<td>Bitmarker X-Offset</td>
<td><input class="text-black" id="param:register-offset-bitmarker-x" type="number" /></td>
</tr>
<tr>
<td>Bitmarker Y-Offset</td>
<td><input class="text-black" id="param:register-offset-bitmarker-y" type="number" /></td>
</tr>
<tr>
<td>Attribute Y-Offset</td>
<td><input class="text-black" id="param:register-offset-attribute-y" type="number" /></td>
</tr>
</table>
</div>
</div>
<div class="bg-gray-300 h-16 w-full p-4 text-xl flex flex-row space-x-2">
Expand Down
Loading

0 comments on commit 7e76e5f

Please sign in to comment.