.
├── .translations # auto-generated translation files
│ ├── deepl.EN.json # English input for translation script
├── dist # Built extension files
│ ├── chrome # Chrome-specific build
│ └── firefox # Firefox-specific build
├── docs # documentation
│ ├── ChromeStoreDescriptions # Chrome store descriptions
│ ├── storeDescriptions # Firefox store descriptions
│ ├── HtmlButtons # Some downloaded html buttons
│ ├── icon # copy of used icons and logos
│ ├── Logos # Images used in Readme
│ ├── Screenshots # Screenshots of the extension
├── graph # chrome and firefox user statistics
├── scripts # Build/dev scripts
├── src # Source code
│ ├── assets # Global assets (images, styles)
│ ├── background # Extension background script
│ ├── components # Shared Vue components
│ ├── composables # Vue composables/hooks
│ ├── content-script # Content scripts injected into pages
│ ├── locales # i18n translation files
│ ├── stores # Pinia stores
│ ├── types # TypeScript type definitions
│ ├── ui # UI pages
│ │ ├── action-popup # Browser toolbar popup
│ │ ├── options-page # Extension options
│ └── utils # Shared utilities
├── manifest.config.ts # Base manifest configuration
├── vite.config.ts # Base Vite configuration
├── tailwind.config.cjs # Tailwind CSS configuration
└── package.json # Project dependencies and scriptsCreate .env file in the root of the project with the following content:
DEEPL_API_KEY=...
TMDB_TOKEN=...
npm run transDeepLtranslate .translation/deepl.EN.json and output them into the locales files directlynpm run hourscalculate the hours spent on the projectnpm run copyDocsFtoCcopy the docs from the firefox folder to the chrome folderweb-ext sign --channel listed --api-key $env:AMO_JWT_ISSUER --api-secret $env:AMO_JWT_SECRETsign the extension for release.web-ext sign --channel unlisted --api-key %AMO_JWT_ISSUER% --api-secret %AMO_JWT_SECRET%sign the extension for unlisted release.
Firefox reviewers install instructions:
npm installinstall all required packagesnpm run build:firefoxbuild firefox zip file for release.
unplugin-vue-router- File system based route generator for Viteunplugin-auto-import- Directly usebrowserand Vue Composition API without importingunplugin-vue-components- components auto importunplugin-icons- icons as components@intlify/unplugin-vue-i18n- unplugin for Vue I18n
- Pinia - Intuitive, type safe, light and flexible Store for Vue
- VueUse - collection of useful composition APIs
- Vue-i18n - Internationalization plugin for Vue.js
- Marked - A markdown parser and compiler. Used for CHANGELOG.md to show in Update page
- tailwindcss - A utility-first CSS framework
- daisyUI - The most popular component library for Tailwind CSS
webext-bridge- effortlessly communication between contextswebextension-polyfill- A lightweight polyfill library for Promise-based WebExtension APIs in Chrome
- TypeScript - Typed JavaScript at Any Scale
- ESLint - Linting utility for JavaScript and JSX
- Prettier - Code formatter
- Use Composition API with
<script setup>SFC syntax - Use Composition API with
setupSFC syntax in Pinia stores
manifest.config.ts- Base extension manifest with common configurationmanifest.chrome.config.ts- Chrome/ chromium based browsers specific manifestmanifest.firefox.config.ts- Firefox spefic manifestvite.config.ts- Base vite configurationvite.chrome.config.ts- Chrome/ chromium based browsers specific vite configurationvite.firefox.config.ts- Firefox specific vite configuration