Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 5701b9cad1
Fetching contributors…

Cannot retrieve contributors at this time

264 lines (157 sloc) 8.449 kb
<h1>DEVELOPER NOTES</h1>
<p>Erlmarkdown uses generated tests. There are 2 levels of generation:
<code>./tests/index.html</code> uses <code>generate_tests.js</code> to take a set of input test cases
and output an EUnit test file for Erlang.</p>
<p>Some of the tests in <code>generate_tests.js</code> are hand written and some have been generated from the MarkdownSharp test suites.</p>
<p>The MarkdownSharp test suites were originally downloaded from:
<code>http://code.google.com/p/markdownsharp/</code></p>
<p>They can be found in <code>./tests/markdowndownsharp/</code></p>
<p>The code that generates tests from them in in the escript file:
<code>./priv/make_tests</code></p>
<h1>Release Notes</h1>
<h2>Version 1.1.12 Production Bug Fix</h2>
<p>Bug fix for "&lt;>"</p>
<h2>Version 1.1.11 Production Bug Fix</h2>
<p>Bug Fix for tags with a couple more shonky unfixed whitespace bugs</p>
<h2>Version 1.1.10 Production Bug Fix</h2>
<p>Shonk Alert! A couple of whitespace bugs remain unfixed</p>
<h2>Version 1.1.9 Production Bug Fix</h2>
<p>Wasn't handling special white space inserted by the <strong><em>PARSER</em></strong> (don't ask!)</p>
<h2>Version 1.1.8 Production Bug Fix</h2>
<p>Some blocktag/html errrors fixed</p>
<h2>Version 1.1.7 Production Bug Fix</h2>
<p>URl's were not html encoded.</p>
<p>Failing tests of 1.1.5 not addressed in this release</p>
<h2>Version 1.1.6 UTF8 Support</h2>
<p>Can now specify a UTF 8 entry point - this addresses the non-breaking space/ascii 160 problem of Version 1.1.3</p>
<p>Failing tests of 1.1.5 not addressed in this release</p>
<h2>Version 1.1.5 (Interim)</h2>
<p>Integration of additional tests from markdownsharp:
http://code.google.com/p/markdownsharp/source/browse/trunk/MarkdownSharpTests/#MarkdownSharpTests/testfiles%3Fstate%3Dclosed</p>
<p>17 currently failing which is why this is an interim release</p>
<h2>Version 1.1.4 Production Bug Fix</h2>
<p>Fixes 4 sets of bugs:</p>
<ul>
<li>you can now put an image inside an href
` (eg [![alt](/img/some.png)](http://example.com/dir/)`
</li>
<li>text in ordered and unordered lists now renders correctly
eg bold and italic etc
</li>
<li>the 'you can't have 2 code segments in a single line' bug is fixed</li>
</ul>
<h2>Version 1.1.3 Production Bug Fix</h2>
<p>Under certain circumstances non-breaking spaces (ascii 160) could wedge
the server.</p>
<p>fuzz.erl rejigged to make for better diagnostics and run with 1,000,000 random
characters against markdown.</p>
<p><strong><em>CAVEAT</em></strong>: having serious doubts as to how erlmarkdown will handle unicode</p>
<h2>Version 1.1.2 Production Bug Fix</h2>
<p>A number of failures have been noticed in production of bits of markdown
failing to convert.</p>
<p>A fuzz generator has been added to produce large amounts or random characters
with particular emphasis on characters that are 'structural' in markdown.
50,000 random character strings found 3 or 4 new bugs which have been fixed
in this release.</p>
<h2>Version 1.1.1 Production Bug Fix</h2>
<p>Fixed a bug involving underscores/formatting characters inside inline
references and images</p>
<h2>Version 1.1 Production Bug Fix</h2>
<p>In the beginning erlmarkdown was an implementation of markdown written to spec</p>
<ul>
<li>the spec being the daring-fireball syntax page.</li>
</ul>
<p>BUT it soon transpired that there were significant differences between <em>our</em>
implementation of the spec and that of showdown (from attacklabs.net). Given
that the client-side markdown and the server-side markdown need to work together
we switched the erlang code from being an implementation of the spec to being
a server-side implementation of showdown.</p>
<p>BUT the WMD dialog box produces (as input) code which is 'off spec' (but which
showdown supports), <strong>so</strong>...</p>
<p>Version 1.1 is tested for compatibility with:</p>
<ul>
<li>showdown</li>
<li>the markdown input produced by the WMD dialog box editor</li>
</ul>
<p>We are tracking the release of WMD <strong>and</strong> showdown from this version on github:
<a href="http://github.com/derobins/wmd/commit/980f68797307d28f0541868c740974cb2eeb1209">http://github.com/derobins/wmd/commit/980f68797307d28f0541868c740974cb2eeb1209</a></p>
<p>We are no longer tracking the showdown code on attacklabs.net</p>
<p>As a result of this is that the list of ERATTA AND KNOWN BUGS is a bit longer</p>
<h2>Version 1.0 Production Release</h2>
<p>This is a major rewrite. There is little point writing servers-side markdown
without a client-side markdown to preview it.</p>
<p>This markdown will now track showdown from Attack Labs as its twin
implementation.</p>
<p><a href="http://attacklab.net/showdown/">http://attacklab.net/showdown/</a></p>
<p>To that end the test suite has been repurposed to test
compatibility with showdown. The current release of showdown used is V0.9</p>
<p>The directory <code>/tests</code> now contains an webpage <code>index.html</code> which generates
the tests (ie the file <code>markdown_tests.erl</code> in <code>/src</code>).</p>
<p><code>index.html</code> loads a javascript file <code>generate_tests.js</code> which holds a list of
strings which it generates the tests from (ie testing if markdown produces the
same output as showdown...)</p>
<p>There are a number of places where markdown is not <em>whitespace compatible</em> with showdown - you can inspect these by looking for commented out tests in
<code>generate_tests.js</code>. There are also a number of showdown bugs or other
inconsistencies which also show up as commented out tests in
<code>generate_tests.js</code>.</p>
<p>The biggest single difference is that showdown doesn't escape any html tags
by default whereas markdown has a whitelist of blocklevel tags which it doesn't
escape (see the function <code>markdown:is<em>block</em>tag/1</code>).</p>
<p>(Other) Known Bugs and Errata:
as per the previous versions (see bottom of document)</p>
<p>There are 261 Unit Tests.</p>
<h2>Version 1.0 RC1.1 First Point Release</h2>
<p>Various bug fixes:</p>
<ul>
<li>supports short inline URL references of the form 'some text <a href="http://sub.dom.tld:1234/some/path\\t\\n" title="Title">id</a> some more'</li>
<li>fixes bugs with lines containing markdown only like '#', '>', '=' and '-'</li>
<li>fixes a bug where a terminating '\n\n' would mean each line came back reversed</li>
<li>fixes various 'atx header' bugs</li>
<li>fixes bugs where lines start with an emphasis or strong marker (thanks to Tom McNulty)</li>
</ul>
<p>Unit tests bumped up to 255.</p>
<h2>Version 1.0 RC1 Production Release Candidate</h2>
<p>This version comes with 226 Unit Tests and is being released for pre-production testing.</p>
<p>It also has 1 System Test - this document :)</p>
<h1>Known Bugs And Errata</h1>
<h2>1 This is a valid markdown for references</h2>
<p>The title wrap to a new line is not supported in this release.</p>
<h2>2 Character Escaping</h2>
<p>I'm not entirely clear how character escaping should work for:</p>
<pre><code>\ backslash
` backtick
</code></pre>
<ul>
<li>asterisk
_ underscore
{} curly braces
[] square brackets
</li>
</ul>
<pre><code>() parentheses
# hash mark
</code></pre>
<ul>
<li>plus sign</li>
<li>minus sign (hyphen)</li>
</ul>
<pre><code>. dot
! exclamation mark
</code></pre>
<p>I escape them only in context.</p>
<h2>3 Anti-spam mailto's</h2>
<p>The official release obfuscated e-mail addresses, this don't :(</p>
<h2>4 Nesting</h2>
<p>Showdown supports nested &lt;ul&gt;'s, &lt;ol&gt;'s and &lt;blockquote&gt;'s - erlmarkdown doesnt (yet)...</p>
<h1>What It Is</h1>
<p>This is an Erlang implementation of Markdown.</p>
<p>See http://daringfireball.net/projects/markdown/ for details</p>
<h1>License</h1>
<p>The license is the same as the original Markdown</p>
<h2>Musical Colophon</h2>
<p>'My Song' when I wrote this was:
<a href="http://open.spotify.com/track/6mqdunuFFSODHKcpDTFvAj">http://open.spotify.com/track/6mqdunuFFSODHKcpDTFvAj</a></p>
<p>'Generic Song' to play when you find a bug in my code:
<a href="http://open.spotify.com/track/5YLa8jWik5OqgBoSix3NUp">http://open.spotify.com/track/5YLa8jWik5OqgBoSix3NUp</a></p>
<p>'Generic Song' about how I feel about myself when you find a bug:
<a href="http://open.spotify.com/track/2RbJj7D5pRff82NtDDSwah">http://open.spotify.com/track/2RbJj7D5pRff82NtDDSwah</a></p>
Jump to Line
Something went wrong with that request. Please try again.