Émile Ré
050073ab3c
Fix TextLength to count characters instead of bytes
...
Use utf8.RuneCountInString so multi-byte characters like é count as one
character. Add a unicode test case to cover this.
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-09 14:47:48 +04:00
Émile Ré
7cd4606278
Validate document content length by extracted text, not JSON size
...
Add Node.TextLength() to walk the ProseMirror tree and sum actual user
text. Introduce ProseMirrorDocumentMaxTextLength validator that enforces
a 50k character limit on extracted text, paired with a 500k byte safety
cap on the raw JSON string. Extend e2e tests for content length.
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-09 14:47:48 +04:00
Émile Ré
ad326224b3
Fix inline code rendering and error handling consistence
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-06 16:01:51 +04:00
Émile Ré
23eaa4ce24
Fix lint
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-06 15:35:58 +04:00
Émile Ré
6d2e9dbe19
Update MCP to handle markdown for all document content tools + fix converter edge case for code fence closing
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-06 15:13:39 +04:00
Émile Ré
24a9459fb9
Move tests to dedicated file for html converter
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-06 15:13:39 +04:00
Émile Ré
5280898eb9
Implement prosemirror markdown renderer
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-06 15:13:38 +04:00
Émile Ré
ab33285c9c
Rename files for clarity
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-06 15:13:38 +04:00
Émile Ré
7afab9487c
Convert html blocks inside table cells
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 21:32:39 +04:00
Émile Ré
9baeab4889
Add table conversion
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 20:56:37 +04:00
Émile Ré
821f66cc20
Review fixes
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 19:53:25 +04:00
Émile Ré
9bbcba68c0
Add mermaid tiptap extension
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:04:36 +04:00
Émile Ré
a03a2deae1
Fix lint & test
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:28 +04:00
Émile Ré
dda6e41102
Fix html conversion of soft line breaks + rel attr for _blank link targets
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:27 +04:00
Émile Ré
a461410fed
prosemirror html conversion unwrapping + table rows collection
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:27 +04:00
Émile Ré
f3982f23f9
Sanitize upon saving
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:27 +04:00
Émile Ré
62e68dfb6f
Fix html block to prosemirror default table colspan & rowspan
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:27 +04:00
Émile Ré
9781c7534f
Handle mardown html elements parsing with sanitization
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:27 +04:00
Émile Ré
745c52537d
Add promisemirror markdown capabilities
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:25 +04:00
Émile Ré
e71e7f1a45
Use prosemirror pkg to render document PDF
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:25 +04:00
Émile Ré
1e55bccdf8
Rename prosemirror file
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:25 +04:00
Émile Ré
79a4e7c781
Create prosemirror structs and HTML conversion logic
...
Signed-off-by: Émile Ré <emile@getprobo.com >
2026-04-01 18:03:24 +04:00