BareGit

Update README with Custom Markups documentation

Author: MetroWind <chris.corsair@gmail.com>
Date: Sat Jan 24 14:51:30 2026 -0800
Commit: 49fef15c08aa268dca999c7dfebcfd6b4690f8fc

Changes

diff --git a/README.md b/README.md
index 290b197..5e363df 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@ MacroDown is a C++ Markdown processor that extends the CommonMark syntax with a
 
 *   **CommonMark Compatible**: Supports standard Markdown syntax like headers, lists, blockquotes, code blocks, emphasis, and links.
 *   **Macro System**: unique TeX-like macro system (`%macro{arg1}{arg2}`) that powers the entire rendering process.
+*   **Custom Markups**: Define custom prefix or delimited markup patterns that transform into macro calls.
 *   **Customizable**: Define your own macros using the `%def` intrinsic.
 *   **Two-Step Rendering**: Exposes the syntax tree for inspection or modification before rendering to HTML.
 
@@ -95,6 +96,28 @@ Or programmatically in C++:
 md.evaluator().define("greet", {"name"}, "Hello, %name!");
 ```
 
+### Custom Markups
+
+MacroDown allows you to define custom shorthand syntax that maps to macros.
+
+#### Prefix Markups
+Useful for tags or mentions. A prefix markup starts with a character and ends at a whitespace or punctuation boundary.
+
+```cpp
+// Transforms #test into %tag{test}
+md.definePrefixMarkup({"#", "tag"});
+md.evaluator().define("tag", {"content"}, "<span class=\"tag\">#%content</span>");
+```
+
+#### Delimited Markups
+Useful for custom inline styles. A delimited markup starts and ends with the same character.
+
+```cpp
+// Transforms :important: into %highlight{important}
+md.defineDelimitedMarkup({":", "highlight"});
+md.evaluator().define("highlight", {"content"}, "<mark>%content</mark>");
+```
+
 ## Testing
 
 To run the unit tests: