Skip to content
 
 

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

remarkdown

remarkdown logo

Repository Fork of

A modern, clean Dockerized web app that converts Office documents, PDFs, web pages and YouTube links into Markdown — powered by a PHP frontend and a Python (FastAPI) backend running MarkItDown.


✨ Features

  • Drag & drop upload for Word, Excel, PowerPoint, PDF, HTML, CSV, JSON, XML, ZIP, EPUB and more
  • Convert YouTube URLs to Markdown (transcripts)
  • Split-view converter: inputs on the left, live result on the right
  • Rendered or Source preview with one-click Copy and Download .md
  • Output metrics: characters, words, lines, size
  • Modern responsive UI with light & dark mode

🏗 Architecture

Browser ──▶ Nginx (proxy)
              ├── /  → PHP-FPM  → index.php (HTML/CSS/JS UI)
              └── /api/* → FastAPI (Python) → markitdown
Service Stack Port
nginx nginx:1.27-alpine 8080
frontend php:8.3-fpm-alpine (internal 9000)
backend python:3.11 + FastAPI (internal 8000)

🚀 Getting started (Docker)

  1. Build and start all services:

    docker compose up -d --build
  2. Open your browser at http://localhost:8080

  3. Override the host port if needed:

    PORT=9000 docker compose up -d --build   # → http://localhost:9000

Stop with docker compose down. Rebuild backend after changes with docker compose up -d --build backend.

🛠 Tech stack

  • Frontend: PHP 8.3, vanilla JS, custom CSS (light & dark themes), marked.js for preview rendering
  • Backend: Python 3.11, FastAPI, MarkItDown
  • Orchestration: Docker Compose + Nginx reverse proxy

📁 Project layout

markdown_app/
├── docker-compose.yml
├── .dockerignore
├── frontend/
│   ├── nginx.conf          # routes .php → frontend, /api/* → backend
│   └── www/
│       ├── index.php       # homepage + converter UI
│       ├── style.css
│       ├── app.js
│       └── logo.svg
└── backend/
    ├── Dockerfile
    ├── requirements.txt
    └── main.py             # FastAPI: /api/convert, /api/convert-url

🔌 API

  • GET /api/health — liveness probe
  • POST /api/convert — multipart upload (file) → { markdown, file_name, characters, words, lines, size }
  • POST /api/convert-url — JSON { "url": "https://youtube.com/..." } → same shape

📄 License

Project repository: relooplab/markdown_app — a fork of office_to_markdown_app.

About

A modern, clean Dockerized web app that converts Office documents, PDFs, web pages and YouTube links into Markdown — powered by a PHP frontend and a Python (FastAPI) backend running MarkItDown.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages