mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-28 09:42:41 +01:00
102 lines
1.9 KiB
PHP
102 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @task markup Markup Interface
|
|
*
|
|
* @group phriction
|
|
*/
|
|
final class PhrictionContent extends PhrictionDAO
|
|
implements PhabricatorMarkupInterface {
|
|
|
|
const MARKUP_FIELD_BODY = 'markup:body';
|
|
|
|
protected $id;
|
|
protected $documentID;
|
|
protected $version;
|
|
protected $authorPHID;
|
|
|
|
protected $title;
|
|
protected $slug;
|
|
protected $content;
|
|
protected $description;
|
|
|
|
protected $changeType;
|
|
protected $changeRef;
|
|
|
|
public function renderContent(PhabricatorUser $viewer) {
|
|
return PhabricatorMarkupEngine::renderOneObject(
|
|
$this,
|
|
self::MARKUP_FIELD_BODY,
|
|
$viewer);
|
|
}
|
|
|
|
|
|
/* -( Markup Interface )--------------------------------------------------- */
|
|
|
|
|
|
/**
|
|
* @task markup
|
|
*/
|
|
public function getMarkupFieldKey($field) {
|
|
if ($this->shouldUseMarkupCache($field)) {
|
|
$id = $this->getID();
|
|
} else {
|
|
$id = PhabricatorHash::digest($this->getMarkupText($field));
|
|
}
|
|
return "phriction:{$field}:{$id}";
|
|
}
|
|
|
|
|
|
/**
|
|
* @task markup
|
|
*/
|
|
public function getMarkupText($field) {
|
|
return $this->getContent();
|
|
}
|
|
|
|
|
|
/**
|
|
* @task markup
|
|
*/
|
|
public function newMarkupEngine($field) {
|
|
return PhabricatorMarkupEngine::newPhrictionMarkupEngine();
|
|
}
|
|
|
|
|
|
/**
|
|
* @task markup
|
|
*/
|
|
public function didMarkupText(
|
|
$field,
|
|
$output,
|
|
PhutilMarkupEngine $engine) {
|
|
|
|
$toc = PhutilRemarkupEngineRemarkupHeaderBlockRule::renderTableOfContents(
|
|
$engine);
|
|
|
|
if ($toc) {
|
|
$toc = hsprintf(
|
|
'<div class="phabricator-remarkup-toc">'.
|
|
'<div class="phabricator-remarkup-toc-header">%s</div>'.
|
|
'%s'.
|
|
'</div>',
|
|
pht('Table of Contents'),
|
|
$toc);
|
|
}
|
|
|
|
return hsprintf(
|
|
'<div class="phabricator-remarkup">%s%s</div>',
|
|
$toc,
|
|
$output);
|
|
}
|
|
|
|
|
|
/**
|
|
* @task markup
|
|
*/
|
|
public function shouldUseMarkupCache($field) {
|
|
return (bool)$this->getID();
|
|
}
|
|
|
|
|
|
}
|