Skip to content

Convert Godot BBCode cross-refs and codeblocks to Markdown#3

Merged
deevus merged 2 commits intomainfrom
feature/godot-bbcode-conversion
Mar 21, 2026
Merged

Convert Godot BBCode cross-refs and codeblocks to Markdown#3
deevus merged 2 commits intomainfrom
feature/godot-bbcode-conversion

Conversation

@deevus
Copy link
Copy Markdown
Contributor

@deevus deevus commented Mar 21, 2026

Summary

  • Convert Godot-specific BBCode tags to proper Markdown using bbcodez's callback system
  • Cross-reference tags ([member], [method], [param], [constant], [signal], [enum], [annotation], [theme_item]) render as inline code or italic
  • Bare class references ([Node2D], [@GDScript]) render as inline code
  • [codeblock] renders as fenced code blocks with auto-dedented content
  • [codeblocks] with [gdscript]/[csharp] sections render as separate language-tagged fenced blocks

Before

See also [member position]. This [method rotate] uses [param delta].
[codeblock]
				print("hello")
[/codeblock]

After

See also `position`. This `rotate()` uses *delta*.

\`\`\`
print("hello")
\`\`\`

Test plan

  • zig build test — all 14 new tests + existing tests pass
  • gdoc Node2D — cross-refs converted in class index
  • gdoc Node2D.look_at[param], [method] converted in member docs
  • gdoc Vector2.from_angle[codeblock] renders as fenced code
  • gdoc Rect2.grow[codeblocks] renders both gdscript and csharp blocks
  • gdoc CharacterBody2D.get_slide_collision — indented code preserves relative indentation

deevus added 2 commits March 21, 2026 22:10
Use bbcodez's callback system to handle Godot-specific BBCode tags that
were passing through unconverted to the markdown cache:

- Cross-reference tags ([member], [method], [param], [constant],
  [signal], [enum], [annotation], [theme_item]) now render as inline
  code or italic markdown
- Bare class references ([Node2D], [@GDscript]) render as inline code
- [codeblock] tags render as fenced code blocks with dedented content
- [codeblocks] with [gdscript]/[csharp] sections render as separate
  language-tagged fenced blocks

Configured bbcodez with equals_required_in_parameters=false to parse
space-separated Godot tags, is_self_closing_fn for tags without closing
pairs, and verbatim_tags for code block content preservation.
Snapshot tests covering cross-reference tags, bare class refs,
mixed Godot + standard BBCode, codeblocks, multi-language codeblocks,
and full XML-to-markdown roundtrip.
@deevus deevus merged commit 4e61f63 into main Mar 21, 2026
2 checks passed
@deevus deevus deleted the feature/godot-bbcode-conversion branch March 21, 2026 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant