forking Markdown.pl?
    Tomas Doran 
    bobtfish at bobtfish.net
       
    Tue Mar 18 08:13:32 EDT 2008
    
    
  
On 18 Mar 2008, at 05:22, John Gruber wrote:
> On Mar 16, 2008, at 3:07 PM, Jacob Rus wrote:
>
>> It’s harsh but reasonable language in my opinion.  If you are  
>> going to make something which is not Markdown (i.e. has other bits  
>> of syntax not specified in John's description of that language),  
>> then you should call it by a name other than “Markdown”.
>
> That's my point exactly.
And Text::Markdown *does not* have *any* other bits of syntax than  
those specified in your description of the language.
As of 1.0.17 (released a a day or two ago), I've finished the planned  
code reorganisation so that all the code lives within Text::Markdown  
- the only significant change needed was to extract a load of the  
code which actually generated the markup into their own methods..  
This actually reduced the copy-and-paste code within Markdown itself  
(e.g. the substitution part of the regexes in _DoHeaders is largely  
the same in every instance).
Now that I've re-shuffled, I'll shortly be *removing*  
Text::MultiMarkdown from the Text::Markdown distribution again, which  
should end any confusion which people may have / I may have created.
> And for those of you who think Markdown is "stagnating", I have web  
> server logs that show otherwise.
Indeed, it's a superb idea that only gets more relevant, and an  
inspired choice of name - it's also IMO a beautiful way of doing it  
(in contrast to, for example, Textile - which I think is horrible).
The number of implementations of a Markdown language processor in  
other languages (with new ones being announced regularly), shows that  
it isn't in any way stagnating.
However, looking at the mailing list shows that the language  
specification _is_ floundering, with different versions failing to  
correctly interoperate in edge cases, which isn't a brilliant  
situation. :(
> Do I wish that I'd made more time by this point to do an official  
> 1.5 or 2.0 release? Yes. But the current version, as-is, is  
> *gaining* popularity.
Who says that 100% of the effort for development has to be *yours*?
If you're willing to let me, I'd be more than happy to stop  
development on the CPAN modules, and back-port all my bug fixes etc  
to Markdown.pl and do any other work you consider necessary to be  
able to make a new release with your blessing.
>
> Something called "Markdown" on CPAN, which has *my* name on it  
> (because the original Text::Markdown was based on my work, and was  
> in fact "Markdown", makes things worse.
>
Isn't that the opposite of the first point? Let me see if I can get  
this straight, so I'll spell out what I consider to be your  
objections explicitly, and you can tell me I'm stupid and correct me  
if I'm wrong.
Your objections are:
1) A Text::Markdown which implements something which isn't (just)  
Markdown (or who's internal structure is to be Markdown + some other  
stuff with the other stuff switched off) is bad.
100% agreed with you. Text::Markdown *has never* done the former, and  
the latter was a step towards unifying Text::Markdown and  
Text::MultiMarkdown from being copy & paste examples of one another  
(one with extensions), which IMO is it's own problem, that does need  
solving (and I have solved it). Apologies if you believe that  
publishing my in-between stages was a bad idea which confused things  
- however I have an active community of users that are pushing for  
various bug fixes and changes whom I'm listening and responding to as  
quickly as I'm able.
2) A Text::Markdown which isn't strongly derived from your work is bad.
Text::Markdown has *never* not been strongly derived from your work.  
Both Text::Markdown and Text::MultiMarkdown originally forked from  
Markdown 1.0.1 (Text::MultiMarkdown, admittedly by a less direct  
route), and I merged almost all of the changes from Markdown-1.0.2b8  
back into them a while ago. So the assertion that Text::Markdown  
isn't based upon your work is just plain wrong.
2) Anything *at all* called Markdown which lives on CPAN confuses the  
situation unless it's your/original Markdown.
Also agreed. However there are *a significant number* of projects  
which want to incorporate Markdown support *which cannot do so* with  
Markdown.pl - this is why Text::Markdown was spawned in the first  
place (however it became *even more* abandonware then original  
Markdown before I picked it up). If you *just* publish a Markdown as  
a script without a reasonable programatic interface then people *are  
going to do this*, as the license allows them to.
My preferred solution would be for the 'original' (i.e.  
daringfireball brand) Markdown to have most of the code in a module  
called Text::Markdown, but to supply a script wrapper called  
Markdown.pl which provides the original functionality. This is what  
I've done in Text::Markdown currently so that people get the best of  
both worlds.
The 'complete' solution for this issue is to make what is on CPAN be  
the *official* markdown also found on daringfireball.
My entire aim is to help to *unify* the markdown community, not to  
act to fragment it - and so let me wave you a white flag...
My terms for surrender would be:
   - I will **throw away** my work so far, and pull out *specific bug  
fixes* which I've made. These can be incorporated into the 'official'  
Markdown distribution (and test suite).
   - We can work *together* on the next 'official' version of  
Markdown (I'll do the gruntwork coding, you provide the guidance /  
direction / executive veto if you don't like what I want to do).
   - This new version moves most of the code into Text::Markdown so  
that people and projects who want/need an API get it (this makes the  
user community even larger, so we all win).
   - We move towards somewhere where the relevant hooks are provided  
for people who want to extend Markdown in whatever way they fancy, we  
just mandate that they don't call it Markdown/make it clear that it's  
not 'official' Markdown (the license already pretty much covers this)..
     We could even provide an official extension namespace, e.g.  
Text::MarkdownX::WeThinkItWasPerfectToBeginWithYouFools::YourExtensionNa 
meHere (ok, I jest, but you get the point - the namespace would make  
it clear that it's an unofficial extension, and you wouldn't have  
extensions diluting the Markdown brand, but instead adding to it).
Is this proposal in any way reasonable to you? If not, why not?
If you're unwilling for anyone else to actively contribute to  
Markdown's development but yourself, then I hate to say it - but you  
probably shouldn't have released it under an Open Source type license  
in the first place...
I'll look forward to hearing from you, and I really hope that we can  
work together to improve Markdown - my only goals are for the  
implementation to be the best that it can be, and to reduce the  
fragmentation of implementations (at least in the perl space). I hope  
that you don't consider these unreasonable.
Cheers
Tom
    
    
More information about the Markdown-Discuss
mailing list