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.

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

Reply via email to