Do you often type Markdown code manually for a link or image, or even all tabs in a window, and feel tired? Copy as Markdown can help you!
Copy as Markdown is a browser extension that helps you copy the following things as Markdown to your system clipboard:
On the web page:
:ballot_box_with_check: Selection Text as Markdown
:ballot_box_with_check: A Link on the Page
:ballot_box_with_check: An Image on the Page, with or without wrapping link
Exporting tabs in the current window, either all or highlighted tabs:
:ballot_box_with_check: Current Tab as Link
:ballot_box_with_check: List of Links
:ballot_box_with_check: Task List (for GitHub-Flavored Markdown)
You can add keyboard shortcuts for copying tab(s) as Markdown. By default, Copy as Markdown does not assign any keyboard shortcuts.
Please refer to this Firefox Help: https://support.mozilla.org/en-US/kb/manage-extension-shortcuts-firefox
The Keyboard Shortcuts of extensions can be found at chrome://extensions/shortcuts
URL. (Paste and open the link in the Location Bar).
Here is the folder structure. The platform-specific folders are used to resolve browser inconsistencies.
src/ # Shared Source Code
background.js
...
chrome/ # Chrome / Chromium files
dist/ # ../src will be copied here
mainfest.json
...
firefox/ # Firefox Manifest V2 files
dist/ # ../src will be copied here
mainfest.json
background.html # Loads ESModule
...
firefox-mv3/ # Firefox Manifest V3 files
dist/ # ../src will be copied here
mainfest.json
...
e2e/ # E2E Tests
npm install -g web-ext
npm install
Use the script scripts/debug.js
that runs an auto-reload process. Usage:
npm debug-chrome
npm debug-firefox
npm debug-firefox-mv3
For manual debugging without auto-reload:
To debug some behaviors such as Firefox restarts (for example, are context menus installed properly), it is necessary to build an XPI package and install it on Firefox. Temporary Add-Ons won't be enough because they get uninstalled after Firefox quits.
Firefox checks the signature when installing XPI. To do so,
manifest.json
. Note that AMO only accepts version numbers in X.Y.Z
format where all 3 segments are numbers without zero prefixes.web-ext sign --channel=unlisted --api-key=... --api-secret=...
It'll create an XPI that is signed with your Firefox Add-Ons account. The file will also be uploaded to Add-On Developer Hub as unlisted.
Note that Firefox Add-On keeps track of all the versions that have ever been uploaded, including
'self-distributed' (channel=unlisted
).
See https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext/
Unit tests are written in mocha, ./test/**/*.test.js
.
To run, use npm test
.
Using Selenium (Java). Please refer to e2e/ folder.
There is a qa.html that includes various edge test cases. Open it in the browser, then try Copy as Markdown with the content in it.
See MIT-LICENSE.txt