On Mon, Sep 17, 2018 at 9:52 AM Vincent Massol <vinc...@massol.net> wrote:
>
> Hi Simon and all,
>
> After thinking about this (and not being to sleep one night for some hours 
> about it ;)), I have the following problems with the proposal so far:
> * It doesn’t address macro content types that are NOT in the current 
> document’s syntax.
> * The API is awkward since the proposal is to return a List<Block> java Type 
> for "macros having content written in the current document’s syntax”, while 
> other macros containing markup would need to invent their own types.
>
> Needs:
> =====
>
> There are 2 use cases for this:
>
> A) Dynamic macro content type.
>
> Just giving 2 existing examples:
>
> Example 1: {{content syntax=“markdown/1.2”}}….{{/content}}
> Example 2: {{jira source=“jql | list”…}}…{{/jira}}
>
> The content types depends on some macro parameter values in each case.
>
> B) Fixed content type
>
> Example: Someone contributes a new macro in xwiki-contrib named {{markdown}} 
> and that contains a fixed markup content in syntax “markdown/1.2”.
>
> Issues
> =====
>
> The current proposal says that macro not having content written in the 
> current document’s syntax should implement their own content Type.
>
> However there are several problems with that:
> * It gives an uneven API: it’s not normal to not return List<Block> type for 
> any macro having markup that can be parsed into a List<Block>.
> * It means the WYSIWYG editor won’t be able to support the {{content}} or 
> {{markdown}} macros I mentioned above which is a pity since technically it 
> can support them when there are parsers/renderers for the syntax. Thomas 
> mentioned (during a conf call) that we could simply add support for those 
> special types in the WYSIWYG by hardcoding them. However that won’t work 
> since my example with the {{markdown}} macros is about a contrib macro that 
> doesn’t exist ATM so we cannot hardcode its support in the WYSIWYG.

No this is not what I said. I said that the WYSIWYG can support
several types and I gave an example of Type which would cover the
content macro use case: a type which extends Block or List<Block> and
for which the WYSIWYG knows the syntax come from a parameter named
"syntax". Many unknown macros can use the same type, nothing do with
the macro with id "content". An idea I did not mentioned during the
meeting is that we could even decide the parameter "syntax" with type
"Syntax" is a standard way to overwrite current syntax for any macro
which expose it in which case this behavior would simply be associated
to List<Block> Type (and taken into account in MacroContentParser).

As for jira macro I did not really mentioned it since it was not
really a priority for the first version which is targeting more macros
containing wiki content we can edit directly in the WYSIWYG but for me
it would be a dedicated type and associated editor.

