Packages
phoenix_webcomponent
1.1.0
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