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.

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

Reply via email to