Files
edgeever/apps/extension
tianma-if ea9900b7e2 feat(i18n): add Japanese as a first-class in-app locale
Ship a full shared Japanese catalog for Web, desktop, and Android, resolve ja-JP to ja instead of English, and give iOS a three-language path with Japanese login, settings, and list chrome. Unmatched languages still fall back to English.
2026-09-14 12:49:11 +08:00
..
2026-07-30 23:58:21 +08:00

EdgeEver Web Clipper

Chrome, Edge, and Firefox Manifest V3 extension for saving the current webpage or selected text to a user's self-hosted EdgeEver instance.

Current MVP

  • Configure an EdgeEver instance URL and API Token.
  • Test the connection and select a default notebook.
  • Click the extension action to capture the selected content, or extract the article body with Mozilla Readability when there is no selection.
  • Convert the extracted article HTML into Markdown with Turndown before uploading it.
  • Create a searchable EdgeEver memo with the source URL and a web-clip tag.

The extension does not use a central relay service. The page content is sent directly to the EdgeEver instance configured by the user.

Localization

The extension uses the cross-browser chrome.i18n compatibility namespace. English is the fallback locale, and Simplified Chinese is available for browsers whose UI language is Chinese.

User-visible strings live in public/_locales/<locale>/messages.json. Add or update every supported locale when changing interface copy. Chrome Web Store listing translations are maintained separately in the developer dashboard; ready-to-paste English and Simplified Chinese copy is available in STORE_LISTING.md.

Development

Chromium

From the repository root:

bun run build:extension

Then open apps/extension/dist from chrome://extensions or edge://extensions with Developer mode enabled and choose Load unpacked.

Firefox

Firefox uses the same application code with a Firefox-specific generated manifest:

bun run build:extension:firefox
bun run lint:extension:firefox

Open about:debugging#/runtime/this-firefox, choose Load Temporary Add-on, and select apps/extension/dist-firefox/manifest.json.

To create the unsigned AMO submission archive after building and linting:

bun run package:extension:firefox

The archive is written to apps/extension/web-ext-artifacts. Firefox requires AMO signing for normal installation. The manifest supports Firefox Desktop 140 or later and Firefox for Android 142 or later so Mozilla's built-in data-transmission consent UI is available.

Firefox data disclosure

The Firefox package declares the data types required by its user-triggered clipping function:

  • authenticationInfo: the API token sent directly to the user's EdgeEver instance.
  • browsingActivity: the URL of the page the user chooses to clip.
  • websiteContent: the selected text or extracted article content the user chooses to clip.

No data is sent to an EdgeEver-operated relay, analytics service, or advertising service.

The next planned step is preserving a single-file HTML archive in R2 while keeping extracted text in the memo for search.