Traditional Mongolian Vertical Text
WordPress plugin: display Traditional Mongolian script in correct vertical layout. Gutenberg block + shortcode, preserves FVS/NIRUGU/MVS selectors, bundles Noto Sans Mongolian v3.002 (SIL OFL 1.1).
by qgl2023 · github.com/qgl2023/mongolian-vertical-text · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/qgl2023/mongolian-vertical-text/releases/download/v1.0.1/mongolian-vertical-text.zipReadme
Traditional Mongolian Vertical Text
A WordPress plugin that displays Traditional Mongolian script in correct vertical layout.
Provides a Gutenberg block and a [mongolian_text] shortcode. Automatically enqueues the required CSS. Preserves FVS, NIRUGU, and MVS variation selectors through the entire output chain.
Includes Noto Sans Mongolian v3.002 (SIL OFL 1.1) as the default font — works out of the box with no font configuration required. A custom font URL can be set in Settings to override the default.
Requirements
| Requirement | Minimum |
|---|---|
| WordPress | 6.0 |
| PHP | 8.0 |
| Browser | Any modern browser with CSS writing-mode support |
Installation
From a zip file
- Download the latest release zip from the Releases page.
- In WordPress admin → Plugins → Add New → Upload Plugin.
- Upload the zip, click Install Now, then Activate.
Manual (for developers)
cd wp-content/plugins/
git clone https://github.com/qgl2023/mongolian-vertical-text.git
The compiled block JS (blocks/mongolian-block/index.js and index.asset.php) are committed to the repository. No build step is required to use the plugin.
To modify the block editor JS:
cd mongolian-vertical-text
npm install
npm run build
Font
Bundled font — Noto Sans Mongolian v3.002
This plugin includes Noto Sans Mongolian v3.002, served from the plugin directory (fonts/NotoSansMongolian-Regular.ttf). No external request is made; no CORS configuration is required for the default font.
| Item | Value |
|---|---|
| Font | Noto Sans Mongolian Regular |
| Version | 3.002 |
| Source | github.com/notofonts/mongolian |
| Licence | SIL Open Font License 1.1 (fonts/OFL.txt) |
| Copyright | © The Noto Project Authors |
Note on copyright year:
fonts/OFL.txt(extracted from the v3.002 tag) states "Copyright 2022", while the font's internalnametable states "Copyright 2023". Both files originate from the same upstream release (notofonts/mongolian@NotoSansMongolian-v3.002); the discrepancy exists in the upstream repository itself and has not been introduced by this plugin.
The OFL 1.1 permits use, embedding, and redistribution in both free and commercial products, provided the licence text is included. The full licence is at fonts/OFL.txt.
Using a different font
To override the bundled font with your own:
- Host your
.ttfor.woff2file on an HTTPS server. - Ensure the font server returns
Access-Control-Allow-Originheaders that permit your WordPress domain. - In WordPress admin → Settings → Mongolian Text, enter the font URL and save.
When a custom URL is configured, the bundled Noto font is not loaded.
Font roadmap: v1.0 bundles Noto Sans Mongolian v3.002 as the default. If Noto Serif Mongolian ships through an official, stable channel, v1.1 will add it as a second selectable font (Sans stays the default). Details and verification procedure: docs/FONTS.md.
Usage
Gutenberg Block
- In the block editor, search for "Mongolian Vertical Text" or find it in the Text category.
- Insert the block.
- Open the "Mongolian Text" panel in the block sidebar.
- Paste your Traditional Mongolian source text into the textarea.
- Adjust columns, height, and alignment as needed.
The editor sidebar shows a variation selector audit — a count of FVS1/FVS2/FVS3/NIRUGU/MVS found in the text. If the audit shows zero selectors on a text that contains particles, the source text is likely missing the required Unicode control characters.
Shortcode
[mongolian_text]ᠬᠤᠷᠢᠮ ᠦ᠋ᠨ ᠤᠷᠢᠯᠭᠠ[/mongolian_text]
Attributes:
| Attribute | Default | Description |
|---|---|---|
font_size |
global setting | CSS font-size override, e.g. 1.4em |
line_height |
global setting | CSS line-height override, e.g. 2 |
height |
auto | Fixed height, e.g. 200px |
columns |
1 |
Number of vertical text columns |
align |
left |
left | center | right |
class |
— | Extra CSS class(es) on the wrapper element |
Example with attributes:
[mongolian_text font_size="1.4em" height="200px" columns="2" align="center"]
ᠬᠤᠷᠢᠮ ᠦ᠋ᠨ ᠤᠷᠢᠯᠭᠠ
[/mongolian_text]
Documentation
- Website setup & operating guide — how to build a Traditional Mongolian
WordPress site and use this plugin, in three languages:
- English
- 简体中文
- Кирилл монгол (machine-translated — native review recommended)
FVS / NIRUGU / MVS — Critical Information
The plugin preserves FVS (U+180B–U+180D), NIRUGU (U+180A), and MVS (U+180E) verbatim. These invisible Unicode control characters are essential for correct Traditional Mongolian glyph shaping.
The plugin does not add or remove them. If a genitive particle displays with the wrong glyph shape, the source text is missing the required FVS1 (U+180B).
Example of correctly authored genitive particle:
ᠦ᠋ᠨ = U+1826 U+180B U+1828
(ü) (FVS1) (n)
A plain text editor that strips invisible characters will destroy these selectors. Use an editor that preserves all Unicode code points, or verify the source in a hex viewer.
CSS Architecture
The plugin adds one CSS class to the page:
.mvt-text {
writing-mode: vertical-lr; /* mandatory — never changed */
direction: ltr;
letter-spacing: 0;
white-space: pre-wrap; /* preserves FVS/NIRUGU/MVS */
font-synthesis: none;
/* font-feature-settings intentionally absent */
}
font-feature-settings is not used. Forcing Mongolian shaping features via CSS has been observed to break particle (FVS) display in tested environments.
You can override font-size, line-height, and gap through the settings page or per-block/shortcode attributes. Do not override writing-mode in your theme CSS.
Theme Compatibility
If your theme CSS sets writing-mode on *, p, span, or similar selectors, it may conflict with this plugin. Add the following to your theme's style.css or custom CSS panel:
.mvt-text {
writing-mode: vertical-lr !important;
direction: ltr !important;
}
Licence
GPL-2.0-or-later. See LICENSE.
The bundled Noto Sans Mongolian font is licensed under the SIL Open Font License 1.1. See fonts/OFL.txt for the full licence text. If you configure a custom font URL, that font's licence is your responsibility.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.0.1 | Sep 9, 2026 | mongolian-vertical-text.zip | 0 |