Sign inSign up

cloudsmithy/flask-markdown-connector

By cloudsmithy

โ€ขUpdated over 1 year ago

expose api for markdown

Image
Developer tools
Web servers
0

492

cloudsmithy/flask-markdown-connector repository overview

โ ๐Ÿ“ Markdown Connector API

A lightweight Flask-based Markdown API server that:

  • ๐Ÿงพ Recursively reads .md files in a directory
  • โœจ Auto-fills missing frontmatter (title/date/summary/tags)
  • ๐Ÿ“ฆ Generates a searchable index.json for static sites
  • ๐Ÿ“‚ Serves raw markdown files via API
  • ๐Ÿ“š Provides Swagger UI for developers

โ ๐Ÿš€ Quick Start

โ 1. Clone this project
git clone https://github.com/yourname/markdown-connector.git
cd markdown-connector
โ 2. Place your .md files under the markdown/ folder
mkdir markdown
cp your_posts/*.md markdown/

โ ๐Ÿณ Run with Docker Compose

โ docker-compose.yml
version: "3"

services:
  flask-app:
    container_name: markdown-connector
    build: .
    ports:
      - "1313:5000"
    volumes:
      - ./markdown:/app/markdown
      - ./static:/app/markdown/static
    restart: always
โ Start the service
docker-compose up --build

โ ๐Ÿงฉ Project Structure

.
โ”œโ”€โ”€ app.py               # Flask app with Swagger
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ start.sh
โ”œโ”€โ”€ markdown/            # โ† Your .md files go here
โ”œโ”€โ”€ static/              # โ† index.json will be generated here
โ””โ”€โ”€ docker-compose.yml

โ ๐ŸŒ API Endpoints

EndpointMethodDescription
/GETHealth check
/posts/GETList all markdown files
/posts/<filename>GETGet raw .md content
/api/postsGETGet index.json metadata
/api/refreshGETRebuild index (optional ?dryrun=true)
/index.jsonGETAlias for /api/posts
/apidocs/GETSwagger UI

โ ๐Ÿงช Sample index.json Output

{
  "title": "My First Post",
  "summary": "",
  "tags": ["notes"],
  "category": "blog",
  "created": "2025-03-27T14:00:00",
  "url": "/posts/blog/first-post.md"
}

โ ๐Ÿ“š Swagger UI

Auto-generated docs available at:
๐Ÿ‘‰ http://localhost:1313/apidocs/


โ ๐Ÿ‘จโ€๐Ÿ’ป Dev Tips

  • index.json is auto-generated at server startup
  • Missing frontmatter (like title, date, tags) will be filled in
  • All .md files are served as raw markdown from /posts/

โ ๐Ÿ“ฆ Dependencies

flask
markdown
python-frontmatter
flasgger

โ โค๏ธ License

MIT License. Fork & use freely. Contributions welcome!

Tag summary

Content type

Image

Digest

sha256:e358b3de6โ€ฆ

Size

55.5 MB

Last updated

over 1 year ago

docker pull cloudsmithy/flask-markdown-connector