Promise本

以前JavaScript Promiseの本を書きました | Web Scratchでも書いていましたが、 電子版である意味は常に書籍が更新できるという点が大きいです。

そのため、JavaScript Promiseの本 も semverな感じでアップデートしていっています。

どのような変更があったかはGitHub Releaseにかかれているのでそちらを参考にして下さい。(RSSで購読も出来ます)

現在Promise本はver1.2ですが、1.0.0…1.2.0では以下のような変更が主なところです。


1.0.1 (2014-06-23)

1.1.0 (2014-06-25)

コラム: Promiseは常に非同期? への加筆

  • column-promise-resolve:
    • 同期と非同期の混在の問題についてを追加 (de5f8208)
    • 非同期で実行されているコードの解説を追加 (ea8ca5d6)

1.1.3 (2014-07-31)

HTML5 Rocksの記事を日本語版へと変更 (1a98dab , closes #181)

1.2.0 (2014-08-13)

Asciidoctor 1.5.0に対応しました。テーマの表示の変更なども含まれています


という感じですが、1.2.0ではPromise本の生成に使ってるAsciidoctorの1.5がリリースされたため、そちらに対応しました。

Asciidoctor 1.5

AsciidoctorはAsciidocのruby実装ですが、1.5ではかなり大幅な変更が含まれています。

主な所をみていくと以下のような感じです。

  • Graphviz等のDiagramsの対応
  • DocBook 5がデフォルトに(今までは4.5)
  • デフォルトテーマの変更
  • \b のユニコード対応
  • JavaやLaTex等の依存がないRubyだけでPDFやePubの生成が可能に
  • Opalを使ったAsciidoctorのJavaScript版であるasciidoctor.jsのリリース

破壊的な変更もいくつかあってCompat modeを使うと一応維持できますが、移行方法について詳しく書かれています。

Promise本も幾つか問題が起きていたので以下で対処しています

DocBook 5がデフォルトになった影響で [[id]] が誤認されてasciidoctor-fopubPDFがビルドできない問題や、テーマのrevert的な対処をしています。

Asciidoctor 1.5のデフォルトテーマはUse open source fonts in the default stylesheet · Issue #879 · asciidoctor/asciidoctorのIssueで上げられているようにオープンソースのCJKフォントをデフォルトに指定してきます。

Noto Sans や Droid Sans Monoとか指定されて嬉しい人がいるのかよくわかりませんが、font-weightが全体的に細くなって読みにくい感じだったので、フォントだけを変更したcssを別途読み込むように修正してあります。

font-familyを書き換えてるだけなので、別途CSSをdocinfo fileから読み込んで!importantするだけでもいいかもしれません。

最近GitHubのテーマも変わりましたが恐らくそれに合わせてる感じのテーマな感じがします。

また、今まではMarkdownと同じように、バッククオートの前後にスペースをいれなくても問題ありませんでしたが(アスキー文字の場合は元から開けないといけない)、これが厳密に CJKV に対応したため表示が崩れることがあります。

日本語では、このように`some_code()`と書くことがあります。

以下のように誤爆した感じになってしまう。

img

開発者さんに聞いた所意図した動作で、 CJKV への対応のためという感じでした。 これは単純にスペースを開ける方法や、別の書き方で回避できるとのことでした。

日本語では、このように `some_code()` と書くことがあります。
日本語では、このように##`some_code()`##と書くことがあります。
日本語では、このように++pass:[some_code()]++と書くことがあります。
日本語では、このように++some_code()++と書くことがあります。

Promise本ではスペースをあけて書くように書き換えてあります。

最近のPromise本の変更点はこんな感じでした。