Compare commits
No commits in common. "13542fe219412cd68dd5568e544acd8763480de6" and "639d2b4462173532cd65cd88199514b93f19197b" have entirely different histories.
13542fe219
...
639d2b4462
48
README.md
48
README.md
|
@ -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
|
||||||
|
|
49
package.json
49
package.json
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
3524
pnpm-lock.yaml
3524
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>> = [
|
||||||
{
|
{
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue