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.


>
> >
> > 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
>

Reply via email to