>
> Proposal
> =======
>
> Thus I really believe that we need to do 2 things:
> 1) Have the macro content’s getType() return the java type that can represent 
> the content, i.e. List<Block> whenever the content contains markup that can 
> be parsed into a List<Block> by one syntax parser. And have List<Block> 
> simply means markup content.
> 2) Have the WYSIWYG be able to edit inline macros having markup content, i.e. 
> that returns a List<Block> type, when they are written in a supported syntax 
> (a supported syntax is simply a syntax for which there’s a parser and a 
> renderer). Thus we need to have Macros be able to provide the Syntax to the 
> WYSIWYG.
>
> There are several ways to implement 2), one simple way is to introduce a 
> SyntaxDescriptor component role:
>
> @Role
> public interface SyntaxDescriptor
> {
>     Syntax getSyntax(Map<String, Object> macroParameters);
> }
>
> And then have the WYSIWYG get a component instance of an implementation of 
> SyntaxDescriptor with a hint being the macro id for example. And if none is 
> found, default to a CurrentDocumentSyntaxDescriptor() that would return the 
> current document’s syntax. Or something like this.
>
> This also means that in the WYSIWYG macro dialog box, when a parameter is 
> modified, it would call SyntaxDescriptor#getSyntax() to get the Syntax and if 
> that syntax doesn’t have a parser/renderer, it would display the content in 
> the dialog box, as plain text.
>
> Planning
> =======
>
> We could imagine implementing this in 2 steps if we think it’s too much for 1 
> step. Step 1 would mean only supporting macro content in the current doc’s 
> syntax (as in the current proposal prior to this one in this email). Step 2 
> would mean breaking backward-compatibility (but getType() is @Unstable so we 
> would have over 1 year to do it) and implementing support for all cases.
>
> WDYT?
>
> Thanks
> -Vincent
>
> > On 14 Sep 2018, at 16:39, Simon Urli <simon.u...@xwiki.com> wrote:
> >
> > Hi everyone,
> >
> > I just edited the design page of the proposal after the meeting we had 
> > yesterday with Vincent, Thomas and Marius: 
> > https://design.xwiki.org/xwiki/bin/view/Main/MacroInlineEditingContent/
> >
> > To quickly sum up the main parts are:
> >  - we allow to specify a type in the ContentDescriptor of the macro
> >  - we define a new MetaDataBlock for Java macro to specify which part of 
> > the content is editable
> >  - we document a new attribute for GroupBlock/FormatBlock to specify which 
> > part of the content is editable in WikiMacro
> >
> > Thanks again for your feedbacks!
> > Simon
> >
> > On 9/12/18 6:46 PM, Thomas Mortagne wrote:
> >> On Wed, Sep 12, 2018 at 5:56 PM Simon Urli <simon.u...@xwiki.com> wrote:
> >>>
> >>>
> >>>
> >>> On 9/12/18 5:45 PM, Thomas Mortagne wrote:
> >>>> Yeah I know, too many answer mails...
> >>>>
> >>>> On Wed, Sep 12, 2018 at 5:28 PM Thomas Mortagne
> >>>> <thomas.morta...@xwiki.com> wrote:
> >>>>>
> >>>>> 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.
> >>>>
> >>>> There is several things I don't like about Syntax:
> >>>>
> >>>> * You assume that the macro content is a XWiki Rendering content
> >>>> (since that's what Syntax is for) with potential parser/renderer but
> >>>> that's not the case for many (if not most) macros
> >>>
> >>> No, the idea is to have something extensible: a macro can add a syntax,
> >>> and on the future, specify its own custom code to be used as an editor.
> >>> Without specifying any parser/renderer then.
> >> The org.xwiki.rendering.syntax.Syntax class "Represents a wiki syntax
> >> that the user can use to enter wiki content" according to its
> >> definition. If what you want is not related to a content that can be
> >> represented as XDOM then you should introduce a new type, it will also
> >> avoid conflicting with existing Syntax which may define something very
> >> different that what a Macro would like to express.
> >>>
> >>>> * Type is more consistent with parameters and there is no reason to
> >>>> have two systems for the same need: describe what kind of data and
> >>>> have a reusable set of displayers for each type of data. Also it's not
> >>>> just about macro parameters we use the same system in other places
> >>>> (Filter input/output parameters for example).
> >>>
> >>> Could you elaborate how do you see things with type? Should we create a
> >>> different type for each macro content then? And we would have to create
> >>> the proper types for plain/html/wiki content?
> >> Here are the types you need right now:
> >> * plain/undefined content: java.lang.String (the default since that's
> >> the current behavior)
> >> * wiki content for which the syntax depends on the location of the
> >> macro: as I said in a previous mail we have existing types for this
> >> already, Block, List<XDOM> or CompositeBlock (possibly XDOM for macros
> >> which can only be used in a standalone context if we want to express
> >> in the type even if it duplicates Macro#supportsInlineMode()) express
> >> it well already. But since we also need "not transformed wiki content"
> >> for inline editing in the WYSIWYG we could introduce a new type to
> >> express that, something like "FinalCompositeBlock extends
> >> CompositeBlock" or some other name (we could arbitrary decide that
> >> CompositeBlock means final but I don't think it would be clear enough)
> >> Here are a few example for the future:
> >> * template (as defined by
> >> https://extensions.xwiki.org/xwiki/bin/view/Extension/Template+Module#HContent):
> >> org.xwiki.template.TemplateContent
> >> * html: I can't think of anything clean enough so probably a new type yes
> >> * velocity, groovy, python, etc.: new types but we can still make
> >> generic code life a bit easier (at least on Java side) with something
> >> like a new "VelocityContent" type annotated with
> >> @ScriptContent("velocity") for example
> >> * specific wiki content (I don't think we have the use case right now
> >> but never knows): same logic as for script contents I guess
> >> * <many other types used in the parameters already>
> >> All that could be expressed with names instead of Java types but the
> >> point of using Types is that:
> >> * well that's made to define type of stuff after all :)
> >> * more importantly we can use the same system for macro parameters,
> >> filter properties and content (and other stuff in the future) to find
> >> out a suitable displayer/editor. For example some macro have the need
> >> to take wiki content as parameter too.
> >>>
> >>>> * Even if macro content was only about rendering content syntax is not
> >>>> very well suited to differentiate between content transformed by the
> >>>> macro (takes wiki content as input data but produce something which
> >>>> may have nothing to do with it) and content not transformed by the
> >>>> macro (just parse/render the content with stuff around it) since it
> >>>> has nothing to do with the actual content syntax.
> >>>
> >>> As I said, the idea is to allow user to be able to specify their own
> >>> editor.
> >>>>
> >>>>>>
> >>>>>>>
> >>>>>>>>
> >>>>>>>> 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
> >>>>
> >>>>
> >>>>
> >>>
> >>> --
> >>> 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