Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2011-01-01 Thread Stephanie Daugherty
It wouldn't be all that hard. Elements are either inline or block
elements. Inline elements insert into the text flow, while text flows around
block elements. If we make the distinction as simple as that, and disallow
all methods of positioning other than that which is natively available in
wiki code (ie, no html or css positioning), we can make that process very
easy.

That said, the editing interface needs to be tightly integrated - you
shouldn't have to go to a separate page to edit a template or other
external element. For users that are able to function with a nice pretty
AJAX-capable editor, that interface could be clicking on the element marker,
and a dialog pops up to edit the element. For users that have to use a flat
HTML form, make these elements list defined, like list defined references,
and then use simple syntax to indicate all the markers, basically as
entities.

This would result in a WYSIWYM interface, with any and all complex markup
being rendered as placeholders editors could click to get a property screen
for that item, and it would probably be way more practical than WYSIWYG
given the complexity of the markup we are trying to fix.





On Fri, Dec 31, 2010 at 8:13 AM, Platonides platoni...@gmail.com wrote:

 Ryan Lomonaco wrote:
  I think this has been brought up before, but a thought I've had:  Apart
 from
  the fact that it will require a ton of work in coding, what would keep us
  from separating templates (and, for that matter, images) from the article
  text?  Article text would exist by itself, and categories, templates,
 images
  and metadata would all be kept and edited separately from the article
  itself, with pointers indicating where the templates and images should
 go
  within the article.

 Nothing. But images and /some/ inline templates can't be done that way
 since they also need a position. That can be automated for eg. license
 templates, or infoboxes, but not for a template formatting a quote.


 ___
 foundation-l mailing list
 foundation-l@lists.wikimedia.org
 Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l




-- 
Faith is about what you really truly believe in, not about what you are
taught to believe.
___
foundation-l mailing list
foundation-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l


Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-31 Thread Platonides
Ryan Lomonaco wrote:
 I think this has been brought up before, but a thought I've had:  Apart from
 the fact that it will require a ton of work in coding, what would keep us
 from separating templates (and, for that matter, images) from the article
 text?  Article text would exist by itself, and categories, templates, images
 and metadata would all be kept and edited separately from the article
 itself, with pointers indicating where the templates and images should go
 within the article.

Nothing. But images and /some/ inline templates can't be done that way
since they also need a position. That can be automated for eg. license
templates, or infoboxes, but not for a template formatting a quote.


___
foundation-l mailing list
foundation-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l


Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-30 Thread Stephanie Daugherty
Really good points. I still advocate moving the possibility for these
ugly constructs to templates, so that we keep all the magic tricks
we have now, but lose the ability to make an article that is write
only by littering it with code that only the wikigods and the parser
itself could decypher.

Well-formedness checks would be a huge step forward - if the edit form
could catch showstoppers like mismatched braces , brackets, quotes,
and even misused templates it would go a long way towards making the
site safe to edit.

As for all the deep magic, like parser functions, inline html, and the
like, why do we even need to allow the parser to recognize such
nonsense in article space. Treat templates as a special case and be
rid of just about everything thats not on the editing toolbar.

There will be some people upset that they cant turn an article into an
elaborate html and css work of art but they will get over it and go
back to writing articles, or if they didn't have any interest in doing
that they will go back to myspace. Either way net gain - article code
becomes readable and we promote the development and expansion of
freely available content, which is the real business we are in.

