1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-27 07:50:57 +01:00

Added custom remarkup.

Summary:
Vendor specific markups are now possible.

Test Plan:
Tested with the Facebook specific tasks markup.

Reviewed By: jungejason
Reviewers: epriestley, jungejason
CC: aran, jungejason
Differential Revision: 349
This commit is contained in:
tuomaspelkonen 2011-05-26 13:13:36 -07:00
parent 19e10b2b5d
commit f076956f32
3 changed files with 27 additions and 0 deletions

View file

@ -334,6 +334,13 @@ return array(
'differential.revision-custom-detail-renderer' => null, 'differential.revision-custom-detail-renderer' => null,
// Array for custom remarkup rules. The array should have a list of
// class names of classes that extend PhutilRemarkupRule
'differential.custom-remarkup-rules' => null,
// Array for custom remarkup block rules. The array should have a list of
// class names of classes that extend PhutilRemarkupEngineBlockRule
'differential.custom-remarkup-block-rules' => null,
// -- Maniphest ------------------------------------------------------------- // // -- Maniphest ------------------------------------------------------------- //

View file

@ -48,6 +48,15 @@ class DifferentialMarkupEngineFactory {
$rules[] = new PhutilRemarkupRuleBold(); $rules[] = new PhutilRemarkupRuleBold();
$rules[] = new PhutilRemarkupRuleItalic(); $rules[] = new PhutilRemarkupRuleItalic();
$custom_rule_classes =
PhabricatorEnv::getEnvConfig('differential.custom-remarkup-rules');
if ($custom_rule_classes) {
foreach ($custom_rule_classes as $custom_rule_class) {
PhutilSymbolLoader::loadClass($custom_rule_class);
$rules[] = newv($custom_rule_class, array());
}
}
$blocks = array(); $blocks = array();
$blocks[] = new PhutilRemarkupEngineRemarkupQuotesBlockRule(); $blocks[] = new PhutilRemarkupEngineRemarkupQuotesBlockRule();
$blocks[] = new PhutilRemarkupEngineRemarkupHeaderBlockRule(); $blocks[] = new PhutilRemarkupEngineRemarkupHeaderBlockRule();
@ -55,6 +64,15 @@ class DifferentialMarkupEngineFactory {
$blocks[] = new PhutilRemarkupEngineRemarkupCodeBlockRule(); $blocks[] = new PhutilRemarkupEngineRemarkupCodeBlockRule();
$blocks[] = new PhutilRemarkupEngineRemarkupDefaultBlockRule(); $blocks[] = new PhutilRemarkupEngineRemarkupDefaultBlockRule();
$custom_block_rule_classes =
PhabricatorEnv::getEnvConfig('differential.custom-remarkup-block-rules');
if ($custom_block_rule_classes) {
foreach ($custom_block_rule_classes as $custom_block_rule_class) {
PhutilSymbolLoader::loadClass($custom_block_rule_class);
$blocks[] = newv($custom_block_rule_class, array());
}
}
foreach ($blocks as $block) { foreach ($blocks as $block) {
if (!($block instanceof PhutilRemarkupEngineRemarkupCodeBlockRule)) { if (!($block instanceof PhutilRemarkupEngineRemarkupCodeBlockRule)) {
$block->setMarkupRules($rules); $block->setMarkupRules($rules);

View file

@ -26,6 +26,8 @@ phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/escaperemarku
phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/hyperlink'); phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/hyperlink');
phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/italics'); phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/italics');
phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/monospace'); phutil_require_module('phutil', 'markup/engine/remarkup/markuprule/monospace');
phutil_require_module('phutil', 'symbols');
phutil_require_module('phutil', 'utils');
phutil_require_source('DifferentialMarkupEngineFactory.php'); phutil_require_source('DifferentialMarkupEngineFactory.php');