kifu-for-js

Shogi Kifu viewer for JavaScript

Usage no npm install needed!

<script type="module">
  import kifuForJs from 'https://cdn.skypack.dev/kifu-for-js';
</script>

README

Kifu for JS (ver. 3.0.1)

モバイルで使いやすい(ことを目指す)将棋の棋譜再生盤とそのブックマークレット

Kifu for JS 将棋再生盤

Kifu for JSは,Kifu for Flash同様,Webページ内で棋譜を読み込み表示,再生を行います.

Demoはこちら

機能

既にKifu for Flashと同等程度の機能を備えています.

  • 対応棋譜形式: kif, ki2, kifu, ki2u, csa, jkf
  • 駒落ちや詰将棋等の初期局面指定にも対応
  • 変化手順の再生が可能
  • 棋譜中継のための自動更新機能
  • 棋譜クリックや矢印キーでの再生
  • 棋譜入力機能
    • 再生中に本譜以外の手を進めることができる
    • 進めた手は変化手順(分岐)として格納
  • 棋譜読み込み機能
    • 棋譜ファイルをドラッグ&ドロップで読み込み

設置方法

  1. Kifu for JSファイルをページに読み込みます。(jsDelivrの提供するCDNを利用しています)
<script src="https://cdn.jsdelivr.net/npm/kifu-for-js@3/bundle/kifu-for-js.min.js" charset="utf-8"></script>

@3の部分では、3.*.*の最新を読み込むという指定で、機能追加・バグ修正更新が自動で反映されます。 Semantic Versioning を採用しているため、後方互換性のない変更がある場合は4.*.*台にするつもりですが、不安がある場合は@3.0.0にするなどバージョンを固定して下さい。

  1. KifuForJS.load (v1ではKifu.load)関数にkifファイルのアドレスを渡して呼び出すと,この場所に盤面を表示する.
<script>KifuForJS.load("../json-kifu-format/jt201409130101.kif");</script>

第二引数にidを渡すと,このコードがある場所ではなく,そのidを持つ要素の子の位置に盤面を挿入する.この方法の場合,ひと通り読み込みが済んでから挿入されるため,scriptはhead内などにあってもよい.

<script>KifuForJS.load("../json-kifu-format/jt201409130101.kif", "board");</script>
〜
<div id="board"></div>

これ以外の使用例は Demo をご覧ください。

Kifu for JS ブックマークレット

Kifu for JSブックマークレットは,古いKifu for {Flash/Java}が設置されているページで実行すると、Kifu for JSに置き換えて盤面を表示します.

使い方

  1. あらかじめ次のコードをブックマークへ追加しておく
javascript:!function(){var s=document.createElement("script");s.src="https://na2hiro.github.io/Kifu-for-JS/src/public-bookmarklet.min.js",document.body.appendChild(s)}();void 0;
  1. Kifu for FlashやKifu for Javaが使われている古いページ () を開く
  1. ブックマークレットを開く
  1. FlashやJava部分が置き換えられ,Kifu for JSの再生盤になる

更新ログ / バージョン

Releases からどうぞ.

動作環境

以下は確認済み.

  • Mac Chrome 37
  • Mac Firefox 32
  • Mac Safari 8
  • Windows Internet Explorer 11
  • Android Chrome 37
  • Android Firefox 32
  • Android Habit 1.1
  • iOS 8 Safari

お願い

  • 棋譜形式の対応には注意を払っていますが,もし動作しない棋譜がありましたら対応しますので,Twitterやissuesでご報告いただければ幸いです.
  • 要望やバグ報告はissuesへよろしくお願いします.
  • 棋譜形式そのものについてはJSON棋譜フォーマットもご参照ください.

開発環境

$ npm install

上記コマンドを実行することで開発に必要なパッケージをインストールできます.

  • na2hiro/json-kifu-format 1.0: 将棋の盤駒を扱うライブラリ
  • na2hiro/Shogi.js: 将棋の盤駒を扱うライブラリ
  • TypeScript
  • React
  • React DnD
  • MobX
  • Webpack (バンドルツール)
  • Jest (テストフレームワーク,カバレッジ計測)
  • TSLint (Linter)

コマンド

$ npm run start

開発用サーバが立ち上がり,examples/以下のexample.htmlloadJkf.htmlにアクセスすることで動作を確認できます.

$ npm run build
$ npm run build:watch
$ npm run build:analyze

ビルドが走ります.build:watchの場合,変更されるたびにビルドが走ります.build:analyzeの場合,バンドルの大きさの可視化ができます.

$ npm run test:watch

コンソールでテスト結果が表示されます.コードの変更が保存されるたびに必要なテストが再実行されるため,実装が既存の有効なテストを壊してないか簡単に確認できます.

$ npm run test

全てのテストが走るとともにカバレッジレポートが表示されます.coverage/lcov-report/index.htmlでは,行ごとのカバレッジを確認できます.追加されたコードのブランチカバレッジが100%になるようにしてください.push時にチェックされ満たしていなければ却下されるはずです.

$ npm run lint

コードの品質が検査されます.エラーがあればそれに従い直してください.push前にもチェックされます.

$ npm run lint:fix

自動的に修正可能な問題(インデント等)を直してくれます.

license

Shogi images by muchonovski below images directory are under a Creative Commons 表示-非営利 2.1 日本 License.

Other files are released under MIT license. See LICENSE.txt.