On 12/29/10, Brion Vibber br...@pobox.com wrote:
 On Tue, Dec 28, 2010 at 5:28 PM, Rob Lanphier ro...@wikimedia.org wrote:

 Let me riff on what you're saying here (partly just to confirm that I
 understand fully what you're saying).  It'd be very cool to have the
 ability to declare a single article, or probably more helpfully, a
 single revision of an article to use a completely different syntax.


 Yes, though I'd recommend jettisoning the word syntax entirely from the
 discussion at this stage, as I worry it distracts towards bikeshedding about
 unimportant details.

 Rather, it could be more useful to primarily think of data resources having
 features or structure. With images for instance, we don't make people
 pay too much attention about whether something's in JPEG, PNG, GIF, or SVG
 format.

 At the level of actual people working with the system, the file's *format*
 is completely unimportant -- only its features and metadata are relevant.
 Set a size, give a caption, specify a page if it's a paged format, or a time
 if it's a video format. Is it TIFF or PDF? Ogg Theora or WebM? Don't know,
 don't care, and any time a user has to worry about it we've let them down.

 We need to think about similarly concentrating on document structure rather
 than markup syntax for text pages.


 I definitely agree that the idea of progressively moving bits and pieces in
 that direction is a wise one. If we can devise a *document structure* that
 lets us embed magic templatey _things_ into a paragraph-oriented-text
 document and maintain their structural identity all the way to browser-ready
 HTML and back, then we can have a useful migration path:

 * identify possibly unsafe uses of templates, extensions, and
 parserfunctions (machines are great at this!)
 * clean them up bit by bit (bots are often good at many common cases)
 * once a page can be confirmed as not using Weird Template Magic, but only
 using templates/images/plugins that fit within the structure, it's golden.
 * depending on which flavor of overlords we have, we might have various ways
 of enforcing that a page will always *remain* well-structured from then on.

 That might not even involve changing syntax per se -- we shouldn't care too
 much about whether italic is i or ''. But knowing where a table or a div
 block starts and ends reliably is extremely important to being able to tell
 which part of your document is which.


 And heck, even if not everything gets fixed along that kind of path, just
 being able to *have* pages and other resource types that *are*
 well-structured mixed into the system is going to be hugely useful for the
 non-Wikipedia projects.

 -- brion vibber (brion @ pobox.com)
 ___
 foundation-l mailing list
 foundation-l@lists.wikimedia.org
 Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l



-- 
Faith is about what you really truly believe in, not about what you are
taught to believe.

___
foundation-l mailing list
foundation-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l


Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-30 Thread Ryan Lomonaco
I think this has been brought up before, but a thought I've had:  Apart from
the fact that it will require a ton of work in coding, what would keep us
from separating templates (and, for that matter, images) from the article
text?  Article text would exist by itself, and categories, templates, images
and metadata would all be kept and edited separately from the article
itself, with pointers indicating where the templates and images should go
within the article.

-- 
[[User:Ral315]]
___
foundation-l mailing list
foundation-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l


Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-29 Thread Brion Vibber
On Tue, Dec 28, 2010 at 5:28 PM, Rob Lanphier ro...@wikimedia.org wrote:

 Let me riff on what you're saying here (partly just to confirm that I
 understand fully what you're saying).  It'd be very cool to have the
 ability to declare a single article, or probably more helpfully, a
 single revision of an article to use a completely different syntax.


Yes, though I'd recommend jettisoning the word syntax entirely from the
discussion at this stage, as I worry it distracts towards bikeshedding about
unimportant details.

Rather, it could be more useful to primarily think of data resources having
features or structure. With images for instance, we don't make people
pay too much attention about whether something's in JPEG, PNG, GIF, or SVG
format.

At the level of actual people working with the system, the file's *format*
is completely unimportant -- only its features and metadata are relevant.
Set a size, give a caption, specify a page if it's a paged format, or a time
if it's a video format. Is it TIFF or PDF? Ogg Theora or WebM? Don't know,
don't care, and any time a user has to worry about it we've let them down.

We need to think about similarly concentrating on document structure rather
than markup syntax for text pages.


I definitely agree that the idea of progressively moving bits and pieces in
that direction is a wise one. If we can devise a *document structure* that
lets us embed magic templatey _things_ into a paragraph-oriented-text
document and maintain their structural identity all the way to browser-ready
HTML and back, then we can have a useful migration path:

