베타판과 구글맵

텍스트큐브에 대한 이전 글들에서 알 수 있듯이 텍스트큐브 정식판이 아닌 베타로 판올림한 이유는 딱 하나다. 바로 구글맵 플러그인 때문이다. 구글맵 플러그인을 이용하면 본문에 구글맵을 넣을 수 있고, 지역 로그에서는 지금까지 방문한 곳을 구글맵으로 표시할 수 있기 때문이다. 본문 내에 구글맵을 사용할 일은 많지 않지만 지역 로그가 구글맵으로 표시되는 것이 좋아서 1.7.7판으로 판올림했다.

목차

베타판과 구글맵

텍스트큐브에 대한 이전 글들에서 알 수 있듯이 정식판이 아닌 베타로 판올림한 이유는 딱 하나다. 바로 구글맵 플러그인 때문이다. 구글맵 플러그인을 이용하면 본문에 구글맵을 넣을 수 있고, 지역 로그에서는 지금까지 방문한 곳을 구글맵으로 표시할 수 있기 때문이다. 본문 내에 구글맵을 사용할 일은 많지 않지만 지역 로그가 구글맵으로 표시되는 것이 좋아서 1.7.7판으로 판올림했다[1].

그런데 베타1은 구글맵 플러그인이 정상적으로 동작하지 않았다. 그리고 베타2에서는 외부 리소스를 사용할 수 없었다. 마지막으로 1.7.7 RC1은 외부 리소스[2]로도 잘 동작했지만 결국 플러그인을 죽였다. 그 이유는 간단하다. 구글맵 플러그인에서 사용하는 스크립트가 차지하는 트래픽 전송량이 너무 크기 때문이다. 구글맵에서 사용하는 스크립트 역시 외부 서버로 빼봤다. 구글맵은 잘 표시되지만 스크립트를 외부에 둔 덕에 위치 데이타를 표시하지 못하는 문제가 있었다. 결국 구글맵 때문에 사용한 1.7.7이지만 현재는 구글맵 플러그인의 사용을 중지한 상태다.

어제 1.7.7 RC2가 출시됐다. 공지만 보면 어떤 점이 달라졌는지 모르겠지만 현재 사용하고 있는 RC1을 RC2로 바꿨다. 일단 베타2에서 RC1으로 판올림 했을 때 정도의 차이도 보이지 않았다. 아마 거의 다 똑 같은 것으로 생각했는데 댓글을 달다 보니 조금 이상한 점이 눈에 띄었다. 바로 댓글 창이었다.

구글 크롬의 문제점에서 설명한 것처럼 에서 의 댓글을 달려고 하면 댓글창이 아주 작게 표시된다. 그런데 1.7.7 RC2를 설치한 뒤에는 이 댓글 창이 정상적으로 나타난다. 혹시 의 개선점이 아니라 이 개선된 것인가 싶어서 최면님 블로그에서 확인해 보니 역시 최면님 블로그의 댓글 창은 아주 작게 나타났다. 다른 것은 확인해 보지 못했지만 텍스트큐브 1.7.7 RC2에서는 크롬과의 호환성이 증가한 것이 아닌가 하는 생각이 든다.

정상적으로 나타나는 댓글 창

크롬 사용자로서 상당히 반가운 소식이다. 크롬을 사용하면서 댓글을 달때 마다 매번 창을 키우고 달았기 때문이다.

실행한 패치

대표주소를 최신 글 주소로 전환
https://offree.net/처럼 블로그 대표주소로 입장하면 자동으로 최신 글(예: https://offree.net/entry/Glycosuria)로 분기하는 패치이다. 1.6.3과 바뀐 부분은 없었다. 따라서 텍스트큐브를 1.5.3에서 1.6.0으로 판올림를 보고 패치하면 된다.
위지윅 편집기 패치

