#markdown #websocket-server #socket-server #unix-socket #markdown-html #markdown-server #comrak

app ws-markdown-server

A simple Websocket (as well as a Unix socket) server that serves on-the-fly compilation of Markdown to HTML

3 stable releases

1.0.2 Jan 15, 2023

#239 in WebSocket

Custom license

27KB
167 lines

Markdown server

A simple Markdown Websocket (and Unix socket) server backed by comrak and tokio-tungstenite.

Installation and Usage

  1. Download the docker image.
docker pull aalekhpatel07/ws-markdown-server:1.0.2
  1. Start the container:

Note: The 9004 tcp port bind is optional and only required if you wish to expose a Unix socket server along with a WebSocket server (which runs on 9003).

docker run \
  -d \
  -p 9003:9003 \
  -p 9004:9004 \
  --name ws-markdown-server \
  aalekhpatel07/ws-markdown-server:1.0.0

Local

You can run a Markdown server on your local machine via ws-markdown-server:

  1. Install it with cargo:
cargo install ws-markdown-server@1.0.2
  1. Start the server:
RUST_LOG="ws_markdown_server=debug" \
    MD_SERVER_WS_PORT=9003 \
    MD_SERVER_TCP_PORT=9004 \
    MD_SERVER_HOST="0.0.0.0" \
    ws-markdown-server

Testing it works

  1. You can test it works by opening a tcp connection at 0.0.0.0:9004 and sending in some markdown text to be converted to html. For example:
# Start netcat once the markdown server is up and running.
nc 0.0.0.0 9004
  
# Send some markdown text to be converted to html.

> # Title
> This is some text.
> ...
> [Ctrl+D] (indicates end of file)
  
# You'll receive the html version of the sent markdown:

# <h1> Title </h1>
# <p>This is some text.</p>
# ...
  1. Alternatively, you can also run the sample Svelte app that sets up the client-side Websocket and uses the ws-markdown-server for its backend.
cd usage/client
npm install
npm run dev -- --port 8000 --host 0.0.0.0 --open

Dependencies

~14–26MB
~404K SLoC