This page documents hVmark v1.x. See Changelog for updates.
hVmark
hVmark is a tiny, opinionated markup language made by and for, well, me. While it's used all over this website, it's primarily used in posts in lieu of hard-coded HTML.
Inline Markers
Block Formatting
- Center Text:
&text&
Wrap line in<center>tag.
Text Formatting
- Bold:
*text* - Emphasis (Italics):
%text% Strike:-text-- Underline:
_text_ Code:`text`
Misc.
- Soft line break:
[]→<br> - Horizontal rule:
---→<hr>
Three or more-,*, or_characters on their own line will output a horizontal rule.
Output styling depends on configuration. - Subheading:
*// Subheading Text* - Subheading output:
<h# id="subheading-text">// Subheading Text</h#>
Actual heading level is based on config. - Optional TOC: If two or more subheadings are found, a table of contents will be generated. The TOC is automatically placed under the main heading (
<h1>) of the page, at the top of the page if a main heading isn't present, or at the location of<!--HV_TOC-->.
Links, Images, YouTube
All use the same “anchor + fangs” pattern: @@anchor^fangs^
- Links:
@@https://example.com/^Link text^
(leave fangs empty to use the URL as text, e.g.@@https://example.com/^^) - Images:
@@img:/path/file.jpg^Caption^(85% width by default; caption optional)
Full:@@img:/path/file.jpg[50px|25% left|right|center|blank]^Caption^ - YouTube:
@@ytb:VIDEOID^Caption^(caption optional)
Lists
- Dotted: one item per line starting with
[+] - Plain: one item per line starting with
[-] - Soft breaks are allowed inside items via
[]
Notes & Quirks
- Order matters when nesting:
*and%are forgiving, but consistent nesting is recommended. - Inline raw HTML on a line disables hVmark parsing on that line.
- A backslash will escape an inline marker and output the literal symbol.
(e.g.,\%will output %.) - Despite the above, the symbols used for inline markers do not appear in the alt text of images, escaped or not.
- Emojis are supported in regular text, but not in subheadings.
- Subheadings with similar names will have duplicate IDs; the TOC generator does not add incrementing suffixes.
- Blockquotes are not currently part of v1.
Changelog
Conventions
v[major].[minor].[patch]
[2026-04-10] - v1.6.1
- Improved code escaping.
- General housekeeping & bug stomping.
|| [2026-03-31] - v1.6.0
- Added code and centered text markers.
- Leaned into the "this parser emits deprecated code" angle, because why not?
- Seriously deliberating adding blockquotes.
[2025-12-29] - v1.5.0
- Added horizontal rule markers
(---,***and___). - Cleaned up vanilla reference model.
- Misc. output cleanup.
[2025-12-27] - v1.4.1 | Vanilla Reference Model
- Project up to this point was made available via GitHub.
- Site-specific code was removed;
model contains the root functionality. - Published under the MIT license.
- Download Here
[2025-11-15] - v1.4.0
- Parser consistency pass for anchors/fangs (images & YouTube).
- Global image behavior normalized; width/align controlled at source.
- Added style-fallbacks to make targeted output CSS-agnostic.
- Minor general output cleanup.
[2025-10-22] - v1.3.0
- Global declarations added for centralized control.
- Added subheading marker
*// Heading*→<h# id="…">. - Auto-TOC under first
<h1>/<h2>or at<!--HV_TOC-->.
[2025-09-30] - v1.2.0
- Module consolidation and general housekeeping.
- Regex tightening for text-formatting markers.
- Misc. bug fixes.
[2025-09-09] - v1.1.0
- Escapes:
\* \% \- \_ \[](literal output). - Image size
[px|%]and alignmentleft|right|center|blank. - Misc. bug fixes.
[2025-09-05] - v1.0.0
- v1 initial: strict per-line parsing; inline HTML on a line disables hVmark on that line.
- Inline text-formatting markers.
- “Anchor + fangs” for links/images/YouTube.
- Soft line break
[]inside lists/captions. - Lists:
[+](square) and[-](plain). - Wired root hVmark parser into existing auto-paragraphing framework.
hVmark v1 is available under the MIT license.
hVmark is not a general-purpose Markdown replacement; it’s a small, strict tool I actively use and maintain.
