Compare commits

..

No commits in common. "13542fe219412cd68dd5568e544acd8763480de6" and "639d2b4462173532cd65cd88199514b93f19197b" have entirely different histories.

8 changed files with 1252 additions and 2398 deletions

View File

@ -1,33 +1,55 @@
# Queue # Queue
> **Effortless temporary bookmarks.** > A WebExtension for queueing links.
[![Get Queue for Firefox](./images/mozilla-addons.png)](https://addons.mozilla.org/firefox/addon/holllo-queue) [![Get Queue for Firefox](./images/mozilla-addons.png)](https://addons.mozilla.org/firefox/addon/holllo-queue)
[![Get Queue for Chrome](./images/chrome-web-store.png)](https://chrome.google.com/webstore/detail/queue/epnbikemcmienphlfmidkimpjnmohcbl) [![Get Queue for Chrome](./images/chrome-web-store.png)](https://chrome.google.com/webstore/detail/queue/epnbikemcmienphlfmidkimpjnmohcbl)
[![Get Queue for Edge](./images/microsoft.png)](https://microsoftedge.microsoft.com/addons/detail/queue/aanjampfdpcnhoeglmfefmmegdbifaak) [![Get Queue for Edge](./images/microsoft.png)](https://microsoftedge.microsoft.com/addons/detail/queue/aanjampfdpcnhoeglmfefmmegdbifaak)
![Latest Queue screenshot](./images/queue-version-0-2-2.png) ![Queue 0.2.2](./images/queue-version-0-2-2.png)
## Wiki ## Wiki
Want to find out more about Queue? Check out [the wiki](https://git.bauke.xyz/Holllo/queue/wiki). Want to find out more about Queue? Check out [the wiki].
[the wiki]: https://github.com/Holllo/queue/wiki
## Installation ## Installation
You can install Queue through the stores linked above, [manually from a file] (see [the Releases page] for ZIP files) or [from source](#development). You can install Queue through the stores linked above, [installing from a file] (see [the Releases page] for a prebuilt version) or building [from source](#development).
[manually from a file]: https://support.mozilla.org/en-US/kb/find-and-install-add-ons-add-features-to-firefox#w_how-do-i-find-and-install-add-ons [installing from a file]: https://support.mozilla.org/en-US/kb/find-and-install-add-ons-add-features-to-firefox#w_how-do-i-find-and-install-add-ons
[the Releases page]: https://git.bauke.xyz/Holllo/queue/releases [the Releases page]: https://github.com/Holllo/queue/releases
## Development ## Development
To build Queue you will need [git](https://git-scm.com), [NodeJS](https://nodejs.org) and [pnpm](https://pnpm.io). To build Queue you will need [git], [NodeJS] and [pnpm]. Then from a terminal, run the following commands.
* Install the dependencies with `pnpm install`. [git]: https://git-scm.com
* Start a separate browser with `pnpm start`. [NodeJS]: https://nodejs.org
* Build the WebExtension for production with `pnpm build`. [pnpm]: https://pnpm.io
* Test the code with `pnpm test`.
```sh
# Step 1. Download the repository with Git.
git clone https://github.com/Holllo/queue
cd queue
# Step 2. Install the dependencies.
pnpm install
# Step 3. Start an auto-reloading browser instance for development.
pnpm start
# Step 4. Lint the code and run tests.
pnpm test
# Step 5. Build the WebExtension for production.
# See the web-ext-artifacts directory for output.
pnpm build
```
## License ## License
Distributed under the [AGPL-3.0-or-later](https://spdx.org/licenses/AGPL-3.0-or-later.html) license, see [LICENSE](https://git.bauke.xyz/Holllo/queue/src/branch/main/LICENSE) for more information. Queue is open-sourced with the [AGPL-3.0-or-later] license.
[AGPL-3.0-or-later]: https://github.com/Holllo/queue/blob/main/LICENSE

View File

@ -1,4 +1,12 @@
{ {
"name": "queue",
"description": "A WebExtension for queueing links.",
"license": "AGPL-3.0-or-later",
"author": "Holllo <helllo@holllo.cc>",
"repository": {
"type": "git",
"url": "https://github.com/Holllo/queue"
},
"private": true, "private": true,
"scripts": { "scripts": {
"start": "vite build -m development --watch", "start": "vite build -m development --watch",
@ -11,30 +19,29 @@
"test": "xo && stylelint 'source/**/*.scss' && tsc && c8 ava" "test": "xo && stylelint 'source/**/*.scss' && tsc && c8 ava"
}, },
"dependencies": { "dependencies": {
"@holllo/gram": "^0.2.1", "@holllo/gram": "^0.1.0",
"htm": "^3.1.1", "htm": "^3.1.0",
"migration-helper": "^0.1.2", "migration-helper": "^0.1.2",
"modern-normalize": "^1.1.0", "modern-normalize": "^1.1.0",
"preact": "^10.11.0", "preact": "^10.6.6",
"webextension-polyfill": "^0.10.0" "webextension-polyfill": "^0.8.0"
}, },
"devDependencies": { "devDependencies": {
"@preact/preset-vite": "^2.4.0", "@preact/preset-vite": "^2.1.7",
"@types/babel__core": "^7.1.19", "@types/webextension-polyfill": "^0.8.2",
"@types/webextension-polyfill": "^0.9.1", "ava": "^4.0.1",
"ava": "^4.3.3", "c8": "^7.11.0",
"c8": "^7.12.0", "postcss": "^8.4.7",
"postcss": "^8.4.16", "sass": "^1.49.9",
"sass": "^1.55.0", "stylelint": "^14.5.3",
"stylelint": "^14.12.1", "stylelint-config-standard-scss": "^3.0.0",
"stylelint-config-standard-scss": "^5.0.0",
"trash-cli": "^5.0.0", "trash-cli": "^5.0.0",
"ts-node": "^10.9.1", "ts-node": "^10.6.0",
"typescript": "^4.8.3", "typescript": "^4.5.5",
"vite": "^3.1.3", "vite": "^2.8.4",
"vite-plugin-web-extension": "^1.4.4", "vite-plugin-web-extension": "^1.1.2",
"web-ext": "^7.2.0", "web-ext": "^6.7.0",
"xo": "^0.52.3" "xo": "^0.48.0"
}, },
"ava": { "ava": {
"extensions": [ "extensions": [
@ -71,10 +78,6 @@
} }
], ],
"prettier": true, "prettier": true,
"rules": {
"@typescript-eslint/consistent-type-definitions": "off",
"n/file-extension-in-import": "off"
},
"space": true "space": true
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@ import {PrivacyLink} from '@holllo/gram';
import {html} from 'htm/preact'; import {html} from 'htm/preact';
import {Component} from 'preact'; import {Component} from 'preact';
import type {Settings} from '../../settings/settings.js'; import {Settings} from '../../settings/settings.js';
type Props = { type Props = {
settings: Settings; settings: Settings;
@ -13,17 +13,22 @@ export class PageFooter extends Component<Props> {
const {settings} = this.props; const {settings} = this.props;
const version = settings.manifest.version; const version = settings.manifest.version;
const versionAttributes = { const donateLink = html`
href: `https://git.bauke.xyz/Holllo/queue/releases/tag/${version}`, <${PrivacyLink} href="https://github.com/sponsors/Bauke">Donate<//>
}; `;
const versionLink = html` const versionLink = html`
<${PrivacyLink} attributes="${versionAttributes}">v${version}<//> <${PrivacyLink}
href="https://github.com/Holllo/queue/releases/tag/${version}"
>
v${version}
<//>
`; `;
return html` return html`
<footer class="page-footer"> <footer class="page-footer">
<p> <p>
💖 ${versionLink} © Holllo Free and open-source, ${donateLink} 💖 ${versionLink} © Holllo Free and open-source,
forever. forever.
</p> </p>
</footer> </footer>

View File

@ -1,9 +1,9 @@
import {ConfirmButton, PrivacyLink} from '@holllo/gram'; import {ConfirmButton, PrivacyLink} from '@holllo/gram';
import {Component, html} from 'htm/preact'; import {Component, html} from 'htm/preact';
import type {Settings} from '../../settings/settings.js'; import {Settings} from '../../settings/settings.js';
import {updateBadge} from '../../utilities/badge.js'; import {updateBadge} from '../../utilities/badge.js';
import type {History} from '../../utilities/history.js'; import {History} from '../../utilities/history.js';
type Props = { type Props = {
history: History; history: History;
@ -138,7 +138,7 @@ function queueItem(props: ItemProps): HtmComponent {
return html` return html`
<li class="q-item"> <li class="q-item">
<p class="title"> <p class="title">
<${PrivacyLink} attributes=${{href: url}}>${text ?? url}<//> <${PrivacyLink} href=${url}>${text ?? url}<//>
</p> </p>
<div class="buttons">${remove}</div> <div class="buttons">${remove}</div>

View File

@ -1,4 +1,4 @@
import type {Migration} from 'migration-helper'; import {Migration} from 'migration-helper';
export const dataMigrations: Array<Migration<string>> = [ export const dataMigrations: Array<Migration<string>> = [
{ {

2
source/types.d.ts vendored
View File

@ -1,4 +1,4 @@
import type {html} from 'htm/preact'; import {html} from 'htm/preact';
declare global { declare global {
// See Vite documentation for `import.meta.env` usage. // See Vite documentation for `import.meta.env` usage.

View File

@ -1,6 +1,6 @@
import browser from 'webextension-polyfill'; import browser from 'webextension-polyfill';
import type {Settings} from '../settings/settings.js'; import {Settings} from '../settings/settings.js';
export async function updateBadge(settings: Settings): Promise<void> { export async function updateBadge(settings: Settings): Promise<void> {
let action: browser.Action.Static = browser.browserAction; let action: browser.Action.Static = browser.browserAction;