go-text-format

command module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2026 License: MIT Imports: 1 Imported by: 0

README

📝 Go Text Format

Language Go Version GitHub tag (latest by date)

🎯 概要: 堅牢な構造化パースを持つ Markdown/Webtoon フォーマッター

Go Text Format は、Go言語で実装された、Markdownから完全なHTMLドキュメントへの変換、および 構造化されたWebtoonビューアの生成 を行うためのCLIツールです。

通常の文書変換に加え、Markdown内のメタデータを解析して画像パネルと吹き出しを再構成する Webtoonモード を搭載しています。クリーンアーキテクチャを採用し、I/O、構造解析、ドメインモデル、レンダリングの責務を厳密に分離することで、高い保守性と拡張性を実現しています。

本プロジェクトは、クリーンなアーキテクチャを採用し、I/O、変換、レンダリングの責務を厳密に分離しています。


✨ 特徴
  • ハイブリッド変換エンジン: 通常の文書作成(Document)と、縦スクロールマンガ形式(Webtoon)の2つの出力モードをサポート。
  • 高性能な資産管理: go:embed を活用し、HTMLテンプレートやCSSをバイナリに内蔵。実行ファイル一つでポータブルに動作。

🚀 インストール

Goモジュールとしてプロジェクトに追加します。

go get github.com/shouni/go-text-format
🔨 使用方法
# Webtoonモードで実行(改行は自動的に有効になります)
./bin/format convert -i script.md -o viewer.html --mode webtoon

# 明示的に改行オプションを有効にして変換
./bin/format convert -i article.md -o output.html --hard-wraps

# 標準入力から読み込み、標準出力へ書き出す(パイプライン利用)
cat script.md | ./bin/format convert --mode webtoon > viewer.html

convert サブコマンドのフラグ一覧
フラグ ショート 説明 デフォルト値
--mode -m 変換モード (document or webtoon) document
--input -i 読み込むMarkdownファイルのパス 標準入力
--output -o 書き出すHTMLファイルのパス 標準出力
--title なし HTMLのタイトル。省略時はMarkdownの最初のH1から抽出 なし
--hard-wraps なし 改行を <br> に変換(Webtoonモードでは自動有効) false
--enable-unsafe-html なし HTMLタグの直接入力を許可する false

📐 プロジェクト構成

パッケージ 役割
pkg/domain ドメインモデル(Webtoon, Panel, Dialogue)の定義。
pkg/parser 状態管理型パーサー。複数行にわたる属性値のキャプチャを担当。
pkg/renderer html/template によるHTML生成。CSS変数を活用した動的レイアウト。
pkg/builder 依存関係注入(DI)。設定に応じた適切なコンポーネントの組み立て。
pkg/md2html Goldmarkをラップした低レベル変換。正規表現による高速なタイトル抽出。
  • github.com/yuin/goldmark: 高速なMarkdownパーサーライブラリ。
  • github.com/shouni/go-cli-base: CLIアプリケーションの基盤フレームワーク。

🎨 WebtoonモードのMarkdown仕様

# 作品タイトル
ここに作品の説明文を記述します。

![パネル1の説明](https://example.com/panel_1.png)
![パネル2の説明](https://example.com/panel_2.png)


📜 ライセンス (License)

このプロジェクトは MIT License の下で公開されています。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL