Releases: c-colloid/Morpho
Release list
Morpho 0.17.0
スライドごとの出典・注釈が書けるようになった。 原稿に /// 出典: N Engl J Med 2024;390:1234-45
と 1 行書くと、そのスライドの下端に小さく出る(デッキ全体の出典を置き換える)。
原稿ペインの「出典」ボタンでも入る。設計と実測の根拠は
../notes/footer-design.md(「多視点監査と仕様の改訂(0.17.0 v2)」)。
# 結果
一次評価項目は有意差なし。
/// 出典: N Engl J Med 2024;390:1234-45/は 3 個以上・全角///可。間に空白の入った/ / /は記法にならない
(pandoc で本文に見えたまま残る「見える失敗」なので救わない)。行頭キーワード
(出典:※)は一般文で踏むので採らない。可搬形として::: footer〜:::
(::: 出典/::: {.footer}も)も受け、全角の柵は正規化する- どのスライドに載るかは数えない。直前の本文のブロック末尾に目印を埋め、
pandoc の実出力から取り出して元に戻す(benchmark 64 枚に 7 か所差しても
構成が一致し、取り出し後の本文 XML が対照とバイト一致) - 文言を空にした
///は、そのスライドだけデッキ全体の出典を出さない(情報診断が出る) - 同じスライドに複数書けば
/で並ぶ。太字・リンクは帯にそのまま移る - 柵の閉じ忘れは次の見出し・水平線・
+++・柵・文書末で閉じて要対応診断
(閉じ忘れは後続スライドを丸ごと飲むため)。フッターの中に水平線・+++・表は書けない - CRLF 原稿でも動く。ノートの中(入れ子の div の後ろでも)の
///は触らない - docx では元の位置に小さい段落(
Abstractスタイル・10pt)、Web ではdiv.footer - 書き出しは帯の位置にスライドのプレビュー結果が要る(一度もスライドを表示していないと
診断で知らせる)。iPad の実機・PowerPoint / Word の実描画は未確認 - 検査 28 → 45 件(記法の一致・抽出・強制クローズ・目印の付け先・フォールバック・
移送の妥当性・抑止・プレビュー・docx / html の実現・benchmark)
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.16.0
- フッター(出典・注釈): 原稿の front matter に
footer: "N Engl J Med 2024;390:1234-45"と書くと、表紙を除く全スライドの下端に小さく出る。
抄読会で論文の出典を毎ページに載せるための機能。装飾パネルの
「フッター」から入力欄で直接書ける(原稿のfooter:行だけを
書き換える。他の行・本文には触れない)。揃え・大きさ・表紙に出すかも選べる - 文言は原稿、体裁はデザインデータに分けてある。.md を Obsidian へ
持ち出しても出典は残り、.morphodesignには体裁だけが入る - プレビューと書き出しは同じ 1 つの解決結果を使うので、
「プレビューでは合っているのに出力が違う」が構造的に起きない - 帯の位置はテンプレートが持つフッター枠に追従する(幅だけ全幅へ広げる。
pandoc 既定の枠は幅 228pt しかなく、出典 1 行が構造的に入らないため) - front matter に
footer: |や配列を書くと無警告で壊れる(|の 1 文字が
値になる/キーごと消える)ため、診断として知らせるようにした - 設計と実測は
notes/footer-design.md、再現はscripts/dump-footer.mjs
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.15.0
段組みが +++ で書けるようになった。 原稿ペインの「段組み」ボタン、
またはキーボードで +++ と打つと、その行で列が分かれる。
設計と実測の根拠は ../notes/column-input.md。
# 三つの案
案A の説明
+++
案B の説明+++は列区切り。n 個で n+1 列になる。閉じも入れ子も要らない- 全角の
+++も、間に空白の入った+ + +も同じように効く。
日本語入力のまま打てるので、記号のために英字面へ切り替えなくてよい
(従来の pandoc 記法は 8 行・半角記号 4 種で、日本語入力面のまま打てる文字が 0 だった) - 見出しと末尾の発表者ノートは列の外に残る。区間の本文はまるごと列に入るので、
「段組みの前に導入の段落がある」だけでスライドが割れて編集機能が止まる、
という従来の壊れ方が起きない - コードフェンスの中と発表者ノートの中の
+++は区切りにならない - 従来の pandoc 記法(
::: {.columns})もそのまま使える
言わずに失敗しないようにした
pandoc は段組みの失敗にほとんど警告を出さない(62 通り試して 34 通りが失敗し、
うち 32 通りは完全に無警告)。そのため、次の 2 つは Morpho 自身が原稿を読んで伝える。
- 3 列以上を書いたとき。スライドは 2 列までで 3 列目以降は出力されない
(Web 書き出しでは 3 列とも出る) - 列の先頭が画像や表で、その後ろに内容が続くとき。この形は pptx では
後ろの内容が消えてしまうため、段組みにせず 1 段のままにして理由を出す。
画像を列の最後に置くか、***で別のスライドにすると段組みにできる
そのほか
- 画像の挿入が、カーソルのいる列の中に入るようになった
- 段組みの区切り行を長押ししても原稿が壊れない
- 検査を 13 本 + tsc へ(
check-columns.mjsを新設。記法の判定がアプリと
変換器で食い違っていないことも常時検証する)
実機での確認はこれから。
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.14.0
壊れない土台。 段組み(::: {.columns})は pandoc が受け付けるので今までも
原稿に書けてしまい、書くと崩れ、編集すると原稿が壊れていた。その 6 件をまとめて直した。
設計と検証の記録は ../notes/v014-foundation.md。
原稿が壊れなくなった
- カラムの中の段落を長押しして改行編集しても
:::が消えない。行種別に
fenced div を足した。あわせて::: notesの中は改行編集の対象にしない
(本文と同じ文がノートにもあると、本文を長押ししてノートが書き換わっていた) - 改行位置がインライン記法の内側に落ちなくなった。これは段組みと無関係に
今までも踏めた経路で、画像・リンク・ルビ・傍点・強調が無警告で失われていた。
とくに画像のパスの内側で改行すると、pandoc が出力を一切生成しなくなっていた - 画像の挿入位置を作り直した。行の途中には入れず、独立した段落として
「カーソルのいるスライドの末尾」へ置く。フェンス行(:::/```)を
割らない。列の中にいるときはその列の中へ入る。
全カーソル位置での健全率が 7/66 → 66/66 になった(枚数の一致と画像の残存で判定)
プレビューの嘘が消えた
- 段組みの左右で縦位置が揃う。右の列だけ中央に寄っていたのは、プレースホルダの
継承照合がレイアウトからマスターへ越境して日付枠を拾っていたため - Comparison(列に画像や表が混ざると選ばれる)で左右の見出しが重ならない
- 表がプレビューから消えない。表は
<p:graphicFrame>で、図形の走査に
掛かっていなかった。枠と行数・列数を破線で描く(セルの中身は次の版) - レイアウトごとの字サイズを読むようになった。段組みの本文は実際には 21pt
なのに 24pt で、画像+本文スライドのタイトルは 15pt なのに 33pt で描いていた
その他
- 表や段組みがあっても装飾パネルが止まらない。装飾は原稿に書かない層なので、
「スライドと原稿の対応が取れません」の判定から外した。ノート編集・改行編集は
従来どおり判定する。Alert の文面も、どのスライドが原因かを示すように書き直した - 「全スライドへコピー」が、変換の途中や末尾に
***を打った直後でも
範囲外の装飾を消さなくなった - 検査を 12 本 + tsc に増やし(
check-image-insert.mjsを新設)、
段組み・Comparison・表・レイアウト固有の字サイズを常時検証する
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.13.0
- 画像対応: 原稿ペインの「画像」からファイル(Files / 写真から共有した
画像など)を取り込むと、カーソル位置にが入り、スライド・
文書・Web のすべてに埋め込まれて書き出される。プレビューは実出力の
配置(pptx の xfrm)どおりに画像を描く - これまで存在しない画像参照があると変換自体が止まり何も出力されなかった
(pandoc の仕様)。見つからない参照は「[画像なし: 名前]」の文字に
置き換えて、変換全体は生かすようにした - 制約: 画像は必ずアプリへ取り込む(Obsidian 保管庫の隣の画像ファイルは
iOS のアクセス権がファイル単位のため読めない。フォルダ単位の連携は今後)。
参照はファイル名のみ(パス付きは解決されない)
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.12.0
- ルビと傍点(日本語組版の第一歩):
{漢字|かんじ}でルビ、
《《ここ》》で傍点(でんでんマークダウン互換の記法)。
docx には本物の組版(w:ruby / 圏点)が入り、Web は<ruby>と
text-emphasis で出る。pptx にはルビ・圏点の仕組み自体が無いため、
漢字(かんじ)と太字で近似する(プレビューも同じ見え方) - 適用はすべての形式で常時有効。記法を使わなければ何も変わらない
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.11.0
- テンプレート配線盤: 装飾シートに「テンプレート」が増えた。自作の
.pptx を読み込むと、その配色・フォント・レイアウトで書き出せる
(pandoc の reference-doc。効くことは実測で確認済み)。
スライドプレビューも同じテンプレートを通した実出力を表示する - pandoc はレイアウトを英語名で照合するため、日本語版 PowerPoint の
テンプレート(「タイトル スライド」等)はそのままだと崩れる。
既知の和名は自動で結び、結べなかった枠は配線盤(枠をタップして
レイアウトを選ぶ)で手動割り当てできる。原本ファイルは書き換えない - テンプレートは文書ごと。デザインの書き出し(.morphodesign)には
含まれない(本体が別ファイルのため)
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.10.0
- 文書(docx)プレビュー: プレビューのセグメントに「文書」が増えた。
実際の docx 出力(document.xml / styles.xml / numbering.xml)を解析して
リーダー風のフロー表示で見せる。見出しの字サイズ・太字・打ち消し・
構文色付きコード・入れ子リスト(番号 / 記号)・表(ヘッダ行)・引用・
区切り線が実出力どおりに写る。ページ組はしない(docx にページ境界の
情報は存在しないため、ページ表示は嘘になる) - 脚注は本文に [n] の参照、文末に本文として写る(docx では
footnotes.xml に隔離されており、見落とすと無警告で消えるため)。
番号付きリストの開始番号(4) など)と項目の続き段落も実出力どおり - 文書プレビューは書き出しと同じ経路で変換する(発表者ノートは
docx と同様に除去される)
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.9.0
- 外部ファイルへ自動で再接続: これまでアプリを完全終了すると外部ファイル
(その場で開いた .md)へのアクセス権が切れ、「ファイルを選び直す」必要が
あった。保存してある bookmark を小さなネイティブモジュールで解決し、
文書を開くとき・アプリへ戻ったとき・保存するときに自動で繋ぎ直すように
した。ファイルの削除・移動などで自動再接続に失敗した場合のみ、
従来の選び直しダイアログが出る(実機未検証・要確認)
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md
Morpho 0.8.2
- PowerPoint が出力ファイルを開けないことがある問題を修正(実機
フィードバック反映): web からコピペした原稿に混入する不可視の制御文字
(実例: NEJM の著者行の U+000B)が pandoc を素通りしてスライド XML に入り、
PowerPoint がファイルごと拒否していた。変換時に metadata と本文から
XML で使えない制御文字を空白へ置換する(原稿ファイル自体は書き換えない)。
アプリのバージョンではなく原稿の内容が引き金だったため、
「どの版から壊れたか」が特定できない見え方をしていた
インストール手順: https://github.com/c-colloid/Morpho/blob/main/app/README.md