On Wed, Sep 12, 2018 at 6:30 PM, Thomas Mortagne <[email protected]>
wrote:

> On Wed, Sep 12, 2018 at 5:27 PM Marius Dumitru Florea
> <[email protected]> wrote:
> >
> > On Wed, Sep 12, 2018 at 6:20 PM, Thomas Mortagne <
> [email protected]>
> > wrote:
> >
> > > On Wed, Sep 12, 2018 at 5:16 PM Marius Dumitru Florea
> > > <[email protected]> wrote:
> > > >
> > > > On Wed, Sep 12, 2018 at 6:02 PM, Marius Dumitru Florea <
> > > > [email protected]> wrote:
> > > >
> > > > > On Wed, Sep 12, 2018 at 5:18 PM, Simon Urli <[email protected]>
> > > wrote:
> > > > >
> > > > >> Hello everyone,
> > > > >>
> > > > >> as a follow up of this proposal and the discussion we had, I just
> > > created
> > > > >> the following design proposal:
> > > > >>
> > > > >> https://design.xwiki.org/xwiki/bin/view/Main/
> > > MacroInlineEditingContent/
> > > > >>
> > > > >> Let me know what you think about it.
> > > > >>
> > > > >
> > > > > Regarding the Content Descriptor, which Syntax(es) will activate
> the
> > > > > inline editing of the macro content? I'm asking because the Syntax
> of
> > > the
> > > > > content is not the most important part. The most important part
> for the
> > > > > WYSIWYG editor is to know if the macro code outputs the macro
> content
> > > > > without transforming it. Without this it cannot enable inline
> editing.
> > > If
> > > > > the macro output is rendered without modifications then the WYSIWYG
> > > editor
> > > > > can enable inline editing but it needs to know in which Syntax to
> > > convert
> > > > > the HTML produced while editing inline. So to summarize:
> > > > >
> > > > > * First the WYSIWYG editor needs to know if the macro content is
> > > rendered
> > > > > without modifications
> > > > > * then the WYSIWYG editor needs to know the target Syntax to which
> to
> > > > > convert the HTML
> > > > >
> > > >
> > > > Let me try to make this even more clear.  The WYSIWYG editor needs to
> > > take
> > > > the following decisions:
> > > >
> > > > [OPTIONAL] "Should I display the macro content (plain) text area on
> the
> > > > Macro Edit dialog?"
> > > >
> > > > If the macro content can be edited inline within the editing area
> then it
> > > > probably make sense to not display the text area on the Macro Edit
> > > dialog.
> > > > But for this we need some *static* information in the macro
> descriptor to
> > > > indicate that the macro content can be edited inline.
> > > >
> > > > [MANDATORY] "Should I enable inline editing for this macro?"
> > > >
> > > > The WYSIWYG editor can scan the macro output DOM (HTML) for some
> special
> > > > markers (attributes) to determine if the macro content can be edited
> > > inline
> > > >
> > >
> > >
> > > > [MANDATORY] "To which syntax do I need to convert the HTML from the
> macro
> > > > content?"
> > > >
> > > > When saving the page the editor needs to convert the macro content
> from
> > > > HTML to some syntax. The target syntax needs to be specified either
> in
> > > the
> > > > macro output DOM (HTML) using some attributes or in the macro
> descriptor.
> > >
> > >
> >
> > > That's only if the syntax is different from the current syntax (which
> > > is not the case for most inline edited macros containing wiki
> > > content).
> > >
> >
> > Exactly! The macros we target with this feature use the current syntax
> (of
> > the page where the macro is called) for their content.
>
>

> My point is that the WYSIWYG know the syntax already you don't need
> each macro to provide it as metadata.
>

I fully agree with you.


