このツールは開発初期段階にあります
重大な変更やバグが予想されます
環境変数とファイルのコンテンツを読み取り、解析し、Elm コードに埋め込みます。
データはEmbedderを使用して埋め込まれます。エンベッダーは特別なフォルダーelm-embed-scripts
内に存在し、署名Embed.Task
を持つ任意の Elm 宣言です。エンベッダーの操作は JSON デコーダーの操作と似ており、たとえばEmbed.File.read
でファイルを読み取り、 Embed.andThen
で解析できます。解析が成功した場合はEmbed.succeed
で値を埋め込むことができ、失敗した場合はEmbed.fail
で理由を報告できます。すべてのエンベッダーが成功すると、結果の値が生成され、Elm コードとしてsrc/generated
内に配置され、コードベースの残りの部分で使用できます。
開発時には、実稼働サーバーの代わりにローカルサーバーを使用したい場合があります。これを実現するには、使用するサーバーの URL を含む環境変数を埋め込むことができます。
elm-embed-scripts/Server.elm
:
import Embed
import Embed.Environment
server : Embed . Task String
server =
Embed . Environment . string " server_url "
環境変数server_url
がlocalhost:8080
に設定されているときにelm-embed run
実行すると、 src/Generated/Server.elm
内に次の情報が表示されます。
server : String
server =
" localhost:8080 "
Elm コードの代わりにマークダウン ドキュメントからページを作成したい場合があります。通常のアプローチは、ドキュメントを文字列として組み込み、実行時にそれを解析してレンダリングすることです。これにはいくつかの欠点があります。解析には時間がかかります。また、マークダウンを Elm 文字列に手動で埋め込むのは煩わしく、エラーが発生しやすくなります。最後に、解析が失敗した場合に対処し、ユーザーに何らかのエラー ページを表示する必要があります。 elm-embed
使用すると、 .md
ファイルを読み取り、ビルド時に解析できます。解析に失敗すると、実行時のユーザーではなく開発者としてビルド時にエラーが発生します。
この例では、dillonkearns/elm-markdown を使用してマークダウン ドキュメントを解析します。
-- elm-embed-scripts/Markdown.elm
import Embed
import Embed.File
import Markdown.Block exposing ( Block (..) , HeadingLevel (..) , Inline (..) )
import Markdown.Parser
document : Embed . Task ( List Block )
document =
Embed . andThen
( markdown ->
case Markdown . Parser . parse markdown of
Ok blocks ->
Embed . succeed blocks
Err _ ->
Embed . fail " Parse error "
)
( Embed . File . read " markdown.md " )
注:これに興味がある場合は、elm ページもチェックしてみる価値があるかもしれません。ビルド時にマークダウン解析を実行したり、バッテリーを含むその他の優れた機能を多数実行したりできます。 elm-embed
1 つの特定の目的のためのツールですが、 elm-pages
どちらかというとフレームワーク的なものです。
elm-embed
エンベッダーが使用できるように、 elm-embed-scripts
に独自のモジュールをいくつか配置します。これらのモジュールの完全な API はここで確認できます。
以下のコードを実行すると、64 ビット Linux 用の事前構築バイナリがダウンロードされ、実行可能になって/usr/local/bin
に配置されます。これはほとんどの Linux ディストリビューションで機能します。
curl -L -o elm-embed.gz https://github.com/emmabastas/elm-embed/releases/download/0.1.0/elm-embed-0.1.0-linux-x64.gz
gunzip elm-embed.gz
chmod +x elm-embed
sudo mv elm-embed /usr/local/bin/
これで、 elm-embed
コマンドラインから呼び出せるようになります。
sudo rm /usr/local/bin/elm-embed
でアンインストールする
現在、Windows または Mac 用のビルド済みバイナリはありません。唯一のオプションはソースからビルドすることです。これは、Elm コンパイラをビルドするときと同じプロセスです。
elm-embed init
で初期化します。
elm-embed run
でエンベッダーを実行します。
elm-embed --help
でヘルプを表示します。
現時点で貢献する最善の方法は、ここにコメントを残してユースケースを提供していただくことです。できるだけ詳しく説明してください。 elm-embed
何をどのようにして実現できるのでしょうか?何を変更/追加する必要がありますか?
これらの使用例は、将来、より多くの情報に基づいて設計を決定するのに非常に役立ちますが、特定の使用例が実装されることを保証することはできません。私はelm-embed
その範囲内でできる限り最高のものであってほしいと思っています。つまり、範囲外のものを拒否し、機能を急ぐのではなく時間をかけてじっくり検討することを意味します。