diff --git a/functions.php b/functions.php
index 7c7ef87..76c5290 100644
--- a/functions.php
+++ b/functions.php
@@ -1655,4 +1655,58 @@ if (akina_option('sakura_widget')) {
));
}
}
+
+// 评论Markdown解析
+function markdown_parser($incoming_comment) {
+ global $wpdb,$comment_markdown_content;
+ $re = '/```([\s\S]*?)```[\s]*|`{1,2}[^`](.*?)`{1,2}|\[.*?\]\([\s\S]*?\)/m';
+ if(preg_replace($re,'temp',$incoming_comment['comment_content']) != strip_tags(preg_replace($re,'temp',$incoming_comment['comment_content']))){
+ siren_ajax_comment_err('评论只支持Markdown啦,见谅╮( ̄▽ ̄)╭
Markdown Supported while Forbidden');
+ return( $incoming_comment );
+ }
+ $myCustomer = $wpdb->get_row("SELECT * FROM wp_comments");
+ //Add column if not present.
+ if (!isset($myCustomer->say_state)) {
+ $wpdb->query("ALTER TABLE wp_comments ADD comment_markdown text");
+ }
+ $comment_markdown_content = $incoming_comment['comment_content'];
+ include 'inc/Parsedown.php';
+ $Parsedown = new Parsedown();
+ $incoming_comment['comment_content'] = $Parsedown->text($incoming_comment['comment_content']);
+ return $incoming_comment;
+}
+add_filter('preprocess_comment' , 'markdown_parser');
+
+//保存Markdown评论
+function save_markdown_comment($comment_ID, $comment_approved) {
+ global $wpdb,$comment_markdown_content;
+ $comment = get_comment($comment_ID);
+ $comment_content = $comment_markdown_content;
+ //store markdow content
+ $wpdb->query("UPDATE wp_comments SET comment_markdown='".$comment_content."' WHERE comment_ID='".$comment_ID."';");
+}
+add_action('comment_post', 'save_markdown_comment', 10, 2);
+
+//打开评论HTML标签限制
+function allow_more_tag_in_comment() {
+ global $allowedtags;
+ $allowedtags['pre'] = array('class'=>array());
+ $allowedtags['code'] = array('class'=>array());
+ $allowedtags['h1'] = array('class'=>array());
+ $allowedtags['h2'] = array('class'=>array());
+ $allowedtags['h3'] = array('class'=>array());
+ $allowedtags['h4'] = array('class'=>array());
+ $allowedtags['h5'] = array('class'=>array());
+ $allowedtags['ul'] = array('class'=>array());
+ $allowedtags['ol'] = array('class'=>array());
+ $allowedtags['li'] = array('class'=>array());
+ $allowedtags['td'] = array('class'=>array());
+ $allowedtags['th'] = array('class'=>array());
+ $allowedtags['tr'] = array('class'=>array());
+ $allowedtags['table'] = array('class'=>array());
+ $allowedtags['thead'] = array('class'=>array());
+ $allowedtags['tbody'] = array('class'=>array());
+ $allowedtags['span'] = array('class'=>array());
+}
+add_action('pre_comment_on_post', 'allow_more_tag_in_comment');
//code end
diff --git a/inc/Parsedown.php b/inc/Parsedown.php
index 87d612a..a34b44f 100644
--- a/inc/Parsedown.php
+++ b/inc/Parsedown.php
@@ -17,7 +17,7 @@ class Parsedown
{
# ~
- const version = '1.7.1';
+ const version = '1.7.3';
# ~
@@ -429,7 +429,21 @@ class Parsedown
if (isset($matches[1]))
{
- $class = 'language-'.$matches[1];
+ /**
+ * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes
+ * Every HTML element may have a class attribute specified.
+ * The attribute, if specified, must have a value that is a set
+ * of space-separated tokens representing the various classes
+ * that the element belongs to.
+ * [...]
+ * The space characters, for the purposes of this specification,
+ * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab),
+ * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and
+ * U+000D CARRIAGE RETURN (CR).
+ */
+ $language = substr($matches[1], 0, strcspn($matches[1], " \t\n\f\r"));
+
+ $class = 'language-'.$language;
$Element['attributes'] = array(
'class' => $class,
diff --git a/inc/login.css b/inc/login.css
index 0d02126..4412e1c 100644
--- a/inc/login.css
+++ b/inc/login.css
@@ -66,9 +66,10 @@ color: #676767 !important}
background: none;
box-shadow: none;
margin-top: 10px;
+ border: none;
}
-#login form p {
+#login form p,#login form .user-pass-wrap {
font-family:"Microsoft Yahei";
position:relative;
padding:0px 35px;
@@ -116,6 +117,18 @@ color: #676767 !important}
border: 1px solid #FF5656;
}
+.login .button.wp-hide-pw{
+ height: 46px;
+ outline: none;
+ box-shadow: none;
+ border: none;
+ opacity: .8;
+}
+
+.login .button.wp-hide-pw .dashicons{
+ right: 1rem;
+}
+
#login .form-send .bot {
width:100%;
border-bottom:1px solid #ccc;