Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - FilterKaapi/pandex: Lightweight Elixir wrapper for Pandoc. Convert Markdown, CommonMark, HTML, Latex... to HTML, HTML5, opendocument, rtf, texttile, asciidoc, markdown, json and others
Lightweight Elixir wrapper for Pandoc. Convert Markdown, CommonMark, HTML, Latex... to HTML, HTML5, opendocument, rtf, texttile, asciidoc, markdown, json and others - FilterKaapi/pandex
Visit SiteGitHub - FilterKaapi/pandex: Lightweight Elixir wrapper for Pandoc. Convert Markdown, CommonMark, HTML, Latex... to HTML, HTML5, opendocument, rtf, texttile, asciidoc, markdown, json and others
Lightweight Elixir wrapper for Pandoc. Convert Markdown, CommonMark, HTML, Latex... to HTML, HTML5, opendocument, rtf, texttile, asciidoc, markdown, json and others - FilterKaapi/pandex
Powered by 0x5a.live ๐
Pandex
Pandex is a lightweight Elixir wrapper for Pandoc. It has no dependencies other than Pandoc itself. Pandex unit tests are currently run again Pandoc version 2.5.
Pandex enables you to perform any combination of the conversions below:
Convert From (any) | Convert To (any) |
---|---|
commonmark | asciidoc |
gfm | beamer |
html | commonmark |
json | context |
latex | docbook |
markdown | dzslides |
markdown_github * | gfm |
markdown_mmd | html |
markdown_phpextra | html5 |
markdown_strict | json |
rst | latex |
textile | man |
markdown | |
markdown_github * | |
markdown_mmd | |
markdown_phpextra | |
markdown_strict | |
mediawiki | |
opendocument | |
org | |
plain | |
rst | |
rtf | |
s5 | |
slidy | |
texinfo | |
textile |
*
Deprecated: markdown_github
. Use gfm
instead.
Installation
-
Pandex requires Pandoc to work. Install Pandoc for your operating system.
-
Add Pandex to
mix.exs
as follows:
defmodule YourApp.Mixfile do
defp deps do
[
{:pandex, "~> 0.2.0"}
]
end
end
- Run
mix deps.get
to installPandex
.
Usage
Pandex follows the syntax of <format-from>_to_<format-to>(<string>)
.
Examples
iex> Pandex.gfm_to_html("# Title \n\n## List\n\n- one\n- two\n- three\n")
{:ok, "<h1 id=\"title\">Title</h1>\n<h2 id=\"list\">List</h2>\n<ul>\n<li>one</li>\n<li>two</li>\n<li>three</li>\n</ul>\n"}
iex> Pandex.latex_to_html5("\\section{Title}\n\n\\subsection{List}\n\n\\begin{itemize}\n\\tightlist\n\\item\n one\n\\item\n two\n\\item\n three\n\\end{itemize}\n")
{:ok, "<h1 id=\"title\">Title</h1>\n<h2 id=\"list\">List</h2>\n<ul>\n<li><p>one</p></li>\n<li><p>two</p></li>\n<li><p>three</p></li>\n</ul>\n"}
iex> Pandex.latex_to_json("\\section{Title}\\label{title}\n\n\\subsection{List}\\label{list}\n\n\\begin{itemize}\n\\item\n one\n\\item\n two\n\\item\n three\n\\end{itemize}\n")
{:ok, "{\"blocks\":[{\"t\":\"Header\",\"c\":[1,[\"title\",[],[]],[{\"t\":\"Str\",\"c\":\"Title\"}]]},{\"t\":\"Header\",\"c\":[2,[\"list\",[],[]],[{\"t\":\"Str\",\"c\":\"List\"}]]},{\"t\":\"BulletList\",\"c\":[[{\"t\":\"Para\",\"c\":[{\"t\":\"Str\",\"c\":\"one\"}]}],[{\"t\":\"Para\",\"c\":[{\"t\":\"Str\",\"c\":\"two\"}]}],[{\"t\":\"Para\",\"c\":[{\"t\":\"Str\",\"c\":\"three\"}]}]]}],\"pandoc-api-version\":[1,17,5,4],\"meta\":{}}\n"}
Using with your app
defmodule YourApp do
import Pandex
def convert(string) do
{:ok, output} = markdown_to_html(string)
IO.puts(output)
end
end
You can also give a file as an input. The output will however be a string.
defmodule YourApp do
import Pandex
def convert(file) do
{:ok, output} = markdown_file_to_html(file)
IO.puts(output)
end
end
License
Elixir Resources
are all listed below.
Made with โค๏ธ
to provide different kinds of informations and resources.