<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged scribejs</title>
<link>https://coderlegion.com/tag/scribejs</link>
<description>Powered by Question2Answer</description>
<item>
<title>ScribeJS 1.0.1 - NOW IS LIVE!</title>
<link>https://coderlegion.com/11540/scribejs-1-0-1-now-is-live</link>
<description>&lt;p&gt;Docs/Demo: &lt;a rel=&quot;nofollow&quot; href=&quot;https://scribejs.top/docs&quot;&gt;https://scribejs.top/docs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; Highlights&lt;/p&gt;
&lt;p&gt;Cross-browser toolbar state is now identical across Chrome, Firefox, and Safari.&lt;/p&gt;
&lt;p&gt;✨ New Features&lt;/p&gt;
&lt;p&gt;Polling safety net — 100ms interval force-refreshes toolbar state while focused, with JSON-diff guard to avoid unnecessary re-renders&lt;br&gt;
formatChange event — emitted synchronously after every command execution and DOM normalization&lt;br&gt;
Command registry — metadata-driven toolbars with icons, labels, shortcuts, groups, and active() functions&lt;br&gt;
React  wrapper — ref-based API with getHTML(), setHTML(), bold(), italic(), etc.&lt;br&gt;
 Bug Fixes&lt;/p&gt;
&lt;p&gt;Safari: Selection no longer lost when clicking toolbar buttons (save/restore cycle)&lt;br&gt;
Firefox: Toolbar state updates reliably despite selectionchange timing gaps (multi-event pipeline)&lt;br&gt;
All browsers: Toolbar state detected via DOM tree walk instead of deprecated queryCommandState&lt;br&gt;
All browsers: 5-phase DOM normalizer ensures consistent HTML output&lt;br&gt;
 Tests&lt;/p&gt;
&lt;p&gt;37 toolbar-state tests (command metadata, group ordering, format state)&lt;br&gt;
Selection manager tests (save/restore, collapsed vs range, cross-browser shims)&lt;br&gt;
Normalizer tests (all 5 phases with edge cases)&lt;br&gt;
⚠️ Known Limitations&lt;/p&gt;
&lt;p&gt;Mobile Safari/Chrome: basic support, touch interaction edge cases remain&lt;br&gt;
IME input: untested with CJK composition&lt;br&gt;
Shadow DOM: not supported&lt;/p&gt;
&lt;p&gt;Plugin for GrapesJS: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/GoodPHP/grapesjs-plugin-scribejs&quot;&gt;https://github.com/GoodPHP/grapesjs-plugin-scribejs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GitHub: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/GoodPHP/scribejs&quot;&gt;https://github.com/GoodPHP/scribejs&lt;/a&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/11540/scribejs-1-0-1-now-is-live</guid>
<pubDate>Thu, 12 Feb 2026 19:23:04 +0000</pubDate>
</item>
<item>
<title>ScribeJS — Free, Modern Inline RTE</title>
<link>https://coderlegion.com/11194/scribejs-free-modern-inline-rte</link>
<description>&lt;p&gt; ScribeJS — A Free, Modern Inline Rich‑Text Editor (Open Source)&lt;/p&gt;
&lt;p&gt;If you’ve ever needed a simple yet powerful rich‑text editor for your web project — especially one that feels modern and flexible — then ScribeJS is one worth trying.&lt;/p&gt;
&lt;p&gt;GoodPHP’s ScribeJS is a free and open‑source inline React text editor that makes adding rich editing experiences to your apps straightforward. The project is lightweight, framework‑agnostic, and designed to work well in real‑world production apps.&lt;/p&gt;
&lt;p&gt; What is ScribeJS?&lt;/p&gt;
&lt;p&gt;ScribeJS is a rich‑text editor core with a fixed toolbar and minimal API that lets developers embed powerful editing features directly into web interfaces. It was built with a modern JavaScript/TypeScript stack and provides:&lt;/p&gt;
&lt;p&gt; Inline‑first editing experience&lt;br&gt;
✂️ Simple, typed API for manipulating text and formats&lt;br&gt;
 Built‑in HTML sanitization and safe paste handling&lt;br&gt;
 Extensible plugin architecture for custom features&lt;br&gt;
 Framework‑agnostic design so it integrates anywhere React/JS is used&lt;/p&gt;
&lt;p&gt;You can install it via npm:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install scribejs-editor
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And use it like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { createEditor } from 'scribejs-editor';

const editor = createEditor({
  target: '#editor',
  placeholder: 'Start typing...'
});

editor.bold();
editor.link('https://example.com');
const html = editor.getHTML();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; Why It Matters&lt;/p&gt;
&lt;p&gt;Modern web apps often need rich‑text editing but don’t want the overhead of huge editors like CKEditor or TinyMCE. &lt;em&gt;ScribeJS&lt;/em&gt; strikes a nice balance — giving you &lt;strong&gt;powerful editing features without a heavyweight bundle&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Its API is intuitive and ideal for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blog editors&lt;/li&gt;
&lt;li&gt;Comment boxes&lt;/li&gt;
&lt;li&gt;Custom CMS tooling&lt;/li&gt;
&lt;li&gt;Collaborative content creation tools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And because it’s open source (BSD‑3‑Clause), you can adapt and extend it freely. &lt;/p&gt;
&lt;p&gt; Who It’s For&lt;/p&gt;
&lt;p&gt;Whether you’re building a startup MVP, a documentation tool, or enhancing an admin dashboard, &lt;em&gt;ScribeJS&lt;/em&gt; lets you:&lt;/p&gt;
&lt;p&gt;✔ Add rich editing quickly&lt;br&gt;
✔ Keep your app lean&lt;br&gt;
✔ Customize behavior using plugins  &lt;/p&gt;
&lt;p&gt;Best of all, it fits perfectly into modern JavaScript and React workflows. &lt;/p&gt;
&lt;p&gt; Where to Get It&lt;/p&gt;
&lt;p&gt;Check out the code and docs on GitHub:&lt;/p&gt;
&lt;p&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/GoodPHP/scribejs&quot;&gt;https://github.com/GoodPHP/scribejs&lt;/a&gt;&lt;/p&gt;
</description>
<category>Launches</category>
<guid isPermaLink="true">https://coderlegion.com/11194/scribejs-free-modern-inline-rte</guid>
<pubDate>Sat, 07 Feb 2026 00:09:07 +0000</pubDate>
</item>
</channel>
</rss>