* identify possibly unsafe uses of templates, extensions, and
parserfunctions (machines are great at this!)
* clean them up bit by bit (bots are often good at many common cases)
* once a page can be confirmed as not using Weird Template Magic, but only
using templates/images/plugins that fit within the structure, it's golden.
* depending on which flavor of overlords we have, we might have various ways
of enforcing that a page will always *remain* well-structured from then on.

That might not even involve changing syntax per se -- we shouldn't care too
much about whether italic is i or ''. But knowing where a table or a div
block starts and ends reliably is extremely important to being able to tell
which part of your document is which.


And heck, even if not everything gets fixed along that kind of path, just
being able to *have* pages and other resource types that *are*
well-structured mixed into the system is going to be hugely useful for the
non-Wikipedia projects.

-- brion vibber (brion @ pobox.com)
___
foundation-l mailing list
foundation-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l


Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-28 Thread Brion Vibber
On Tue, Dec 28, 2010 at 8:43 AM, David Gerard dger...@gmail.com wrote:

 e.g. Wikia has WYSIWYG editing and templates. They have a sort of
 solution to template editing in WYSIWYG. It's not great, but people
 sort of cope. How did they get there? What can be done to make it
 better, *conceptually*?

 What I'm saying there is that we don't start from the assumption that
 we know nothing and have to start from scratch, forming our answers
 only from pure application of personal brilliance; we should start
 from the assumption that we know actually quite a bit, if we only know
 who to ask and where. Does it require throwing out all previous work?
 etc., etc. And this is the sort of question that requires actual
 expense on resources to answer.

 Given that considerable work has gone on already, what would we do
 with resources to apply to the problem?


My primary interest at the moment in this area is to reframe the question a
bit; rather than how do we make good WYSIWYG that works on the way
Wikipedia pages' markup and templates are structured now -- which we know
has been extremely hard to get going -- to instead consider how do we make
good WYSIWYG that does the sorts of things we currently use markup and
templates for, plus the things we wish we could do that we can't?

We have indeed learned a *huge* amount from the last decade of Wikipedia and
friends, among them:

* authors and readers crave advanced systems for data  format-sharing (eg
putting structured info into infoboxes) and interactive features (even just
sticking a marker on a map!)
* most authors prefer simplicity of editing (keep the complicated stuff out
of the way until you need it)
* some authors will happily dive into hardcore coding to create the tools
they need (templates, user/site JS, gadgets)
* many other authors will very happily use those tools once they're created
* the less the guts of those tools are exposed, the easier it is for other
people to reuse them


The incredible creativity of Wikimedians in extending the frontend
capabilities of MediaWiki through custom JavaScript, and the markup system
through templates, has been blowing my mind for years. I want to find a way
to point that creativity straight forward, as it were, and use it to kick
some ass. :)


Within the Wikimedia ecosystem, we can roughly divide the world into
Wikipedia and all the other projects. MediaWiki was created for
Wikipedia, based on previous software that had been adapted to the needs of
Wikipedia; and while the editing and template systems are sometimes awkward,
they work.

Our other projects like Commons, Wiktionary, Wikibooks, Wikiversity, and
Wikinews have *never* been as well served. The freeform markup model --
which works very well for body text on Wikipedia even if it's icky for
creating tables, diagrams and information sets -- has been a poorer fit, and
little effort has been spent on actually creating ways to support them well.

Commons needs better tools for annotating and grouping media resources.

Wiktionary needs structured data with editing and search tools geared
towards it.

Wikibooks needs a structure model that's based on groups of pages and media
resources, instead of just standalone freetext articles which may happen to
link to each other.

Wikiversity needs all those, and more interactive features and the ability
for users to group themselves socially and work together.


Getting anything done that would work on the huge, well-developed,
wildly-popular Wikipedia has always been a non-starter because it has to
deal with 10 years of backwards-compatibility from the get-go. I think it's
going to be a *lot* easier to get things going on those smaller projects
which are now so poorly served that most people don't even know they exist.
:)

