Skip to content

Repository files navigation

日本語English

小説・ラノベ執筆エディタ(noveditor)

Kotlin Svelte TypeScript Vite PWA Android Jetpack Compose

小説・ライトノベル・エッセイといった、文章を書くことに特化した執筆エディタ。 汎用のテキストエディタではなく、「書く」という行為そのものに最適化することを趣旨とする。 保存・文字数・検索などのロジックを Kotlin Multiplatform の共有コアに集約し、Web/PWA を最初のリリースとして公開するモノレポ。 ブラウザだけで完結し、オフラインでも執筆できる(書いたものは端末内に残り、本文をサーバへ送らない)。

ノヴェディタ(Web)の画面

クイックスタート

./gradlew :core:jsBrowserProductionLibraryDistribution   # ① Kotlin コアの JS ライブラリを生成
cd web && pnpm install && pnpm dev                        # ② Web を起動 → http://localhost:5173/

web/core/ のビルド出力(JS ライブラリ)をローカルリンクで消費するため、必ず core を先にビルドする。

コア体験

  • 小説向けの構造: 「小説 → 話(エピソード)」の 2 階層で長編を管理し、思いついた順に書き進められる。
  • 消えない: 保存は端末内(localStorage)。Repository ラウンドトリップと自己修復を Vitest で担保。
  • オフライン完結: PWA としてインストール可能・オフライン起動可能。本文をサーバへ送らない。
  • 執筆に集中: 文字数/行数カウント・集中モード・紙のような本文テーマ・⌘K コマンドパレット+全文検索。
  • お知らせ/あとがき: 話ごと+小説共通の冒頭(お知らせ)・末尾(あとがき)を本文と分けて管理(空なら自動で隠す)。
  • 記法エクスポート: 小説家になろう・カクヨム・アルファポリス向けの記法へ変換し、コピー / .txt 出力。

構成

3 層分離(共有コア/プラットフォームアダプタ/将来の MCP)を採用。

ディレクトリ 役割
core/ Kotlin Multiplatform 共有コア。保存モデル・文字数/行数・検索・Repository port。プラットフォーム非依存。
web/ Web/PWA アダプタ。TypeScript + Vite + Svelte 5 + vite-plugin-pwa。core/ の JS ライブラリを消費。
android/ ネイティブ Android アダプタ(Jetpack Compose)。v1 実装済み(core/jvm() ターゲットで再利用・:android:assembleDebug 成功・ユニットテスト green)。実機検証とリリースは保留。

仕様: specs/ ・ ロードマップ: docs/ROADMAP.md

スタック

  • コア: Kotlin Multiplatform 2.4 + kotlinx.serialization 1.9(Gradle 9.5・JS ライブラリ出力)
  • Web: Svelte 5 + Vite 6 + TypeScript 5(パッケージマネージャ: pnpm)
  • PWA: vite-plugin-pwa(Workbox)が manifest と Service Worker を自動生成(手書き SW なし・registerType: 'prompt'=新バージョンは通知し「更新」操作で適用・アプリシェルを precache してオフライン起動)
  • Android: Jetpack Compose + Material 3(AGP 9.2・Compose BOM・core/jvm() ターゲットで再利用)
  • テスト: Vitest(Web/core の Repository ラウンドトリップ・記法エクスポート)+ JUnit(Android の Repository)

開発セットアップ

1. ツールチェーン

# 必要: JDK 17+(Gradle 9.5 用) と pnpm
corepack enable    # pnpm を有効化(未導入の場合)

2. ビルドとテスト

./gradlew :core:jsBrowserProductionLibraryDistribution   # ① コア(JS ライブラリ)を先にビルド
cd web && pnpm install
pnpm build                                               # 本番ビルド(dist/ に manifest + Service Worker)
pnpm test                                                # Vitest

core/ を変更したら、web/ で消費する前に ① を再実行する(pnpm dev -- --force で取り込み)。

Android(v1) のビルドには local.properties(SDK パス)と Android Studio の JBR(JDK 21)が必要(JAVA_HOME=<JBR> ./gradlew :android:assembleDebug)。:androidlocal.properties がある時だけ構成され、Web の Pages CI には無影響。詳細は specs/android/

現在の対象外: 縦書き・書籍 PDF(自作 OSS tatemd 連携で将来提供/自前実装しない)、各小説投稿サイトへの自動投稿(公式 API なし・記法変換コピーまで)。

ライセンス

MIT © 2026 torifo

About

小説・ライトノベル・エッセイを書くことに特化した執筆エディタ。オフライン完結の PWA、保存・検索は Kotlin Multiplatform 共有コアに集約 (Kotlin/Svelte/PWA)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages