Steve Bennett wrote:
On 11/14/07, Brion Vibber <brion(a)wikimedia.org>
wrote:
I would recommend against considering this at
this time (if ever).
Hopping around changing basic syntax is probably not the thing to do
when in the middle of changing the parser mechanics.
I would say this:
Some text with '''bold''' and some ''italics''
and even some '''''bold
italics'''''.
is basic syntax. We're not changing that.
This:
Some text with '''''bold italics''' then just
italics''. Oh and I did I
mention ''''bold preceded by apostrophes'''' and who
knows, some
''''''random''''
combinations''''' of '''' apostrophes
''''''''' and
bold/italics''' that noone ''''' can
''''''''''predict the behaviour
'''of'...
is not basic syntax. It can't be EBNF'ed. It can't be translated exactly
according to the whims of the current parser.
Note that EBNF is not necessarily desired or desirable; if EBNF can't
describe the grammar of the language, then it's not a suitable tool.
Note also that it *is* a requirement to have sane behavior with this
sort of construction:
L'''idée'' <- apostrophe followed by italics
L''''idée''' <- apostrophe followed by bold
That's a *requirement* to continue to properly handle French and Italian
text. The current apostrophe pass handler uses I believe a lookahead and
then goes backwards, which is a fairly sane way of doing this. If EBNF
can't handle it, then forget EBNF.
I could accept that the first
sentence of my second part is "basic syntax". But not this kind of madness:
# If there is an odd number of both bold and italics, it is likely
# that one of the bold ones was meant to be an apostrophe followed
# by italics. Which one we cannot know for certain, but it is more
# likely to be one that has a single-letter word before it.
That's why we're proposing *adding* ** and //, to provide alternative
mechanisms for these complicated situations.
Let me be very very clear here.
Whether or not we ever add ** and // as bold and italic syntax is
completely unrelated to the actual task of rebuilding the parser or
speccing out a grammar for the wiki syntax.
If you want to play with alternate syntax (adding different markup such
as "**" or "//" or "$*^#&*^"), feel free to do so on
your own, but
please don't mix it into any discussion or work or planning or
decision-making about the parser.
New alternates aren't even needed; old alternates already exist (<b> and
<i>; use of <nowiki></nowiki> as a hidden separator, etc). Other sorts
of magic characters might also be neat additions, but they should not be
considered at this time because it's just going to sidetrack things.
Don't complicate the situation by tossing in new stuff. Then the
conversation goes from something manageable (does this proposed parser
technically accomplish the job?) to something unmanageable (should we
make a large number of changes to markup?) and we'll never get anywhere.
-- brion vibber (brion @
wikimedia.org)