docs/music/ は配布時に単一HTMLを維持しつつ、開発時は分割ソースで管理します。
musicxml-to-midimidi-to-musicxmlmusicxml-to-abcabc-to-musicxmlmusicxml-to-svg
docs/music/musicxml-to-midi-src.html: 開発用テンプレート(手編集対象)docs/music/musicxml-to-midi.html: 配布用生成物(手編集しない)docs/music/src/musicxml-to-midi/css/app.cssdocs/music/src/musicxml-to-midi/ts/main.tsdocs/music/src/musicxml-to-midi/js/midi-writer.js(ライブラリ同梱)docs/music/src/musicxml-to-midi/js/main.js(TS変換後)
docs/music/midi-to-musicxml-src.html: 開発用テンプレート(手編集対象)docs/music/midi-to-musicxml.html: 配布用生成物(手編集しない)docs/music/src/midi-to-musicxml/css/app.cssdocs/music/src/midi-to-musicxml/ts/main.tsdocs/music/src/midi-to-musicxml/js/main.js(TS変換後)
docs/music/musicxml-to-abc-src.htmldocs/music/musicxml-to-abc.html(生成物)docs/music/src/musicxml-to-abc/css/app.cssdocs/music/src/musicxml-to-abc/ts/main.tsdocs/music/src/musicxml-to-abc/js/main.jsdocs/music/abc-to-musicxml-src.htmldocs/music/abc-to-musicxml.html(生成物)docs/music/src/abc-to-musicxml/css/app.cssdocs/music/src/abc-to-musicxml/ts/main.tsdocs/music/src/abc-to-musicxml/js/main.js
docs/music/musicxml-to-svg-src.htmldocs/music/musicxml-to-svg.html(生成物)docs/music/src/musicxml-to-svg/css/app.cssdocs/music/src/musicxml-to-svg/ts/main.tsdocs/music/src/musicxml-to-svg/js/main.jsdocs/music/src/musicxml-to-svg/js/verovio.js(ライブラリ同梱)docs/music/src/musicxml-to-svg/js/jszip.js(ライブラリ同梱)
npm run build:musicbuild:music では以下を実行します。
src/.../ts/*.tsをsrc/.../js/*.jsに変換*-src.htmlのlink/script順序を検証- CSSとJSをインライン化
*.html(配布用)を出力
備考:
typescriptが未導入の場合、build:musicはフォールバックとして.tsをそのまま.jsへコピーして継続します。- 厳密な型チェックを行う場合は
npm install後にnpm run typecheck:musicを実行します。
*.htmlは生成物のため直接編集しない- 変更は
*-src.htmlとsrc/を編集する - PRには生成済み
*.htmlを含める