# Any-RTL > Smart RTL support for mixed-language notes in Obsidian. **Any-RTL** provides flexible right-to-left (RTL) and left-to-right (LTR) direction handling for Obsidian, with content-aware detection for mixed-language notes. ## ✨ Features - 🔄 **Multiple direction modes** - **Auto** — follow Obsidian's automatic direction detection. - **Any-RTL** — use RTL when a rendered text block contains any RTL character; otherwise use LTR. - **LTR / RTL** — force a specific direction. - 📄 **Per-file direction** — remember the selected direction for individual notes. - 🏷️ **Frontmatter support** — control a note's direction directly from YAML frontmatter. - 📝 **Mixed-language content** — handle Persian, Arabic, Hebrew, English, and other RTL/LTR content within the same note. - 👁️ **Reading Mode support** — apply direction handling to rendered notes. - 📏 **Per-block direction** — independently detect rendered paragraphs, list items, and blockquotes (including nested quotes). --- ## 📦 Installation ### 🌐 Community Plugins 1. Open **Settings → Community plugins → Browse**. 2. Search for **Any RTL**. 3. Click **Install**, then **Enable**. ### 🧪 BRAT For the current development version: 1. Install **BRAT** from Community Plugins. 2. Open **Settings → BRAT → Beta Plugin List**. 3. Add `https://github.com/zamanimm/obsidian-any-rtl` 4. Install and enable **Any RTL**. ### 🛠️ Manual Installation 1. Download the latest release from [GitHub Releases](https://github.com/zamanimm/obsidian-any-rtl/releases). 2. Create the plugin folder: ```text .obsidian/plugins/any-rtl/ ``` 3. Place these files inside the folder: ```text main.js manifest.json styles.css ``` 4. Restart Obsidian or reload the plugins. 5. Enable **Any RTL** from **Settings → Community plugins**. --- ## 🎯 Direction Modes | Mode | RTL character present | No RTL character | Behavior | | ----------- |:-------------------------------------------------:|:-----------------------------------------------------:| ----------------------------------------------- | | **LTR** | LTR | LTR | Force left-to-right | | **RTL** | RTL | RTL | Force right-to-left | | **Auto** | Depends on the first strong directional character | Depends on the first strong directional character | Follow Obsidian’s automatic direction detection | | **Any-RTL** | **RTL** | **Depends on the first strong directional character** | RTL if **any RTL character** is present | * Auto uses Obsidian's automatic detection; Any-RTL checks each rendered text block. --- ## 🔍 Any RTL Detection A rendered text block is treated as RTL if it contains **at least one RTL character**: > 📝 Example > --- > >