Commit Graph
34 Commits
Author SHA1 Message Date
tianma-if 5eecc8df13 perf: reduce bundled fonts and defer startup dependencies
Keep shared offline defaults and download optional fonts into a validated cache with reliable export fallbacks. Prune stale Android DOM assets and refresh the smaller iOS editor bundles.

Preserve lazy startup boundaries through direct shared exports and dependency-aware splitting. Add ESM graph and Chrome startup checks to prevent eager editor and font loading.
2026-10-19 11:10:25 +08:00
Dariusz Korytoandtianma-if 82dac9b5cb fix: keep share and form links out of search indexes and caches (#608)
Public share and form pages only added a robots meta tag from JavaScript,
so the HTML for /share/* and /form/* was served without any indexing or
caching directive, and the form page had none at all. Error responses
from /api/public/* also lacked X-Robots-Tag.

Send one policy everywhere a token-bearing link is served:

  X-Robots-Tag: noindex, nofollow, noarchive, nosnippet, noimageindex
  Cache-Control: private, no-store
  Referrer-Policy: no-referrer

- /api/public/*: shared middleware in the application, so it applies on
  Cloudflare and Docker, including 404/403 responses. Routes that already
  set Cache-Control keep it.
- /share/* and /form/* HTML: _headers rules for Cloudflare static assets
  and the self-hosted static server.
- Referrer-Policy keeps the share token out of Referer headers sent to
  linked sites.

robots.txt is deliberately not used to block these paths: a disallowed
URL can still be indexed from external links, because crawlers never see
the noindex header.

Co-authored-by: tianma-if <yingwaizhiying@gmail.com>
2026-10-18 11:23:42 +08:00
tianma-if 9dc05c2480 feat(fonts): unify catalog for body and poster editors 2026-10-16 22:59:19 +08:00
tianma-if 776fc3b566 feat(share): refine image themes and persist settings across clients 2026-10-16 21:57:49 +08:00
Dariusz Koryto b3f4dfda2b feat(workspace): localize default notebooks and welcome note at first sign-in (#562)
* feat(workspace): localize default notebooks and welcome note at first sign-in

A new installation always created its five default notebooks, welcome
note and note templates in Chinese, whatever the interface language.
Members added by the owner got notebooks and templates in the owner's
language instead of their own.

The seed data is now localized once, at the first sign-in of the
workspace's user, using the UI locale the client sends with the login
request (Web and Android send it; other clients fall back to
Accept-Language, and unsupported languages to English).

Migration 0070 marks the default workspace as waiting for this only on
an installation nobody has used yet: no users, no notes beyond the
welcome note, no edits to it, no extra notebooks, revisions or
resources. Existing installations keep their data unchanged. Member
workspaces created by the owner are marked when created.

The sign-in localizes notebook names, templates, the welcome note and
its search document in one transaction that also clears the mark, and
replaces only values that still equal a seeded translation. A failed
attempt leaves the mark for the next sign-in to retry, and a second
sign-in changes nothing. The demo clears the mark so its bilingual seed
stays as it is.

Refs #483

* fix(workspace): guard seed inserts and title-only welcome edits during localization

- Default template and AI prompt inserts in the first-sign-in batch now
  require the pending marker, so a delayed concurrent sign-in cannot
  recreate seeds removed after the faster sign-in finished.
- The welcome note is treated as untouched only while it keeps the seeded
  title, the system actor, the seed content hash, and revision 0, so a
  title-only edit is no longer overwritten.
- Add regression tests for both cases.

Refs #483
2026-10-14 20:45:42 +08:00
tianma-if 0e958b4944 chore: upgrade core dependencies and migrate site to Astro 7
Align editor, AI SDK, query, and Expo SDK 57 dependencies; pin floating versions and rebase the Mermaid and Android sharing patches. Refresh the standalone iOS editor bundle and migrate site content collections while preserving routes.

Validation: typechecks for Web/API, Android, and iOS editor; Web, site, iOS editor, Worker, Docker server, extension, and Android APK builds; 2,994 tests passed, 23 skipped. Built-in browser verified rich-text paste/undo and bilingual site navigation.

USB-device upgrade/data/share verification and desktop cross-version release gates remain pending. Remaining dependency audit advisories are not all resolved.
2026-10-12 12:22:42 +08:00
tianma-if ccc73ab6af feat(markdown): preserve front matter on import and export
Support imported YAML properties without adding a toolbar entry. Keep ordinary single-note exports body-only and retain full metadata for ZIP backups.
2026-10-10 18:42:45 +08:00
tianma-if e0a2f38447 feat(web): add GitHub-style details fold blocks (#418) 2026-09-20 19:35:04 +08:00
tianma-if 760e82ab50 fix(i18n): fall unmatched locales back to English
Unknown browser and system languages now resolve to English instead of
Simplified Chinese, and Japanese App Store / Play listing copy is kept
in store-assets for console publishing.
2026-09-14 10:56:53 +08:00
tianma-if 559768034e feat(mcp): support semantic diagram note creation 2026-09-06 20:48:53 +08:00
tianma-if 12f16633c2 fix: prevent diagram metadata leaking on mobile 2026-09-06 13:06:40 +08:00
tianma-if 5fdc1c1aa1 fix(editor): stop links extending into new text
Make the shared TipTap link mark non-inclusive so text typed after a pasted or terminal link remains plain across web, desktop, Android, and iOS editors.

Refs #355
2026-09-05 22:39:10 +08:00
tianma-if ce6d4a18e9 fix(ios): make Xcode Cloud editor build reproducible 2026-09-05 00:26:02 +08:00
tianma-if 7da54257f7 fix: report instance deployment source 2026-09-04 11:58:24 +08:00
tianma-if 7846cd07e8 fix(mobile): merge later uploads into adjacent image galleries
Share gallery merging across web, Android and iOS, and handle single-image uploads. Refs #342.
2026-09-03 11:35:31 +08:00
tianma-if 3aea120ea6 feat: enable native mobile image gallery editing (#342) 2026-09-03 01:26:14 +08:00
tianma-if 416083147f chore(deps): upgrade TipTap and Expo stack 2026-09-02 02:15:02 +08:00
tianma-if abeaa1d4fe feat(mobile): upgrade mobile note image export with 8 shared poster themes, typography options, and brand logo 2026-08-22 22:45:12 +08:00
tianma-if 091d83e858 修复移动端 AI 选区替换换行 2026-08-17 13:10:13 +08:00
tianma-if c9d0785c81 feat: unify editable note templates 2026-08-15 21:02:55 +08:00
tianma-if d367f05821 perf: reduce Worker auth and sync overhead
Move workspace provisioning and seed work off the authentication hot path, compact sync changes, optimize cursor queries, and keep browser-only KaTeX rendering out of the Worker bundle.\n\nRefs #244
2026-08-14 16:44:38 +08:00
tianma-if a257e53220 feat: add task lists across clients 2026-08-10 12:31:26 +08:00
tianma-if ef3b81aaa5 feat(editor): render LaTeX formulas (#197) 2026-08-09 15:45:11 +08:00
tianma-if 7f1af71dcb feat: use semantic merge dividers between combined notes
Insert a dedicated merge-divider node instead of a plain horizontal rule so
theme hairlines no longer wash out merge boundaries, with Markdown round-trip
markers and stronger multi-client styling.
2026-08-08 01:10:07 +08:00
tianma-if 64c992f315 feat: add table editing 2026-07-21 14:41:24 +08:00
tianma-if e90e939815 feat(mobile): support image size presets
Add the four desktop-compatible image width presets to the native app and share width configuration across clients.
2026-07-21 03:50:56 +08:00
tianma-if d2fc58c82d release: prepare v0.4.5 mobile core 2026-07-19 12:23:01 +08:00
tianma-if db4b8bd86c feat(mobile): share core UI contract 2026-07-19 12:15:13 +08:00
tianma-if 354eaed1e4 feat(mobile): align app with PWA mobile experience 2026-07-19 03:25:20 +08:00
tianma-if 769e6d4ab4 fix: use TipTap Markdown converter (#38) 2026-07-17 20:38:13 +08:00
yoma 0acbddf685 Release v0.1.3 2026-07-10 19:18:25 +08:00
yoma eb6159f143 fix(pwa): hide PWA install card in settings if already installed 2026-07-07 13:14:05 +08:00
yoma d57162a400 chore: bump version to 0.1.1 2026-07-07 13:05:03 +08:00
tianma dd746e1d60 Initial EdgeEver implementation 2026-06-26 17:02:35 +08:00