This isn't a problem specific to Wikimedia; established organizations of all
sorts have a very difficult time getting new ideas over that hump from not
good enough for our core needs to *bam* slap it everywhere. By
concentrating on the areas that aren't served at all well by the current
system, we can make much greater headway in the early stages of development;
Clayton Christensen's The Innovator's Dilemma calls this competing
against non-consumption.


For the Wikipedia case, we need to incubate the next generation of
templating up to the point that they can actually undercut and replace
today's wikitext templates, or I worry we're just going to be sitting around
going gosh I wish we could replace these templates and have markup that
works cleanly in wysiwyg forever.


My current thoughts are to concentrate on a few areas:
1) create a widget/gadget/template/extension/plugin model built around
embedding blocks of information within a larger context...
2) ...where the data and rendering can be reasonably separate... (eg, not
having to pull tricks where you manually mix different levels of table
templates to make the infobox work right)
3) ...and the rendering can be as simple, or as fancy as complex, 

Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-28 Thread Mono mium
How about attacking the problem by using something that already exists...


   - The Wikimedia Foundation gets a lot of support from Google,
   financially. How about we ask for some technology support as well? Google
   has a completely plugin-independant JS-based editor in Google Docs, as well
   as plenty of coders.
   - The simplest solution seems to be to translate WYS output into
   wikicode, so using the Google Docs editor, we simply have to translate the
   bold-looking text into wikicode.

Timeline of editing:
[WYSIWYG editor view:]
*Albert Einstein *was a popular

[Save page]

[One moment please]
HIDDEN
(translation)

(wikicode output):
*'''Albert Einstein''' *was a popular
/HIDDEN

[Article re-appears]
*Albert Einstein *was a popular

What do you think?

On Tue, Dec 28, 2010 at 10:27 AM, Brion Vibber br...@pobox.com wrote:

 On Tue, Dec 28, 2010 at 8:43 AM, David Gerard dger...@gmail.com wrote:

  e.g. Wikia has WYSIWYG editing and templates. They have a sort of
  solution to template editing in WYSIWYG. It's not great, but people
  sort of cope. How did they get there? What can be done to make it
  better, *conceptually*?
 
  What I'm saying there is that we don't start from the assumption that
  we know nothing and have to start from scratch, forming our answers
  only from pure application of personal brilliance; we should start
  from the assumption that we know actually quite a bit, if we only know
  who to ask and where. Does it require throwing out all previous work?
  etc., etc. And this is the sort of question that requires actual
  expense on resources to answer.
 
  Given that considerable work has gone on already, what would we do
  with resources to apply to the problem?
 

 My primary interest at the moment in this area is to reframe the question a
 bit; rather than how do we make good WYSIWYG that works on the way
 Wikipedia pages' markup and templates are structured now -- which we know
 has been extremely hard to get going -- to instead consider how do we make
 good WYSIWYG that does the sorts of things we currently use markup and
 templates for, plus the things we wish we could do that we can't?

 We have indeed learned a *huge* amount from the last decade of Wikipedia
 and
 friends, among them:

 * authors and readers crave advanced systems for data  format-sharing (eg
 putting structured info into infoboxes) and interactive features (even just
 sticking a marker on a map!)
 * most authors prefer simplicity of editing (keep the complicated stuff out
 of the way until you need it)
 * some authors will happily dive into hardcore coding to create the tools
 they need (templates, user/site JS, gadgets)
 * many other authors will very happily use those tools once they're created
 * the less the guts of those tools are exposed, the easier it is for other
 people to reuse them


 The incredible creativity of Wikimedians in extending the frontend
 capabilities of MediaWiki through custom JavaScript, and the markup system
 through templates, has been blowing my mind for years. I want to find a way
 to point that creativity straight forward, as it were, and use it to kick
 some ass. :)


 Within the Wikimedia ecosystem, we can roughly divide the world into
 Wikipedia and all the other projects. MediaWiki was created for
 Wikipedia, based on previous software that had been adapted to the needs of
 Wikipedia; and while the editing and template systems are sometimes
 awkward,
 they work.

 Our other projects like Commons, Wiktionary, Wikibooks, Wikiversity, and
 Wikinews have *never* been as well served. The freeform markup model --
 which works very well for body text on Wikipedia even if it's icky for
 creating tables, diagrams and information sets -- has been a poorer fit,
 and
 little effort has been spent on actually creating ways to support them
 well.

 Commons needs better tools for annotating and grouping media resources.

 Wiktionary needs structured data with editing and search tools geared
 towards it.

 Wikibooks needs a structure model that's based on groups of pages and media
 resources, instead of just standalone freetext articles which may happen to
 link to each other.

 Wikiversity needs all those, and more interactive features and the ability
 for users to group themselves socially and work together.


 Getting anything done that would work on the huge, well-developed,
 wildly-popular Wikipedia has always been a non-starter because it has to
 deal with 10 years of backwards-compatibility from the get-go. I think it's
 going to be a *lot* easier to get things going on those smaller projects
 which are now so poorly served that most people don't even know they exist.
 :)

 This isn't a problem specific to Wikimedia; established organizations of
 all
 sorts have a very difficult time getting new ideas over that hump from not
 good enough for our core needs to *bam* slap it everywhere. By
 concentrating on the areas that aren't served at all well by the current
 system, we 

Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-28 Thread Rob Lanphier
Hi Brion,

