Elm 앱 내에서 코드 강조 표시
4525 단어 highlight.js하이라이트 표시MarkdownElm
이 기사에서는 Elm 앱에서 편리하게 코드 하이라이트를 수행하는 방법을 소개합니다.
Highlight.js
JS 로 코드 하이라이트를 실시하는 라이브러리라고 하면 highlight.js
이 방법은 페이지를 로드할 때 존재하는 DOM 요소 중에서 강조하려는 코드를 찾는데, Elm 앱의 경우 페이지를 로드할 때 DOM 요소가 아직 생성되지 않았기 때문입니다.
동적 요소 강조 표시
highlight.js 에는 Getting Started 라는 함수가 준비되어 있어 동적으로 생성되는 요소를 강조 표시할 수 있습니다.
그러나 강조하고 싶은 요소를 그릴 때마다 1 port에서이 함수를 호출하는 것은 너무 많은 노력이 필요합니다.
elm-explorations/markdown
여기서 initHighlightingOnLoad 의 등장입니다.
Elm 작자인 Evan은 즐겁기 때문에, 일반인에게는 허용되지 않는 비밀의 방법으로 JS 의 코드를 내부적으로 직접 실행할 수 있는 Elm 라이브러리를 작성해 공개할 권한을 가지고 있습니다.
elm-explorations/markdown 은 그런 즐거운 라이브러리 중 하나이며 내부적으로 highlight.js
highlight
를 사용합니다.본래의 용도로서는 Markdown 의 텍스트를 받아
Html.Html msg
로 변환하는 것입니다만, myCode : Html msg
myCode =
Markdown.toHtml []
"""
```elm
view =
Atom.row
[ basicBlock
]
```
"""
이렇게하면 다음과 같은 DOM이 만들어집니다.
<pre><code class="lang-elm"><span class="hljs-title">view</span> =
<span class="hljs-type">Atom</span>.row
[ basicBlock
]
</code></pre>
이것을 브라우저로 표시하면 highlight(name, value, ignore_illegals, continuation) 과 같이 됩니다.
elm-explorations/markdown 사용법
실제로 사용할 때 elm-explorations/markdown이 highlight.js 자체를 포함하지는 않습니다.
단지
windows.hljs.highlight()
와 같은 형태로 highlight.js 의 함수가 windows.hljs
로서 사용할 수 있는 상태가 되어 있는 것을 상정하고 있습니다.따라서 highlight.js가 제공하는 CSS 파일뿐만 아니라,
예를 들어 다음과 같은 방법으로 별도 highlight.js 를 읽어 둘 필요가 있습니다.
require
하거나 읽어 둔다 ( 강조 표시됩니다. )또,
toHtml
함수는 캐릭터 라인의 Parsing 를 실시하고 있는 관계입니다 문지름 무거운 처리가 되어 있습니다.Html.Lazy.lazy
등을 활용하여 불필요한 재평가가 일어나지 않도록 궁리하십시오.보다 자세한 사용법에 대해서는,elm-explorations/markdown 를 사용해 스타일 가이드를 작성하고 있다 공식 패키지 사이트의 예 등도 참조해 주세요.
예
elm-atomic-design-example
사쿠라 찬에게 밥을 준다.
사쿠라 짱 더보기
Reference
이 문제에 관하여(Elm 앱 내에서 코드 강조 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arowM/items/101d55fd4d718966e67b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)