Thanks, this sounds more like what I was hoping to try. I think I understand how I would use that after retrieving a page's contents. What would I use after modifying the DOM to convert it back to wikitext?
On Mon, Aug 14, 2017 at 7:17 PM, Thomas PT <[email protected]> wrote: > An other option that does not relies on anything else than MediaWiki core > is to use the MediaWiki preprocessor. You do > $wgParser->getPreprocessor->preprocessToDom( > 'my wikitext' ); and you get a DOM document that contains the template call > formatted in an XML tree. It will looks like: > > <template> > <title>Beer</title> > <part> > <name>Name</name> > <value>Rocket Fuel</value> > </part> > <part> > ... > </part> > ... > </template> > > Cheers, > > Thomas > > > Le 14 août 2017 à 16:47, Daren Welsh <[email protected]> a écrit : > > > > Thanks for the responses. I was hoping there would be some php function > in > > MW core or some API feature that I could use like from [0]. I'm having a > > hard time understanding how I would use either of these suggestions. > > > > [0] https://doc.wikimedia.org/mediawiki-core/master/php/ > > > > On Wed, Aug 9, 2017 at 3:02 PM, Gergo Tisza <[email protected]> > wrote: > > > >> mwparserfromhell ( https://github.com/earwig/mwparserfromhell ) is also > >> pretty good at this kind of thing. > >> > >> On Wed, Aug 9, 2017 at 6:30 PM, Subramanya Sastry < > [email protected]> > >> wrote: > >> > >>> Take a look at Parsoid's output spec and the Parsoid API (as exposed > >>> through the REST API). > >>> > >>> See https://www.mediawiki.org/wiki/Specs/HTML/1.4.0#Template_markup > and > >>> https://en.wikipedia.org/api/rest_v1/#!/Transforms/post_tran > >>> sform_html_to_wikitext_title_revision > >>> > >>> So, you fetch the HTML, edit data-mw blob, and save it back. > >>> > >>> Subbu. > >>> > >>> > >>> > >>> On 08/09/2017 10:22 AM, Daren Welsh wrote: > >>> > >>>> I'm working on a server-side script that will periodically revise wiki > >>>> pages that all use the same template. Is there a function I can use > that > >>>> will parse a page and then find and replace template arguments with > >> values > >>>> I determine within my script? > >>>> > >>>> For example, let's say I have Template:Beer like the following: > >>>> > >>>> {{Beer > >>>> |Name= > >>>> |Brewery= > >>>> |Style= > >>>> |ABV= > >>>> |IBU= > >>>> }} > >>>> > >>>> So if I had a page Rocket Fuel: > >>>> > >>>> {{Beer > >>>> |Name=Rocket Fuel > >>>> |Brewery=8th Wonder > >>>> |Style=Vietnamese Coffee Porter > >>>> |ABV=4.6 > >>>> |IBU=18 > >>>> }} > >>>> > >>>> Let's say my script "discovered" an error in one of the arguments and > >>>> needed to update the page. For example, let's say the IBU was actually > >> 28. > >>>> Is there a function that will find and replace the value for IBU in > the > >>>> page? > >>>> > >>>> I'm currently using regex, but I'm wondering if there's a more > >> trustworthy > >>>> method. > >>>> > >>>> Thanks, > >>>> > >>>> Daren > >>>> _______________________________________________ > >>>> Wikitech-l mailing list > >>>> [email protected] > >>>> https://lists.wikimedia.org/mailman/listinfo/wikitech-l > >>>> > >>> > >>> > >>> _______________________________________________ > >>> Wikitech-l mailing list > >>> [email protected] > >>> https://lists.wikimedia.org/mailman/listinfo/wikitech-l > >>> > >> _______________________________________________ > >> Wikitech-l mailing list > >> [email protected] > >> https://lists.wikimedia.org/mailman/listinfo/wikitech-l > >> > > > > > > > > -- > > __________________ > > http://enterprisemediawiki.org > > http://mixcloud.com/darenwelsh > > _______________________________________________ > > Wikitech-l mailing list > > [email protected] > > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > > > _______________________________________________ > Wikitech-l mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > -- __________________ http://enterprisemediawiki.org http://mixcloud.com/darenwelsh _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
