mkdocs は素晴らしい。でも・・
誰もが Python環境を自在に扱えることはありませんし、ましてやWebサーバなんかローカルで動かすなんていわれても困るでしょう。
"mkdocs serve" が動く環境をどのようにしたら?WindowsのPCに落とせるかを一週間くらいやっていました。
NW.js という話・・・ボツ
どうもWindows11でカンタンに動かせた時代は過ぎてしまったようです。今はちょっと努力が必要だし、時間がありません。
electron で ・・・出来たけど ブツが200MBはでかい。
electron はマルチプラットフォームを謳う強力な開発基盤ですが、強力すぎて mkdocs でドキュメント表示する程度で 200MBのフットプリントを持つ実行ファイルが出来上がりました・・・。Electronでのパッケージ化作業過程、今後は役に立つかもしれませんので別途書こうかと思います。
eel これでいいよこれで。
この結論に至るまでに Python EelをつかってHTML/CSS/JavaScriptでGUIを構築 の記事を参考にしました。
作業過程は余りカンタンなんで書かないことにしよう?かと思いましたがカンタンですから書いておきます。
- mkdocs の プロジェクト folder に main.py を書きます。
import eel
eel.init('site')
eel.start('index.html',mode='default')
- pip install eel します。 venv しておけば安心です。
- バイナリ化
インストーラまで。
footprint は 7MBそこそこ
これに _internal フォルダを加えて 28MBくらいの圧縮ファイルが出来ます。
配布用のEXEファイルを作る話は、色々紆余曲折。
ぽぽろさんの記事から、
CMD.exe で駆動するバッチファイルで powershellを実行させるパターンを紹介してもらっていますが、 これ二つ問題がありまして
- 文字化ける
- パスが通ってないからかpowershell.exe が実行できなかった。
コピーさせていただいた run.cmd の実行結果がボロボロに文字化けてしまったので何が起きてるのかわかりません。1
debug..
本来なら、setup.exe っぽいものが実際にはインストールではなくドキュメントの塊を表示するだけの処理をするとなっているので、実行するたびに消える? オカシイ?
そもそも展開できてないのでは?? ということで、調べたら全然展開できてない。
hogehoge.cmd の文字化け対策
玉城 学(タマキ マナブ)さんの
バッチファイルで文字化け対策するには UTF-8/ANSI にある対策の一つ
@echo off
setlocal enabledelaydexpansion
REM ここに文字が化ける処理を入れる。
endlocal
を実行して、取り敢えず文字化けは消えます。
powershell.exe が見つからない問題
- 実際に CMD.exe から run.cmd を起動したらわかる?とやってみたところ
>run.cmd
指定したパスが見つかりません。
となりまして、これは powershell.exe くらいしか思いつかないので、powershell.exe ってどこだ?となります。 CMD.exe から powershell.exeを
実行できるとは限らないというところが本当に厄介。 とはいえ .ps1 では 例の
スクリプト実行許可が "Restricted" で与えられてないマシンは多いと思われ、
.BAT/.CMD に頼らざる得ません。
取り敢えず悩んでいても仕方ないので 環境変数を頼らずベタ書きします。
C:\Windows\System32¥WindowsPowerShell\v1.0\powershell.exe
ようやく完成・・・
終わりに
eelを極めたら mkdocs が 配布先でも動くのかもしれない・・そうなれば、marmaid 入れられますね。 フローチャートは静的ファイルで配布すると動かないので png化して貼り直したりしていて悔しいのです。
-
対策は分かりましたが、それで時間を食った。 ↩