mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-08-03 17:58:17 +00:00
docs: maintain readme and command docs (#733)
* docs: maintain readme and command docs * docs: update inline images * test: update snapshot * test: update baseline * test: update baseline
This commit is contained in:
parent
81ebc8a635
commit
2c38695b6f
35 changed files with 402 additions and 159 deletions
|
@ -102,14 +102,14 @@ pub fn completion(args: ShellCompletionArgs) -> anyhow::Result<()> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
/// The main entry point for the LSP server.
|
||||
/// The main entry point for the language server.
|
||||
pub fn lsp_main(args: LspArgs) -> anyhow::Result<()> {
|
||||
let pairs = LONG_VERSION.trim().split('\n');
|
||||
let pairs = pairs
|
||||
.map(|e| e.splitn(2, ":").map(|e| e.trim()).collect::<Vec<_>>())
|
||||
.collect::<Vec<_>>();
|
||||
log::info!("tinymist LSP version information: {pairs:?}");
|
||||
log::info!("starting LSP server: {args:#?}");
|
||||
log::info!("tinymist version information: {pairs:?}");
|
||||
log::info!("starting Language server: {args:#?}");
|
||||
|
||||
let is_replay = !args.mirror.replay.is_empty();
|
||||
with_stdio_transport(args.mirror.clone(), |conn| {
|
||||
|
@ -126,7 +126,7 @@ pub fn lsp_main(args: LspArgs) -> anyhow::Result<()> {
|
|||
.start(conn.receiver, is_replay)
|
||||
})?;
|
||||
|
||||
log::info!("LSP server did shut down");
|
||||
log::info!("language server did shut down");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//! tinymist LSP server
|
||||
//! tinymist's language server
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
|
|
@ -291,10 +291,27 @@ impl TypliteWorker {
|
|||
}
|
||||
|
||||
fn render(&mut self, node: &SyntaxNode, inline: bool) -> Result<Value> {
|
||||
let color = "#c0caf5";
|
||||
let dark = self.render_inner(node, true)?;
|
||||
let light = self.render_inner(node, false)?;
|
||||
if inline {
|
||||
Ok(Value::Content(eco_format!(
|
||||
r#"<picture><source media="(prefers-color-scheme: dark)" srcset="data:image/svg+xml;base64,{dark}"><img style="vertical-align: -0.35em" alt="typst-block" src="data:image/svg+xml;base64,{light}"/></picture>"#
|
||||
)))
|
||||
} else {
|
||||
Ok(Value::Content(eco_format!(
|
||||
r#"<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="data:image/svg+xml;base64,{dark}"><img alt="typst-block" src="data:image/svg+xml;base64,{light}"/></picture></p>"#
|
||||
)))
|
||||
}
|
||||
}
|
||||
|
||||
fn render_inner(&mut self, node: &SyntaxNode, is_dark: bool) -> Result<String> {
|
||||
let color = if is_dark {
|
||||
r##"#set text(rgb("#c0caf5"))"##
|
||||
} else {
|
||||
""
|
||||
};
|
||||
let main = Bytes::from(eco_format!(
|
||||
r##"#set page(width: auto, height: auto, margin: (y: 0.45em, rest: 0em));#set text(rgb("{color}"))
|
||||
r##"#set page(width: auto, height: auto, margin: (y: 0.45em, rest: 0em), fill: rgb("#ffffff00"));{color}
|
||||
{}"##,
|
||||
node.clone().into_text()
|
||||
).as_bytes().to_owned());
|
||||
|
@ -305,6 +322,7 @@ impl TypliteWorker {
|
|||
entry: Some(entry),
|
||||
inputs: None,
|
||||
});
|
||||
world.source_db.take_state();
|
||||
world.map_shadow_by_id(main_id, main).unwrap();
|
||||
|
||||
let document = typst::compile(&world)
|
||||
|
@ -312,17 +330,7 @@ impl TypliteWorker {
|
|||
.map_err(|e| format!("compiling math node: {e:?}"))?;
|
||||
|
||||
let svg_payload = typst_svg::svg_merged(&document, Abs::zero());
|
||||
let base64 = base64::engine::general_purpose::STANDARD.encode(svg_payload);
|
||||
|
||||
if inline {
|
||||
Ok(Value::Content(eco_format!(
|
||||
r#"<img style="vertical-align: -0.35em" src="data:image/svg+xml;base64,{base64}" alt="typst-block" />"#
|
||||
)))
|
||||
} else {
|
||||
Ok(Value::Content(eco_format!(
|
||||
r#"<p align="center"><img src="data:image/svg+xml;base64,{base64}" alt="typst-block" /></p>"#
|
||||
)))
|
||||
}
|
||||
Ok(base64::engine::general_purpose::STANDARD.encode(svg_payload))
|
||||
}
|
||||
|
||||
fn char(arg: char) -> Result<Value> {
|
||||
|
|
|
@ -24,7 +24,7 @@ fn conv_(s: &str, for_docs: bool) -> EcoString {
|
|||
EntryState::new_rooted(cwd.as_path().into(), Some(main.id())),
|
||||
font_resolver.unwrap(),
|
||||
Default::default(),
|
||||
Default::default()
|
||||
Default::default(),
|
||||
)
|
||||
.unwrap();
|
||||
universe
|
||||
|
@ -36,7 +36,7 @@ fn conv_(s: &str, for_docs: bool) -> EcoString {
|
|||
let res = converter.convert().unwrap();
|
||||
static REG: OnceLock<Regex> = OnceLock::new();
|
||||
let reg = REG.get_or_init(|| Regex::new(r#"data:image/svg\+xml;base64,([^"]+)"#).unwrap());
|
||||
let res = reg.replace(&res, |_captures: ®ex::Captures| {
|
||||
let res = reg.replace_all(&res, |_captures: ®ex::Captures| {
|
||||
// let hash = _captures.get(1).unwrap().as_str();
|
||||
// format!(
|
||||
// "data:image-hash/svg+xml;base64,siphash128:{:x}",
|
||||
|
@ -93,7 +93,11 @@ Some inlined raw `a`, ```c b```
|
|||
$
|
||||
1/2 + 1/3 = 5/6
|
||||
$
|
||||
"###), @r###"<p align="center"><img src="data:image-hash/svg+xml;base64,redacted" alt="typst-block" /></p>"###);
|
||||
"###), @r###"
|
||||
|
||||
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="data:image-hash/svg+xml;base64,redacted"><img alt="typst-block" src="data:image-hash/svg+xml;base64,redacted"/></picture></p>
|
||||
|
||||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -4,8 +4,16 @@ use crate::tests::*;
|
|||
fn test_math_equation() {
|
||||
insta::assert_snapshot!(conv(r###"
|
||||
$integral x dif x$
|
||||
"###), @r###"<img style="vertical-align: -0.35em" src="data:image-hash/svg+xml;base64,redacted" alt="typst-block" />"###);
|
||||
"###), @r###"
|
||||
|
||||
<picture><source media="(prefers-color-scheme: dark)" srcset="data:image-hash/svg+xml;base64,redacted"><img style="vertical-align: -0.35em" alt="typst-block" src="data:image-hash/svg+xml;base64,redacted"/></picture>
|
||||
|
||||
"###);
|
||||
insta::assert_snapshot!(conv(r###"
|
||||
$ integral x dif x $
|
||||
"###), @r###"<p align="center"><img src="data:image-hash/svg+xml;base64,redacted" alt="typst-block" /></p>"###);
|
||||
"###), @r###"
|
||||
|
||||
<p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="data:image-hash/svg+xml;base64,redacted"><img alt="typst-block" src="data:image-hash/svg+xml;base64,redacted"/></picture></p>
|
||||
|
||||
"###);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue