Packages
phoenix_webcomponent
1.0.0-beta.4
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.5
3.1.4
3.1.3
3.1.2
3.1.1
3.1.0
2.8.0
2.7.0
2.6.0
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.0
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.2.3
2.2.2
2.2.1
2.2.0
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.0
1.1.1
1.1.0
1.0.0
1.0.0-beta.4
1.0.0-beta.3
1.0.0-beta.2
0.0.0
Phoenix view functions for working with WebComponent
Current section
Files
Jump to
Current section
Files
lib/phoenix_webcomponent/markdown.ex
defmodule Phoenix.WebComponent.Markdown do
@moduledoc """
Render markdown in to remark-element.
The remark-element supported markdown featrues:
* github flavor
* auto highlight code with lowlight.js and auto detect system light/dark themes.
* charts render by mermaid.js
"""
import Phoenix.HTML.Tag
@doc """
Generates a html customElement remark-element to preview markdown.
Docs of remark-element (See https://gsmlg-dev.github.io/lit/?path=/story/gsmlg-remark-element--basic).
Useful to ensure that links that change data are not triggered by
search engines and other spidering software.
## Examples
wc_remark("# Hello", class: "dark")
#=> <remark-element class="dark" content="# Hello"></remark-element>
wc_remark(content: "# Hello", class: "btn")
#=> <remark-element class="btn" content="# Hello"></remark-element>
## Options
* `:debug` - print log in browser console
* `:content` - The content of markdown, replace innerHTML.
All other options are forwarded to the underlying button input.
"""
def wc_remark(text, opts) when is_binary(text) and is_list(opts) do
opts = Keyword.put(opts, :content, text)
wc_remark(opts)
end
def wc_remark(text) when is_binary(text) do
opts = Keyword.put([], :content, text)
wc_remark(opts)
end
def wc_remark(opts) when is_list(opts) do
{text, opts} = Keyword.pop(opts, :content, "")
content_tag(:"remark-element", text, opts)
end
end