Skip to content

Commit 11212c2

Browse files
committed
fix: load system fonts for SVG to PNG rendering
1 parent d31729f commit 11212c2

6 files changed

Lines changed: 50 additions & 6 deletions

File tree

Cargo.lock

Lines changed: 29 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ notify = { version = "7", features = ["macos_fsevent"] }
4747
# Mermaid diagram rendering
4848
mermaid-rs-renderer = { version = "0.2", default-features = false }
4949
resvg = "0.46"
50+
fontdb = "0.20"
5051

5152
# Graphviz/DOT diagram rendering
5253
layout-rs = "0.1"

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@
1919

2020
Self-contained LaTeX to PDF compiler — one curl, zero friction. No TeX Live, no MiKTeX, no Perl, no Node. A single install sets up everything you need.
2121

22+
---
23+
24+
### Demos
25+
26+
#### Uso básico del CLI
27+
28+
![Demo CLI](assets/texforge.gif)
29+
30+
#### Integración con agentes en OpenCode
31+
32+
![Demo OpenCode](assets/opencode.gif)
33+
34+
2235
---
2336

2437
## Installation

assets/opencode.gif

4.98 MB
Loading

assets/texforge.gif

141 KB
Loading

src/diagrams/mod.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,13 @@ fn resolve_tex(root: &Path, input: &str) -> PathBuf {
214214

215215
/// Convert SVG string to PNG bytes at 2x scale for print quality.
216216
fn svg_to_png(svg: &str) -> Result<Vec<u8>> {
217-
let options = resvg::usvg::Options::default();
217+
let mut options = resvg::usvg::Options::default();
218+
219+
// Load system fonts for text rendering
220+
let mut fontdb = resvg::usvg::fontdb::Database::new();
221+
fontdb.load_system_fonts();
222+
options.fontdb = std::sync::Arc::new(fontdb);
223+
218224
let tree = resvg::usvg::Tree::from_str(svg, &options).context("Failed to parse SVG")?;
219225

220226
let scale = 2.0_f32;

0 commit comments

Comments
 (0)