icodealchemy8k downloadsBring Notion-style layouts with blocks side-by-side, resizable Markdown blocks that support texts, images, embeds, and internal links.
README.md
Bring Notion-style layouts with blocks side-by-side, resizable markdown blocks that support full Obsidian syntax including images, embeds, and internal links.
horizontal / hblock code block--- separator⚠️ WARNING
Please refrain from entering tasks directly within the Horizontal code block.
The Horizontal function operates based on the code block. In Obsidian, text within a code block is treated as plain text. Consequently, if you input tasks inside a code block, neither the tasks plugin nor the dataview plugin will be able to recognize them.
```horizontal ### Block 1 This is the left block. --- ### Block 2 This is the right block. ```

```horizontal ### Left Block This is the left block. --- ### Middle Block This is the middle block. --- ### Right Block This is the right block. ```

```hblock ### Left Block This is free text - Item 1 - [ ] Item 2 - **Item 3** This is a ***formatted*** **text** --- ### Right Image Block ![[test_image.png]] ```

You can customize the layout appearance globally without editing CSS:
.hblocks-toolbar areas.Find it under Obsidian → Settings → Community Plugins → Horizontal Blocks – Styling.
All options apply via CSS variables/classes, so themes/snippets can override them; changes apply live without restart.
See the full release history in CHANGELOG.md.
Contributions are welcome! Whether it's a bug fix, a new feature, or a UI improvement — here's how to get involved.
npm install
npm run dev
main.js, manifest.json, and styles.css into your vault's plugin folder:<vault>/.obsidian/plugins/horizontal-blocks/
Reload Obsidian or use the Reload App Without Saving command to pick up changes.git checkout -b feature/your-feature-name
fix: correct font size in block content).npm run build passes without TypeScript errors before opening a PR.main branch. Include a clear description of what changed and why.Closes #12).StyleSettings when adding new styling options — add the field to the interface, set a default in DEFAULT_STYLE_SETTINGS, wire it up in applyStylingVariables(), and add a toggle/picker in HBlockStylingSettingTab.package.json scripts.Please use our GitHub Project board to submit bug reports and feature requests. It helps us triage and prioritize efficiently.
Have you found the Horizontal Blocks plugin helpful, and want to support it? I welcome donations to support future development efforts. However, I typically do not accept payments for bug bounties or feature requests, as financial incentives can create stress and expectations that I prefer to avoid in my hobby project!
Support @iCodeAlchemy: