Page MenuHomePhabricator

D8596.diff
No OneTemporary

D8596.diff

diff --git a/src/markup/engine/__tests__/remarkup/important.txt b/src/markup/engine/__tests__/remarkup/important.txt
--- a/src/markup/engine/__tests__/remarkup/important.txt
+++ b/src/markup/engine/__tests__/remarkup/important.txt
@@ -2,7 +2,7 @@
(IMPORTANT) interesting **stuff**
~~~~~~~~~~
-<div class="remarkup-important">IMPORTANT: interesting <strong>stuff</strong></div>
+<div class="remarkup-important"><span class="remarkup-note-word">IMPORTANT:</span> interesting <strong>stuff</strong></div>
diff --git a/src/markup/engine/__tests__/remarkup/note-multiline.txt b/src/markup/engine/__tests__/remarkup/note-multiline.txt
--- a/src/markup/engine/__tests__/remarkup/note-multiline.txt
+++ b/src/markup/engine/__tests__/remarkup/note-multiline.txt
@@ -3,7 +3,7 @@
b
~~~~~~~~~~
-<div class="remarkup-note">NOTE: a
+<div class="remarkup-note"><span class="remarkup-note-word">NOTE:</span> a
a</div>
<p>b</p>
diff --git a/src/markup/engine/__tests__/remarkup/note.txt b/src/markup/engine/__tests__/remarkup/note.txt
--- a/src/markup/engine/__tests__/remarkup/note.txt
+++ b/src/markup/engine/__tests__/remarkup/note.txt
@@ -2,7 +2,7 @@
(NOTE) interesting **stuff**
~~~~~~~~~~
-<div class="remarkup-note">NOTE: interesting <strong>stuff</strong></div>
+<div class="remarkup-note"><span class="remarkup-note-word">NOTE:</span> interesting <strong>stuff</strong></div>
diff --git a/src/markup/engine/__tests__/remarkup/warning.txt b/src/markup/engine/__tests__/remarkup/warning.txt
--- a/src/markup/engine/__tests__/remarkup/warning.txt
+++ b/src/markup/engine/__tests__/remarkup/warning.txt
@@ -2,7 +2,7 @@
(WARNING) interesting **stuff**
~~~~~~~~~~
-<div class="remarkup-warning">WARNING: interesting <strong>stuff</strong></div>
+<div class="remarkup-warning"><span class="remarkup-note-word">WARNING:</span> interesting <strong>stuff</strong></div>
diff --git a/src/markup/engine/remarkup/blockrule/PhutilRemarkupEngineRemarkupNoteBlockRule.php b/src/markup/engine/remarkup/blockrule/PhutilRemarkupEngineRemarkupNoteBlockRule.php
--- a/src/markup/engine/remarkup/blockrule/PhutilRemarkupEngineRemarkupNoteBlockRule.php
+++ b/src/markup/engine/remarkup/blockrule/PhutilRemarkupEngineRemarkupNoteBlockRule.php
@@ -29,40 +29,41 @@
public function markupText($text) {
$matches = array();
preg_match($this->getRegEx(), $text, $matches);
- switch ($matches[0]) {
- case 'NOTE: ':
- $class_suffix = 'note';
- $truncate = 0;
- break;
- case '(NOTE) ':
- $class_suffix = 'note';
- $truncate = 7;
- break;
- case 'IMPORTANT: ':
- $class_suffix = 'important';
- $truncate = 0;
- break;
- case '(IMPORTANT) ':
- $class_suffix = 'important';
- $truncate = 12;
- break;
- case 'WARNING: ':
- $class_suffix = 'warning';
- $truncate = 0;
- break;
- case '(WARNING) ':
- $class_suffix = 'warning';
- $truncate = 10;
- break;
+
+ if (idx($matches, 'showword')) {
+ $word = $matches['showword'];
+ $show = true;
+ } else {
+ $word = $matches['hideword'];
+ $show = false;
}
+
+ $class_suffix = phutil_utf8_strtolower($word);
+
+ // This is the "(IMPORTANT)" or "NOTE:" part.
+ $word_part = rtrim(substr($text, 0, strlen($matches[0])));
+
+ // This is the actual text.
+ $text_part = substr($text, strlen($matches[0]));
+ $text_part = $this->applyRules(rtrim($text_part));
+
$text_mode = $this->getEngine()->isTextMode();
- if ($truncate && !$text_mode) {
- $text = substr($text, $truncate);
+ if ($text_mode) {
+ return $word_part.' '.$text_part;
}
- $text = $this->applyRules(rtrim($text));
- if ($text_mode) {
- return $text;
+ if ($show) {
+ $content = array(
+ phutil_tag(
+ 'span',
+ array(
+ 'class' => 'remarkup-note-word',
+ ),
+ $word_part),
+ ' ',
+ $text_part);
+ } else {
+ $content = $text_part;
}
return phutil_tag(
@@ -70,11 +71,26 @@
array(
'class' => 'remarkup-'.$class_suffix
),
- $text);
+ $content);
}
private function getRegEx() {
- return "/^(NOTE: |IMPORTANT: |WARNING: |".
- "\(NOTE\) |\(WARNING\) |\(IMPORTANT\) )/";
+ $words = array(
+ 'NOTE',
+ 'IMPORTANT',
+ 'WARNING',
+ );
+
+ foreach ($words as $k => $word) {
+ $words[$k] = preg_quote($word, '/');
+ }
+ $words = implode('|', $words);
+
+ return
+ '/^(?:'.
+ '(?:\((?P<hideword>'.$words.')\))'.
+ '|'.
+ '(?:(?P<showword>'.$words.'):))\s*'.
+ '/';
}
}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 15, 7:04 PM (6 d, 14 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7447016
Default Alt Text
D8596.diff (4 KB)

Event Timeline