Am 19.05.2014 14:21, schrieb Subramanya Sastry:
> On 05/19/2014 04:52 AM, Daniel Kinzler wrote:
>> I'm getting the impression there is a fundamental misunderstanding here.
> 
> You are correct. I completely misunderstood what you said in your last 
> response
> about expandtemplates. So, the rest of my response to your last email is
> irrelevant ... and let me reboot :-).

Glad we got that out of the way :)

> On 05/17/2014 06:14 PM, Daniel Kinzler wrote:
>> I think something like <html transclusion="{{T}}" model="whatever">...</html>
>> would work best.
> 
> I see what you are getting at here. Parsoid can treat this like a regular
> tag-extension and send it back to the api=parse endpoint for processing.
> Except
> if you provided the full expansion as the content of the html-wrapper in which
> case the extra api call can be skipped. The extra api call is not really an
> issue for occasional uses, but on pages with a lot of non-wikitext 
> transclusion
> uses, this is an extra api call for each such use. I don't have a sense for 
> how
> common this would be, so maybe that is a premature worry.

I would probably go for always including the expanded HTML for now.

> That said, for other clients, this content would be deadweight (if they are
> going to discard it and go back to the api=parse endpoint anyway or worse send
> back the entire response to the parser that is going to just discard it after
> the network transfer).

Yes. There could be an option to omit it. That makes the implementation more
complex, but it's doable.

> So, looks like there are some conflicting perf. requirements for different
> clients wrt expandtemplates response here. In that context, at least from a
> solely parsoid-centric point of view, the new api endpoint 'expand=Foo|x|y|z'
> you proposed would work well as well.

That seems the cleanest solution for the parsoid use case - however, the
implementation is complicated by how parameter substitution works. For HTML
based transclusion, it doesn't work at all at the moment - we would need tighter
integration with the preprocessor for doing that.

Basically, there would be two cases: convert expand=Foo|x|y|z to {{Foo|x|y|z}}
internally an call Parser::preprocess on that, so parameter subsitution is done
correctly; or get the HTML from Foo, and discard the parameters. We would have
to somehow know in advance which mode to use, handle the appropriate case, and
then set the Content-Type header accordingly. Pretty messy...

I think <html transclusion="{{T}}"> is the simplest and most robust solution for
now.

-- daniel


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to