Yes each element can have parameter

Le lun. 9 juil. 2018 à 10:46, Vincent Massol <vinc...@massol.net> a écrit :

> Hi Marius,
>
> > On 9 Jul 2018, at 10:24, Marius Dumitru Florea <
> mariusdumitru.flo...@xwiki.com> wrote:
> >
> > On Sat, Jul 7, 2018 at 8:55 PM, Eduard Moraru <enygma2...@gmail.com>
> wrote:
> >
> >> Great to hear you're progressing on this topic, Thomas!
> >>
> >> My only note was also (as Vincent pointed out) on the link syntax. If we
> >> went with "/" instead of "." was because people were more accustomed to
> the
> >> URL syntax and also that they would be more tempted to copy the URL as a
> >> wiki link, instead of converting "/" to ".".
> >>
> >>
> >
> >> Now, why don't we apply the same logic to parameter separators (i.e.
> >> instead of ";" to use "&" and, hopefully, instead of "?" as the
> parameters
> >> separator).
> >>
> >
> > You are mixing the query string with the URL path parameters
> > https://doriantaylor.com/policy/http-url-path-parameter-syntax . The
> query
> > string is for the entire URL/path while each path segment can have its
> > parameters. In our case each entity reference from the chain can have its
> > own parameters.
>
> That’s a good rationalization :) I like it!
>
> Does Thomas’s implementation allows each entity reference in the chain to
> have parameters, such as for example:
>
> wiki:page1;a=b/page2;c=d/image.png;e
>
> ?
>
> Thanks
> -Vincent
>
> >
> >>
> >> Also, are we considering anchors as well (i.e. using "#MyHeading"
> instead
> >> of "|anchor='HMyHeading'")?
> >>
> >> Ideally, it would be awesome if we could say that copy/pasting the exact
> >> URL, right after the action part, would be supported when adding a wiki
> >> link.
> >>
> >> Slightly off-topic, but related to that last part, so it might not be a
> bad
> >> idea to talk about it:
> >> This actually gets me realising that we don't have a way to link in pure
> >> wiki syntax to a page in a specified mode/action (i.e. not only view,
> but
> >> also edit/create/delete/etc.). Sure, we have the "path:" type, but
> that's
> >> not exactly designed for that, but for whatever else we might need, and
> it
> >> require either writing, by hand, technical details or to use velocity
> (i.e.
> >> $xwiki.getURL($doc, 'mode')).
> >>
> >> Thanks,
> >> Eduard
> >>
> >> On Fri, Jun 29, 2018 at 7:20 PM, Thomas Mortagne <
> >> thomas.morta...@xwiki.com>
> >> wrote:
> >>
> >>> On Fri, Jun 29, 2018 at 3:10 PM, Vincent Massol <vinc...@massol.net>
> >>> wrote:
> >>>> Hi Thomas,
> >>>>
> >>>> Good work!
> >>>>
> >>>> See below
> >>>>
> >>>>> On 29 Jun 2018, at 14:29, Thomas Mortagne <thomas.morta...@xwiki.com
> >
> >>> wrote:
> >>>>>
> >>>>> Hi xwikiers,
> >>>>>
> >>>>> Some of us discussed that for a while and created/improved
> >>>>> http://design.xwiki.org/xwiki/bin/view/Proposal/
> >>> DeprecatingSpaceAndSpaceReference
> >>>>> and I finally started working on it.
> >>>>>
> >>>>> So here is what I pushed on master already:
> >>>>>
> >>>>> = PAGE EntityType and Page*Reference classes
> >>>>>
> >>>>> First thing first we now have a few new type in EntityType and the
> >>>>> corresponding typed Page*Reference helpers. One for each of the
> >>>>> element you can have in a page:
> >>>>> * PAGE
> >>>>> * PAGE_ATTACHMENT
> >>>>> * PAGE_OBJECT
> >>>>> * PAGE_OBJECT_PROPERTY
> >>>>> * PAGE_CLASS_PROPERTY
> >>>>>
> >>>>> = Corresponding resolvers/serializer/providers
> >>>>>
> >>>>> Each of the already existing DOCUMENT oriented resolvers and
> >>>>> serializers have their PAGE oriented implementation.
> >>>>>
> >>>>> = Conversion from DOCUMENT to PAGE world
> >>>>>
> >>>>> The entity resolvers automatically convert from/to DOCUMENT from/to
> >>>>> PAGE world references. Do yes using a resolver is the official way to
> >>>>> do that conversion.
> >>>>>
> >>>>> = Model script service
> >>>>>
> >>>>> The $services.model API also got his own new helpers to manipulate
> >> pages
> >>>>>
> >>>>> = New syntax
> >>>>>
> >>>>> Last but not least: pages reference have a very different syntax.
> >>>>>
> >>>>> To summarize it's a filesystem path syntax with support for
> >> parameters.
> >>>>>
> >>>>> Here is are a few examples:
> >>>>>
> >>>>>   wiki:page1/page2;param1=value1;param2=value2;en_US
> >>>>>
> >>>>>   wiki:page1/page2/attachment
> >>>>>
> >>>>>   ../siblingpage
> >>>>>
> >>>>> * separator: "/" between all elements except WIKI which is still ":"
> >>>>> * escaping: still "\"
> >>>>> * current, parent support: like in a filesystem you can refer to the
> >>>>> current page or parent page/wiki using "." and ".."
> >>>>> * parameters: we now have syntax to express the parameters of an
> >>>>> EntityReference. Each parameter is separated by a ";" at the end of
> >>>>> the entity name
> >>>>
> >>>> Should we use “?” as the delimiter between reference and parameters to
> >>> be closer to URI/URL syntax?
> >>>
> >>> This was my initial proposal but it was decided that ? was too common.
> >>>
> >>>>
> >>>> <brainstorming>
> >>>> Maybe we could even have a Page Reference be implemented as a
> >>> hierarchical URI? (the wiki would be the scheme, the authority would be
> >>> empty and fragments would be empty).
> >>>>
> >>>> In practice it would be hard since we need to have PageReference
> >> extends
> >>> EntityReference. But if we were starting from scratch we would maybe
> use
> >> a
> >>> URI or extend it.
> >>>>
> >>>> Sill it might make sense to at least be closer on the syntax aspect
> and
> >>> thus use “?” for the delimiter.
> >>>> </brainstorming>
> >>>>
> >>>>> * default parameter: the syntax have the concept of default parameter
> >>>>> which mean a parameter for which you don't need to indicate the name.
> >>>>> For example PAGE reference default parameter is “locale"
> >>>>
> >>>> "a parameter for which you don't need to indicate the name” —> does
> >> that
> >>> mean for example:
> >>>>
> >>>> wiki:page1/page2;en_US
> >>>
> >>> Yes as you can see in the example I gave.
> >>>
> >>>>
> >>>> ?
> >>>>
> >>>> What is the need? I’d find "wiki:page1/page2;locale=en_US” to be more
> >>> explicit.
> >>>
> >>> You can write the name if you want. The idea is that right now that's
> >>> actually our only really used parameter in reference and it's nicer to
> >>> not have to write "local=" all the time
> >>>
> >>>>
> >>>>> = TODO
> >>>>>
> >>>>> The next elements on the short term TODO list are:
> >>>>>
> >>>>> * support for page references in XWiki#getDocument (which essentially
> >>>>> means add a fallback)
> >>>>> * support for page references in various macros (generally means
> >>>>> adding a "page" parameter as alternative to the existing "reference"
> >>>>> or "document" parameter)
> >>>>
> >>>> What would be interesting now is to decide a usage strategy:
> >>>> * Should we use the new page API for new code?
> >>>> * Should we start converting old code to the page API?
> >>>
> >>> Need to finish with the TODO I listed first but for now I think the
> >>> idea is to use the page API as much as possible (but as an
> >>> experimental API so not in extensions yet) in new code and existing
> >>> code you work on that would benefit from it and improve it and
> >>> complete it along the way.
> >>>
> >>>> * Should we deprecate old Document-based APIs (and move them to legacy
> >>> modules once we don’t use them anymore on our side)?
> >>>
> >>> This is not going to happen so soon for sure, there is many places
> >>> which don't have page equivalent yet (just think about all the places
> >>> where we store document references).
> >>>
> >>>>
> >>>> It would be nice to have some doc/tutorial (maybe on
> >>> https://extensions.xwiki.org/xwiki/bin/view/Extension/Model%20Module)
> to
> >>> explain how to convert old code to new code and how to use the new
> APIs.
> >>>
> >>> Of course, will work on documentation when I'm done with the tasks I
> >>> listed. Now most of the new PAGE API is very close to the DOCUMENT
> >>> related equivalent so it won't be hard for someone used to the
> >>> reference API in general to manipulate pages (that was one of the
> >>> goals).
> >>>
> >>>>
> >>>> Thanks
> >>>> -Vincent
> >>>>
> >>>>>
> >>>>> Thanks,
> >>>>> --
> >>>>> Thomas Mortagne
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Thomas Mortagne
>
>

Reply via email to