WordPress 플러그인 – HTML Editor Syntax Highlighter

 기본 정보

 

Plugin Homepage: https://wordpress.org/plugins/html-editor-syntax-highlighter/1https://wordpress.org/plugins/html-editor-syntax-highlighter/

 

TinyMCE 편집기의 Text 모드일 때 문법 강조, VIM 키맵, 줄번호 표시 등을 지원한다. 좀 buggy 하지만, 기본 Text 모드 편집기 보다는 낫다.

주의  주의플러그인 저자는 다른 플러그인과 충돌하는 부분을 그렇게 신경쓰지 않은 것 같다. 덕분에 특정 문서를 Markdown 편집기2https://wordpress.org/plugins/wp-githuber-md/로 작성하겠다고 하는 순간 Markdown Preview 기능이 동작하지 않는다.  (당연히, CodeMirror 인스턴스가 하나 이상 동작하게 되니 그럴 수 밖에..)

 

 WP-Githuber-MD 플러그인과 충돌을 피하게 수정

마크다운 편집기를 적용하겠다고 설정한 문서인 경우 초기화를 하지 못하게 함으로써 해결.

 

diff --git a/html-editor-syntax-highlighter/html-editor-syntax-highlighter.php b/html-editor-syntax-highlighter/html-editor-syntax-highlighter.php
index 9c7617a..9d2ba01 100644
--- a/html-editor-syntax-highlighter/html-editor-syntax-highlighter.php
+++ b/html-editor-syntax-highlighter/html-editor-syntax-highlighter.php
@@ -23,6 +23,30 @@ if ( preg_match( '#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'] ) ) {
 define( 'HESH_LIBS', plugins_url( '/', __FILE__ ) );

+// START: AJ added
+
+function andrwj_get_current_post_id() {
+        global $post;
+        $post_id = null;
+        if ( ! empty( $post ) )  {
+                $post_id = $post->ID;
+        } elseif ( ! empty( $_REQUEST['post'] ) ) {
+                $post_id = $_REQUEST['post'];
+        } elseif ( ! empty( $_REQUEST['post_ID'] ) ) {
+                $post_id = $_REQUEST['post_ID'];
+        }
+        return $post_id;
+}
+
+function is_this_use_markdown() {
+  $post_id = andrwj_get_current_post_id();
+  $markdown_this_post = get_metadata('post', $post_id, '_is_githuber_markdown_enabled', true);
+  return 'yes' == $markdown_this_post;
+}
+// END: AJ added
+
 class Wp_Html_Editor_Syntax_Highlighter {

        public function __construct () {
@@ -36,6 +60,9 @@ class Wp_Html_Editor_Syntax_Highlighter {
                        !strstr($_SERVER['SCRIPT_NAME'], 'editor.php')
                ) return;

+               // AJ: Do not enable if this document use markdown editor
+               if(is_this_use_markdown()) return;
+
                add_action( 'admin_enqueue_scripts', array(&$this, 'hesh_admin_enqueue_scripts' ) );
                add_action( 'admin_footer', array(&$this, 'hesh_output_form') );
                // add_action( 'admin_notices', array(&$this, 'display_survey_notice' ));
➜  html-editor-syntax-highlighter git:(master) ✗

References   [ + ]

1. https://wordpress.org/plugins/html-editor-syntax-highlighter/
2. https://wordpress.org/plugins/wp-githuber-md/