mirror of
https://github.com/typst/typst
synced 2025-05-19 11:35:27 +08:00
Fix tests on windows (#1222)
This commit is contained in:
parent
2cbeeae5da
commit
ff903674f9
@ -124,6 +124,7 @@ struct Metadata {
|
|||||||
struct Handler<'a> {
|
struct Handler<'a> {
|
||||||
resolver: &'a dyn Resolver,
|
resolver: &'a dyn Resolver,
|
||||||
lang: Option<String>,
|
lang: Option<String>,
|
||||||
|
code: String,
|
||||||
outline: Vec<OutlineItem>,
|
outline: Vec<OutlineItem>,
|
||||||
id_base: String,
|
id_base: String,
|
||||||
ids: &'a Arena<String>,
|
ids: &'a Arena<String>,
|
||||||
@ -134,6 +135,7 @@ impl<'a> Handler<'a> {
|
|||||||
Self {
|
Self {
|
||||||
resolver,
|
resolver,
|
||||||
lang: None,
|
lang: None,
|
||||||
|
code: String::new(),
|
||||||
outline: vec![],
|
outline: vec![],
|
||||||
id_base,
|
id_base,
|
||||||
ids,
|
ids,
|
||||||
@ -141,7 +143,6 @@ impl<'a> Handler<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&mut self, event: &mut md::Event<'a>) -> bool {
|
fn handle(&mut self, event: &mut md::Event<'a>) -> bool {
|
||||||
let lang = self.lang.take();
|
|
||||||
match event {
|
match event {
|
||||||
// Rewrite Markdown images.
|
// Rewrite Markdown images.
|
||||||
md::Event::Start(md::Tag::Image(_, path, _)) => {
|
md::Event::Start(md::Tag::Image(_, path, _)) => {
|
||||||
@ -207,17 +208,21 @@ impl<'a> Handler<'a> {
|
|||||||
// Code blocks.
|
// Code blocks.
|
||||||
md::Event::Start(md::Tag::CodeBlock(md::CodeBlockKind::Fenced(lang))) => {
|
md::Event::Start(md::Tag::CodeBlock(md::CodeBlockKind::Fenced(lang))) => {
|
||||||
self.lang = Some(lang.as_ref().into());
|
self.lang = Some(lang.as_ref().into());
|
||||||
|
self.code = String::new();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
md::Event::End(md::Tag::CodeBlock(md::CodeBlockKind::Fenced(_))) => {
|
md::Event::End(md::Tag::CodeBlock(md::CodeBlockKind::Fenced(_))) => {
|
||||||
return false;
|
let Some(lang) = self.lang.take() else { return false };
|
||||||
|
let html = code_block(self.resolver, &lang, &self.code);
|
||||||
|
*event = md::Event::Html(html.raw.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Example with preview.
|
// Example with preview.
|
||||||
md::Event::Text(text) => {
|
md::Event::Text(text) => {
|
||||||
let Some(lang) = lang.as_deref() else { return true };
|
if self.lang.is_some() {
|
||||||
let html = code_block(self.resolver, lang, text);
|
self.code.push_str(text);
|
||||||
*event = md::Event::Html(html.raw.into());
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -378,7 +378,11 @@ fn test(
|
|||||||
let mut compare_ever = false;
|
let mut compare_ever = false;
|
||||||
let mut rng = LinearShift::new();
|
let mut rng = LinearShift::new();
|
||||||
|
|
||||||
let parts: Vec<_> = text.split("\n---").collect();
|
let parts: Vec<_> = text
|
||||||
|
.split("\n---")
|
||||||
|
.map(|s| s.strip_suffix('\r').unwrap_or(s))
|
||||||
|
.collect();
|
||||||
|
|
||||||
for (i, &part) in parts.iter().enumerate() {
|
for (i, &part) in parts.iter().enumerate() {
|
||||||
if let Some(x) = args.subtest {
|
if let Some(x) = args.subtest {
|
||||||
let x = usize::try_from(
|
let x = usize::try_from(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user