Hi, I have written my own implementation of markdown in Scala. I only later realized there is already one ( <http://tristanhunt.com/projects/knockoff/> ), but I put quite some work into mine and I think it is never bad to have alternatives, so I wanted to release it anyway. I want to use the same BSD License as the original markdown, but before I put it out into the wild I wanted to ask you guys a few questions: 1. I wanted to call the project "scala-markdown" (not very imaginative, I know). However, I need John's permission to use the name "Markdown", I think. Is he reading this list or can you get me in contact with him? Is it OK to use that name? If not, I will of course come up with something different. 2. I have built a "Web Dingus" so my implementation can be previewed in a browser. Again, is it a problem to call it "Scala-Markdown Web Dingus"? I have also copied the cheat sheet that the PHP Markdown Dingus and John's original Dingus display and wanted to ask if it is OK to include that in my site. Otherwise I could write a new cheat sheet, but it feels kinda redundant? 3. What is the current "official" test suite? I found one here: <http://michelf.com/docs/projets/mdtest-1.1.zip>, however that one is GPL Licensed so I cannot include it in my project if I want to release it under the BSD license. What is the best BSD-licensed test-suite I could use? @John Gruber: if you are reading this, I can provide you with an URL to look at my implementation (source and web dingus). I did not make the URL public yet, I first wanted to get approval for the naming issues. Looking forward to your replies! Thanks, Chris
Le 2010-12-15 ? 15:41, Christoph Henkelmann a ?crit :> 3. What is the current "official" test suite? I found one here: > <http://michelf.com/docs/projets/mdtest-1.1.zip>, however that one is > GPL Licensed so I cannot include it in my project if I want to release > it under the BSD license. What is the best BSD-licensed test-suite I > could use?The only reason MDTest is GPL is because the test driver (mdtest.php) contains some GPL code from another source (the PHP Diff code). If you remove or replace the PHPDiff function at the bottom of the file, I give you permission to relicense it under BSD. It'd be better however if you get the permission from John Gruber too, as this code is based on his older MarkdownText implementation. As for the test files included with MDTest, with this email I release the "PHP Markdown.mdtest" and "PHP Markdown Extra.mdtest" test suites from MDTest to the public domain (I'm the author of these files), so feel free to do what you want with them. The Markdown.mdtest test suite comes from Gruber's older MarkdownTest and are unmodified since then (except for some file extensions), so all you need is his permission. -- Michel Fortin michel.fortin at michelf.com http://michelf.com/
Hello Michel, On Wed, 2010-12-15 at 19:12 -0500, Michel Fortin wrote:> I release the "PHP Markdown.mdtest" and "PHP Markdown Extra.mdtest"test suites> from MDTest to the public domain (I'm the author of these files), sofeel free to> do what you want with them. The Markdown.mdtest test suite comes fromGruber's> older MarkdownTest and are unmodified since then (except for some fileextensions),> so all you need is his permission.Thanks a lot for the quick reply. I only need the test files anyway, as I will simply write my own tests for comparing in- and output. I'll start hacking on the tests right away. Hope John gives his thumbs up for his tests as well :) Again, thank you very much! Chris
Christoph, there is another markdown implementation (besides knock-off) you can directly use from Scala (although it is currently implemented in Java): https://github.com/sirthias/pegdown/ pegdown comes with quite a large number of test-cases assembled from various sources. You might want to take a look and reuse what you seem fit: https://github.com/sirthias/pegdown/tree/master/test-cases I would be interested in the performance of your Scala implementation (which I assume is based on the parser combinators). Ryan Tomayko did some very basic benchmarking almost three years ago: http://tomayko.com/writings/ruby-markdown-libraries-real-cheap-for-you-two-fo... which is the only one markdown benchmarking information I could find when I looked around a while ago. Currently pegdown clocks in somewhere between RDiscount and Maruku in terms of performance. Could you give your implementation a spin? Cheers, Mathias --- mathias at parboiled.org http://www.parboiled.org On 15.12.2010, at 21:41, Christoph Henkelmann wrote:> Hi, > > I have written my own implementation of markdown in Scala. I only later > realized there is already one > ( <http://tristanhunt.com/projects/knockoff/> ), but I put quite some > work into mine and I think it is never bad to have alternatives, so I > wanted to release it anyway. I want to use the same BSD License as the > original markdown, but before I put it out into the wild I wanted to ask > you guys a few questions: > > 1. I wanted to call the project "scala-markdown" (not very imaginative, > I know). However, I need John's permission to use the name "Markdown", I > think. Is he reading this list or can you get me in contact with him? Is > it OK to use that name? If not, I will of course come up with something > different. > > 2. I have built a "Web Dingus" so my implementation can be previewed in > a browser. Again, is it a problem to call it "Scala-Markdown Web > Dingus"? I have also copied the cheat sheet that the PHP Markdown Dingus > and John's original Dingus display and wanted to ask if it is OK to > include that in my site. Otherwise I could write a new cheat sheet, but > it feels kinda redundant? > > 3. What is the current "official" test suite? I found one here: > <http://michelf.com/docs/projets/mdtest-1.1.zip>, however that one is > GPL Licensed so I cannot include it in my project if I want to release > it under the BSD license. What is the best BSD-licensed test-suite I > could use? > > @John Gruber: if you are reading this, I can provide you with an URL to > look at my implementation (source and web dingus). I did not make the > URL public yet, I first wanted to get approval for the naming issues. > > Looking forward to your replies! > > Thanks, > > Chris > > _______________________________________________ > Markdown-Discuss mailing list > Markdown-Discuss at six.pairlist.net > http://six.pairlist.net/mailman/listinfo/markdown-discuss
Mathias,> there is another markdown implementation (besides knock-off) you can directly use from Scala (although it is currently implemented in Java): > https://github.com/sirthias/pegdown/Yup, found that one, too (after I was done ;) The official Markdown page listed only PHP Markdown as another implementation so I did not look for one that runs on the Java VM. But you are of course right, you can easily use a JAVA lib in Scala, it even works the other way around, only you can get some really ugly mangled class names when using Scala classes in JAVA.> pegdown comes with quite a large number of test-cases assembled from various sources. > You might want to take a look and reuse what you seem fit: https://github.com/sirthias/pegdown/tree/master/test-casesGood idea. Mmmh - pegdown is apache 2.0 licensed, so I should be able to mix those tests in.> I would be interested in the performance of your Scala implementationI will try and create a project that depends on all three implementations and runs the tests and benchmarks on all of them. Then we would have a comparison of the JAVA VM based Markdown parsers.> (which I assume is based on the parser combinators).That's correct. I bet knockoff is as well.> Currently pegdown clocks in somewhere between RDiscount and Maruku in terms of performance. > Could you give your implementation a spin?I will definitely do that, might be a few days 'till I get around to doing that, though. Cheers, Christoph
Hello, I finally released my Scala Markdown implementation. As I did not get any feedback on the naming issues, I decided to call it "Actuarius", after the latin word for the medieval scribe. (The blokes copying books before there was printing & writing for people who cannot write themselves). Also I thought it unfair to call it "scala-markdown", as this sounds somehow official, as it were the "real" markdown implementation for scala, while there is already an older and more mature Markdown processor for Scala (i.e.: Knockoff) You can find the project pages here: <http://henkelmann.eu/projects/actuarius/> I also built a web dingus where you can not only try out Actuarius but PegDown and Knockoff as well: <http://henkelmann.eu/projects/actuarius/dingus> I hope it is OK if I call it "Dingus" as well, but I did not really know what else to call it. If that is any issue with anyone, I will change the name, just tell me so. No need to send the lawyers after me ;) I also did a (large) number of performance tests. I still need to wrap up the test project, release the code and test cases and write a proper blog post about it. (I think it would be fair if other people checked & repeated it, as I am obviously biased). I will publish the details after this weekend, here the short summary: * Actuarius twice as fast as Knockoff on "average" input * Knockoff twice as fast as PegDown on "average" input Average input is a good mix of plain text, code, quotes, lists, emphasis, links etc. However both Actuarius and Knockoff have serious issues with certain "bad" input (e.g.: every word with separate emphasis like *foo* *foo* *foo*) were performance suddenly **seriously** degrades (I hope to fix that in a later release). PegDown's speed is more constant and reliable (albeit somewhat slower). Chris
Chris, Actuarius looks like an excellent piece of hard work! Thanks a lot for making it available. I'm looking forward to taking a look at your test and benchmark code. (Of course I will have to tune pegdown to become the fastest of the three implementations... ;) Thanks again! (Also for your rather balanced comparisons, very nice!) Cheers, Mathias --- mathias at parboiled.org http://www.parboiled.org On 06.01.2011, at 18:27, Christoph Henkelmann wrote:> Hello, > > I finally released my Scala Markdown implementation. As I did not get > any feedback on the naming issues, I decided to call it "Actuarius", > after the latin word for the medieval scribe. (The blokes copying books > before there was printing & writing for people who cannot write > themselves). Also I thought it unfair to call it "scala-markdown", as > this sounds somehow official, as it were the "real" markdown > implementation for scala, while there is already an older and more > mature Markdown processor for Scala (i.e.: Knockoff) > > You can find the project pages here: > <http://henkelmann.eu/projects/actuarius/> > > I also built a web dingus where you can not only try out Actuarius but > PegDown and Knockoff as well: > <http://henkelmann.eu/projects/actuarius/dingus> > > I hope it is OK if I call it "Dingus" as well, but I did not really know > what else to call it. If that is any issue with anyone, I will change > the name, just tell me so. No need to send the lawyers after me ;) > > I also did a (large) number of performance tests. I still need to wrap > up the test project, release the code and test cases and write a proper > blog post about it. (I think it would be fair if other people checked & > repeated it, as I am obviously biased). I will publish the details after > this weekend, here the short summary: > > * Actuarius twice as fast as Knockoff on "average" input > * Knockoff twice as fast as PegDown on "average" input > > Average input is a good mix of plain text, code, quotes, lists, > emphasis, links etc. However both Actuarius and Knockoff have serious > issues with certain "bad" input (e.g.: every word with separate emphasis > like *foo* *foo* *foo*) were performance suddenly **seriously** degrades > (I hope to fix that in a later release). PegDown's speed is more > constant and reliable (albeit somewhat slower). > > Chris > > > _______________________________________________ > Markdown-Discuss mailing list > Markdown-Discuss at six.pairlist.net > http://six.pairlist.net/mailman/listinfo/markdown-discuss
> I'm looking forward to taking a look at your test and benchmark code. > (Of course I will have to tune pegdown to become the fastest of the three implementations... ;)I finally finished my post on the performance of the JVM-based Markdown Processors: http://henkelmann.eu/2011/1/10/performance_comparison_of_markdown_processor_f... The performance of each processor heavily depends on the input, so I split up the test into various scenarios. In a mixed test Actuarius comes in first, followed by PegDown followed by Knockoff, roughly in a 1:2:4 Ratio. (My first test contained a lot of plain text which is processed well by Knockoff, yet when you mix in some emphasis, links etc. it Knockoff gets pretty slow.) I will release the testsuite ASAP. I am looking forward to the PegDown improvements, that will give me a reason to pimp up Actuarius a bit more :) Cheers, Christoph
On Mon, 2011-01-10 at 12:57 +0100, Christoph Henkelmann wrote:> I will release the testsuite ASAP.I have finally gotten around to releasing the code i used to run my Markdown VM-Tests: http://henkelmann.eu/2011/1/11/markdown_performance_tester You will need Scala 2.8.x and sbt to run it. Cheers, Christoph