의 위지윅 편집기는 몇 가지 문제가 있다. 먼저 TTML 포맷터의 데이타 변경 금지하기에서 설명한 것처럼 사용자가 입력한 데이타를 인위적으로 바꾼다. 위지윅편집기만 사용하는 사람은 아무런 문제가 없지만 HTML을 직접 편집하는 사람에게는 상당히 불편하다.

다만 1.7.7 RC1까지는 TTML 기본 편집기 바꾸기를 이용해도 설정을 읽어오지 못해 기본 편집기가 바뀌지 않았지만 이번 판에서는 이 문제 역시 고쳐졌다. 따라서 HTML과 위지윅을 전환하면서 HTML 코드가 바뀌는 부분만 패치하면 됐다.

  1. 좋아하는 편집기(예: Editplus)로 plugins/FM_Modern/editor.js 파일을 연다.
  2. 다음의 행들을 주석처리한다. 행 앞의 숫자는 해당 줄 번호를 의미한다.

    275: TTModernEditor.prototype.syncTextarea = function() {
    277:    //this.textarea.value = this.html2ttml(this.contentDocument.body.innerHTML);
    279: }
    1684: TTModernEditor.prototype.correctContent = function() {
    1693:   //var html = this.contentDocument.body.innerHTML;
    1695:   //var html = this.textarea.value;
    1728:   //this.contentDocument.body.innerHTML = html;
    1730:   //this.textarea.value = html;
    1727: }
    1990: TTModernEditor.prototype.toggleMode = function() {
    1995: //this.textarea.value = this.html2ttml();
    2015: }
    
트랙백 문제 패치
1.7.7 RC1으로 판올림하자 저장할 때 "저장할 수 없다"는 메시지가 출력됐다. 무슨 문제인가 확인해 보니 이 문제는 예전부터 있던 트랙백 문제였다. 텍스트큐브의 트랙백 문제에서 설명한 것처럼 이 블로그는 외부로 트랙백을 보낼 때 항상 문제가 있었다. 물론 이 패치를 적용하자 이 문제는 해결되었다.
RSS 사이드 패치

피드 구독 통계 플러그인을 이용하면 사이드바 한켠에 RSS 구독자 수를 출력할 수 있다. 다만 사이드바 형태이기 때문에 출력 메시지를 원하는 형태로 바꿀 수 없다. 이 문제를 해결하기 위해 패치했다. 패치하는 방법은 다음과 같다.

  • index.php 파일 패치
    plugins/PN_Subscription_Default/index.php 파일을 연 뒤 PN_Subscription_Sidebar 함수를 다음처럼 바꾼다.

    function PN_Subscription_Sidebar($target) {
        global $entryView;
        requireComponent("Textcube.Function.Setting");
        $count = setting::getBlogSetting('SubscriberCount',null);
    //  $text = '<div class="SubscriptionPanel" style="text-align:center">';
    //  if($count===null) $text .= '구독 정보 갱신이 필요합니다';
    //  else $text .= $count.'명이 RSS를 구독하고 있습니다.';
    //  $text .= '</center>';
    
        return $count;
    }
    
  • index.xml 파일 패치
    plugins/PN_Subscription_Default/index.php 파일을 연 뒤 '<sidebar title="SubscriptionStatistics" handler="PN_Subscription_Sidebar" />'를 다음처럼 바꾼다.

      <tag name="RSS_Count" handler="PN_Subscription_Sidebar" />
    
Footnote 플러그인 패치
텍스트큐브 1.7.7 B2로 판올림에서 설명한 것처럼 키워드 플러그인과 Footnote 플러그인의 충동 때문에 Footnote 플러그인을 패치해서 사용하고 있다. 따로 비뀐 부분은 없으므로 텍스트큐브 1.7.7 B2로 판올림에 따라 패치하거나 이전 판을 덮어 쒸우면 된다.

관련 글타래


  1. 개인적으로 구글맵 보다는 다음 지도가 더 마음에 든다. 
  2. 텍스트큐브에서 제공하는 외부 리소스가 아니라 별도의 서버에 올려서 동작시킨 것이다.