Skip to content
@markdown-docs

Markdown Docs

Markdown Docs Collaborative Editor 🚀

A powerful, real-time collaborative Markdown editor inspired by Google Docs and Overleaf. Built with React, Phoenix, and Haskell, this project brings team-based editing to the next level with custom .mds format support, Unsplash image embeds, and live synchronization.


Demo Preview 🎥

2024-12-14.21-19-44.mp4

Key Features 🌟

  • Real-Time Collaboration:

  • Edit Markdown documents with your team simultaneously. See edits in real-time near instantly!

  • Custom .mds Format:
    Extend Markdown with powerful features:

    • !![Your Title]: Add beautiful document titles.
    • WIP:
      • !gif[search term]: Embed GIFs on the fly.
      • !image[unsplash term]: Seamlessly add images from Unsplash.
  • Live Preview:

  • Instantly preview Markdown-rendered content as you type.

  • Unsplash Integration:

  • Quickly embed stunning, royalty-free images.

  • History Tracking:

  • Built-in undo/redo functionality.


Tech Stack ⚙️

Component Technology
Frontend React, CodeMirror, react-markdown, phoenix
Backend Elixir + Phoenix Framework
Parser Haskell + Pandoc
Database, ORM PostgreSQL, Ecto
APIs Unsplash API

Usage 📖

1. Collaborative Editing

  • Share your document with team members. All changes are synchronized in real-time.

2. Using .mds Features

  • Add titles:
    !title[My Document Title]
  • Embed a GIF:
    !gif[coding cat]
  • Add an Unsplash image:
    !image[forest]

Project Structure 📂

markdown-docs/
├── msd-frontend/        # React frontend
├── mds-backend/         # Elixir Phoenix backend
├── mds-parser/          # Haskell-based .mds parser
└── mds-docs/            # Project documentation
graph TD
    subgraph MDS-Converter
        A[mds-converter]
    end

    subgraph MDS-Backend
        B[mds-backend]
    end

    subgraph Database
        D[(PostgreSQL)]
    end

    subgraph MDS-Frontend
        C[mds-frontend]
    end

    %% Supervisor relationship between MDS-Converter and MDS-Backend
    A <-->|Supervisor| B

    %% Ecto relationship between MDS-Backend and PostgreSQL
    B <-->|Ecto| D

    %% WebSocket relationship between MDS-Backend and MDS-Frontend
    B<-. Preview Channel .->C
    B<-. File Channel .->C
Loading

Contributing 🤝

We're welcome to contributions! But only in the form of requested features in the form of 'issues' 👼
Feel free to request any feature you won't in the mds-backend, mds-frontend or mds-parser repos


Roadmap 🛤️

  • Basic Markdown editor with live preview.
  • Real-time collaboration with WebSocket support.
  • Custom .mds parser in Haskell.
  • File storage on backend
  • Rest API for downloading / loading files
  • Haskell Parser integration & separate sockets for preview & context
  • Unsplash API integration.
  • Export to PDF.
  • Mobile-friendly UI.

License 📜

This project is licensed under the Apache License 2.0.


Contributors


For questions or feedback, feel free to open an issue.

Popular repositories Loading

  1. mds-frontend mds-frontend Public

    Frontend of markdown docs, written purely in React and Typescript

    TypeScript 2

  2. mds-backend mds-backend Public

    Backend of markdown docs, powered by Elixir

    Elixir 2

  3. mds-converter mds-converter Public

    Converter for our own .mds format file, written in pure Haskell

    Haskell 1

  4. .github .github Public

Repositories

Showing 4 of 4 repositories
  • .github Public
    markdown-docs/.github’s past year of commit activity
    0 0 0 0 Updated Dec 14, 2024
  • mds-frontend Public

    Frontend of markdown docs, written purely in React and Typescript

    markdown-docs/mds-frontend’s past year of commit activity
    TypeScript 2 Apache-2.0 0 3 0 Updated Dec 14, 2024
  • mds-backend Public

    Backend of markdown docs, powered by Elixir

    markdown-docs/mds-backend’s past year of commit activity
    Elixir 2 Apache-2.0 0 2 0 Updated Dec 14, 2024
  • mds-converter Public

    Converter for our own .mds format file, written in pure Haskell

    markdown-docs/mds-converter’s past year of commit activity
    Haskell 1 Apache-2.0 0 0 0 Updated Dec 14, 2024

Top languages

Loading…

Most used topics

Loading…