On Mon, Sep 17, 2018 at 9:52 AM Vincent Massol <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
> >>>> <[email protected]> wrote:
> >>>>>
> >>>>> On Wed, Sep 12, 2018 at 5:07 PM Simon Urli <[email protected]> wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On 9/12/18 5:02 PM, Marius Dumitru Florea 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
> >>>>>>>
> >>>>>>
> >>>>>> 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 <[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
> >>>>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Simon Urli
> >>>>>> Software Engineer at XWiki SAS
> >>>>>> [email protected]
> >>>>>> More about us at http://www.xwiki.com
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> 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