[Emacs] org2blogでWordPressのタグを取得すると文字化けする件の修正

Emacsのorg2blogでは記事を書く際にカテゴリ名やタグ名を M-x org2blog/wp-complete-category で補完することができます。しかし日本語タグ名の補完では表示される候補が文字化けの様な形になるため修正しました。

変更箇所は、オリジナルではタグの取得を"slug"で行っていた部分を"name"で取得するようにしています。タグスラッグ -> タグ名ですね。変更はこの部分だけのわずか1箇所でありますがアドバイスで上書きしています。

<span style="color: #8c8c8c;">(</span><span style="color: #96CBFE;">defun</span> <span style="color: #FFD2A7;">org2blog/wp-login:override</span> <span style="color: #93a8c6;">(</span><span style="color: #CFCB90;">&amp;optional</span> blog-name<span style="color: #93a8c6;">)</span>
  <span style="color: #8AE234;">"Logs into the blog. Initializes the internal data structures."</span>
  <span style="color: #93a8c6;">(</span><span style="color: #96CBFE;">interactive</span><span style="color: #93a8c6;">)</span>
  <span style="color: #93a8c6;">(</span><span style="color: #96CBFE;">if</span> <span style="color: #b0b1a3;">(</span>not org2blog/wp-blog-alist<span style="color: #b0b1a3;">)</span>
      <span style="color: #b0b1a3;">(</span><span style="color: #ff982d; font-weight: bold;">error</span> <span style="color: #8AE234;">"Set `</span><span style="color: #99CC99;">org2blog/wp-blog-alist</span><span style="color: #8AE234;">' to be able to use org2blog."</span><span style="color: #b0b1a3;">)</span><span style="color: #93a8c6;">)</span>
  <span style="color: #93a8c6;">(</span><span style="color: #96CBFE;">let</span> <span style="color: #b0b1a3;">()</span>
    <span style="color: #b0b1a3;">(</span><span style="color: #96CBFE;">setq</span> org2blog/wp-blog-name
          <span style="color: #97b098;">(</span><span style="color: #96CBFE;">or</span>
           <span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">Use the provided name
</span>           blog-name
           <span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">OR Use the only entry in alist
</span>           <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">and</span> <span style="color: #b0b0b3;">(</span>equal <span style="color: #90a890;">(</span>length org2blog/wp-blog-alist<span style="color: #90a890;">)</span> 1<span style="color: #b0b0b3;">)</span>
                <span style="color: #b0b0b3;">(</span>car <span style="color: #90a890;">(</span>car org2blog/wp-blog-alist<span style="color: #90a890;">)</span><span style="color: #b0b0b3;">)</span><span style="color: #aebed8;">)</span>
           <span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">OR Prompt user
</span>           <span style="color: #aebed8;">(</span>completing-read
            <span style="color: #8AE234;">"Blog to login into? ([Tab] to see list): "</span>
            <span style="color: #b0b0b3;">(</span>mapcar 'car org2blog/wp-blog-alist<span style="color: #b0b0b3;">)</span> nil t<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span>
    <span style="color: #b0b1a3;">(</span><span style="color: #96CBFE;">unless</span> <span style="color: #97b098;">(</span>&gt; <span style="color: #aebed8;">(</span>length org2blog/wp-blog-name<span style="color: #aebed8;">)</span> 1<span style="color: #97b098;">)</span>
      <span style="color: #97b098;">(</span><span style="color: #ff982d; font-weight: bold;">error</span> <span style="color: #8AE234;">"Invalid blog name"</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span>
    <span style="color: #b0b1a3;">(</span><span style="color: #96CBFE;">setq</span> org2blog/wp-blog <span style="color: #97b098;">(</span>assoc org2blog/wp-blog-name org2blog/wp-blog-alist<span style="color: #97b098;">)</span>
          org2blog/wp-server-xmlrpc-url <span style="color: #97b098;">(</span>plist-get <span style="color: #aebed8;">(</span>cdr org2blog/wp-blog<span style="color: #aebed8;">)</span> <span style="color: #DAD085;">:url</span><span style="color: #97b098;">)</span>
          org2blog/wp-server-userid <span style="color: #97b098;">(</span>plist-get <span style="color: #aebed8;">(</span>cdr org2blog/wp-blog<span style="color: #aebed8;">)</span> <span style="color: #DAD085;">:username</span><span style="color: #97b098;">)</span>
          org2blog/wp-server-blogid <span style="color: #97b098;">(</span><span style="color: #96CBFE;">or</span> <span style="color: #aebed8;">(</span>plist-get <span style="color: #b0b0b3;">(</span>cdr org2blog/wp-blog<span style="color: #b0b0b3;">)</span> <span style="color: #DAD085;">:id</span><span style="color: #aebed8;">)</span> <span style="color: #8AE234;">"1"</span><span style="color: #97b098;">)</span>
          org2blog/wp-server-pass
          <span style="color: #97b098;">(</span><span style="color: #96CBFE;">or</span>
           <span style="color: #aebed8;">(</span>plist-get <span style="color: #b0b0b3;">(</span>cdr org2blog/wp-blog<span style="color: #b0b0b3;">)</span> <span style="color: #DAD085;">:password</span><span style="color: #aebed8;">)</span>
           <span style="color: #aebed8;">(</span>read-passwd <span style="color: #b0b0b3;">(</span>format <span style="color: #8AE234;">"%s Weblog password? "</span> org2blog/wp-blog-name<span style="color: #b0b0b3;">)</span><span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span>
          <span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">Fetch and save category list
</span>          org2blog/wp-categories-list
          <span style="color: #97b098;">(</span>mapcar <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">lambda</span> <span style="color: #b0b0b3;">(</span>category<span style="color: #b0b0b3;">)</span> <span style="color: #b0b0b3;">(</span>cdr <span style="color: #90a890;">(</span>assoc <span style="color: #8AE234;">"categoryName"</span> category<span style="color: #90a890;">)</span><span style="color: #b0b0b3;">)</span><span style="color: #aebed8;">)</span>
                  <span style="color: #aebed8;">(</span>metaweblog-get-categories org2blog/wp-server-xmlrpc-url
                                             org2blog/wp-server-userid
                                             org2blog/wp-server-pass
                                             org2blog/wp-server-blogid<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span>
          <span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">Fetch and save tag list
</span>          org2blog/wp-tags-list
<span style="color: #ffffff; background-color: #00008b;">          </span><span style="color: #ffffff; background-color: #00008b;">(</span><span style="color: #ffffff; background-color: #00008b;">mapcar </span><span style="color: #ffffff; background-color: #00008b;">(</span><span style="color: #ffffff; background-color: #00008b;">lambda</span><span style="color: #ffffff; background-color: #00008b;"> </span><span style="color: #ffffff; background-color: #00008b;">(</span><span style="color: #ffffff; background-color: #00008b;">tag</span><span style="color: #ffffff; background-color: #00008b;">)</span><span style="color: #ffffff; background-color: #00008b;"> </span><span style="color: #ffffff; background-color: #00008b;">(</span><span style="color: #ffffff; background-color: #00008b;">cdr </span><span style="color: #ffffff; background-color: #00008b;">(</span><span style="color: #ffffff; background-color: #00008b;">assoc </span><span style="color: #ffffff; background-color: #00008b;">"name"</span><span style="color: #ffffff; background-color: #00008b;"> tag</span><span style="color: #ffffff; background-color: #00008b;">)</span><span style="color: #ffffff; background-color: #00008b;">)</span><span style="color: #ffffff; background-color: #00008b;">)</span><span style="color: #ffffff; background-color: #00008b;">
</span>                  <span style="color: #aebed8;">(</span>wp-get-tags org2blog/wp-server-xmlrpc-url
                               org2blog/wp-server-userid
                               org2blog/wp-server-pass
                               org2blog/wp-server-blogid<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span>
          <span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">Fetch and save page list
</span>          org2blog/wp-pages-list
          <span style="color: #97b098;">(</span>mapcar <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">lambda</span> <span style="color: #b0b0b3;">(</span>pg<span style="color: #b0b0b3;">)</span>
                    <span style="color: #b0b0b3;">(</span>cons <span style="color: #90a890;">(</span>cdr <span style="color: #a2b6da;">(</span>assoc <span style="color: #8AE234;">"page_title"</span> pg<span style="color: #a2b6da;">)</span><span style="color: #90a890;">)</span>
                          <span style="color: #90a890;">(</span>cdr <span style="color: #a2b6da;">(</span>assoc <span style="color: #8AE234;">"page_id"</span> pg<span style="color: #a2b6da;">)</span><span style="color: #90a890;">)</span><span style="color: #b0b0b3;">)</span><span style="color: #aebed8;">)</span>
                  <span style="color: #aebed8;">(</span>wp-get-pagelist org2blog/wp-server-xmlrpc-url
                                   org2blog/wp-server-userid
                                   org2blog/wp-server-pass
                                   org2blog/wp-server-blogid<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span>
    <span style="color: #b0b1a3;">(</span><span style="color: #96CBFE;">setq</span> org2blog/wp-logged-in t<span style="color: #b0b1a3;">)</span>
    <span style="color: #b0b1a3;">(</span>message <span style="color: #8AE234;">"Logged in"</span><span style="color: #b0b1a3;">)</span><span style="color: #93a8c6;">)</span><span style="color: #8c8c8c;">)</span>
<span style="color: #8c8c8c;">(</span>advice-add 'org2blog/wp-login <span style="color: #DAD085;">:override</span> 'org2blog/wp-login:override<span style="color: #8c8c8c;">)</span>

これでカテゴリ名もタグ名も自由に補完できるようになった。便利!