padtools_ts はPAD図を活用することを目的として作成された、PAD作成ツールです。 思考を止めず記述できることを目指しています。
このプロジェクトは、padtools (https://github.com/knaou/padtools) をTypeScriptで書き直したものです。
プロジェクトの開発に必要な依存関係をローカルにインストールするには、以下のコマンドを実行します。
npm installプロジェクトのテストを実行するには、以下のコマンドを実行します。
npm testテストカバレッジレポートを生成するには、以下のコマンドを実行します。
npm run test:covpadtools_ts は、SPDファイルをSVGに変換するCLIツールを提供します。
npx padtools_ts -i sample_input.spd -o sample_output.svgまた、開発時には ts-node を使って直接ソースコードを実行することも可能です。
npm run start -- -i sample_input.spd -o sample_output.svg上記の npm run start は、package.json のスクリプト定義に基づいて ts-node src/cli/cli.ts を実行します。
padtools_ts には、Webツールをローカルで確認するためのWebサーバー機能も含まれています。
npx padtools_ts webこのコマンドは、ビルドされたWebツール(dist/web)をホスティングし、ブラウザでアクセスできるようにします。
padtools_ts は以下のオプションをサポートしています。
-V, --version: バージョン番号を出力します。-i, --input <inputFilePath>: 入力SPDテキストファイルへのパスを指定します。-o, --output <outputFilePath>: 出力SVGファイルへのパスを指定します。-p, --prettyprint: 出力SVGを整形して出力します(svgoを使用)。--font-size <fontSize>: SVGのフォントサイズを指定します。--font-family <fontFamily>: SVGのフォントファミリーを指定します。--stroke-width <strokeWidth>: SVGの線の太さを指定します。--stroke-color <strokeColor>: SVGの線の色を指定します。--background-color <backgroundColor>: SVGの背景色を指定します。--base-background-color <baseBackgroundColor>: SVGのベース背景色を指定します。--text-color <textColor>: SVGのテキスト色を指定します。--line-height <lineHeight>: SVGの行の高さを指定します。--list-render-type <listRenderType>: SVGのリスト描画タイプを指定します (originalまたはTerminalOffset)。-h, --help: コマンドのヘルプ情報を表示します。
このプロジェクトには、Webベースのツールも含まれています。
開発モードでWebツールを起動するには、以下を実行します。
npm run start:webこれにより、通常、ローカルアドレス (例: http://localhost:1234) でブラウザにツールが開きます。
本番用にWebツールをビルドするには、以下を実行します。
npm run build:webこれにより、dist/web ディレクトリに静的ファイルが生成されます。
Webツールをビルドし、GitHub Pages にデプロイするための準備を行うには、以下を実行します。
npm run build:web:gh-pagesこのコマンドは gh-pages ディレクトリに静的ファイルを生成し、GitHub Pages で Jekyll プロセスが実行されないように .nojekyll ファイルを作成します。このコマンドの実行後、GitHub Actions のワークフローが自動的にこれらのファイルを GitHub Pages にデプロイします。
このプロジェクトはMITライセンスです。詳細については、LICENSEファイルをご覧ください。
このプロジェクトでは、以下の主要なオープンソースライブラリを使用しています。
- commander: CLIコマンドの解析に使用。MIT License
- serve: Webサーバー機能(
padtools_ts web)に使用。MIT License - xml-formatter: SVG出力の整形 (
--prettyprintオプション) に使用。MIT License - svgo: SVGの最適化(
--prettyprintオプションが有効な場合)に使用。MIT License - eastasianwidth: 文字の幅計算に使用。MIT License
各ライブラリのライセンス詳細については、それぞれのリンク先をご確認ください。