Hi Marius, all,
On 08/05/2019 14:09, Marius Dumitru Florea wrote:
Hi Simon,
As I commented on
https://github.com/xwiki/xwiki-platform/pull/1109 I think
that most of the time you will want to use a scripting macro + HTML macro
like this:
{{velocity}}
{{html clean="false"}}
<div ...><!-- Some wrapping around the content that may depend on the macro
parameters -->
...
<!-- Output the macro content here so that it can be edited in-line in
the WYSIWYG editor. -->
...
</div>
{{/html}}
{{/velocity}}
An example of such a macro could be:
{{figure src="someImage.png"}}some description{{/figure}}
The macro code would look like this:
{{velocity}}
{{html clean="false"}}
<div class="figure">
<div class="figure-image-wrapper">
<img src="..." class="figure-image" />
</div>
<div class="figure-caption">
<!-- Output the figure caption here so that it can be edited in-line in
the WYSIWYG editor. -->
</div>
</div>
{{/html}}
{{/velocity}}
I know you can output DIVs with wiki syntax but that's not the point. The
point is that we want to use HTML for the UI and leave the wiki syntax for
the user content. So I don't think ``wikimacrocontent`` is that useful (if
it's only purpose is to help you output the ``non-generated-content`` DIV).
so as Thomas mentioned in order to allow inline editing I also perform
transformation on the generated list of blocks in
DefaultWikiMacroRenderer to remove the macro marker that can cause
troubles for inline editing. So the wikimacrocontent is used both to
insert content, and to detect where to remove the macro markers during
the transformation.
Now right now even with this solution it's not possible to inline edit
html macro because of the way it's designed: the HTML macro only create
a raw blocks that contains all the html, so I cannot easily transform it
for inline editing. IMO it requires a change in the HTML macro.
Simon
Thanks,
Marius
On Tue, May 7, 2019 at 9:21 AM Simon Urli <simon.urli(a)xwiki.com> wrote:
> Hi everyone,
>
> I'm currently working on allowing inline editing on new wikimacros.
> My first challenge right now is to cope with the problem of inserting
> the macro content and allowing to inline edit it.
>
> In order to do so, I propose to create two new dedicated macro:
> - wikimacrocontent: would allow to insert and inline edit a wiki
> macro content
> - wikimacroparameter: the same for a parameter.
>
> The idea would be to be able to write something such as:
>
> {{velocity}}
> {{wikimacrocontent/}}
> This is a content of $xcontext.macro.content.length() characters.
> {{/velocity}}
>
> So the purpose of those macros would be twofold:
> 1. to ease the insertion of macro content/parameters (no need to
> always use {{velocity}}$xcontext.macro.content{{/velocity}}
> 2. to create the dedicated metadata around the content and to be
> processed during wikimacro rendering to allow inline editing
>
> Of course those macro would be only to be used inside a wikimacro.
> I started to develop the wikimacroccontent, so I have a first working
> POC, but I'd like to know WDYT about this.
>
> I would also be really happy if you could give me some wikimacro
> examples where the inline editing would make sense, so I could use it in
> my tests.
>
> Thanks,
> Simon
> --
> Simon Urli
> Software Engineer at XWiki SAS
> simon.urli(a)xwiki.com
> More about us at
http://www.xwiki.com
>
--
Simon Urli
Software Engineer at XWiki SAS
simon.urli(a)xwiki.com
More about us at
http://www.xwiki.com