diff --git a/README.md b/README.md index 1c35c28..53274af 100644 --- a/README.md +++ b/README.md @@ -133,25 +133,29 @@ See also [a list of milestones][milestones]. ### v0.2.0 (Beta) - Released -* :nest_with_eggs: [Basic option (at minimum, the port of the GhostText server)](https://github.com/exteditor/ghostbird/issues/3) -* :nest_with_eggs: [Prepare for i18n (Make texts translatable)](https://github.com/exteditor/ghostbird/issues/4) +* :white_check_mark: [Basic option (at minimum, the port of the GhostText server)](https://github.com/exteditor/ghostbird/issues/3) +* :white_check_mark: [Prepare for i18n (Make texts translatable)](https://github.com/exteditor/ghostbird/issues/4) ### v0.2.1 (Beta) - Released -* :nest_with_eggs: [Fix empty host field being sent to the server](https://github.com/exteditor/ghostbird/issues/22) +* :white_check_mark: [Fix empty host field being sent to the server](https://github.com/exteditor/ghostbird/issues/22) -### v0.3.0 (Beta) - Current +### v0.3.0 (Beta) - Released * :nest_with_eggs: [Show notifications](https://github.com/exteditor/ghostbird/issues/24) +* :nest_with_eggs: [Continue i18n (Add more languages)](https://github.com/exteditor/ghostbird/issues/26) + +### v0.4.0 (Beta) - Current + +* :nest_with_eggs: [Add a way to disconnect using only a mouse](https://github.com/exteditor/ghostbird/issues/30) -### v0.4.0 (Beta) - 2025 Q4 +### v0.5.0 (Beta) - 2025 Q4 -* :construction: [Add a way to disconnect using only a mouse](https://github.com/exteditor/ghostbird/issues/30) +* :construction: [Edit a HTML email as if it were a plain text email](https://github.com/exteditor/ghostbird/issues/6) ### v0.x.x (Beta) - 2025 Q4 * :construction: [Website with some screenshots](https://github.com/exteditor/ghostbird/issues/5) -* :construction: [Edit a HTML email as if it were a plain text email](https://github.com/exteditor/ghostbird/issues/6) ### v1.0.0 (Stable) - 2026 Q2 @@ -160,7 +164,6 @@ See also [a list of milestones][milestones]. ### v1.x.x (Stable) - 2026 Q4 * :white_large_square: [Edit Address and Subject fields](https://github.com/exteditor/ghostbird/issues/8) -* :nest_with_eggs: [Continue i18n (Add more languages)](https://github.com/exteditor/ghostbird/issues/26) * :white_large_square: [Support text editors that lack a GhostText add-on (e.g., Notepad)*](https://github.com/exteditor/ghostbird/issues/25) > \*Requires protocol extension and server-side support. I intend to develop one by forking [GhostText-Any](https://github.com/newsch/GhostText-Any/). @@ -184,7 +187,7 @@ See also [a list of milestones][milestones]. If you like the idea, please: -* [Star the repo](#repository-container-header). +* [Star the repo](https://github.com/exteditor/ghostbird/#repository-container-header). * [Rate the add-on][review]. * Feel free to open issues and submit pull requests. See [CONTRIBUTING.md](./CONTRIBUTING.md) to get started. * See our [milestones page][milestones] or [issues](https://github.com/exteditor/ghostbird/issues) for tasks you can contribute to, and use the [Discussions](https://github.com/exteditor/ghostbird/discussions) page for general discussions. @@ -232,7 +235,7 @@ We need help with: Please consider the following options: -* [Star the repo](#repository-container-header) +* [Star the repo](https://github.com/exteditor/ghostbird/#repository-container-header) * [Rate the add-on][review] * [Donate to Thunderbird](https://www.thunderbird.net/en-US/donate/) (It's financially separate from Firefox) * [Donate to @fregante, the author of the original GhostText](https://github.com/sponsors/fregante) @@ -261,6 +264,7 @@ If you've looked at the options above and still want to motivate the maintainer [![Github Actions Status](https://github.com/exteditor/ghostbird/actions/workflows/build.yml/badge.svg)](https://github.com/exteditor/ghostbird/actions/workflows/build.yml) [![Reviewed by CodeRabbit](https://img.shields.io/coderabbit/prs/github/exteditor/ghostbird?utm_source=oss&utm_medium=github&utm_campaign=exteditor%2Fghostbird&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews&logo=coderabbit&logoSize=auto)](https://github.com/search?q=repo%3Aexteditor%2Fghostbird&type=pullrequests&s=created&o=desc) [![Covered by Codecov](https://codecov.io/github/exteditor/ghostbird/graph/badge.svg?token=NDWAK8NEC6)](https://app.codecov.io/github/exteditor/ghostbird/commits) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/exteditor/ghostbird) ## License diff --git a/doc/design.md b/doc/design.md index 6687be9..29222ca 100644 --- a/doc/design.md +++ b/doc/design.md @@ -174,7 +174,7 @@ This is how user actions are handled: * [Barrelsby](https://github.com/bencoveney/barrelsby) generates `index.ts`. * See [building.md](./building.md) for details on build script internals. -## Structure of the code +## Structure of the code The code loosely follows the [Ports and Adapters architecture](https://8thlight.com/insights/a-color-coded-guide-to-ports-and-adapters) and adheres to the [Dependency Inversion Principle](https://en.wikipedia.org/wiki/Dependency_inversion_principle). * Interface implementations are preferred over class inheritance. diff --git a/doc/faq.md b/doc/faq.md index ff0c6c2..0a13543 100644 --- a/doc/faq.md +++ b/doc/faq.md @@ -42,7 +42,7 @@ * Try searching the GitHub pages like [discussion][discussion], [wiki][wiki], and [issue][issue] pages. Please post to the [discussion][discussion] or [issue][issue] page if you don't find anything relevant. -### How do I switch between HTML mode and Plain Text mode? +### How do I switch between HTML mode and Plain Text mode? > TL;DR: Set your preferred format in `Account Settings`>`Composition & Addressing`, then start a new message. @@ -71,7 +71,7 @@ * As for the icon, I'm planning to add an option to choose between icons so that you can switch them. Please upvote [the issue][chooseicon] if it bothers you. * New icons are welcome, of course, preferably in SVG. -### Why not just fork the original GhostText add-on, or contribute to it? +### Why not just fork the original GhostText add-on, or contribute to it? * I have a specific requirement to extend [the GhostText protocol][protocol] on both the client and server sides, which would allow configuration made in the client UI to be sent to the server. I think the original add-on, which is supposed to be simple, is not suitable for that purpose. * Thunderbird-specific changes also seem hard to incorporate without complicating the code. For example, the concepts of a compose window and address lines do not exist in browsers. diff --git a/src/util/time.ts b/src/util/time.ts index 6924a79..0c8fbc0 100644 --- a/src/util/time.ts +++ b/src/util/time.ts @@ -1,7 +1,9 @@ -export interface Disposable { - [Symbol.dispose]: () => void -} - +/** + * Starts a timer and returns a Disposable that logs the elapsed time when disposed. Intended to use it with `using` statements. + * + * @param label Text used as the message label when logging the elapsed time + * @returns A Disposable which logs the elapsed time in milliseconds when disposed + */ export function time(label: string): Disposable { const start = performance.now() return { diff --git a/tools/tsdown_path.ts b/tools/tsdown_path.ts index cd424d7..173d106 100644 --- a/tools/tsdown_path.ts +++ b/tools/tsdown_path.ts @@ -26,12 +26,12 @@ export function makeRelativeSourcePath(relativeSourcePath: string): string { // For release builds, we strip the path to make it easier to navigate in Thunderbird devtools let libPath = findPrefix("/node_modules/", relativeSourcePath) if (libPath) { - return libPath.slice(1) + return `.${libPath}` } let srcPath = findPrefix("/src/", relativeSourcePath) if (srcPath) { // Make it relative to the root - return `../${srcPath.slice(1)}` + return `..${srcPath}` } throw Error(`unexpected source path: ${relativeSourcePath}`) }