Current section
Files
Jump to
Current section
Files
lib/xberg/html_output_config.ex
# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:4e21c71a5751b345136e5ca51dea30bbd3862f7fdc63aa50e6b36be84c454e0e
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
defmodule Xberg.HtmlOutputConfig do
@moduledoc """
Configuration for styled HTML output.
When set on `html_output` alongside
`output_format = OutputFormat::Html`, the pipeline builds a
[`StyledHtmlRenderer`](crate::rendering::StyledHtmlRenderer) instead of
the plain comrak-based renderer.
# Example
```rust
use xberg::core::config::{HtmlOutputConfig, HtmlTheme};
let config = HtmlOutputConfig {
theme: HtmlTheme::GitHub,
css: Some(".kb-p { font-size: 1.1rem; }".to_string()),
..Default::default()
};
```
"""
@typedoc "Configuration for styled HTML output."
@type t :: %__MODULE__{
css: String.t() | nil,
css_file: String.t() | nil,
theme: String.t() | nil,
class_prefix: String.t() | nil,
embed_css: boolean()
}
defstruct css: nil,
css_file: nil,
theme: :unstyled,
class_prefix: nil,
embed_css: true
defimpl Jason.Encoder do
@doc false
def encode(value, opts) do
value
|> Map.from_struct()
|> Enum.reject(fn {_k, v} -> v == nil end)
|> Enum.into(%{})
|> Jason.Encoder.encode(opts)
end
end
end