From e444d0d7aeded6dd73528f72098db765c223a4a6 Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Fri, 27 Jun 2025 20:41:04 +0200 Subject: [PATCH] gaysex --- markdown_backend/src/main.rs | 46 +++++++++++++++++++++++ run-local-backend.sh | 22 +++++++++++ src/app/admin/manage/rust-status/page.tsx | 10 ++--- 3 files changed, 73 insertions(+), 5 deletions(-) create mode 100755 run-local-backend.sh diff --git a/markdown_backend/src/main.rs b/markdown_backend/src/main.rs index b1663cb..b6cfac1 100644 --- a/markdown_backend/src/main.rs +++ b/markdown_backend/src/main.rs @@ -4,6 +4,9 @@ mod markdown; use markdown::{get_all_posts, get_post_by_slug, get_posts_by_tag, watch_posts}; use serde_json; use std::fs; +use std::io; +use std::io::Read; // STD AYOOOOOOOOOOOOOO - Tsodin + #[derive(Parser)] #[command(name = "Markdown Backend")] @@ -31,6 +34,15 @@ enum Commands { Rsparseinfo, /// Check backend health Checkhealth, + /// Parse markdown from file or stdin + Parse { + #[arg(long)] + file: Option, + #[arg(long)] + stdin: bool, + #[arg(long)] + ast: bool, + }, } fn main() { @@ -80,5 +92,39 @@ fn main() { let health = markdown::checkhealth(); println!("{}", serde_json::to_string_pretty(&health).unwrap()); } + Commands::Parse { file, stdin, ast } => { + let input = if let Some(file_path) = file { + match std::fs::read_to_string(file_path) { + Ok(content) => content, + Err(e) => { + eprintln!("Failed to read file: {}", e); + std::process::exit(1); + } + } + } else if *stdin { + let mut buffer = String::new(); + if let Err(e) = io::stdin().read_to_string(&mut buffer) { + eprintln!("Failed to read from stdin: {}", e); + std::process::exit(1); + } + buffer + } else { + eprintln!("Please provide --file or --stdin"); + std::process::exit(1); + }; + if *ast { + // Print pulldown_cmark events as debug output + let parser = pulldown_cmark::Parser::new_ext(&input, pulldown_cmark::Options::all()); + for event in parser { + println!("{:?}", event); + } + } else { + // Print HTML output + let parser = pulldown_cmark::Parser::new_ext(&input, pulldown_cmark::Options::all()); + let mut html_output = String::new(); + pulldown_cmark::html::push_html(&mut html_output, parser); + println!("{}", html_output); + } + } } } \ No newline at end of file diff --git a/run-local-backend.sh b/run-local-backend.sh new file mode 100755 index 0000000..f281401 --- /dev/null +++ b/run-local-backend.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +# This script builds and runs the Rust backend locally, similar to the Docker container. +# Usage: ./run-local-backend.sh [args for markdown_backend] +# AnalSex with the frontend ( Cursor Autocompletion xD ) + +set -e + +# Set environment variables as in Docker (customize as needed) +export BLOG_OWNER=${BLOG_OWNER:-"rattatwinko"} + +# Build the backend in release mode +cd "$(dirname "$0")/markdown_backend" +echo "Building Rust backend..." +cargo build --release + +# Run the backend with any arguments passed to the script +cd target/release +echo "Running: ./markdown_backend $@" +./markdown_backend "$@" + +npm run dev ## start the fuckass frontend \ No newline at end of file diff --git a/src/app/admin/manage/rust-status/page.tsx b/src/app/admin/manage/rust-status/page.tsx index de4aabd..964b4a7 100644 --- a/src/app/admin/manage/rust-status/page.tsx +++ b/src/app/admin/manage/rust-status/page.tsx @@ -121,12 +121,12 @@ export default function RustStatusPage() { {/* Health Check Section */}
-

Health-Check

+

Health-Check

{healthLoading &&
Lade Health-Check...
} {healthError &&
{healthError}
} {health && ( -
-
+
+
{health.posts_dir_exists ? '✔' : '✖'} Posts-Verzeichnis @@ -165,9 +165,9 @@ export default function RustStatusPage() { )}
{health.errors.length > 0 && ( -
+
Fehler: -
    +
      {health.errors.map((err, i) =>
    • {err}
    • )}