>
> >
> >
> > >
> > > >
> > > > Hope this helps,
> > > > Marius
> > > >
> > > >
> > > > >
> > > > >
> > > > >>
> > > > >> Thanks,
> > > > >> Simon
> > > > >>
> > > > >>
> > > > >> On 9/10/18 6:46 PM, Thomas Mortagne wrote:
> > > > >>
> > > > >>> On Mon, Sep 10, 2018 at 3:47 PM Simon Urli <[email protected]
> >
> > > wrote:
> > > > >>>
> > > > >>>>
> > > > >>>>
> > > > >>>>
> > > > >>>> On 9/10/18 3:24 PM, Marius Dumitru Florea wrote:
> > > > >>>>
> > > > >>>>> On Mon, Sep 10, 2018 at 4:07 PM, Thomas Mortagne <
> > > > >>>>> [email protected]>
> > > > >>>>> wrote:
> > > > >>>>>
> > > > >>>>> On Mon, Sep 10, 2018 at 2:56 PM Marius Dumitru Florea
> > > > >>>>>> <[email protected]> wrote:
> > > > >>>>>>
> > > > >>>>>>>
> > > > >>>>>>> On Mon, Sep 10, 2018 at 3:42 PM, Thomas Mortagne <
> > > > >>>>>>>
> > > > >>>>>> [email protected]>
> > > > >>>>>>
> > > > >>>>>>> wrote:
> > > > >>>>>>>
> > > > >>>>>>> On Mon, Sep 10, 2018 at 2:13 PM Simon Urli <
> [email protected]
> > > >
> > > > >>>>>>>>
> > > > >>>>>>> wrote:
> > > > >>>>>>
> > > > >>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> On 9/10/18 1:35 PM, Vincent Massol wrote:
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Hi Simon,
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> On 10 Sep 2018, at 13:05, Simon Urli <
> [email protected]>
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> wrote:
> > > > >>>>>>
> > > > >>>>>>>
> > > > >>>>>>>>>>> Hi everyone,
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>> I'm working on the roadmap issues related to the inline
> > > edition
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> with
> > > > >>>>>>
> > > > >>>>>>> WYSIWYG editor for macro content and macro parameters.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Cool :) We've been waiting for a long time about this
> > > feature! See
> > > > >>>>>>>>>>
> > > > >>>>>>>>> below.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> The first step is to add a flag to allow user specify
> that a
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> content
> > > > >>>>>>
> > > > >>>>>>> or a parameter can be edited inline with the WYSIWYG editor.
> > > > >>>>>>>>
> > > > >>>>>>>>> The second step is to allow the CKEditor to detect where
> the
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> content
> > > > >>>>>>
> > > > >>>>>>> and/or parameters should be edited.
> > > > >>>>>>>>
> > > > >>>>>>>>> Let's take the exampe of a simple macro without any
> parameter,
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> which
> > > > >>>>>>
> > > > >>>>>>> currently produces this code:
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>>> <div class="box infomessage">
> > > > >>>>>>>>>>>     <div class="title">
> > > > >>>>>>>>>>>       <span class="icon info"></span>
> > > > >>>>>>>>>>>       some title
> > > > >>>>>>>>>>>     </div>
> > > > >>>>>>>>>>>     Some content
> > > > >>>>>>>>>>> </div>
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>> We propose (me & Marius) to ask users to add a wrapper
> with a
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> specific class around the content to tell the editor it
> should
> > > > >>>>>>>> only
> > > > >>>>>>>>
> > > > >>>>>>> allow
> > > > >>>>>>
> > > > >>>>>>> editing this content, e.g.:
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>>> <div class="box infomessage">
> > > > >>>>>>>>>>>     <div class="title">
> > > > >>>>>>>>>>>       <span class="icon info"></span>
> > > > >>>>>>>>>>>       some title
> > > > >>>>>>>>>>>     </div>
> > > > >>>>>>>>>>>     <span class="editable-content">Some content</span>
> > > > >>>>>>>>>>> </div>
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> By “users”, I guess you mean macro developers?
> > > > >>>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> Here yes it's the macro developer. I'll try to be more
> > > specific in
> > > > >>>>>>>>> my
> > > > >>>>>>>>> answers.
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> So if I understand you well, you’re not planning to add a
> > > > >>>>>>>>>>
> > > > >>>>>>>>> getter/setters to the Macro descriptor, to tell that the
> macro
> > > > >>>>>>>> content
> > > > >>>>>>>> contains wiki markup and that it should be editable in the
> > > WYSIWYG
> > > > >>>>>>>>
> > > > >>>>>>> editor?
> > > > >>>>>>
> > > > >>>>>>>
> > > > >>>>>>>>> Actually we're planning to add the getter/setter **and**
> the
> > > > >>>>>>>>> specific
> > > > >>>>>>>>> markup for the editor. The getter/setter (which I called
> the
> > > flag
> > > > >>>>>>>>> above), is here to specify that the macro will contain
> inline
> > > > >>>>>>>>>
> > > > >>>>>>>> editable
> > > > >>>>>>
> > > > >>>>>>> content in WYSIWYG. The markup will specify *where* exactly
> is
> > > this
> > > > >>>>>>>>> content, and what shouldn't be changed.
> > > > >>>>>>>>>
> > > > >>>>>>>>
> > > > >>>>>>>> About that "flag", you seems to plan a boolean but I feel
> > > something
> > > > >>>>>>>> more generic that we want to introduce since a long time
> would
> > > be
> > > > >>>>>>>> better: make the content descriptor return a type like
> > > parameters
> > > > >>>>>>>> descriptors do. The kind of inline editing you have in mind
> > > right
> > > > >>>>>>>> now
> > > > >>>>>>>> would then be associated to the type List<Block> for
> example (or
> > > > >>>>>>>> CompositeBlock
> > > > >>>>>>>>
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>> or some another type if we want to differentiate
> > > > >>>>>>>> between wiki content modified by the macro and wiki content
> not
> > > > >>>>>>>> modified by the macro
> > > > >>>>>>>>
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>> We need this differentiation.
> > > > >>>>>>>
> > > > >>>>>>
> > > > >>>>>> Sure but as I said you can differentiate using types too and
> we
> > > need
> > > > >>>>>> content types for other use cases so it's a good occasion.
> Also
> > > when
> > > > >>>>>> you use the type you can differentiate between wiki content
> and
> > > HTML
> > > > >>>>>> content and support inline editing of HTML macro in the same
> > > system
> > > > >>>>>> for example.
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>> I'm not against your proposal. It's a bit more work though, to
> > > define
> > > > >>>>> the
> > > > >>>>> types, but I suppose it's worth the effort.
> > > > >>>>>
> > > > >>>>
> > > > >>> It's not much more work, just need to define one type for the
> current
> > > > >>> use case ("final" wiki content). Other types can come later when
> > > > >>> implementing support for them.
> > > > >>>
> > > > >>>
> > > > >>>>>
> > > > >>>>>
> > > > >>>> So if I follow the idea would be to use this type defined for
> the
> > > > >>>> content descriptor to specify the behaviour of the editor: e.g.
> if
> > > the
> > > > >>>> content descriptor is defined as an html content, then the html
> > > editor
> > > > >>>> would be used, if it's defined as an inline content, then it
> would
> > > be an
> > > > >>>> editor with limitation to clean html and line returns, etc.
> > > > >>>>
> > > > >>>> Still it does not change the need to specify which elements of
> the
> > > > >>>> content are editable, right?
> > > > >>>>
> > > > >>>
> > > > >>> Sure but that's the "second step". I only talked about replacing
> the
> > > > >>> flag you defined as the first step by a more generic type :)
> > > > >>>
> > > > >>>
> > > > >>>> Moreover I've the feeling that the parameters are already not
> > > supporting
> > > > >>>> the different types for edition (e.g. a boolean parameter only
> > > shows a
> > > > >>>> text input). So wouldn't it be a priority before putting a type
> on
> > > the
> > > > >>>> content descriptor itself?
> > > > >>>>
> > > > >>>
> > > > >>> The WYSIWYG does miss a lot of displayers and we need work on
> that
> > > for
> > > > >>> sure but:
> > > > >>> * you get a checkbox for boolean properties so the type is taken
> into
> > > > >>> account
> > > > >>> * having more specific displayers is not a requirement for
> working on
> > > > >>> inline wiki editing
> > > > >>>
> > > > >>>
> > > > >>>>
> > > > >>>>>>
> > > > >>>>>>>
> > > > >>>>>>> ). The other types would be used in other use
> > > > >>>>>>>> cases (syntax coloring for scripts, json editor, etc.). The
> > > idea of
> > > > >>>>>>>> using Java type is to be consistent with parameters and
> reuse
> > > > >>>>>>>> existing
> > > > >>>>>>>> the displayers in the macro modal window for example but it
> can
> > > > >>>>>>>> cover
> > > > >>>>>>>> this need too.
> > > > >>>>>>>>
> > > > >>>>>>>>
> > > > >>>>>>>>> I guess that if the flag is set and the markup is not
> present,
> > > then
> > > > >>>>>>>>>
> > > > >>>>>>>> the
> > > > >>>>>>
> > > > >>>>>>> entire content is considered as editable.
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Is that because you want to be finer-grained and have
> macro
> > > > >>>>>>>>>> content
> > > > >>>>>>>>>>
> > > > >>>>>>>>> which can have parts editable with the WYSIWYG while having
> > > other
> > > > >>>>>>>>
> > > > >>>>>>> parts of
> > > > >>>>>>
> > > > >>>>>>> the content not editable (for example)?
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> It's exactly why yes. On my example, the macro user won't
> be
> > > able
> > > > >>>>>>>>> to
> > > > >>>>>>>>> change the content of the title.
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Technically Macros don’t generate HTML, only XDOM. So in
> > > order to
> > > > >>>>>>>>>>
> > > > >>>>>>>>> make
> > > > >>>>>>
> > > > >>>>>>> it easier for java macro developers, I’d suggest to introduce
> > > some
> > > > >>>>>>>> new
> > > > >>>>>>>> wrapping Block to indicate this information. We might need
> > > something
> > > > >>>>>>>> similar for wiki macros too, to make it more reusable and
> typed.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> I'd need to look more on wrapping block but after a quick
> > > overlook
> > > > >>>>>>>>> it
> > > > >>>>>>>>> seems to make sense indeed.
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> About parameters, our idea was to define a new metadata
> > > attribute
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> and
> > > > >>>>>>
> > > > >>>>>>> to ask users to use it for specifying the content is
> editable,
> > > such
> > > > >>>>>>>> as
> > > > >>>>>>>>
> > > > >>>>>>> for
> > > > >>>>>>
> > > > >>>>>>> a parameter named foo:
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>>> <span class="editable-content" data-parameter="foo">my
> foo
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> parameter
> > > > >>>>>>
> > > > >>>>>>> value</span>
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> What’s your idea for editing parameters requiring WYSIWYG?
> > > How do
> > > > >>>>>>>>>>
> > > > >>>>>>>>> you
> > > > >>>>>>
> > > > >>>>>>> present them in the UI? Do you have any mockup?
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> I don't have any mockup right now. FTM I see it like this:
> > > > >>>>>>>>>     - when creating the macro, the current text input are
> > > improved
> > > > >>>>>>>>> with
> > > > >>>>>>>>> the CKEditor for the editable content/parameters
> > > > >>>>>>>>>     - when editing the macro, you stay in the main editor
> UI,
> > > but
> > > > >>>>>>>>> the
> > > > >>>>>>>>> content is now editable instead of opening back the macro
> UI
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> However I don't know right now how the editor would manage
> > > cases
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> such
> > > > >>>>>>
> > > > >>>>>>> as:
> > > > >>>>>>>>
> > > > >>>>>>>>> <span class="editable-content">Some content with <span
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> class="editable-content" data-parameter="myparameter">a
> > > > >>>>>>>> parameter</span></span>
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>>> So:
> > > > >>>>>>>>>>>     1. Do you agree on the usage of a class named
> > > > >>>>>>>>>>> "editable-content"
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> which would be used as a tag to allow inline edition?
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Small details, there’s already the “contenteditable”
> notion
> > > that
> > > > >>>>>>>>>>
> > > > >>>>>>>>> exists (see https://developer.mozilla.org/
> > > > >>>>>>>> fr/docs/Web/HTML/Attributs_
> > > > >>>>>>>> universels/contenteditable) so “editable-content” is quite
> > > close.
> > > > >>>>>>>> Maybe
> > > > >>>>>>>> we should have something more xwiki-specific? or more
> > > > >>>>>>>> WYSIWYG-specific?
> > > > >>>>>>>> Like “editable-wysiwyg” or “wysiwyg-editable”.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> I'm open to suggestion on this one. "wysiwyg-editable"
> could be
> > > > >>>>>>>>> nice.
> > > > >>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> My main comment is what I put above: how do we make it
> easy
> > > for
> > > > >>>>>>>>>>
> > > > >>>>>>>>> macro
> > > > >>>>>>
> > > > >>>>>>> developers to specify this information.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>>     2. WDYT about using a data-parameter and this class
> for
> > > inline
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>> editing of parameters?
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Before answering that part, I would need to understand
> what’s
> > > the
> > > > >>>>>>>>>>
> > > > >>>>>>>>> proposal in term of UI.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> Note that the main use case is for content but it’s nice
> if
> > > you
> > > > >>>>>>>>>> can
> > > > >>>>>>>>>>
> > > > >>>>>>>>> also support parameters. Now, accepting markup in
> parameters
> > > is not
> > > > >>>>>>>>
> > > > >>>>>>> really
> > > > >>>>>>
> > > > >>>>>>> a great use case IMO and is usually a design issue so I’m not
> > > sure we
> > > > >>>>>>>> should spend that much time in supporting that. WDYT?
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> We just discuss about macro parameters with Ludovic and
> > > apparently
> > > > >>>>>>>>>
> > > > >>>>>>>> they
> > > > >>>>>>
> > > > >>>>>>> cannot support line returns, so we might have to use a custom
> > > editor
> > > > >>>>>>>>>
> > > > >>>>>>>> for
> > > > >>>>>>
> > > > >>>>>>> those.
> > > > >>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> The only macro parameter I know ATM that supports markup
> is
> > > the
> > > > >>>>>>>>>>
> > > > >>>>>>>>> “title” param of the {{box}} macro and I think it’s badly
> > > designed.
> > > > >>>>>>>>
> > > > >>>>>>> Note:
> > > > >>>>>>
> > > > >>>>>>> if you check the recent {{figure}} macro, I implemented this
> > > need by
> > > > >>>>>>>>
> > > > >>>>>>> having
> > > > >>>>>>
> > > > >>>>>>> a {{figureCaption}} nested macro.
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>>> BTW this raises a question, will you support WYSIWYG
> editing
> > > of
> > > > >>>>>>>>>>
> > > > >>>>>>>>> nested
> > > > >>>>>>
> > > > >>>>>>> macros?
> > > > >>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>>>> Not for the moment.
> > > > >>>>>>>>>
> > > > >>>>>>>>> Simon
> > > > >>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> Thanks
> > > > >>>>>>>>>> -Vincent
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> Thanks,
> > > > >>>>>>>>>>> Simon
> > > > >>>>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> [snip]
> > > > >>>>>>>>>>
> > > > >>>>>>>>>>
> > > > >>>>>>>>> --
> > > > >>>>>>>>> Simon Urli
> > > > >>>>>>>>> Software Engineer at XWiki SAS
> > > > >>>>>>>>> [email protected]
> > > > >>>>>>>>> More about us at http://www.xwiki.com
> > > > >>>>>>>>>
> > > > >>>>>>>>
> > > > >>>>>>>>
> > > > >>>>>>>>
> > > > >>>>>>>> --
> > > > >>>>>>>> Thomas Mortagne
> > > > >>>>>>>>
> > > > >>>>>>>>
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>> --
> > > > >>>>>> Thomas Mortagne
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>> --
> > > > >>>> Simon Urli
> > > > >>>> Software Engineer at XWiki SAS
> > > > >>>> [email protected]
> > > > >>>> More about us at http://www.xwiki.com
> > > > >>>>
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >> --
> > > > >> Simon Urli
> > > > >> Software Engineer at XWiki SAS
> > > > >> [email protected]
> > > > >> More about us at http://www.xwiki.com
> > > > >>
> > > > >
> > > > >
> > >
> > >
> > >
> > > --
> > > Thomas Mortagne
> > >
>
>
>
> --
> Thomas Mortagne
>

Reply via email to