aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md6
-rwxr-xr-xwebsvgtex47
2 files changed, 50 insertions, 3 deletions
diff --git a/README.md b/README.md
index b6f0fb0..2b8db2e 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,6 @@
## How it works
1. Wrap the input in a standard template that uses the "standalone" document class with the "preview" option and includes some math-related packages
-2. Calls `latex x.dvi` to produce a DVI file
-3. Calls `dvips x.ps` to produce a PS file
-4. Calls `inkscape x.ps --export-plain-svg --export-filename=x.svg` to produce an SVG file
+2. Calls `latex m.dvi` to produce a DVI file
+3. Calls `dvips m.ps` to produce a PS file
+4. Calls `inkscape m.ps --export-plain-svg --export-filename=m.svg` to produce an SVG file
diff --git a/websvgtex b/websvgtex
new file mode 100755
index 0000000..6bd12b2
--- /dev/null
+++ b/websvgtex
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+err() {
+ { set +x; } 2>/dev/null
+ echo "$@" >&2
+ exit 1
+}
+
+ensure_noset() {
+ [ $# -lt 1 ] && return 0
+ $@ || err failed executing: "$@"
+}
+
+ensure() {
+ { set +x; } 2>/dev/null
+ [ $# -lt 1 ] && return 0
+ $@ || err failed executing: "$@"
+ { set -x; } 2>/dev/null
+}
+
+rxrand="$(base64 < /dev/random | tr -d '/+=' | head -c 10)"
+
+opwd="$(pwd)"
+
+ensure_noset mkdir /tmp/websvgtex-$rxrand
+ensure_noset cd /tmp/websvgtex-$rxrand
+
+cat >m.tex <<EOF
+\documentclass[preview]{standalone}
+\usepackage{amsmath}
+\begin{document}
+EOF
+
+cat /dev/stdin >>m.tex
+
+cat >>m.tex <<EOF
+\end{document}
+EOF
+
+{ set -x; } 2>/dev/null
+
+ensure latex m.tex
+ensure latex m.tex
+ensure dvips m.dvi
+ensure inkscape m.ps --export-plain-svg --export-filename=m.svg
+
+ensure mv m.svg "$opwd"