mirror of
https://github.com/duhanbalci/dreport.git
synced 2026-07-02 02:49:16 +00:00
fix bugs
This commit is contained in:
@@ -1,18 +1,17 @@
|
||||
use axum::{Router, serve};
|
||||
use dreport_layout::FontData;
|
||||
use std::sync::Arc;
|
||||
use tokio::net::TcpListener;
|
||||
use tower_http::cors::{Any, CorsLayer};
|
||||
|
||||
mod models;
|
||||
mod routes;
|
||||
mod typst_engine;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
// Fontları bir kez yükle — tüm request'lerde paylaşılacak
|
||||
println!("Fontlar yukleniyor...");
|
||||
let fonts = Arc::new(typst_engine::fonts::load_fonts());
|
||||
println!("Fontlar yuklendi ({} font)", fonts.fonts.len());
|
||||
let fonts = Arc::new(load_fonts());
|
||||
println!("Fontlar yuklendi ({} font dosyasi)", fonts.len());
|
||||
|
||||
let cors = CorsLayer::new()
|
||||
.allow_origin(Any)
|
||||
@@ -30,3 +29,31 @@ async fn main() -> anyhow::Result<()> {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Proje fontlarını yükler (backend/fonts/ dizininden).
|
||||
fn load_fonts() -> Vec<FontData> {
|
||||
let font_dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("fonts");
|
||||
let mut fonts = Vec::new();
|
||||
|
||||
let entries = std::fs::read_dir(&font_dir).expect("backend/fonts dizini bulunamadi");
|
||||
for entry in entries {
|
||||
let entry = entry.unwrap();
|
||||
let path = entry.path();
|
||||
if path.extension().is_some_and(|e| e == "ttf" || e == "otf") {
|
||||
let data = std::fs::read(&path).unwrap();
|
||||
let family = if path
|
||||
.file_name()
|
||||
.unwrap()
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.contains("Mono")
|
||||
{
|
||||
"Noto Sans Mono".to_string()
|
||||
} else {
|
||||
"Noto Sans".to_string()
|
||||
};
|
||||
fonts.push(FontData { family, data });
|
||||
}
|
||||
}
|
||||
fonts
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user