Thanks for laying out the problem so clearly!  I agree wholeheartedly
that we need to avoid thinking about this problem too narrowly as a
user interface issue on top of existing markup+templates.  More
inline:

On Tue, Dec 28, 2010 at 9:27 AM, Brion Vibber br...@pobox.com wrote:
 This isn't a problem specific to Wikimedia; established organizations of all
 sorts have a very difficult time getting new ideas over that hump from not
 good enough for our core needs to *bam* slap it everywhere. By
 concentrating on the areas that aren't served at all well by the current
 system, we can make much greater headway in the early stages of development;
 Clayton Christensen's The Innovator's Dilemma calls this competing
 against non-consumption.

Thankfully, we at least we're not trying to defend a business model
and cost structure that's fundamentally incompatible with making a
change here.  However, I know that's not the part that you're
highlighting, and I agree that Christensen's competing against
non-consumption concept is well worth learning about in this
context[1], as well as the concepts of disruptive innovation vs
continuous innovation[2].  As you've said, we've learned a lot in
the past decade of Wikipedia about how people use our the technology.
A new editing model that incorporates that learning will almost
certainly take a while to reach full parity in flexibility, power, and
performance.  The current editor base of English Wikipedia probably
won't be patient with any changes that result in a loss of
flexibility, power and performance.  Furthermore, many (perhaps even
most) things we'd be inclined to try would *not* have a measurable and
traceable impact on new editor acquisition and retention, which will
further diminish patience.  A mature project like Wikipedia is a hard
place to hunt for willing guinea pigs.

 For the Wikipedia case, we need to incubate the next generation of
 templating up to the point that they can actually undercut and replace
 today's wikitext templates, or I worry we're just going to be sitting around
 going gosh I wish we could replace these templates and have markup that
 works cleanly in wysiwyg forever.

 My current thoughts are to concentrate on a few areas:
 1) create a widget/gadget/template/extension/plugin model built around
 embedding blocks of information within a larger context...
 2) ...where the data and rendering can be reasonably separate... (eg, not
 having to pull tricks where you manually mix different levels of table
 templates to make the infobox work right)
 3) ...and the rendering can be as simple, or as fancy as complex, as your
 imagination and HTML5 allow.

