On 05 Sep 2016, at 21:26, Guillaume Delhumeau
<
guillaume.delhumeau(a)xwiki.com> wrote:
2016-09-05 18:20 GMT+02:00 Vincent Massol <vincent(a)massol.net>et>:
>
>> On 05 Sep 2016, at 17:10, Paul Libbrecht <paul(a)hoplahup.net> wrote:
>>
>>
>>>> I've seen many pages be only designed to be used using
>>>>> parseGroovyFromPage. Is this something that is deprecated now?
>>> you’re probably talking about XWiki Syntax 1.0 but even that was wiki
> markup not groovy (you had to use <% …. %> ).
>>>
>> No.
>> parseGroovyFromPage loads a whole page of groovy and typically gives an
>> object. That page-content should start with
>>
>>
http://nexus.xwiki.org/nexus/service/local/repositories/
> public/archive/org/xwiki/platform/xwiki-platform-
> oldcore/7.4.2/xwiki-platform-oldcore-7.4.2-javadoc.jar/!/
> com/xpn/xwiki/api/XWiki.html#parseGroovyFromPage(java.lang.String)
>
> This is mostly deprecated. The new canonical way to have groovy in a
page
> is now to use the {{groovy}} macro, and you
can {{include}} a page
that’s
> using {{groovy}} if you need to bring it to
another page.
>
> Note that in the xwiki core dev we don’t use groovy at all since this
> requires PR and makes it very fragile and a pain for our users.
>
>> and it seems widely used from searching the repositories.
>> (e.g.
>>
https://github.com/xwiki-contrib/application-l10n/blob/
> master/src/main/resources/L10NCode/CompareTranslationFile.xml
>> which calls it on
>>
https://github.com/xwiki-contrib/application-l10n/blob/
> master/src/main/resources/L10NCode/L10NGroovy.xml)
>
> Which is a xwiki/1.0 syntax page btw. IMO it should have been plain/1.0
> instead.
>
>> Should such a source not be as a .groovy file but a .wikipage file??
>
> If you’re talking about
https://github.com/xwiki-
> contrib/application-l10n/blob/master/src/main/resources/
> L10NCode/L10NGroovy.xml it should have a plain/1.0 syntax IMO.
>
>> The <% %> of the XWik syntax 1.0 is for embedding groovy. That's
>> something else.
>>
>>>> I've also seen velocity-based content to be the core of the UI of
most
>>>>> applications and be contained
in the content of pages.
>>> That’s in vm files, not wiki pages.
>> ... and is often embedded in macros.
>
> Not sure what you mean by vm files embedded in macros. What type of
macros
are you
thinking about and what’s the relationship with wiki pages?
Let me explain with an example.
In an application, most pages contain a {{velocity}} macro in their
content, and their content is fully contained in that macro. Therefore,
even if the content is marked as xwiki/2.1, it would be more practical if
it were considered as velocity.
If the suffix of the file is ".xwiki21", there will be no editor with the
proper syntax highlighting in your computer to edit it. On the contrary,
if
the suffix of the file that represents the
content is ".vm", you will
have
an editor with the syntax highlighting and
everything...
So, even if the actual syntax is xwiki/2.1, I would prefer to have a
".vm"
file. But only if that file contains a
{{velocity}} macro at the very
beginning.
I don't know how to handle it actually.
If we end up with a ".xwiki21" file, however, I will be able to manually
tell my text editor to consider it as Velocity.
For a page holding groovy macro, it's the same. I would prefer to have a
.groovy instead of a .xwiki21. That's what Paul is saying.
Do you see the use-case now?
Thanks Guillaume. I had understood this but this is not how it works and I
don’t think it’s a good idea to change the rendering model just for the
sake of being able to edit outside of XWiki. Or at least that’s a much
bigger scope than the one we’ve been discussing in this thread.
Right now wiki pages are written in a given syntax and macros are black
boxes that can contain anything (including other syntaxes - imagine using
the {{content}} macro for example, etc).
There’s no way that you’ll be able to find an existing IDE/editor on the
market that knows this.
For example if you take the following simple example:
{{velocity}}
#set ($a = “b”)
{{/velocity}}
And you edit with an existing velocity editor, you’ll get syntax errors,
bad autocompletion and bad syntax coloring because existing velocity
editors don’t know about XWiki Syntax 2.1 (i.e. the {{velocity}} and
{{/velocity}} parts).
This is what happens in practice when you use an extension like "It's all
text" (
) and
that is not a big deal. This how I work every day.
The only solution is to use an XWiki Syntax 2.1 editor and, depending on
the macros used, that knows how to delegate syntax highlighting and
autocompletion to a specific editor for that content (velocity in this
example). But you won’t have this tool in all existing IDEs and it’s a huge
work to write that. FTR this is a bit what we started with XEclipse back
then and we’re now more going towards a Web IDE.
If Paul (and your) point is to say that we should develop by writing the
following then I wouldn't agree since that makes it very unnatural and hard
to follow IMO:
{{velocity}}
#parseVelocityFromPage(‘some.other.page’)
{{/velocity}}
(And in some.other.page: #set ($a = “b”))
No. The Paul's initial proposal was about introducing an @textInclude() in
the XML file that could include any file. The advantage is that the
developer can use whatever suffix she wants.
@textInclude('myContent.vm')
@textInclude('myContent.groovy')
etc...
The drawback is that you cannot have it when you export the page (no
bijection).
So I’m not sure where you’re going with this. There’s no good way unless
you completely rewrite XWiki’s rendering system (and its syntaxes) and I’m
sure you’ll agree this is a bit too much ;)
I was just trying to explain this to Paul in my previous answer.
Maybe you have an idea I haven’t imagined?
Thanks
-Vincent
Thanks,
>
>> So, in your proposal, any macro code whose biggest part of the code
>> would be between {{velocity}} and {{/velocity}} (as suggested in most
>> tutorials) would not be living in a separate file but within a
wiki-page
>> file. Right?
>
> It’s not my proposal! It’s the way XWiki works right now :)
>
> Thanks
> -Vincent
>
> PS: When you say macro, you need to be more specific. We have at least 4
> or 5 types of macros (wiki macros, rendering macros in java, velocity
> macros, radeox macros).
>
>> Paul
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Guillaume Delhumeau (guillaume.delhumeau(a)xwiki.com)
Research & Development Engineer at XWiki SAS
Committer on the