pandoc-slide-filter/doc/src/Text.Pandoc.Util.Filter.Media.html
Stefan Dresselhaus 8376d6298b
Created library instead of binaries. Added doc.
- Split things into Library and Binary
  - Library has all functionality
  - Binarys are just wrapper like "main = toJsonFilter foo"
- Documented most things
- Created haddock-documentation
- added documentation to repository
2017-09-02 16:44:20 +02:00

159 lines
71 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables #-}</span><span>
</span><a name="line-2"></a><span>
</span><a name="line-3"></a><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Text</span><span class="hs-operator">.</span><span class="hs-identifier">Pandoc</span><span class="hs-operator">.</span><span class="hs-identifier">Util</span><span class="hs-operator">.</span><span class="hs-identifier">Filter</span><span class="hs-operator">.</span><span class="hs-identifier">Media</span><span>
</span><a name="line-4"></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#media"><span class="hs-identifier hs-var">media</span></a><span class="hs-special">)</span><span>
</span><a name="line-5"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-6"></a><span>
</span><a name="line-7"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Text</span><span class="hs-operator">.</span><span class="hs-identifier">Pandoc</span><span class="hs-operator">.</span><span class="hs-identifier">JSON</span><span>
</span><a name="line-8"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Control</span><span class="hs-operator">.</span><span class="hs-identifier">Exception</span><span>
</span><a name="line-9"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">Monoid</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-operator hs-var">&lt;&gt;</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-10"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data</span><span class="hs-operator">.</span><span class="hs-identifier">Char</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">toLower</span><span class="hs-special">)</span><span>
</span><a name="line-11"></a><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">System</span><span class="hs-operator">.</span><span class="hs-identifier">FilePath</span><span>
</span><a name="line-12"></a><span>
</span><a name="line-13"></a><span class="hs-keyword">import</span><span> </span><a href="Text.Pandoc.Util.Filter.html"><span class="hs-identifier">Text</span><span class="hs-operator">.</span><span class="hs-identifier">Pandoc</span><span class="hs-operator">.</span><span class="hs-identifier">Util</span><span class="hs-operator">.</span><span class="hs-identifier">Filter</span></a><span>
</span><a name="line-14"></a><span>
</span><a name="line-15"></a><span class="hs-pragma">{-# ANN module &quot;HLint: ignore Redundant $&quot; #-}</span><span> </span><span class="hs-comment">-- supress HLint-Warnings about $</span><span>
</span><a name="line-16"></a><span>
</span><a name="line-17"></a><span class="hs-comment">-- | File-extensions that should be treated as audio</span><span>
</span><a name="line-18"></a><span class="hs-identifier">audioExt</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-identifier hs-type">String</span><span class="hs-special">]</span><span>
</span><a name="line-19"></a><a name="audioExt"><a href="Text.Pandoc.Util.Filter.Media.html#audioExt"><span class="hs-identifier">audioExt</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-string">&quot;mp3&quot;</span><span class="hs-special">,</span><span class="hs-string">&quot;aac&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-20"></a><span>
</span><a name="line-21"></a><span class="hs-comment">-- | File-extensions that should be treated as video</span><span>
</span><a name="line-22"></a><span class="hs-identifier">videoExt</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-identifier hs-type">String</span><span class="hs-special">]</span><span>
</span><a name="line-23"></a><a name="videoExt"><a href="Text.Pandoc.Util.Filter.Media.html#videoExt"><span class="hs-identifier">videoExt</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-string">&quot;avi&quot;</span><span>
</span><a name="line-24"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;mp4&quot;</span><span>
</span><a name="line-25"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;mov&quot;</span><span>
</span><a name="line-26"></a><span> </span><span class="hs-special">]</span><span>
</span><a name="line-27"></a><span>
</span><a name="line-28"></a><span class="hs-comment">-- | File-extensions that should be treated as image</span><span>
</span><a name="line-29"></a><span class="hs-identifier">imgExt</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-identifier hs-type">String</span><span class="hs-special">]</span><span>
</span><a name="line-30"></a><a name="imgExt"><a href="Text.Pandoc.Util.Filter.Media.html#imgExt"><span class="hs-identifier">imgExt</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span>
</span><a name="line-31"></a><span> </span><span class="hs-special">[</span><span> </span><span class="hs-string">&quot;jpg&quot;</span><span>
</span><a name="line-32"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;jpeg&quot;</span><span>
</span><a name="line-33"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;png&quot;</span><span>
</span><a name="line-34"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;gif&quot;</span><span>
</span><a name="line-35"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;tif&quot;</span><span>
</span><a name="line-36"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;tiff&quot;</span><span>
</span><a name="line-37"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;bmp&quot;</span><span>
</span><a name="line-38"></a><span> </span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;svg&quot;</span><span>
</span><a name="line-39"></a><span> </span><span class="hs-special">]</span><span>
</span><a name="line-40"></a><span>
</span><a name="line-41"></a><span class="hs-comment">-- | File-extensions that should be treated as demo and will be included</span><span>
</span><a name="line-42"></a><span class="hs-comment">-- in an iframe</span><span>
</span><a name="line-43"></a><span class="hs-identifier">demoExt</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-identifier hs-type">String</span><span class="hs-special">]</span><span>
</span><a name="line-44"></a><a name="demoExt"><a href="Text.Pandoc.Util.Filter.Media.html#demoExt"><span class="hs-identifier">demoExt</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-string">&quot;html&quot;</span><span class="hs-special">,</span><span> </span><span class="hs-string">&quot;htm&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-45"></a><span>
</span><a name="line-46"></a><span class="hs-comment">-- | main media-plugin.</span><span>
</span><a name="line-47"></a><span class="hs-comment">--</span><span>
</span><a name="line-48"></a><span class="hs-comment">-- Will convert the following syntax</span><span>
</span><a name="line-49"></a><span class="hs-comment">--</span><span>
</span><a name="line-50"></a><span class="hs-comment">-- @</span><span>
</span><a name="line-51"></a><span class="hs-comment">-- ![](foo.aac){#audio}</span><span>
</span><a name="line-52"></a><span class="hs-comment">-- ![](foo.mp4){#video}</span><span>
</span><a name="line-53"></a><span class="hs-comment">-- ![](foo.png){#img}</span><span>
</span><a name="line-54"></a><span class="hs-comment">-- ![](foo.svg){#svg}</span><span>
</span><a name="line-55"></a><span class="hs-comment">-- ![](foo.html){#demo}</span><span>
</span><a name="line-56"></a><span class="hs-comment">-- @</span><span>
</span><a name="line-57"></a><span class="hs-comment">--</span><span>
</span><a name="line-58"></a><span class="hs-comment">-- HTML-id's maybe ommitted if the file-extension is in whitelist.</span><span>
</span><a name="line-59"></a><span class="hs-comment">--</span><span>
</span><a name="line-60"></a><span class="hs-comment">-- If a type is detected by extension a custom id (not matching the extension)</span><span>
</span><a name="line-61"></a><span class="hs-comment">-- will be preserved.</span><span>
</span><a name="line-62"></a><span class="hs-comment">--</span><span>
</span><a name="line-63"></a><span class="hs-identifier">media</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">Inline</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">IO</span><span> </span><span class="hs-special">[</span><span class="hs-identifier hs-type">Inline</span><span class="hs-special">]</span><span>
</span><a name="line-64"></a><span class="hs-comment">--audio</span><span>
</span><a name="line-65"></a><a name="media"><a href="Text.Pandoc.Util.Filter.Media.html#media"><span class="hs-identifier">media</span></a></a><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079177"><a href="#local-6989586621679079177"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><a name="local-6989586621679079178"><a href="#local-6989586621679079178"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><a name="local-6989586621679079179"><a href="#local-6989586621679079179"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079180"><a href="#local-6989586621679079180"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-66"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079177"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;audio&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079180"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#audioExt"><span class="hs-identifier hs-var">audioExt</span></a><span>
</span><a name="line-67"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;audio &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079181"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079180"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;audio&quot;</span><span> </span><a href="#local-6989586621679079177"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><a href="#local-6989586621679079182"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><a href="#local-6989586621679079179"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/audio&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-68"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-69"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079181"><a href="#local-6989586621679079181"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079182"><a href="#local-6989586621679079182"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079178"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-70"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079183"><a href="#local-6989586621679079183"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><a name="local-6989586621679079184"><a href="#local-6989586621679079184"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><a name="local-6989586621679079185"><a href="#local-6989586621679079185"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><a name="local-6989586621679079186"><a href="#local-6989586621679079186"><span class="hs-identifier">alt</span></a></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079187"><a href="#local-6989586621679079187"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-71"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079183"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;audio&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079187"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#audioExt"><span class="hs-identifier hs-var">audioExt</span></a><span>
</span><a name="line-72"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure&gt;&lt;audio &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079188"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079187"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;audio&quot;</span><span> </span><a href="#local-6989586621679079183"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><a href="#local-6989586621679079189"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><a href="#local-6989586621679079185"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/audio&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-73"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figcaption&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-74"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079186"><span class="hs-identifier hs-var">alt</span></a><span>
</span><a name="line-75"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figcaption&gt;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-76"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-77"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079188"><a href="#local-6989586621679079188"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079189"><a href="#local-6989586621679079189"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079184"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-78"></a><span class="hs-comment">--videos</span><span>
</span><a name="line-79"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079190"><a href="#local-6989586621679079190"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079191"><a href="#local-6989586621679079191"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079192"><a href="#local-6989586621679079192"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079193"><a href="#local-6989586621679079193"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-80"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079190"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;video&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079193"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#videoExt"><span class="hs-identifier hs-var">videoExt</span></a><span>
</span><a name="line-81"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;video &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079194"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079193"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;video&quot;</span><span> </span><a href="#local-6989586621679079190"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><a href="#local-6989586621679079195"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><a href="#local-6989586621679079192"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/video&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-82"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-83"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079194"><a href="#local-6989586621679079194"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079195"><a href="#local-6989586621679079195"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079191"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-84"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079196"><a href="#local-6989586621679079196"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079197"><a href="#local-6989586621679079197"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079198"><a href="#local-6989586621679079198"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><a name="local-6989586621679079199"><a href="#local-6989586621679079199"><span class="hs-identifier">alt</span></a></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079200"><a href="#local-6989586621679079200"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-85"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079196"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;video&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079200"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#videoExt"><span class="hs-identifier hs-var">videoExt</span></a><span>
</span><a name="line-86"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-87"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;video &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079201"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079200"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;video&quot;</span><span> </span><a href="#local-6989586621679079196"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><a href="#local-6989586621679079202"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><a href="#local-6989586621679079198"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/video&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-88"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figcaption&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-89"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079199"><span class="hs-identifier hs-var">alt</span></a><span>
</span><a name="line-90"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figcaption&gt;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-91"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-92"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079201"><a href="#local-6989586621679079201"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079202"><a href="#local-6989586621679079202"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079197"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-93"></a><span class="hs-comment">--images</span><span>
</span><a name="line-94"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079203"><a href="#local-6989586621679079203"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079204"><a href="#local-6989586621679079204"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079205"><a href="#local-6989586621679079205"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079206"><a href="#local-6989586621679079206"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-95"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079203"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;img&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079206"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#imgExt"><span class="hs-identifier hs-var">imgExt</span></a><span>
</span><a name="line-96"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-97"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;img &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079207"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079206"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;img&quot;</span><span> </span><a href="#local-6989586621679079203"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><a href="#local-6989586621679079208"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><a href="#local-6989586621679079205"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/img&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-98"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-99"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-100"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079207"><a href="#local-6989586621679079207"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079208"><a href="#local-6989586621679079208"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079204"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-101"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079209"><a href="#local-6989586621679079209"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079210"><a href="#local-6989586621679079210"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079211"><a href="#local-6989586621679079211"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><a name="local-6989586621679079212"><a href="#local-6989586621679079212"><span class="hs-identifier">alt</span></a></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079213"><a href="#local-6989586621679079213"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-102"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079209"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;img&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079213"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#imgExt"><span class="hs-identifier hs-var">imgExt</span></a><span>
</span><a name="line-103"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-104"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;img &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079214"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079213"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;img&quot;</span><span> </span><a href="#local-6989586621679079209"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><a href="#local-6989586621679079215"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><a href="#local-6989586621679079211"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/img&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-105"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figcaption&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-106"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079212"><span class="hs-identifier hs-var">alt</span></a><span>
</span><a name="line-107"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figcaption&gt;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-108"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-109"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079214"><a href="#local-6989586621679079214"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079215"><a href="#local-6989586621679079215"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079210"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-110"></a><span class="hs-comment">--load svg and dump it in</span><span>
</span><a name="line-111"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079216"><a href="#local-6989586621679079216"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079217"><a href="#local-6989586621679079217"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079218"><a href="#local-6989586621679079218"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079219"><a href="#local-6989586621679079219"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-112"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079216"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;svg&quot;</span><span>
</span><a name="line-113"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">handle</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><a name="local-6989586621679079549"><a href="#local-6989586621679079549"><span class="hs-identifier">fileerror</span></a></a><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">IOException</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;Could not read file: &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079219"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&lt;br /&gt;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">show</span><span> </span><a href="#local-6989586621679079549"><span class="hs-identifier hs-var">fileerror</span></a><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">$</span><span>
</span><a name="line-114"></a><span> </span><span class="hs-keyword">do</span><span>
</span><a name="line-115"></a><span> </span><a name="local-6989586621679079690"><a href="#local-6989586621679079690"><span class="hs-identifier">svg</span></a></a><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier hs-var">readFile</span><span> </span><a href="#local-6989586621679079219"><span class="hs-identifier hs-var">filename</span></a><span>
</span><a name="line-116"></a><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079220"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;svg&quot;</span><span> </span><a href="#local-6989586621679079216"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079221"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079218"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&quot;</span><span class="hs-special">]</span><span> </span><span class="hs-comment">-- use attributes on figure, as svg gets dumped in..</span><span>
</span><a name="line-117"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><a href="#local-6989586621679079690"><span class="hs-identifier hs-var">svg</span></a><span class="hs-special">]</span><span>
</span><a name="line-118"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-119"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-120"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079220"><a href="#local-6989586621679079220"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079221"><a href="#local-6989586621679079221"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079217"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-121"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079691"><a href="#local-6989586621679079691"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079692"><a href="#local-6989586621679079692"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079693"><a href="#local-6989586621679079693"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><a name="local-6989586621679079694"><a href="#local-6989586621679079694"><span class="hs-identifier">alt</span></a></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079695"><a href="#local-6989586621679079695"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-122"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079691"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;svg&quot;</span><span>
</span><a name="line-123"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">handle</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><a name="local-6989586621679079698"><a href="#local-6989586621679079698"><span class="hs-identifier">fileerror</span></a></a><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">IOException</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;Could not read file: &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079695"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&lt;br /&gt;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">show</span><span> </span><a href="#local-6989586621679079698"><span class="hs-identifier hs-var">fileerror</span></a><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">$</span><span>
</span><a name="line-124"></a><span> </span><span class="hs-keyword">do</span><span>
</span><a name="line-125"></a><span> </span><a name="local-6989586621679079699"><a href="#local-6989586621679079699"><span class="hs-identifier">svg</span></a></a><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier hs-var">readFile</span><span> </span><a href="#local-6989586621679079695"><span class="hs-identifier hs-var">filename</span></a><span>
</span><a name="line-126"></a><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079696"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;svg&quot;</span><span> </span><a href="#local-6989586621679079691"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079697"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079693"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&quot;</span><span class="hs-special">]</span><span> </span><span class="hs-comment">-- use attributes on figure, as svg gets dumped in..</span><span>
</span><a name="line-127"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><a href="#local-6989586621679079699"><span class="hs-identifier hs-var">svg</span></a><span class="hs-special">]</span><span>
</span><a name="line-128"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figcaption&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-129"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079694"><span class="hs-identifier hs-var">alt</span></a><span>
</span><a name="line-130"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figcaption&gt;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-131"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-132"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079696"><a href="#local-6989586621679079696"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079697"><a href="#local-6989586621679079697"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079692"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-133"></a><span class="hs-comment">--html-demos etc. as IFrames</span><span>
</span><a name="line-134"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079700"><a href="#local-6989586621679079700"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079701"><a href="#local-6989586621679079701"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079702"><a href="#local-6989586621679079702"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079703"><a href="#local-6989586621679079703"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-135"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079700"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;demo&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079703"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#demoExt"><span class="hs-identifier hs-var">demoExt</span></a><span>
</span><a name="line-136"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;iframe &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079704"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079703"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;?plugin\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;demo&quot;</span><span> </span><a href="#local-6989586621679079700"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079705"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079702"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/iframe&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-137"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-138"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079704"><a href="#local-6989586621679079704"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079705"><a href="#local-6989586621679079705"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079701"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-139"></a><span class="hs-identifier">media</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">Image</span><span> </span><span class="hs-special">(</span><a name="local-6989586621679079706"><a href="#local-6989586621679079706"><span class="hs-identifier">id'</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079707"><a href="#local-6989586621679079707"><span class="hs-identifier">att</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079708"><a href="#local-6989586621679079708"><span class="hs-identifier">att'</span></a></a><span class="hs-special">)</span><span> </span><a name="local-6989586621679079709"><a href="#local-6989586621679079709"><span class="hs-identifier">alt</span></a></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079710"><a href="#local-6989586621679079710"><span class="hs-identifier">filename</span></a></a><span class="hs-special">,</span><span class="hs-identifier">_</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><a name="line-140"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679079706"><span class="hs-identifier hs-var">id'</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><span class="hs-string">&quot;demo&quot;</span><span> </span><span class="hs-operator hs-var">||</span><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier hs-var">checkExtension</span></a><span> </span><a href="#local-6989586621679079710"><span class="hs-identifier hs-var">filename</span></a><span> </span><a href="Text.Pandoc.Util.Filter.Media.html#demoExt"><span class="hs-identifier hs-var">demoExt</span></a><span>
</span><a name="line-141"></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-142"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;iframe &quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-identifier hs-var">unwords</span><span> </span><a href="#local-6989586621679079711"><span class="hs-identifier hs-var">direct</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot; src=\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079710"><span class="hs-identifier hs-var">filename</span></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;?plugin\&quot;&quot;</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="Text.Pandoc.Util.Filter.html#attToString"><span class="hs-identifier hs-var">attToString</span></a><span> </span><span class="hs-special">(</span><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier hs-var">idFilter</span></a><span> </span><span class="hs-string">&quot;demo&quot;</span><span> </span><a href="#local-6989586621679079706"><span class="hs-identifier hs-var">id'</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079712"><span class="hs-identifier hs-var">css</span></a><span class="hs-special">,</span><span> </span><a href="#local-6989586621679079708"><span class="hs-identifier hs-var">att'</span></a><span class="hs-special">)</span><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-string">&quot;&gt;&lt;/iframe&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-143"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;figcaption&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-144"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><a href="#local-6989586621679079709"><span class="hs-identifier hs-var">alt</span></a><span>
</span><a name="line-145"></a><span> </span><span class="hs-operator hs-var">&lt;&gt;</span><span> </span><span class="hs-special">[</span><a href="Text.Pandoc.Util.Filter.html#toHtml"><span class="hs-identifier hs-var">toHtml</span></a><span> </span><span class="hs-operator hs-var">$</span><span> </span><span class="hs-string">&quot;&lt;/figcaption&gt;&lt;/figure&gt;&quot;</span><span class="hs-special">]</span><span>
</span><a name="line-146"></a><span> </span><span class="hs-keyword">where</span><span>
</span><a name="line-147"></a><span> </span><span class="hs-special">(</span><a name="local-6989586621679079711"><a href="#local-6989586621679079711"><span class="hs-identifier">direct</span></a></a><span class="hs-special">,</span><span> </span><a name="local-6989586621679079712"><a href="#local-6989586621679079712"><span class="hs-identifier">css</span></a></a><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="Text.Pandoc.Util.Filter.html#classToRevealAttr"><span class="hs-identifier hs-var">classToRevealAttr</span></a><span> </span><a href="#local-6989586621679079707"><span class="hs-identifier hs-var">att</span></a><span>
</span><a name="line-148"></a><span class="hs-comment">-- if not matched</span><span>
</span><a name="line-149"></a><span class="hs-identifier">media</span><span> </span><a name="local-6989586621679079713"><a href="#local-6989586621679079713"><span class="hs-identifier">x</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier hs-var">return</span><span> </span><span class="hs-special">[</span><a href="#local-6989586621679079713"><span class="hs-identifier hs-var">x</span></a><span class="hs-special">]</span><span>
</span><a name="line-150"></a><span>
</span><a name="line-151"></a><span class="hs-identifier">checkExtension</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">String</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-identifier hs-type">String</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">Bool</span><span>
</span><a name="line-152"></a><a name="checkExtension"><a href="Text.Pandoc.Util.Filter.Media.html#checkExtension"><span class="hs-identifier">checkExtension</span></a></a><span> </span><a name="local-6989586621679079714"><a href="#local-6989586621679079714"><span class="hs-identifier">fn</span></a></a><span> </span><a name="local-6989586621679079715"><a href="#local-6989586621679079715"><span class="hs-identifier">exts</span></a></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-identifier hs-var">fmap</span><span> </span><span class="hs-identifier hs-var">toLower</span><span> </span><span class="hs-operator hs-var">.</span><span> </span><span class="hs-identifier hs-var">tail</span><span> </span><span class="hs-operator hs-var">.</span><span> </span><span class="hs-identifier hs-var">takeExtension</span><span class="hs-special">)</span><span> </span><a href="#local-6989586621679079714"><span class="hs-identifier hs-var">fn</span></a><span> </span><span class="hs-special">`</span><span class="hs-identifier hs-var">elem</span><span class="hs-special">`</span><span> </span><a href="#local-6989586621679079715"><span class="hs-identifier hs-var">exts</span></a><span>
</span><a name="line-153"></a><span>
</span><a name="line-154"></a><span class="hs-identifier">idFilter</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier hs-type">String</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">String</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier hs-type">String</span><span>
</span><a name="line-155"></a><a name="idFilter"><a href="Text.Pandoc.Util.Filter.Media.html#idFilter"><span class="hs-identifier">idFilter</span></a></a><span> </span><a name="local-6989586621679080112"><a href="#local-6989586621679080112"><span class="hs-identifier">a</span></a></a><span> </span><a name="local-6989586621679080113"><a href="#local-6989586621679080113"><span class="hs-identifier">b</span></a></a><span>
</span><a name="line-156"></a><span> </span><span class="hs-glyph">|</span><span> </span><a href="#local-6989586621679080112"><span class="hs-identifier hs-var">a</span></a><span> </span><span class="hs-operator hs-var">==</span><span> </span><a href="#local-6989586621679080113"><span class="hs-identifier hs-var">b</span></a><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-string">&quot;&quot;</span><span>
</span><a name="line-157"></a><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier hs-var">otherwise</span><span> </span><span class="hs-glyph">=</span><span> </span><a href="#local-6989586621679080113"><span class="hs-identifier hs-var">b</span></a><span>
</span><a name="line-158"></a><span>
</span><a name="line-159"></a></pre></body></html>