convert CLI programs to web services
Project description
c2w
The c2w utility converts a CLI program to a Web service.
Installation
% pip install c2w
Getting Started
We convert kramdown to a web service to get an online Markdown renderer.
% c2w --mime text/html kramdown
c2w
is serving on 127.0.0.1:8000
now.
% curl http://localhost:8000 -X POST --data-binary @- << __EOF__
heredoc> # TITLE
heredoc>
heredoc> This is **strong**.
heredoc> __EOF__
We could get the following.
<h1 id="title">TITLE</h1>
<p>This is <strong>strong</strong>.</p>
c2w
handles both GET
and POST
requests and treats them as the same with the following rules.
-
The query string will be split by
&
, decoded and sent tokramdown
as arguments. -
The request body will be sent to the
stdin
ofkramdown
and thestdout
ofkramdown
will be sent to the browser.
kramdown
can translate Mardown to LaTex with the option -o latex
.
If we want to get the LaTex output, we could put -o&latex
in the query string.
% curl 'http://localhost:8000?-o&latex' --data-binary @- << __EOF__
heredoc> # TITLE
heredoc>
heredoc> This is **strong**.
heredoc> __EOF__
We got the following.
\section{TITLE}\hypertarget{title}{}\label{title}
This is \textbf{strong}.
Serving as a CGI program with an HTTP Server
The HTTP server provided by c2w
is not mature enough and not recommended to use in a production environment.
You may want to use Apache HTTPd or Nginx.
To achieve this you can run c2w
in CGI mode.
Create a simple Shell script named netmark
.
#!/bin/bash
c2w --cgi --mime text/html kramdown
Give it the execution permission and put it in the cgi-bin
directory of your HTTP server.
Detailed Usage
Run c2w --help
.
Why I Wrote It
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file c2w-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: c2w-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69e2203556b140fc02a1c0ab70af75b458b30c9f16e30c4c5c8f72ea560b2ede |
|
MD5 | 2079a8d9b8ea823216dbadf4bf7a7e12 |
|
BLAKE2b-256 | e36bc4b78fb26a36b87ec0205b535bcb56d5265a5bae3e227aa36974c676ff84 |