livemarkdown 0.1.0

A live markdown renderer that watches files and serves HTML over HTTP
Documentation

livemarkdown-rs

A Rust application that watches markdown files for changes and renders them as HTML, served via a local HTTP server with real-time updates.

Features

  • Watch markdown files for changes and auto-reload
  • Live preview with real-time updates via Server-Sent Events (SSE)
  • GitHub-flavored markdown rendering with source position mapping
  • Multiple document management
  • Light and dark mode support
  • Browser integration for opening documents

Installation

Clone the repository and build the project:

git clone <repository-url>
cd livemarkdown
cargo build --release

Usage

Basic Usage

Start the server on default port with a markdown file:

cargo run -- --port 3030 ./path/to/your/file.md

Command Line Options

  • --port <PORT> - Specify the port to run the server on
  • [FILE] - Optional path to a markdown file to watch at startup

API Endpoints

  • GET / - List all watched documents
  • GET /document/:id - View rendered markdown document
  • GET /document/:id/updates - SSE endpoint for real-time updates
  • POST /api/document - Create a new watched document
  • DELETE /api/document/:id - Remove a watched document
  • POST /api/document/:id/open - Open document in browser
  • POST /api/document/:id/position - Update document position

Example API Usage

Create a new document to watch:

curl -X POST http://localhost:3030/api/document \
  -H "Content-Type: application/json" \
  -d '{"filepath": "./example.md"}'

Development

Building and Running

cargo build          # Compile the project
cargo run -- --port=3030  # Build and run
cargo check          # Check code without building

Testing and Quality

cargo test           # Run all tests
cargo clippy         # Run linter
cargo fmt            # Format code

Dependencies Management

cargo add <crate>    # Add dependency
cargo update         # Update dependencies

License

This project is in early development stage.