mirror of
https://github.com/abort-retry-ignore/joplock.git
synced 2026-07-13 19:29:21 +00:00
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
Squash-merge of the `tinymce` branch: replaces the previous editor with a dual-mode setup backed by the hidden #note-body textarea. - Rendered mode = TinyMCE 8 (persistent singleton over #tinymce-slot), markdown round-trip via Turndown (tinymceToMarkdown). - Markdown mode = CodeMirror 6 mounted in #cm-host (initCM/getCM/ cmSyncToTA/cmSetVal/mountMarkdownEditor); codemirror.min.js loaded before app.js. Full-screen CM6 code modal + language picker. - Code highlighting: hljs in preview/markdown, Prism (codesample) in rendered mode. Text expander + AI prose completion wired for both modes: - Text triggers expand in CM6 and in TinyMCE. - AI-action triggers and Ctrl/Cmd-Space run prose completion; in rendered mode the completion is offered in the same accept/dismiss popup as markdown mode (Enter/Tab insert, Esc discard), positioned at the iframe caret, inserted as DOM text nodes and synced to #note-body. Uploads: upload modal + direct drag/paste into TinyMCE and CM6, admin maxUploadMb limit with fast 413 pre-check, dropped images get a trailing blank line, upload-reload sync. Also included: per-user spellcheck toggle, runtime-toggleable debug logging, settings-page Esc dismiss, separate render/markdown font sizes, persisted editor mode, blank-line/image-spacing fixes across mode switches. Tests: cm6MarkdownMode, expanderRuntime, appRuntime, markdownToolbarClicks unit suites (558 total, all passing) + playwright specs (desktop, ai-rendered live provider E2E, upload-reload, resource-lifecycle).
40 lines
1.4 KiB
JSON
40 lines
1.4 KiB
JSON
{
|
|
"name": "joplock",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"description": "Thin-client sidecar web UI for stock Joplin Server",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node server.js",
|
|
"test": "node --test tests/*.test.js",
|
|
"build:cm": "cd cm-build && npm install && npm run build",
|
|
"build:hljs": "cd hljs-build && npm install && npm run build",
|
|
"test:ui": "playwright test",
|
|
"test:ui:headed": "playwright test --headed",
|
|
"generate:pwa-assets": "node ./scripts/generatePwaAssets.mjs",
|
|
"docker:build": "docker build -t joplock .",
|
|
"docker:up": "docker compose up -d",
|
|
"docker:down": "docker compose down",
|
|
"docker:up:build": "docker compose -f docker-compose-build.yml up -d --build",
|
|
"docker:down:build": "docker compose -f docker-compose-build.yml down",
|
|
"docker:up:dev": "docker compose -f docker-compose.dev.yml up -d --build",
|
|
"docker:down:dev": "docker compose -f docker-compose.dev.yml down",
|
|
"docker:up:full": "docker compose -f docker-compose.example-full.yml up -d",
|
|
"docker:down:full": "docker compose -f docker-compose.example-full.yml down"
|
|
},
|
|
"dependencies": {
|
|
"@adobe/css-tools": "4.4.4",
|
|
"@mixmark-io/domino": "2.2.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"html-entities": "1.4.0",
|
|
"markdown-it": "^14.1.1",
|
|
"pg": "8.16.3",
|
|
"qr-image": "^3.2.0",
|
|
"tinymce": "^8.6.0"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.59.1",
|
|
"jsdom": "26.1.0",
|
|
"sharp": "^0.34.5"
|
|
}
|
|
}
|