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
Text Formatting
- Bold:
*text* - Emphasis (Italics):
%text% Strike:-text-- Underline:
_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]
[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
- Mobile accessibility at fully working state
[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 alignment 'left|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
Demo
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.
