The MinervaTemplate getHistoryLink method generates data and creates a new instance of TemplateParser to render a Mustache template called history. The data generation should be moved to SkinMinerva::getTemplateData
[x] MinervaTemplate::getHistoryLinkHtml should not exist
[x] SkinMinerva::getTemplateData should set a field `data-history-link` that can be used inside minerva.mustache to be passed into history.mustache
[x] The new method should be consolidated with this code in SkinMinerva::prepareHeaderAndFooter
```
if ( $this->canUseWikiPage() && $this->getWikiPage()->exists() ) {
$tpl->set( 'historyLink', $this->getHistoryLink( $title ) );
}
```
[] SkinMinerva should not create another instance of TemplateParser <<< this should be completely removed in T293815
# Developer notes
The history link function:
```
protected function getHistoryLinkHtml( $data ) {
$action = Action::getActionName( RequestContext::getMain() );
if ( isset( $data['historyLink'] ) && $action === 'view' ) {
$args = [
'historyIconClass' => MinervaUI::iconClass(
'history-base20', 'mw-ui-icon-small', '', 'wikimedia'
),
'arrowIconClass' => MinervaUI::iconClass(
'expand-gray', 'small',
'mf-mw-ui-icon-rotate-anti-clockwise indicator',
// Uses icon in MobileFrontend so must be prefixed mf.
// Without MobileFrontend it will not render.
// Rather than maintain 2 versions (and variants) of the arrow icon which can conflict
// with each othe and bloat CSS, we'll
// use the MobileFrontend one. Long term when T177432 and T160690 are resolved
// we should be able to use one icon definition and break this dependency.
'mf'
),
] + $data['historyLink'];
$templateParser = new TemplateParser( __DIR__ );
return $templateParser->processTemplate( 'history', $args );
}
return '';
```
== QA steps
- Navigate to the bottom of an article page using the minerva skin on beta cluster i.e.
- https://en.m.wikipedia.beta.wmflabs.org/wiki/Albert_Einstein
- https://en.wikipedia.beta.wmflabs.org/wiki/Albert_Einstein?useskin=minerva
- Note that the history link in the footer looks the same as production
- https://en.m.wikipedia.org/wiki/Albert_Einstein
{F34723021}