PHPackages                             fof/rich-text - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fof/rich-text

ActiveFlarum-extension[Utility &amp; Helpers](/categories/utility)

fof/rich-text
=============

Rich Text Editor for Flarum

1.0.0(4mo ago)14.0k↑1080.8%[3 issues](https://github.com/FriendsOfFlarum/rich-text/issues)2MITTypeScriptPHP ^8.1

Since Feb 20Pushed 3mo agoCompare

[ Source](https://github.com/FriendsOfFlarum/rich-text)[ Packagist](https://packagist.org/packages/fof/rich-text)[ Docs](https://friendsofflarum.org)[ Fund](https://opencollective.com/fof/donate)[ RSS](/packages/fof-rich-text/feed)WikiDiscussions 2.x Synced yesterday

READMEChangelog (6)Dependencies (2)Versions (10)Used By (2)

FoF Rich Text
=============

[](#fof-rich-text)

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667) [![Latest Stable Version](https://camo.githubusercontent.com/942fdb6e16b8e05cda30446bd9489ea1a41de32253ec840fae6b3bdcb18b3378/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666f662f726963682d746578742e737667)](https://packagist.org/packages/fof/rich-text) [![Total Downloads](https://camo.githubusercontent.com/96e7544f9e2a12efd721963fa6ceed77254df288ae96b12b29a816859cf94de5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f666f662f726963682d746578742e737667)](https://packagist.org/packages/fof/rich-text) [![OpenCollective](https://camo.githubusercontent.com/1903c197bb0307e60d6328653532b8a6b9890b898fbc92e314ab39d699491e74/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6f70656e636f6c6c6563746976652d666f662d626c75652e737667)](https://opencollective.com/fof/donate)

A [Flarum](http://flarum.org) extension. Fully integrated WYSIWYG Rich Text Editor for Flarum, powered by [Tiptap](https://tiptap.dev/) (built on [ProseMirror](https://prosemirror.net/)).

[![Screenshot](https://camo.githubusercontent.com/fd5e56430c1024f0f0e17975007abae5829b5fda198b89108d013d8d7b07f92d/68747470733a2f2f692e6962622e636f2f744d536a36446d682f696d6167652e706e67)](https://camo.githubusercontent.com/fd5e56430c1024f0f0e17975007abae5829b5fda198b89108d013d8d7b07f92d/68747470733a2f2f692e6962622e636f2f744d536a36446d682f696d6167652e706e67)

Installation
------------

[](#installation)

```
composer require fof/rich-text:*
```

Updating
--------

[](#updating)

```
composer update fof/rich-text
```

FAQ
---

[](#faq)

### What does it support?

[](#what-does-it-support)

By default, everything from the [s9e/TextFormatter Litedown syntax](https://s9etextformatter.readthedocs.io/Plugins/Litedown/Syntax/) except indented code blocks and underlined headers. The tables and checklists extensions add support for [PipeTables](https://s9etextformatter.readthedocs.io/Plugins/PipeTables/Syntax/) and [TaskLists](https://s9etextformatter.readthedocs.io/Plugins/TaskLists/Synopsis/).

BBCodes are not WYSIWYG'd, but their syntax characters won't be escaped so you can still use them.

Custom syntax supported out of the box:

- **Spoiler blocks** — `>! text`
- **Inline spoilers** — `||text||`
- **Math blocks** — `$$ ... $$`
- **Inline math** — `$text$`
- **Subscript** — `~text~`
- **Superscript** — `^text^`

### Does it work with mentions, emoji, and fof/upload?

[](#does-it-work-with-mentions-emoji-and-fofupload)

Yes. The extension implements Flarum's `EditorDriverInterface` and is fully compatible with `flarum/mentions`, `flarum/emoji`, and `fof/upload`.

### Can users opt out?

[](#can-users-opt-out)

Yes. Users can disable the rich text editor from their settings page. You can also enable the **Toggle Button** setting in the admin dashboard to show a toggle button directly inside the composer.

### What about bundle size?

[](#what-about-bundle-size)

Version 2.x ships the editor as a **lazy-loaded async chunk**. The Tiptap editor code (~520 KB minified, ~150 KB gzipped) is only downloaded when a user opens the composer. The main forum bundle contributed by this extension is under 13 KB.

This is a significant improvement over 1.x, where ~350 KB was added to every page load.

### Is it extensible?

[](#is-it-extensible)

Yes. The extension exposes two main extension points for third-party developers:

**Add toolbar buttons:**

```
import { extend } from 'flarum/common/extend';

extend(fof.richText.components.TiptapMenu.prototype, 'items', function (items) {
  items.add('myButton', MyButton.component({ editor: this.attrs.editor }), 10);
});
```

**Add Tiptap extensions to the editor:**

```
import { extend } from 'flarum/common/extend';

extend(fof.richText.tiptap.TiptapEditorDriver.prototype, 'buildExtensions', function (items) {
  items.add('myExtension', MyTiptapExtension);
});
```

### What's it built on?

[](#whats-it-built-on)

Version 2.x is built on [Tiptap 3](https://tiptap.dev/) (which runs [ProseMirror](https://prosemirror.net/) underneath). The markdown serialization layer uses a custom `prosemirror-markdown`-based parser and serializer, ensuring faithful roundtrip compatibility with s9e/TextFormatter's output.

### Is it a bundled extension?

[](#is-it-a-bundled-extension)

No. This extension is published and maintained by the [Friends of Flarum](https://friendsofflarum.org) community.

Links
-----

[](#links)

- [Packagist](https://packagist.org/packages/fof/rich-text)
- [GitHub](https://github.com/FriendsOfFlarum/rich-text)
- [OpenCollective](https://opencollective.com/fof/donate)
- [Discuss](https://discuss.flarum.org/d/21335-friendsofflarum-rich-text)

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance59

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~24 days

Total

9

Last Release

15d ago

Major Versions

1.x-dev → 2.0.0-beta.12026-02-23

PHP version history (2 changes)1.0.0PHP ^8.1

2.0.0-beta.1PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16573496?v=4)[IanM](/maintainers/imorland)[@imorland](https://github.com/imorland)

![](https://www.gravatar.com/avatar/09c355d62c7dcfc040309947946c06155947883a72b6b0c7a354c7d93453fad1?d=identicon)[huseyinfiliz](/maintainers/huseyinfiliz)

---

Top Contributors

[![huseyinfiliz](https://avatars.githubusercontent.com/u/37220000?v=4)](https://github.com/huseyinfiliz "huseyinfiliz (24 commits)")[![imorland](https://avatars.githubusercontent.com/u/16573496?v=4)](https://github.com/imorland "imorland (4 commits)")[![flarum-bot](https://avatars.githubusercontent.com/u/39334649?v=4)](https://github.com/flarum-bot "flarum-bot (3 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (1 commits)")

---

Tags

flarum

### Embed Badge

![Health badge](/badges/fof-rich-text/health.svg)

```
[![Health](https://phpackages.com/badges/fof-rich-text/health.svg)](https://phpackages.com/packages/fof-rich-text)
```

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

12128.3k](/packages/flarum-lang-russian)[fof/byobu

Well integrated, advanced private discussions.

59120.6k13](/packages/fof-byobu)[fof/discussion-language

Specify the language a discussion is written in &amp; sort by language

1034.8k4](/packages/fof-discussion-language)[flarum-lang/french

French language pack to localize the Flarum forum software plus its official and third-party extensions.

1938.7k](/packages/flarum-lang-french)[fof/gamification

Upvotes and downvotes for your Flarum community

4066.1k8](/packages/fof-gamification)[fof/best-answer

Mark a post as the best answer in a discussion

25154.0k20](/packages/fof-best-answer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
