jotdown_wasm: display version
mostly useful for the hosted version
This commit is contained in:
parent
0af2c46c57
commit
7a10767fed
6 changed files with 184 additions and 13 deletions
|
@ -17,3 +17,6 @@ wasm-bindgen = { version = "0.2", default-features = false }
|
|||
|
||||
[dependencies.web-sys]
|
||||
version = "0.3"
|
||||
|
||||
[build-dependencies]
|
||||
git2 = { version = "0.14", default-features = false }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
WASM=pkg/jotdown_wasm_bg.wasm
|
||||
|
||||
SRC=$(shell find src ../../src -name '*.rs')
|
||||
SRC=$(shell find . ../../src -name '*.rs')
|
||||
|
||||
${WASM}: ${SRC}
|
||||
wasm-pack build --release --target web
|
||||
|
|
17
examples/jotdown_wasm/build.rs
Normal file
17
examples/jotdown_wasm/build.rs
Normal file
|
@ -0,0 +1,17 @@
|
|||
fn get_version() -> String {
|
||||
if let Ok(repo) = git2::Repository::discover(".") {
|
||||
if let Ok(describe) = repo.describe(&git2::DescribeOptions::new()) {
|
||||
if let Ok(format) = describe.format(None) {
|
||||
return format;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::env::var("CARGO_PKG_VERSION").unwrap()
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let out_dir = std::env::var_os("OUT_DIR").unwrap();
|
||||
let dest_path = std::path::Path::new(&out_dir).join("version");
|
||||
std::fs::write(&dest_path, get_version()).unwrap();
|
||||
}
|
|
@ -1,12 +1,16 @@
|
|||
<div id="jotdown" style="flex-grow:1;display:flex;flex-direction:column">
|
||||
<script type="module">
|
||||
import init, {
|
||||
jotdown_version,
|
||||
jotdown_render,
|
||||
jotdown_parse,
|
||||
jotdown_parse_indent,
|
||||
} from './pkg/jotdown_wasm.js';
|
||||
await init();
|
||||
|
||||
let version = document.getElementById("jotdown-version");
|
||||
version.innerText = "jotdown-" + jotdown_version();
|
||||
|
||||
let output = document.getElementById("jotdown-output");
|
||||
let input = document.getElementById("jotdown-input");
|
||||
let fmt = document.getElementById("jotdown-fmt");
|
||||
|
@ -35,13 +39,20 @@
|
|||
// auto focus on input on load
|
||||
setTimeout(() => { input.focus(); }, 0);
|
||||
</script>
|
||||
<div>
|
||||
<select id="jotdown-fmt">
|
||||
<option value="preview">preview</option>
|
||||
<option value="html">html</option>
|
||||
<option value="events">events</option>
|
||||
<option value="events_indent">events (indented)</option>
|
||||
</select>
|
||||
<div style="display:flex;gap:1rem">
|
||||
<div style="width:50%">
|
||||
<span style="opacity:50%">
|
||||
version: <span id="jotdown-version">(not loaded)</span>
|
||||
</span>
|
||||
</div>
|
||||
<div style="width:50%">
|
||||
<select id="jotdown-fmt">
|
||||
<option value="preview">preview</option>
|
||||
<option value="html">html</option>
|
||||
<option value="events">events</option>
|
||||
<option value="events_indent">events (indented)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div id="jotdown-panes" style="display:flex;height:100%;gap:1rem">
|
||||
<pre id="jotdown-input" contenteditable="true" placeholder="Input djot here" style="width:50%;height:100%;overflow:scroll;resize:none;box-sizing:border-box;margin:0">*Hello world!*</pre>
|
||||
|
|
|
@ -3,6 +3,12 @@ use wasm_bindgen::prelude::*;
|
|||
use jotdown::Render;
|
||||
use std::fmt::Write;
|
||||
|
||||
#[must_use]
|
||||
#[wasm_bindgen]
|
||||
pub fn jotdown_version() -> String {
|
||||
include_str!(concat!(env!("OUT_DIR"), "/version")).to_string()
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
#[wasm_bindgen]
|
||||
pub fn jotdown_render(djot: &str) -> String {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue