diff --git a/.github/release-notes/v1.15.0.md b/.github/release-notes/v1.15.0.md new file mode 100644 index 0000000..0ae3b07 --- /dev/null +++ b/.github/release-notes/v1.15.0.md @@ -0,0 +1,54 @@ +## 雑に並べたタスクが、番号の付いた WBS になります / Rough notes become a numbered WBS + +`1.2.3` を手で振り直すのは、人間がやることではありません。**箇条書きを選んで 1 回押すと、階層はそのままに番号が振られます。**項目を消してもう一度押せば、穴は詰まります。既に付いている番号は剥がしてから振り直すので、**何度押しても積み上がりません。** + +Renumbering `1.2.3` by hand is not work for a person. **Press once and the list is numbered, with its nesting untouched.** Delete an item, press again, and the gaps close — existing ids are stripped before renumbering, so pressing twice never stacks `1. 1. 1.`. + +``` +- [ ] 設計 → - [ ] 1 設計 + - [ ] 調査 - [ ] 1.1 調査 + - [ ] 方式 - [ ] 1.2 方式 +- [ ] 実装 - [ ] 2 実装 +``` + +**入れ子はそのまま残ります。**表に変換すると階層は潰れますが、WBS では入れ子そのものが作業の分解なので、落とすわけにはいきません。 + +**The nesting survives.** Converting to a table flattens it; here the nesting *is* the breakdown, so it stays. + +## 表の列を、その場で足す・消す・寄せる / Add, delete and align table columns in place + +カーソルのある列に効きます。**どの列かを訊かれません。**寄せは押すたび 左 → 中央 → 右 → 無し と回るので、選択肢を並べたメニューより速く目的の形になります。区切り行(`| --- |`)にカーソルがあっても、その列に効きます。 + +They act on the column the caret is in — **nothing is asked.** Alignment cycles left → centre → right → none on each press, which reaches the shape you want faster than a menu of four. It answers on the `| --- |` row too, where there is no cell to be inside of. + +## `/wbs` で、骨組みを出せます / `/wbs` drops in a skeleton + +`/` メニューに `/wbs` が入りました。**引数のある部品だけが小さいフォームを開きます** ── 深さ、ID を振るか、開始日、辞書(表)と gantt を一緒に作るか。**Enter だけで抜けられ、何も触らなければ深さ 2・ID あり・今日から**の骨組みが出ます。区切り線やチェックリストは今までどおり、選んだ瞬間に入ります。全部にフォームを出すと、フォームを埋める作業が増えるだけだからです。 + +`/wbs` joins the `/` menu. **Only the parts that take arguments open a form** — depth, whether to number, the start date, and whether to generate the companion table and gantt. **Enter alone gets you out**, and touching nothing gives you a two-deep, numbered skeleton starting today. Parts with no arguments still insert the moment you pick them: a form for everything would just be more forms to fill in. + +一緒に作る表の列名は、**そのまま「表 → ガント」に渡せる**名前にしてあります。 + +The companion table's columns are named so that **Table → Gantt reads them as they are**. + +## 選択した範囲に効く、小さな変換 9 つ / Nine small transforms for the selection + +- **大文字小文字** — camelCase → snake_case → kebab-case → CONSTANT → Title と押すたび回ります +- **並べ替え** — 辞書順 / 数値順 / 長さ順。数値順は「10 件・2 件・33 件」を **2 → 10 → 33** に並べます(文字列として比べません)。箇条書きの記号は動かさず、比べるのはその後ろだけ +- **結合・分割** — 箇条書きを 1 行に、1 行を箇条書きに +- **折り返し・字下げ戻し** — 80 桁で折り返す。貼り付けたブロックの共通の字下げだけを剥がす(相対的な深さは残ります) +- **エンティティ / URL デコード** — `&` や `%E6%97%A5` を読める文字に戻します + +**何も選ばずに押すと、カーソルのある行に効きます。** + +- **Letter case** cycles camelCase → snake_case → kebab-case → CONSTANT → Title on each press +- **Sorting** by text, by number, or by length. The numeric sort puts "10 件, 2 件, 33 件" in the order **2, 10, 33** — it compares values, not digits as text. List markers stay put; what is compared is the text after them +- **Join and split** — a list into one line, and back +- **Wrap and dedent** — wrap at 80 columns; strip only the indent a pasted block shares, keeping the relative depth +- **Decode** `&` and `%E6%97%A5` back into what they stand for + +**With nothing selected, they act on the caret's line.** + +これらは既定では表示されません。**設定(⌘,)▸ ツールバー**で、出したいものだけ選んでください。`/` メニューからも引けます。 + +They are off by default: pick the ones you want in **Settings (⌘,) ▸ Toolbar**. The `/` menu reaches them too. diff --git a/README.ja.md b/README.ja.md index def76d8..b8b916a 100644 --- a/README.ja.md +++ b/README.ja.md @@ -71,6 +71,8 @@ Tauri なので Windows でもビルドでき、**動くはずです**。ただ - 書き味を整えるタイピング支援:リストは `Enter` で自動継続(順序付きは採番、タスクは未チェックで開始、空項目で `Enter` すると解除)、`Tab` / `⇧Tab` でインデント、`[` `(` `` ` `` は対の閉じを自動挿入(選択範囲があれば囲む)。すべて `⌘Z` で取り消せます。 - **`/` で部品を挿す**:空行の行頭で `/` を打つとメニューが出ます。表・チェックリスト・コードブロック・水平線をその場に挿入(入力で絞り込み、`↑`/`↓` で選び、`Enter` で確定、`Esc` で取り消し)。文中の `/` はパスのままなので、`src/` を書く邪魔をしません。リストの下では**箇条書きを表に**、表の下では**表を mermaid のガントに**変える項目が並びます(効かせる先が無い場所では出ません)。変換は表を消さずガントをその下に書き、もう一度実行すると同じブロックを差し替えます。 - テキストを選択して URL を貼るとリンク(`[選択](url)`)に変換。画像を貼り付けると、文書と同じ場所の `assets/` に保存して `![]()` を挿入します。 +- **雑な箇条書きを、番号の付いた WBS にする。**表の列もその場で編集できます。タスクリストを 1 回押すと `1` `1.1` `1.2` と番号が振られ、**入れ子はそのまま残ります** ── 項目を消して押し直せば穴が詰まります(既に付いている番号は剥がしてから振り直すので、何度押しても積み上がりません)。表はカーソルのある列を足す・消す・寄せる(寄せは押すたび 左 → 中央 → 右 → 無し と回ります)。`/wbs` で骨組みが出せて、**フォームが開くのはこれだけ** ── 深さ・ID・開始日・辞書(表)と gantt を、Enter だけで抜けられます。 +- **選択範囲に効く小さな変換が 9 つ。**大文字小文字(camel → snake → kebab → CONSTANT → Title と回る)、並べ替え(辞書順 / 数値順 ──「10・2・33」を 2 → 10 → 33 に / 長さ順)、結合・分割、80 桁で折り返し、字下げ戻し、`&` や `%E6%97%A5` のデコード。**何も選ばずに押すとカーソルの行に効きます。**既定では非表示なので、設定 ▸ ツールバーで出したいものを選んでください。 - 新規作成(`⌘N`)して保存ダイアログから任意の場所へ保存。無題の文書は最初の `#` 見出しがファイル名の候補になります。 - 現在のファイルをシステムのゴミ箱へ削除(`⌘⌫` またはゴミ箱ボタン、確認あり)。間違えてもゴミ箱から復元できます。 - 未保存の作業を失わない:編集中の内容(およびディスクに未書き出しの無題文書)は下書きとして継続的に保持され、次回起動時に復元。終了やクラッシュでも書きかけを失いません。 diff --git a/README.md b/README.md index 76b31a9..19910d1 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,8 @@ myself**, and there is no Windows code-signing certificate, so no Windows binary - Typing niceties: `Enter` continues a list (ordered items renumber, task items start unchecked, `Enter` on an empty item exits), `Tab` / `⇧Tab` indent, and `[`, `(`, `` ` `` auto-close — wrapping the selection when there is one. All undoable with `⌘Z`. - **Insert blocks with `/`**: type `/` at the start of an empty line for a menu — table, checklist, code block, horizontal rule — filtered as you type, chosen with `↑`/`↓`, inserted with `Enter`, dismissed with `Esc`. A `/` inside a line stays a path, so writing `src/` is unaffected. Under a list the menu adds **bullets → table**; under a table, **table → mermaid Gantt** — each offered only where it applies. The conversion keeps the table and writes the chart below it; run it again and that chart is replaced rather than stacked. - Paste a URL over selected text to turn it into a link (`[selection](url)`); paste an image to save it beside the document in `assets/` and insert the `![]()` for it. +- **Turn a rough list into a numbered WBS**, and edit tables in place. One press numbers a task list `1`, `1.1`, `1.2` **with its nesting intact** — press again after deleting an item and the gaps close, because existing ids are stripped before renumbering. Table columns can be added, deleted and aligned at the caret (alignment cycles left → centre → right → none). `/wbs` drops in a skeleton, and it is the only `/` part that opens a form — depth, ids, start date, and the companion table and gantt, all reachable with Enter alone. +- **Nine small transforms for the selection**: letter case (cycles camel → snake → kebab → CONSTANT → Title), sorting (by text, by number — "10, 2, 33" becomes 2, 10, 33 — or by length), join and split, wrap at 80 columns, dedent, and decoding `&` / `%E6%97%A5`. With nothing selected they act on the caret's line. Off by default: pick the ones you want in Settings ▸ Toolbar. - Create a new document (`⌘N`) and save it anywhere via a save dialog; an untitled doc's first `#` heading is offered as the file name. - Delete the current file to the system Trash (`⌘⌫` or the trash button), with a confirmation — recoverable from the Trash if it was a mistake. - Never lose unsaved work: in-progress edits (and untitled documents that were never written to disk) are continuously kept as drafts and restored on next launch, so a quit or crash won't discard what you were writing. diff --git a/docs/index.en.html b/docs/index.en.html index 26f2e0b..ffafbd5 100644 --- a/docs/index.en.html +++ b/docs/index.en.html @@ -154,6 +154,11 @@

.md links stay in the app

Drop a Word document

Drop a .docx and it opens as Markdown. The conversion happens on your machine and nothing is uploaded — no converter website, no pandoc to install. What opens is an untitled document, so saving writes a new .md and never touches the original. Feed two .docx files to Compare and you get the diff between two versions of a document. Images are not carried over (text, headings, lists and tables are).

+
+
+

Rough notes to a numbered WBS

+

One press numbers a task list 1, 1.1, 1.2 with its nesting intact; delete an item, press again, and the gaps close — renumbering 1.2.3 by hand is not work for a person. Table columns are added, deleted and aligned at the caret (cycling left → centre → right → none). Nine small transforms act on the selection: letter case, sorting (the numeric one puts "10, 2, 33" in the order 2, 10, 33), join and split, wrap, dedent, and decoding &.

+
diff --git a/docs/index.ja.html b/docs/index.ja.html index 9aed6b4..9f11490 100644 --- a/docs/index.ja.html +++ b/docs/index.ja.html @@ -154,6 +154,11 @@

.md リンクでアプリ内遷移

Word の文書も落とせる

.docx を落とすと Markdown に直して開きます。変換は手元で完結し、どこにも送りません——変換サイトへアップロードも、pandoc の導入も要りません。開いたものは無題の文書になるので、保存すると .md として別に書き出され、元の .docx には一切書き戻りません。2 つの .docx を比較にかければ、版どうしの差分もそのまま見られます。画像は入りません(本文・見出し・箇条書き・表だけ)。

+
+
+

雑な箇条書きを WBS に

+

タスクリストを 1 回押すと 1 1.1 1.2 と番号が振られ、入れ子はそのまま残ります。項目を消して押し直せば穴が詰まります ── 1.2.3 を手で振り直すのは人間がやることではありません。表はカーソルのある列を足す・消す・寄せる(押すたび 左 → 中央 → 右 → 無し と回る)。選択範囲に効く小さな変換も 9 つ: 大文字小文字、並べ替え(数値順は「10・2・33」を 2 → 10 → 33 に)、結合・分割、折り返し、字下げ戻し、& のデコード。

+
diff --git a/package.json b/package.json index 4013929..113478e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mrdown", "private": true, - "version": "1.14.0", + "version": "1.15.0", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 0518dd9..b15230e 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2377,7 +2377,7 @@ dependencies = [ [[package]] name = "mrdown" -version = "1.14.0" +version = "1.15.0" dependencies = [ "anydoc", "serde", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 1b0c6cf..860a3ce 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mrdown" -version = "1.14.0" +version = "1.15.0" description = "A minimal Markdown viewer" authors = ["hitoshi"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index cb03b18..c66794a 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "MRDown", - "version": "1.14.0", + "version": "1.15.0", "identifier": "com.hitoshi.mrdown", "build": { "beforeDevCommand": "npm run dev",