[Elixir + Phoenix] Phoenix에서도 Markdown하고 싶습니다.
Goal
Phoenix를 사용한 웹 서버에서 Markdown 기법의 문자열을 처리할 수 있도록 한다.
Dev-Environment
OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1
Earmark: v0.1.17
highlight.js: v8.6
Wait a minute
전에 블로그에 쓴 기사를 전재하고 있습니다.
Elixir 라이브러리에는 Github - pragdave/earmark이라는 라이브러리가 있습니다.
Markdown 표기법으로 작성된 문자열을 html로 변환하는 라이브러리 인 것 같습니다.
꽤 간단한 내용이 될 것 같아요.
도움이되면 다행입니다.
전부 하면 이런 느낌이 듭니다.
색인
Earmark sample
|> Create Project
|> Preparing for use
|> Let's use
|> Raw HTML
|> Extra
Create Project
샘플용 프로젝트를 만듭니다.
>cd プロジェクト作成ディレクトリ
>mix phoenix.new earmark_sample
>cd earmark_sample
>mix phoenix.server
>ctrl+c
Preparing for use
라이브러리를 이용할 준비를 한다.
파일: mix.exs
earmark 라이브러리를 추가합니다.
defp deps do
[...
{:earmark, "~> 0.1.17"}]
end
종속성 해결.
>mix deps.get
Running dependency resolution
Dependency resolution completed successfully
earmark: v0.1.17
* Getting earmark (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/earmark-0.1.17.tar)
Using locally cached package
Unpacked package tarball (c:/Users/Takes_000/.hex/packages/earmark-0.1.17.tar)
준비 끝.
Let's use
earmark 라이브러리를 사용합니다.
파일: web/views/page_view.ex
Markdown 문자열을 변환하는 함수를 추가.
def parse_markdown(markdown) do
Earmark.to_html(markdown)
end
파일: web/templates/page/index.html.eex
다음 설명을 템플릿에 추가합니다.
<div>
<%= parse_markdown(@markdown) %>
</div>
파일: web/controllers/page_controller.ex
index 액션을 다음과 같이 편집.
def index(conn, _params) do
markdown = """
# h1 Title
## h2 Title
`EarmarkSample.PageController`
```elixir
defmodule EarmarkSample.PageView do
use EarmarkSample.Web, :view
def markdown_to_html(markdown) do
Earmark.to_html(markdown)
end
end
` (←`を3つ記述、投稿ページのMarkdownで記述できないため)
"""
render conn, "index.html", markdown: markdown
end
실행하고 확인합시다! !
...어라? 원시 HTML이 표시되었습니다.
무슨 일이 없었을까요?
원시 HTML
Phoenix에서 원시 HTML을 볼 때,
다음과 같이 해야 합니다.
파일: web/templates/page/index.html.eex
다음 설명을 템플릿에 추가합니다.
<div>
<%= parse_markdown(@markdown) |> raw %>
</div>
Description:
phoenix_html 라이브러리에는 raw/1이라는 함수가 있습니다.
원시 HTML은 기본적으로 저장되기 때문에,
그대로 이용하고 싶은 경우는, raw/1 함수를 이용합시다.
Extra
소스 코드에 색상 (하이라이트)을 원한다고 생각하지 않습니까?
그렇습니다 ... 흑백으로 소스 코드를 작성하거나 보는 것은 이상합니다 ...
(마침내 최근까지 Elixir의 소스 코드를 흑백으로 편집했다고 말할 수 없다 ...)
직접 CSS를 만드시겠습니까?
그런 번거로운 일은하고 싶지 않습니다! !
하이라이트를 할 수있는 멋진 JavaScript가 있습니다! !
다운로드: highlight.js
여기에서 세트를 다운로드 해 주세요.
(Elixir를 체크하는 것을 잊지 마세요!)
해답한 디렉토리 구성은 다음과 같이 되어 있었습니다.
ディレクトリ
|-styles/色々なCSS
|-CHANGES.md
|-highlight.pack.js
|-LICENSE
|-README.md
|-README.ru.md
이 안에 styles와 highlight.pack.js
프로젝트에서 다음과 같이 배치하십시오.
js 배치: priv/static/js/highlight.pack.js
css 배치: priv/static/css/styles
배치 후 각 읽기를 추가합니다.
파일: web/templates/layout/application.html.eex
CSS 로딩 추가.
<link rel="stylesheet" href="<%= static_path(@conn, "/css/styles/default.css") %>">
JavaScript 로딩 추가.
<script src="<%= static_path(@conn, "/js/highlight.pack.js") %>"></script>
<script>hljs.initHighlightingOnLoad();</script>
실행하자!
와우! 하이라이트가 붙었습니다! !
Speaking to oneself
Elixir에서 Markdown을 사용하는 방법을 찾았습니다! 좋았어~.
Parser를 직접 만들고 싶지 않았습니다. (웃음)
도서관의 저자에게 감사드립니다! !
Bibliography
Github - pragdave/earmark
hexdocs - earmark
stackoverflow - How to render raw HTML code in Phoenix Framework?
highlight.js
Reference
이 문제에 관하여([Elixir + Phoenix] Phoenix에서도 Markdown하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/darui_kara/items/6c87486a070492f46bf0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1
Earmark: v0.1.17
highlight.js: v8.6
Wait a minute
전에 블로그에 쓴 기사를 전재하고 있습니다.
Elixir 라이브러리에는 Github - pragdave/earmark이라는 라이브러리가 있습니다.
Markdown 표기법으로 작성된 문자열을 html로 변환하는 라이브러리 인 것 같습니다.
꽤 간단한 내용이 될 것 같아요.
도움이되면 다행입니다.
전부 하면 이런 느낌이 듭니다.
색인
Earmark sample
|> Create Project
|> Preparing for use
|> Let's use
|> Raw HTML
|> Extra
Create Project
샘플용 프로젝트를 만듭니다.
>cd プロジェクト作成ディレクトリ
>mix phoenix.new earmark_sample
>cd earmark_sample
>mix phoenix.server
>ctrl+c
Preparing for use
라이브러리를 이용할 준비를 한다.
파일: mix.exs
earmark 라이브러리를 추가합니다.
defp deps do
[...
{:earmark, "~> 0.1.17"}]
end
종속성 해결.
>mix deps.get
Running dependency resolution
Dependency resolution completed successfully
earmark: v0.1.17
* Getting earmark (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/earmark-0.1.17.tar)
Using locally cached package
Unpacked package tarball (c:/Users/Takes_000/.hex/packages/earmark-0.1.17.tar)
준비 끝.
Let's use
earmark 라이브러리를 사용합니다.
파일: web/views/page_view.ex
Markdown 문자열을 변환하는 함수를 추가.
def parse_markdown(markdown) do
Earmark.to_html(markdown)
end
파일: web/templates/page/index.html.eex
다음 설명을 템플릿에 추가합니다.
<div>
<%= parse_markdown(@markdown) %>
</div>
파일: web/controllers/page_controller.ex
index 액션을 다음과 같이 편집.
def index(conn, _params) do
markdown = """
# h1 Title
## h2 Title
`EarmarkSample.PageController`
```elixir
defmodule EarmarkSample.PageView do
use EarmarkSample.Web, :view
def markdown_to_html(markdown) do
Earmark.to_html(markdown)
end
end
` (←`を3つ記述、投稿ページのMarkdownで記述できないため)
"""
render conn, "index.html", markdown: markdown
end
실행하고 확인합시다! !
...어라? 원시 HTML이 표시되었습니다.
무슨 일이 없었을까요?
원시 HTML
Phoenix에서 원시 HTML을 볼 때,
다음과 같이 해야 합니다.
파일: web/templates/page/index.html.eex
다음 설명을 템플릿에 추가합니다.
<div>
<%= parse_markdown(@markdown) |> raw %>
</div>
Description:
phoenix_html 라이브러리에는 raw/1이라는 함수가 있습니다.
원시 HTML은 기본적으로 저장되기 때문에,
그대로 이용하고 싶은 경우는, raw/1 함수를 이용합시다.
Extra
소스 코드에 색상 (하이라이트)을 원한다고 생각하지 않습니까?
그렇습니다 ... 흑백으로 소스 코드를 작성하거나 보는 것은 이상합니다 ...
(마침내 최근까지 Elixir의 소스 코드를 흑백으로 편집했다고 말할 수 없다 ...)
직접 CSS를 만드시겠습니까?
그런 번거로운 일은하고 싶지 않습니다! !
하이라이트를 할 수있는 멋진 JavaScript가 있습니다! !
다운로드: highlight.js
여기에서 세트를 다운로드 해 주세요.
(Elixir를 체크하는 것을 잊지 마세요!)
해답한 디렉토리 구성은 다음과 같이 되어 있었습니다.
ディレクトリ
|-styles/色々なCSS
|-CHANGES.md
|-highlight.pack.js
|-LICENSE
|-README.md
|-README.ru.md
이 안에 styles와 highlight.pack.js
프로젝트에서 다음과 같이 배치하십시오.
js 배치: priv/static/js/highlight.pack.js
css 배치: priv/static/css/styles
배치 후 각 읽기를 추가합니다.
파일: web/templates/layout/application.html.eex
CSS 로딩 추가.
<link rel="stylesheet" href="<%= static_path(@conn, "/css/styles/default.css") %>">
JavaScript 로딩 추가.
<script src="<%= static_path(@conn, "/js/highlight.pack.js") %>"></script>
<script>hljs.initHighlightingOnLoad();</script>
실행하자!
와우! 하이라이트가 붙었습니다! !
Speaking to oneself
Elixir에서 Markdown을 사용하는 방법을 찾았습니다! 좋았어~.
Parser를 직접 만들고 싶지 않았습니다. (웃음)
도서관의 저자에게 감사드립니다! !
Bibliography
Github - pragdave/earmark
hexdocs - earmark
stackoverflow - How to render raw HTML code in Phoenix Framework?
highlight.js
Reference
이 문제에 관하여([Elixir + Phoenix] Phoenix에서도 Markdown하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/darui_kara/items/6c87486a070492f46bf0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Earmark sample
|> Create Project
|> Preparing for use
|> Let's use
|> Raw HTML
|> Extra
Create Project
샘플용 프로젝트를 만듭니다.
>cd プロジェクト作成ディレクトリ
>mix phoenix.new earmark_sample
>cd earmark_sample
>mix phoenix.server
>ctrl+c
Preparing for use
라이브러리를 이용할 준비를 한다.
파일: mix.exs
earmark 라이브러리를 추가합니다.
defp deps do
[...
{:earmark, "~> 0.1.17"}]
end
종속성 해결.
>mix deps.get
Running dependency resolution
Dependency resolution completed successfully
earmark: v0.1.17
* Getting earmark (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/earmark-0.1.17.tar)
Using locally cached package
Unpacked package tarball (c:/Users/Takes_000/.hex/packages/earmark-0.1.17.tar)
준비 끝.
Let's use
earmark 라이브러리를 사용합니다.
파일: web/views/page_view.ex
Markdown 문자열을 변환하는 함수를 추가.
def parse_markdown(markdown) do
Earmark.to_html(markdown)
end
파일: web/templates/page/index.html.eex
다음 설명을 템플릿에 추가합니다.
<div>
<%= parse_markdown(@markdown) %>
</div>
파일: web/controllers/page_controller.ex
index 액션을 다음과 같이 편집.
def index(conn, _params) do
markdown = """
# h1 Title
## h2 Title
`EarmarkSample.PageController`
```elixir
defmodule EarmarkSample.PageView do
use EarmarkSample.Web, :view
def markdown_to_html(markdown) do
Earmark.to_html(markdown)
end
end
` (←`を3つ記述、投稿ページのMarkdownで記述できないため)
"""
render conn, "index.html", markdown: markdown
end
실행하고 확인합시다! !
...어라? 원시 HTML이 표시되었습니다.
무슨 일이 없었을까요?
원시 HTML
Phoenix에서 원시 HTML을 볼 때,
다음과 같이 해야 합니다.
파일: web/templates/page/index.html.eex
다음 설명을 템플릿에 추가합니다.
<div>
<%= parse_markdown(@markdown) |> raw %>
</div>
Description:
phoenix_html 라이브러리에는 raw/1이라는 함수가 있습니다.
원시 HTML은 기본적으로 저장되기 때문에,
그대로 이용하고 싶은 경우는, raw/1 함수를 이용합시다.
Extra
소스 코드에 색상 (하이라이트)을 원한다고 생각하지 않습니까?
그렇습니다 ... 흑백으로 소스 코드를 작성하거나 보는 것은 이상합니다 ...
(마침내 최근까지 Elixir의 소스 코드를 흑백으로 편집했다고 말할 수 없다 ...)
직접 CSS를 만드시겠습니까?
그런 번거로운 일은하고 싶지 않습니다! !
하이라이트를 할 수있는 멋진 JavaScript가 있습니다! !
다운로드: highlight.js
여기에서 세트를 다운로드 해 주세요.
(Elixir를 체크하는 것을 잊지 마세요!)
해답한 디렉토리 구성은 다음과 같이 되어 있었습니다.
ディレクトリ
|-styles/色々なCSS
|-CHANGES.md
|-highlight.pack.js
|-LICENSE
|-README.md
|-README.ru.md
이 안에 styles와 highlight.pack.js
프로젝트에서 다음과 같이 배치하십시오.
js 배치: priv/static/js/highlight.pack.js
css 배치: priv/static/css/styles
배치 후 각 읽기를 추가합니다.
파일: web/templates/layout/application.html.eex
CSS 로딩 추가.
<link rel="stylesheet" href="<%= static_path(@conn, "/css/styles/default.css") %>">
JavaScript 로딩 추가.
<script src="<%= static_path(@conn, "/js/highlight.pack.js") %>"></script>
<script>hljs.initHighlightingOnLoad();</script>
실행하자!
와우! 하이라이트가 붙었습니다! !
Speaking to oneself
Elixir에서 Markdown을 사용하는 방법을 찾았습니다! 좋았어~.
Parser를 직접 만들고 싶지 않았습니다. (웃음)
도서관의 저자에게 감사드립니다! !
Bibliography
Github - pragdave/earmark
hexdocs - earmark
stackoverflow - How to render raw HTML code in Phoenix Framework?
highlight.js
Reference
이 문제에 관하여([Elixir + Phoenix] Phoenix에서도 Markdown하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/darui_kara/items/6c87486a070492f46bf0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Github - pragdave/earmark
hexdocs - earmark
stackoverflow - How to render raw HTML code in Phoenix Framework?
highlight.js
Reference
이 문제에 관하여([Elixir + Phoenix] Phoenix에서도 Markdown하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/darui_kara/items/6c87486a070492f46bf0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)