Let me riff on what you're saying here (partly just to confirm that I
understand fully what you're saying).  It'd be very cool to have the
ability to declare a single article, or probably more helpfully, a
single revision of an article to use a completely different syntax.
There's already technically a kludgy model for that now:  wrap the
whole thing in a tag, and put the parser for the new syntax in a tag
extension.  That said, it would probably exacerbate our problems if we
allowed intermixing of old syntax and new syntax in a single revision.
 The goal should be to move articles irreversibly toward a new model,
and I don't think it'd be possible to do this without the tools to
prevent us from backsliding (for example, tools that allow editors to
convert an article from old syntax to new syntax, and also tools that
allow administrators to lock down the syntax choice for an article
without locking down the article).

Still, it's pretty alluring to think about the upgrade of syntax as an
incremental problem within an article.   We could figure out how to
solve one little corner of the data/rendering separation problem and
then move on to the next.  For example, we could start with citations
and make sure it's possible to insert citations easily and cleanly,
and to extract citations from an article without relying on scraping
the HTML to get them.  Or maybe we do that certain types of infoboxes
instead, and then gradually get more general.  We can take advantage
of the fact that we've got millions of articles to help us choose
which particular types of data will benefit from a targeted approach,
and tailor extensions to very specific data problems, and then
generalize after we sort out what works/doesn't work with a few
specific cases.

So, which problem first?

Rob

[1]  Those with an aversion to business-speak will require steely
fortitude to even click on the url, let alone actually read the
article, but it's still worth extracting the non-business points from
this article:
http://businessinnovationfactory.com/weblog/christensen_worldinnovationforum
[2]  While there is a Wikipedia article describing this[3], a better
description of the important bits is here:
http://www.mail-archive.com/haskell@haskell.org/msg18498.html
[3]  Whee, footnote to a footnote!

Re: [Foundation-l] [Wikitech-l] Big problem to solve: good WYSIWYG on WMF wikis

2010-12-28 Thread Stephanie Daugherty
On Tue, Dec 28, 2010 at 8:28 PM, Rob Lanphier ro...@wikimedia.org wrote:

 Let me riff on what you're saying here (partly just to confirm that I
 understand fully what you're saying).  It'd be very cool to have the
 ability to declare a single article, or probably more helpfully, a
 single revision of an article to use a completely different syntax.
 There's already technically a kludgy model for that now:  wrap the
 whole thing in a tag, and put the parser for the new syntax in a tag
 extension.  That said, it would probably exacerbate our problems if we
 allowed intermixing of old syntax and new syntax in a single revision.
  The goal should be to move articles irreversibly toward a new model,
 and I don't think it'd be possible to do this without the tools to
 prevent us from backsliding (for example, tools that allow editors to
 convert an article from old syntax to new syntax, and also tools that
 allow administrators to lock down the syntax choice for an article
 without locking down the article).

 I'd actually approach it from the opposite direction. Add a tag to mark the
old syntax at the same time as the new parser is ready, but before it's
installed. Set up the interface initially to mask the presence of the
oldsyntax marker, but still have it present when the text is saved. Make
sure the old parser ignores the oldsyntax tag, and then run a job to add
it everywhere. Install the new parser, which defers the delimited text to
the old one.
Bring the new UI online that is able to edit the new markup, and make sure
it's used for all new articles. Start unhiding the oldsyntax marker and
letting conversions happen on an all or nothing basis. After a few weeks
of that, throw an editfilter up that stops the addition or readdition of the
oldsyntax marker. Keep converting, and start doing more  and more rounds of
automatic conversions. Finally, when it's down to a handful of articles
still using the old parser throw an editfilter up that won't allow saving
until you convert the wikitext.

That gives us a way to do it that's not all at once, and lets us use
existing tools to keep decreasing the use of the old syntax until it dies
completely. And an administrator or other appropriately flagged user could
overrule the edit filter to go back to the old syntax on an article if it
broke.
___
foundation-l mailing list
foundation-l@lists.wikimedia.org
Unsubscribe: https://lists.wikimedia.org/mailman/listinfo/foundation-l