Tableau
Use Lumis in Tableau through Tableau's built-in MDEx markdown converter options.
Tableau already uses MDEx for Markdown by default. That makes Lumis a built-in integration point rather than a custom post-processing step.
The hook you want is Tableau's config :tableau, :config, markdown: [mdex: ...] configuration. Pass Lumis formatter options through MDEx's syntax_highlight setting.
Add dependencies
def deps do
[
{:tableau, "~> 0.30"},
{:lumis, "~> 0.10"}
]
endTableau 0.30 requires mdex ~> 0.11.1. That MDEx version includes its parsers
and requires :lumis, so this integration needs no lumis_wasm_* packages or
:mdex_native configuration. It cannot resolve alongside mdex ~> 0.14.
Direct calls to Lumis.highlight/2 use separate parser
packages. For an integration that supports MDEx 0.14, see
MDEx parser packages for the dependency changes and
NimblePublisher for a complete setup.
Configure Tableau to use Lumis
# config/config.exs
import Config
config :tableau, :config,
url: "http://localhost:8080",
markdown: [
mdex: [
extension: [
table: true,
header_ids: "",
tasklist: true,
strikethrough: true,
autolink: true,
alerts: true,
footnotes: true
],
render: [unsafe: true],
syntax_highlight: [
formatter: {:html_inline, theme: "catppuccin_latte"}
]
]
]With that in place, fenced code blocks rendered by Tableau's Markdown pipeline will use Lumis.
Multi-theme output
config :tableau, :config,
url: "http://localhost:8080",
markdown: [
mdex: [
syntax_highlight: [
formatter:
{:html_multi_themes,
themes: [
light: "catppuccin_latte",
dark: "catppuccin_frappe"
],
default_theme: "light-dark()"}
]
]
]This is the better default when your site already supports light and dark themes.