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