2022-09-04 09:00:14 +00:00
|
|
|
<?php
|
|
|
|
namespace MediaWiki\Extension\VisualEditor;
|
|
|
|
|
|
|
|
use Language;
|
|
|
|
use MediaWiki\Page\PageIdentity;
|
|
|
|
use MediaWiki\Revision\RevisionRecord;
|
|
|
|
|
|
|
|
interface ParsoidClient {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Request page HTML
|
|
|
|
*
|
|
|
|
* @param RevisionRecord $revision Page revision
|
2022-09-26 17:46:37 +00:00
|
|
|
* @param Language|null $targetLanguage Desired output language
|
2022-09-04 09:00:14 +00:00
|
|
|
*
|
|
|
|
* @return array An array containing the keys 'body', 'headers', and optionally 'error'
|
2022-10-20 22:46:45 +00:00
|
|
|
* @phan-return array{body:string,headers:array<string,string>,error?:non-empty-array}
|
2022-09-04 09:00:14 +00:00
|
|
|
*/
|
2022-09-26 17:46:37 +00:00
|
|
|
public function getPageHtml( RevisionRecord $revision, ?Language $targetLanguage ): array;
|
2022-09-04 09:00:14 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Transform HTML to wikitext via Parsoid
|
|
|
|
*
|
|
|
|
* @param PageIdentity $page The page the content belongs to
|
2022-09-26 17:46:37 +00:00
|
|
|
* @param Language $targetLanguage The desired output language
|
2022-09-04 09:00:14 +00:00
|
|
|
* @param string $html The HTML of the page to be transformed
|
|
|
|
* @param ?int $oldid What oldid revision, if any, to base the request from (default: `null`)
|
|
|
|
* @param ?string $etag The ETag to set in the HTTP request header
|
|
|
|
*
|
|
|
|
* @return array An array containing the keys 'body', 'headers', and optionally 'error'
|
2022-10-20 22:46:45 +00:00
|
|
|
* @phan-return array{body:string,headers:array<string,string>,error?:non-empty-array}
|
2022-09-04 09:00:14 +00:00
|
|
|
*/
|
|
|
|
public function transformHTML(
|
|
|
|
PageIdentity $page,
|
2022-09-26 17:46:37 +00:00
|
|
|
Language $targetLanguage,
|
2022-09-04 09:00:14 +00:00
|
|
|
string $html,
|
|
|
|
?int $oldid,
|
|
|
|
?string $etag
|
|
|
|
): array;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Transform wikitext to HTML via Parsoid.
|
|
|
|
*
|
|
|
|
* @param PageIdentity $page The page the content belongs to
|
2022-09-26 17:46:37 +00:00
|
|
|
* @param Language $targetLanguage The desired output language
|
2022-09-04 09:00:14 +00:00
|
|
|
* @param string $wikitext The wikitext fragment to parse
|
|
|
|
* @param bool $bodyOnly Whether to provide only the contents of the `<body>` tag
|
|
|
|
* @param ?int $oldid What oldid revision, if any, to base the request from (default: `null`)
|
|
|
|
* @param bool $stash Whether to stash the result in the server-side cache (default: `false`)
|
|
|
|
*
|
|
|
|
* @return array An array containing the keys 'body', 'headers', and optionally 'error'
|
2022-10-20 22:46:45 +00:00
|
|
|
* @phan-return array{body:string,headers:array<string,string>,error?:non-empty-array}
|
2022-09-04 09:00:14 +00:00
|
|
|
*/
|
|
|
|
public function transformWikitext(
|
|
|
|
PageIdentity $page,
|
2022-09-26 17:46:37 +00:00
|
|
|
Language $targetLanguage,
|
2022-09-04 09:00:14 +00:00
|
|
|
string $wikitext,
|
|
|
|
bool $bodyOnly,
|
|
|
|
?int $oldid,
|
|
|
|
bool $stash
|
|
|
|
): array;
|
|
|
|
}
|