KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

縦中横のパース

 HTMLでの縦中横の書き方がいろいろある。そもそも縦書きの書き方があまり固まっていないのだろうが。電書協の書き方を変換する。html2aozoraでspanとdiv以外の変換をできたが、今度はspanの変換したい。リストから一括変換ができれば追加が楽。

github.com

縦中横

//<span class="tcy">22</span>
rules.tcy = {
  filter: function (node, options) {
    return (
      node.nodeName === 'SPAN' &&
      node.getAttribute('class') === 'tcy'
    )
  },

  replacement: function (content, node, options) {
    return content + '[#「'+ content + '」は縦中横]'
  }
}

縦横を動的に切り替えるために、body classを削除したり追加したりを試したがうまくいかなかった。 www.tiny.cloud

tinymce.PluginManager.add('tateyoko', function(editor, url) {
  var tateyoko = function () {
        var selectClass = editor.dom.select("body") 
      var checkClass = selectClass.classList.contains("vrtl");
      if (checkClass = true) {
      editor.dom.removeClass(editor.dom.select('body'), 'vrtl' );
      editor.dom.addClass(editor.dom.select("body"), "hltr");
      console.log("focus, offline class removed, online class added")
      } else {
     editor.dom.removeClass(editor.dom.select('body'), 'hltr' );
     editor.dom.addClass(editor.dom.select("body"), "vrtl");
     console.log("focus, online class added")
  }
}

  /* Add a button that opens a window */
  editor.ui.registry.addButton('tateyoko', {
    text:'縦横',
    onAction: function () {
      /* Open window */
      tateyoko();
    }
  });
  /* Adds a menu item, which can then be included in any menu via the menu/menubar configuration */
  editor.ui.registry.addMenuItem('tateyoko', {
    text: '縦横',
    onAction: function() {
      /* Open window */
      tateyoko();
    }
  });
  /* Return the metadata for the help plugin */
  return {
    getMetadata: function () {
      return  {
        name: '縦横',
        url: 'https://99nyorituryo.hatenablog.com/'
      };
    }
  };
});