diff --git a/public_html/media/css/core.css b/public_html/media/css/core.css
index 5a9b0de9..ba757b38 100644
--- a/public_html/media/css/core.css
+++ b/public_html/media/css/core.css
@@ -320,3 +320,21 @@ pre.debug {
text-align: left;
color: black;
}
+
+.spoiler:before,
+.spoiler:after {
+ color: gray;
+}
+.spoiler:before {
+ content: '[ ';
+}
+.spoiler:after {
+ content: ' ]';
+}
+.spoiler {
+ background: #eee;
+ color: #eee;
+}
+.spoiler:hover {
+ color: black;
+}
diff --git a/src/CustomMarkdown.php b/src/CustomMarkdown.php
new file mode 100644
index 00000000..997172d4
--- /dev/null
+++ b/src/CustomMarkdown.php
@@ -0,0 +1,42 @@
+no_markup = true;
+ $this->span_gamut += ['doSpoilers' => 71];
+ $this->span_gamut += ['doPosts' => 8];
+ $this->span_gamut += ['doTags' => 9];
+ parent::__construct();
+ }
+
+ protected function doHardBreaks($text)
+ {
+ return preg_replace_callback('/\n/', array(&$this, '_doHardBreaks_callback'), $text);
+ }
+
+ protected function doSpoilers($text)
+ {
+ if (is_array($text))
+ {
+ $text = $this->hashPart('') . $text[1] . $this->hashPart('');
+ }
+ return preg_replace_callback('{\[spoiler\]((?:[^\[]|\[(?!\/?spoiler\])|(?R))+)\[\/spoiler\]}is', [__CLASS__, 'doSpoilers'], $text);
+ }
+
+ protected function doPosts($text)
+ {
+ return preg_replace_callback('/@(\d+)/', function($x)
+ {
+ return $this->hashPart('') . $x[0] . $this->hashPart('');
+ }, $text);
+ }
+
+ protected function doTags($text)
+ {
+ return preg_replace_callback('/#([a-zA-Z0-9_-]+)/', function($x)
+ {
+ return $this->hashPart('') . $x[0] . $this->hashPart('');
+ }, $text);
+ }
+}
diff --git a/src/Helpers/TextHelper.php b/src/Helpers/TextHelper.php
index fc2b02b8..cedff63a 100644
--- a/src/Helpers/TextHelper.php
+++ b/src/Helpers/TextHelper.php
@@ -144,6 +144,7 @@ class TextHelper
public static function parseMarkdown($text)
{
- return \Michelf\Markdown::defaultTransform($text);
+ #$text = strip_tags($text);
+ return CustomMarkdown::defaultTransform($text);
}
}