aboutsummaryrefslogtreecommitdiff
path: root/trypandoc
diff options
context:
space:
mode:
Diffstat (limited to 'trypandoc')
-rw-r--r--trypandoc/Makefile14
-rw-r--r--trypandoc/index.html143
-rw-r--r--trypandoc/trypandoc.hs101
3 files changed, 0 insertions, 258 deletions
diff --git a/trypandoc/Makefile b/trypandoc/Makefile
deleted file mode 100644
index c486aea3b..000000000
--- a/trypandoc/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-CGIBIN=/home/website/cgi-bin
-TRYPANDOC=/home/website/html/pandoc/try/
-CGI=${CGIBIN}/trypandoc
-BIN=/home/jgm/.local/bin/trypandoc
-
-install: ${CGI} ${TRYPANDOC}/index.html
-
-${TRYPANDOC}/%: %
- cp $< $@ && chown website:www-data $@ && chmod a+r $@
-
-${CGI}: ${BIN}
- cp $< $@ && chown website:www-data $@ && chmod a+rx $@
-
-.PHONY: install
diff --git a/trypandoc/index.html b/trypandoc/index.html
deleted file mode 100644
index d9674793b..000000000
--- a/trypandoc/index.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <title>Try pandoc!</title>
- <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
- <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
- <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
- <script type="text/javascript">
-(function($) { // http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values
- $.QueryString = (function(a) {
- if (a == "") return {};
- var b = {};
- for (var i = 0; i < a.length; ++i)
- {
- var p=a[i].split('=');
- if (p.length != 2) continue;
- b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
- }
- return b;
- })(window.location.search.substr(1).split('&'))
-})(jQuery);
-
-function newpage() {
- var input = $("#text").val();
- var from = $("#from").val();
- var to = $("#to").val();
- var href = window.location.href;
- window.location.href = href.replace(/([?].*)?$/,"?" + $.param({text: input, from: from, to: to}));
-};
-
-$(document).ready(function() {
- var text = $.QueryString["text"];
- $("#text").val(text);
- var from = $.QueryString["from"] || "markdown";
- $("#from").val(from);
- var to = $.QueryString["to"] || "html";
- $("#to").val(to);
- if (text && text != "") {
- $.getJSON("/cgi-bin/trypandoc", { from: from, to: to, text: text },
- function(res) {
- $("#results").text(res.html);
- $("#version").text(res.version);
- $("#command").text("pandoc --from " + from + " --to " + to);
- });
- };
- $("#convert").click(newpage);
-});
- </script>
- <style type="text/css">
- h1 { margin-bottom: 1em; }
- body { margin: auto; }
- textarea { height: auto; width: 100%; font-family: monospace; margin-top: 15px; }
- div.alert { margin: 1em; }
- h3 { margin-top: 0; margin-bottom: 0; padding: 0; font-size: 100%; }
- pre#results { width: 100%; margin-top: 15px; }
- footer { color: #555; text-align: center; margin: 1em; }
- p.version { color: #555; }
- button#convert { vertical-align: bottom; }
- pre#command { margin-top: 1em; background-color: transparent; border: none; }
- </style>
-</head>
-<body>
-<div class="container">
- <div class="row">
- <div class="col-md-6">
- <h1>Try <a href="http://pandoc.org">pandoc</a>!</h1>
- </div>
- <div class="col-md-6">
- <pre id="command"></pre>
- </div>
- </div>
- <div class="row">
- <div class="col-md-6">
- <button class="btn btn-primary btn-xs" id="convert">Convert</button>
- &nbsp;
- <label for="from">
- from
- </label>
- <select id="from">
- <option value="docbook">DocBook</option>
- <option value="haddock">Haddock markup</option>
- <option value="html">HTML</option>
- <option value="latex">LaTeX</option>
- <option value="markdown" selected>Markdown (pandoc)</option>
- <option value="markdown_strict">Markdown (strict)</option>
- <option value="markdown_phpextra">Markdown (PHP Markdown Extra)</option>
- <option value="markdown_github">Markdown (GitHub)</option>
- <option value="mediawiki">MediaWiki</option>
- <option value="markdown_mmd">MultiMarkdown</option>
- <option value="opml">OPML</option>
- <option value="org">Org Mode</option>
- <option value="rst">reStructuredText</option>
- <option value="textile">Textile</option>
- <option value="t2t">Txt2Tags</option>
- </select>
- <br/>
- <textarea id="text" maxlength="3000" rows="15"></textarea>
- </div>
- <div class="col-md-6">
- <label for="to">
- to
- </label>
- <select id="to">
- <option value="asciidoc">AsciiDoc</option>
- <option value="context">ConTeXt</option>
- <option value="docbook">DocBook</option>
- <option value="dokuwiki">DokuWiki</option>
- <option value="dzslides">DZSlides</option>
- <option value="man">Groff man</option>
- <option value="html" selected>HTML</option>
- <option value="html5">HTML 5</option>
- <option value="icml">ICML</option>
- <option value="latex">LaTeX</option>
- <option value="beamer">LaTeX Beamer</option>
- <option value="markdown">Markdown (pandoc)</option>
- <option value="markdown_strict">Markdown (strict)</option>
- <option value="markdown_phpextra">Markdown (PHP Markdown Extra)</option>
- <option value="markdown_github">Markdown (GitHub)</option>
- <option value="markdown_mmd">MultiMarkdown</option>
- <option value="rst">reStructuredText</option>
- <option value="textile">Textile</option>
- <option value="mediawiki">MediaWiki</option>
- <option value="org">Org Mode</option>
- <option value="opendocument">OpenDocument</option>
- <option value="opml">OPML</option>
- <option value="rtf">RTF</option>
- <option value="S5">S5</option>
- <option value="slideous">Slideous</option>
- <option value="slidy">Slidy</option>
- <option value="texinfo">Texinfo</option>
- </select>
- <br/>
- <pre id="results"></pre>
- </div>
- </div>
-</div>
-<footer>
- <p class="version">pandoc <span id="version"></span></p>
- <p>&copy; 2013&ndash;2015 <a href="http://johnmacfarlane.net">John MacFarlane</a></p>
-</footer>
-</body>
-</html>
diff --git a/trypandoc/trypandoc.hs b/trypandoc/trypandoc.hs
deleted file mode 100644
index 2fcfe35e7..000000000
--- a/trypandoc/trypandoc.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Main where
-import Network.Wai.Handler.CGI
-import Network.Wai
-import Control.Applicative ((<$>))
-import Data.Maybe (mapMaybe, fromMaybe)
-import Network.HTTP.Types.Status (status200)
-import Network.HTTP.Types.Header (hContentType)
-import Network.HTTP.Types.URI (queryToQueryText)
-import Text.Pandoc
-import Text.Pandoc.Error (PandocError)
-import Text.Pandoc.Shared (tabFilter)
-import Data.Aeson
-import qualified Data.Text as T
-import Data.Text (Text)
-
-main :: IO ()
-main = run app
-
-app :: Application
-app req respond = do
- let query = queryToQueryText $ queryString req
- let getParam x = maybe (error $ T.unpack x ++ " paramater not set")
- return $ lookup x query
- text <- getParam "text" >>= checkLength . fromMaybe T.empty
- fromFormat <- fromMaybe "" <$> getParam "from"
- toFormat <- fromMaybe "" <$> getParam "to"
- reader <- maybe (error $ "could not find reader for " ++ T.unpack fromFormat) return
- $ lookup fromFormat fromFormats
- let writer = maybe (error $ "could not find writer for " ++ T.unpack toFormat) id
- $ lookup toFormat toFormats
- let result = case reader $ tabFilter 4 $ T.unpack text of
- Right doc -> T.pack $ writer doc
- Left err -> error (show err)
- let output = encode $ object [ T.pack "html" .= result
- , T.pack "name" .=
- if fromFormat == "markdown_strict"
- then T.pack "pandoc (strict)"
- else T.pack "pandoc"
- , T.pack "version" .= pandocVersion]
- respond $ responseLBS status200 [(hContentType,"text/json; charset=UTF-8")] output
-
-checkLength :: Text -> IO Text
-checkLength t =
- if T.length t > 10000
- then error "exceeds length limit of 10,000 characters"
- else return t
-
-writerOpts :: WriterOptions
-writerOpts = def { writerReferenceLinks = True,
- writerEmailObfuscation = NoObfuscation,
- writerHTMLMathMethod = MathJax "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",
- writerHighlight = True }
-
-readerOpts :: ReaderOptions
-readerOpts = def { readerParseRaw = True,
- readerSmart = True }
-
-fromFormats :: [(Text, String -> Either PandocError Pandoc)]
-fromFormats = [
- ("native" , readNative)
- ,("json" , Text.Pandoc.readJSON readerOpts)
- ,("markdown" , readMarkdown readerOpts)
- ,("markdown_strict" , readMarkdown readerOpts{
- readerExtensions = strictExtensions,
- readerSmart = False })
- ,("markdown_phpextra" , readMarkdown readerOpts{
- readerExtensions = phpMarkdownExtraExtensions })
- ,("markdown_github" , readMarkdown readerOpts{
- readerExtensions = githubMarkdownExtensions })
- ,("markdown_mmd", readMarkdown readerOpts{
- readerExtensions = multimarkdownExtensions })
- ,("rst" , readRST readerOpts)
- ,("mediawiki" , readMediaWiki readerOpts)
- ,("docbook" , readDocBook readerOpts)
- ,("opml" , readOPML readerOpts)
- ,("t2t" , readTxt2TagsNoMacros readerOpts)
- ,("org" , readOrg readerOpts)
- ,("textile" , readTextile readerOpts) -- TODO : textile+lhs
- ,("html" , readHtml readerOpts)
- ,("latex" , readLaTeX readerOpts)
- ,("haddock" , readHaddock readerOpts)
- ]
-
-toFormats :: [(Text, Pandoc -> String)]
-toFormats = mapMaybe (\(x,y) ->
- case y of
- PureStringWriter w -> Just (T.pack x, w writerOpts{
- writerExtensions =
- case x of
- "markdown_strict" -> strictExtensions
- "markdown_phpextra" -> phpMarkdownExtraExtensions
- "markdown_mmd" -> multimarkdownExtensions
- "markdown_github" -> githubMarkdownExtensions
- _ -> pandocExtensions
- })
- _ ->
- case x of
- "rtf" -> Just (T.pack x, writeRTF writerOpts)
- _ -> Nothing) writers
-