BBCode Scoped Formatter
Scope-based BBCode tags for forum posts and BBCode-based platforms.
Options
| Runtime | Options |
|---|---|
| Rust | language |
| Elixir | language |
| JavaScript | language |
| Java | withLang(), withFormatter(Formatter.BBCODE) |
| CLI | (none) |
Example
- JavaScript
- Rust
- Elixir
- Java
- CLI
import {highlight} from '@lumis-sh/lumis'
import {bbcodeScoped} from '@lumis-sh/lumis/formatters'
import javascript from '@lumis-sh/lumis/langs/javascript'
const output = await highlight(
'const x = "[url=x]"',
bbcodeScoped({language: javascript})
)
console.log(output)
use lumis::{highlight, BBCodeScopedBuilder, languages::Language};
let bbcode = highlight(
"fn main() {}",
BBCodeScopedBuilder::new()
.language(Language::Rust)
.build()
.unwrap(),
);
println!("{}", bbcode);
bbcode = Lumis.highlight!(
~s(const x = "[url=x]"),
formatter: {:bbcode_scoped, language: "javascript"}
)
IO.puts(bbcode)
import io.roastedroot.lumis4j.core.Formatter;
import io.roastedroot.lumis4j.core.Lang;
import io.roastedroot.lumis4j.core.Lumis;
var lumis = Lumis.builder().build();
var highlighter = lumis.highlighter()
.withLang(Lang.JAVASCRIPT)
.withFormatter(Formatter.BBCODE)
.build();
var output = highlighter.highlight("const x = \"[url=x]\"").string();
System.out.println(output);
lumis.close();
lumis highlight main.rs -f bbcode-scoped
Output format
Scope names from the syntax tree are converted to BBCode tags by replacing dots with hyphens:
[keyword-function]fn[/keyword-function] [function]main[/function]
bbcodeScoped() / :bbcode_scoped / bbcode-scoped emit highlight scope names as tags. They do not try to generate standard forum-style BBCode such as [b], [color], or [code].
When to use it
- Forum posts and BBCode-based platforms
- Custom rendering pipelines that consume scope-tagged text
- Lightweight markup without HTML overhead