이 도구는 초기 개발 단계입니다.
획기적인 변경 및 버그가 예상됩니다.
환경 변수와 파일 콘텐츠를 읽고 구문 분석하고 Elm 코드에 삽입하세요.
데이터는 Embedders 로 포함됩니다. Embedder는 특수 폴더 elm-embed-scripts
내에 있으며 Embed.Task
서명이 있는 Elm 선언입니다. 임베더 작업은 JSON 디코더 작업과 유사합니다. 예를 들어 Embed.File.read
로 파일을 읽고 Embed.andThen
으로 구문 분석할 수 있습니다. 구문 분석에 성공하면 Embed.succeed
로 값을 포함할 수 있고, 실패하면 Embed.fail
로 이유를 보고할 수 있습니다. 모든 임베더가 성공하면 결과 값이 생성되어 src/generated
내부에 Elm 코드로 배치되어 나머지 코드베이스에서 사용할 수 있습니다.
개발할 때 프로덕션 서버 대신 로컬 서버를 사용하고 싶을 수도 있습니다. 이를 달성하기 위해 사용할 서버의 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-pages도 확인해 보는 것이 좋습니다. 빌드 타임에 마크다운 구문 분석을 수행할 수 있으며 배터리가 포함된 기타 멋진 기능도 많이 있습니다. elm-embed
특정 작업을 위한 도구인 반면 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
범위 내에서 최선을 다하기를 원합니다. 이는 범위를 벗어나는 것을 거부하고 기능을 서두르는 대신 사물을 충분히 생각하는 데 시간을 투자하는 것을 의미합니다.