Thank you for the quick reply! Unless I'm misunderstanding, I don't believe "noparse" is the culprit for the external images. Your explanation certainly explains the behavior of [[File:Test.png]] when I had "noparse"=true, since in view-mode it would not be parsed, but via Parsoid/API:Expandtemplates it would.
The external image, however, displayed properly in view-mode regardless of whether "noparse" was true or false, since it was already valid HTML and didn't require parsing. In VE it seems to be reacting as though <img> tags are not allowed. --James On Tue, Feb 23, 2016 at 1:24 PM, Subramanya Sastry <ssas...@wikimedia.org> wrote: > On 02/23/2016 12:45 PM, James Montalvo wrote: > >> I'm trying to make images from an external source, provided by a parser >> function, work with VisualEditor and Parsoid. For a very simplified >> illustration I added the following to the bottom of LocalSettings.php >> >> >> ``` >> $wgExtensionMessagesFiles['myPfTest'] = "$IP/myPfTest.php"; >> $wgHooks['ParserFirstCallInit'][] = function( &$parser ) { >> $parser->setFunctionHook( >> 'test_func', >> function ( &$parser ) { >> >> // Output a wiki image and an external image >> $output = "[[File:Test.png|frameless|300px]]" . >> "<br />" . >> "<img src='http://goo.gl/fh3yKh' />"; >> >> return array( >> $output, >> "noparse" => true, >> "isHTML" => true, >> > > TL:DR; Parsoid does not support the noparse / isHTML options right now > which explains everything that you describe in your email. > > More specifically, Parsoid queries the mediawiki API to get expanded > wikitext for template and parser functions and as > https://www.mediawiki.org/wiki/API:Expandtemplates shows (unless I has > misread it), we don't have access to the noparse / isHTML information. So, > when Parsoid receives the text back, it treats it as wikitext and parses > it. Fixing this will require updating the expandtemplates API to return > this information to Parsoid. > > Separately and somewhat tangentially, we have implemented native extension > support in Parsoid. We are still working through our support for it by > porting some tag extensions to Parsoid. In the process, we expect it will > go through some more changes and tweaks, and we will document this fully at > that point. > > In that context, while we hadn't anticipated this use case, we could > potentially provide the equivalent of function hooks within Parsoid. These > hooks will not be attached to the parsing lifecycle since the parsing > lifecycle is different in the PHP core parser and Parsoid (or for any other > hypothetical future implementation of wikitext parsing that someone else > might implement). But, once in place, this will let you replicate this > transformation (which is what it is, in reality) in Parsoid either by > having the output of the function parsed, wrapping it as a string, or > treating it as a DOM fragment. But, I am mostly thinking aloud here at this > point. > > So, long story short, there isn't a way to do what you are trying to do in > VE/Parsoid .... yet. > > Subbu. > > _______________________________________________ > Wikitech-l mailing list > Wikitech-l@lists.wikimedia.org > https://lists.wikimedia.org/mailman/listinfo/wikitech-l _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l