yrby 0.3.1-aarch64-linux → 0.4.0-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/README.md +25 -15
- data/lib/y/3.4/yrby.so +0 -0
- data/lib/y/4.0/yrby.so +0 -0
- data/lib/y/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c9eefadd4a715234c45c57dd998258235635393e38a9710d6c64b03bd9695d3a
|
|
4
|
+
data.tar.gz: 65c3398040d4cd407c5f2a18c61dd7446a73631970370286e53fe7ff5300de82
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e6fd7fec1a55106e4713c39fce1004b734df40aab2d3efc813210b4491758c832be0e6b0c2287ca7306cbb06c444b7301f74013e57e36660eddae3f3cef8b03c
|
|
7
|
+
data.tar.gz: fbeafe0fb21bd1a0bb11d978418033c1ca2829cf9098a038ed90cc89f826f276467b477c7b1be5c6947042622bab49e2469ad52c48632beb2d852bbeb09ab451
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,23 @@ to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.4.0] - 2026-07-07
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **`Y::ProseMirror` — render ProseMirror/Tiptap documents to HTML.**
|
|
14
|
+
`Y::ProseMirror.new(doc).to_html` turns a Tiptap document into HTML on the
|
|
15
|
+
server, with no Node process or headless editor. The output matches Tiptap's
|
|
16
|
+
own `getHTML()`; the tests check it byte-for-byte against a document captured
|
|
17
|
+
from a real editor. It follows `ueberdosis/tiptap-php` and reads both name
|
|
18
|
+
styles editors use — Tiptap's `bulletList`/`bold` and prosemirror-schema-basic's
|
|
19
|
+
`bullet_list`/`strong`. Covers paragraphs, headings, blockquotes,
|
|
20
|
+
bullet/ordered/task lists, code blocks, links, images, mentions, details,
|
|
21
|
+
hard breaks, horizontal rules, tables, text styles (color, font family), and
|
|
22
|
+
every text mark. A table renders as semantic `<table><tbody>` without the
|
|
23
|
+
editor's column-width styling. A root that isn't ProseMirror (a Lexical
|
|
24
|
+
document, say) returns `nil`.
|
|
25
|
+
|
|
9
26
|
## [0.3.1] - 2026-07-01
|
|
10
27
|
|
|
11
28
|
Fixes from a full source review.
|
data/README.md
CHANGED
|
@@ -175,6 +175,31 @@ guarantees keep serving safe:
|
|
|
175
175
|
keeps its pending), while `encode_state_as_update` stays lossless so you can
|
|
176
176
|
still preserve the raw pending bytes for recovery.
|
|
177
177
|
|
|
178
|
+
### Rendering to HTML
|
|
179
|
+
|
|
180
|
+
`Y::ProseMirror` renders a ProseMirror or Tiptap document to HTML on the
|
|
181
|
+
server, with no Node process or headless editor:
|
|
182
|
+
|
|
183
|
+
```ruby
|
|
184
|
+
prosemirror = Y::ProseMirror.new(doc)
|
|
185
|
+
prosemirror.to_html # the "default" fragment (Tiptap's default root)
|
|
186
|
+
prosemirror.to_html("content") # or another XML root
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The output matches Tiptap's own `getHTML()`, checked byte-for-byte in the tests
|
|
190
|
+
against a document captured from a real editor. So you can render, search, or
|
|
191
|
+
email a collaborative document without running a browser. It follows
|
|
192
|
+
[`tiptap-php`](https://github.com/ueberdosis/tiptap-php) and reads both name
|
|
193
|
+
styles editors use — Tiptap's `bulletList`/`bold` and prosemirror-schema-basic's
|
|
194
|
+
`bullet_list`/`strong`.
|
|
195
|
+
|
|
196
|
+
It covers paragraphs, headings, blockquotes, bullet/ordered/task lists, code
|
|
197
|
+
blocks, links, images, mentions, details, hard breaks, horizontal rules,
|
|
198
|
+
tables, text styles (color, font family), and every text mark. A table renders
|
|
199
|
+
as semantic `<table><tbody>`, without the column-width styling Tiptap's editor
|
|
200
|
+
view adds. A root that isn't ProseMirror — a Lexical document, say — returns
|
|
201
|
+
`nil`.
|
|
202
|
+
|
|
178
203
|
### Protocol codec (module functions)
|
|
179
204
|
|
|
180
205
|
Classifying and unwrapping wire frames is stateless, so it's exposed as
|
|
@@ -242,21 +267,6 @@ servers:
|
|
|
242
267
|
causal dependencies are already in the store (checked against `on_load`); a
|
|
243
268
|
causally-incomplete update triggers a resync instead, so the log always
|
|
244
269
|
rebuilds cleanly.
|
|
245
|
-
- **An unhealable gap is dropped, not resynced forever.** A resync heals a gap
|
|
246
|
-
whose missing dependency is still in flight. But a *permanently*-orphaned update
|
|
247
|
-
(its dependency is gone for good) stays gappy through every resync, and a client
|
|
248
|
-
retransmitting it would loop endlessly (server resyncs → client resends →
|
|
249
|
-
repeat). After `gap_strike_limit` rejections of the same update on one
|
|
250
|
-
connection (default 3, minimum 2), the channel settles it with
|
|
251
|
-
`{ "ack" => id, "dropped" => true }` and drops it instead of resyncing again —
|
|
252
|
-
breaking the loop while never dropping a *healable* gap (those heal within a
|
|
253
|
-
resync or two, and healing frees the strike). The `dropped` flag lets the
|
|
254
|
-
client surface the loss (`yrby-client` reports it via `onError`) instead of
|
|
255
|
-
silently showing synced. Set `gap_strike_limit nil` to disable. Works on both
|
|
256
|
-
transports: plain ActionCable keeps strikes on the channel instance; under
|
|
257
|
-
AnyCable (fresh instance per RPC command) they persist through
|
|
258
|
-
anycable-rails' `state_attr_accessor` (istate), declared automatically when
|
|
259
|
-
anycable-rails is loaded.
|
|
260
270
|
- **`on_change` is at-least-once, and the durable guarantee is that replaying the
|
|
261
271
|
log reconstructs the document.** Every update triggers `on_change` before it's acked or
|
|
262
272
|
broadcast (record-before-distribute). If exactly-once updates matter for you, **you
|
data/lib/y/3.4/yrby.so
CHANGED
|
Binary file
|
data/lib/y/4.0/yrby.so
CHANGED
|
Binary file
|
data/lib/y/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yrby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- JP Camara
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-07-
|
|
11
|
+
date: 2026-07-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|