mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-16 03:42:41 +01:00
4b43667086
Summary: Fixes T9273. Remarkup has reasonably good fundamentals but the API is a giant pain to work with. Provide a `PHUIRemarkupView` to make it easier. This object is way simpler to use by default. It's not currently as powerful, but we can expand the power level later by adding more setters. Eventually I'd expect to replace `PhabricatorRemarkupInterface` and `PhabricatorMarkupOneOff` with this, but no rush on those. I converted a few callsites as a sanity check that it works OK. Test Plan: - Viewed remarkup in Passphrase. - Viewed remarkup in Badges. - Viewed a Conduit method. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9273 Differential Revision: https://secure.phabricator.com/D14289
87 lines
1.9 KiB
PHP
87 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* DEPRECATED. Use @{class:PHUIRemarkupView}.
|
|
*/
|
|
final class PhabricatorMarkupOneOff
|
|
extends Phobject
|
|
implements PhabricatorMarkupInterface {
|
|
|
|
private $content;
|
|
private $preserveLinebreaks;
|
|
private $engineRuleset;
|
|
private $disableCache;
|
|
|
|
public function setEngineRuleset($engine_ruleset) {
|
|
$this->engineRuleset = $engine_ruleset;
|
|
return $this;
|
|
}
|
|
|
|
public function getEngineRuleset() {
|
|
return $this->engineRuleset;
|
|
}
|
|
|
|
public function setPreserveLinebreaks($preserve_linebreaks) {
|
|
$this->preserveLinebreaks = $preserve_linebreaks;
|
|
return $this;
|
|
}
|
|
|
|
public function setContent($content) {
|
|
$this->content = $content;
|
|
return $this;
|
|
}
|
|
|
|
public function getContent() {
|
|
return $this->content;
|
|
}
|
|
|
|
public function setDisableCache($disable_cache) {
|
|
$this->disableCache = $disable_cache;
|
|
return $this;
|
|
}
|
|
|
|
public function getDisableCache() {
|
|
return $this->disableCache;
|
|
}
|
|
|
|
public function getMarkupFieldKey($field) {
|
|
return PhabricatorHash::digestForIndex($this->getContent()).':oneoff';
|
|
}
|
|
|
|
public function newMarkupEngine($field) {
|
|
if ($this->engineRuleset) {
|
|
return PhabricatorMarkupEngine::getEngine($this->engineRuleset);
|
|
} else if ($this->preserveLinebreaks) {
|
|
return PhabricatorMarkupEngine::getEngine();
|
|
} else {
|
|
return PhabricatorMarkupEngine::getEngine('nolinebreaks');
|
|
}
|
|
}
|
|
|
|
public function getMarkupText($field) {
|
|
return $this->getContent();
|
|
}
|
|
|
|
public function didMarkupText(
|
|
$field,
|
|
$output,
|
|
PhutilMarkupEngine $engine) {
|
|
|
|
require_celerity_resource('phabricator-remarkup-css');
|
|
return phutil_tag(
|
|
'div',
|
|
array(
|
|
'class' => 'phabricator-remarkup',
|
|
),
|
|
$output);
|
|
}
|
|
|
|
public function shouldUseMarkupCache($field) {
|
|
if ($this->getDisableCache()) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
}
|