On Wed, Sep 12, 2018 at 5:07 PM Simon Urli <simon.u...@xwiki.com> wrote:
>
>
>
> On 9/12/18 5:02 PM, Marius Dumitru Florea wrote:
> > On Wed, Sep 12, 2018 at 5:18 PM, Simon Urli <simon.u...@xwiki.com> 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
> >
>
> The WYSIWYG editor will know if it's editable if it exists a parser and
> a renderer for this syntax.

You are mixing different things here:
* a macro which can be edited with A WYSIWYG for example in the model macro form
* a macro content which IS NOT TRANSFORMED BY THE MACRO and so can be
edited inline

> So the target syntax is the given macro syntax.
>
> >
> >>
> >> Thanks,
> >> Simon
> >>
> >>
> >> On 9/10/18 6:46 PM, Thomas Mortagne wrote:
> >>
> >>> On Mon, Sep 10, 2018 at 3:47 PM Simon Urli <simon.u...@xwiki.com> wrote:
> >>>
> >>>>
> >>>>
> >>>>
> >>>> On 9/10/18 3:24 PM, Marius Dumitru Florea wrote:
> >>>>
> >>>>> On Mon, Sep 10, 2018 at 4:07 PM, Thomas Mortagne <
> >>>>> thomas.morta...@xwiki.com>
> >>>>> wrote:
> >>>>>
> >>>>> On Mon, Sep 10, 2018 at 2:56 PM Marius Dumitru Florea
> >>>>>> <mariusdumitru.flo...@xwiki.com> wrote:
> >>>>>>
> >>>>>>>
> >>>>>>> On Mon, Sep 10, 2018 at 3:42 PM, Thomas Mortagne <
> >>>>>>>
> >>>>>> thomas.morta...@xwiki.com>
> >>>>>>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>> On Mon, Sep 10, 2018 at 2:13 PM Simon Urli <simon.u...@xwiki.com>
> >>>>>>>>
> >>>>>>> wrote:
> >>>>>>
> >>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On 9/10/18 1:35 PM, Vincent Massol wrote:
> >>>>>>>>>
> >>>>>>>>>> Hi Simon,
> >>>>>>>>>>
> >>>>>>>>>> On 10 Sep 2018, at 13:05, Simon Urli <simon.u...@xwiki.com>
> >>>>>>>>>>>
> >>>>>>>>>> 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
> >>>>>>>>> simon.u...@xwiki.com
> >>>>>>>>> More about us at http://www.xwiki.com
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Thomas Mortagne
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Thomas Mortagne
> >>>>>>
> >>>>>>
> >>>> --
> >>>> Simon Urli
> >>>> Software Engineer at XWiki SAS
> >>>> simon.u...@xwiki.com
> >>>> More about us at http://www.xwiki.com
> >>>>
> >>>
> >>>
> >>>
> >>>
> >> --
> >> Simon Urli
> >> Software Engineer at XWiki SAS
> >> simon.u...@xwiki.com
> >> More about us at http://www.xwiki.com
> >>
>
> --
> Simon Urli
> Software Engineer at XWiki SAS
> simon.u...@xwiki.com
> More about us at http://www.xwiki.com



-- 
Thomas Mortagne

Reply via email to