From 2a6a90dbaf785fe561c0b4cee186709aca392a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Abdelkader=20Mart=C3=ADnez=20P=C3=A9rez?= Date: Mon, 27 Jan 2020 18:43:03 +0100 Subject: [PATCH] Document converter example --- .../DocumentConverter.pow | 32 +++++++++++ .../advanced/01_DocumentConverter/README.md | 14 +++++ .../advanced/01_DocumentConverter/index.html | 55 +++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100755 examples/advanced/01_DocumentConverter/DocumentConverter.pow create mode 100644 examples/advanced/01_DocumentConverter/README.md create mode 100644 examples/advanced/01_DocumentConverter/index.html diff --git a/examples/advanced/01_DocumentConverter/DocumentConverter.pow b/examples/advanced/01_DocumentConverter/DocumentConverter.pow new file mode 100755 index 0000000..ee0af81 --- /dev/null +++ b/examples/advanced/01_DocumentConverter/DocumentConverter.pow @@ -0,0 +1,32 @@ +kapow route add '/format/input' - <<-'EOF' + kapow set /response/headers/Content-Type application/json + pandoc --list-input-formats \ + | jq --raw-input --slurp 'split("\n") | .[0:-1]' \ + | kapow set /response/body +EOF + +kapow route add '/format/output' - <<-'EOF' + kapow set /response/headers/Content-Type application/json + pandoc --list-output-formats \ + | jq --raw-input --slurp 'split("\n") | .[0:-1]' \ + | kapow set /response/body +EOF + +kapow route add -X POST --entrypoint '/bin/zsh -c' '/convert' - <<-'EOF' + kapow set /response/headers/Content-Type application/octet-stream + kapow set /response/headers/Content-Disposition "attachment; filename=$(kapow get /request/files/inputfile/filename).$(kapow get /request/form/to)" + pandoc --from=$(kapow get /request/form/from) \ + --to=$(kapow get /request/form/to) \ + --output=>(kapow set /response/body) \ + =(kapow get /request/files/inputfile/content) +EOF + +kapow route add / - <<-'EOF' + kapow set /response/headers/Location /index.html + kapow set /response/status 301 +EOF + +kapow route add /index.html - <<-'EOF' + kapow set /response/headers/Content-Type text/html + kapow set /response/body < index.html +EOF diff --git a/examples/advanced/01_DocumentConverter/README.md b/examples/advanced/01_DocumentConverter/README.md new file mode 100644 index 0000000..0a31034 --- /dev/null +++ b/examples/advanced/01_DocumentConverter/README.md @@ -0,0 +1,14 @@ +# Document Converter (pandoc) as a Service + +A small web gui for [pandoc](https://pandoc.org) that allows to convert between text formats. + +## How to run it + +``` +$ kapow server DocumentConverter.pow +``` + + +## How to consume it + +Visit http://localhost:8080/ from your web browser. diff --git a/examples/advanced/01_DocumentConverter/index.html b/examples/advanced/01_DocumentConverter/index.html new file mode 100644 index 0000000..6ddfa92 --- /dev/null +++ b/examples/advanced/01_DocumentConverter/index.html @@ -0,0 +1,55 @@ + + + + + +
+ + + + +
+ +