Skip to content

Commit

Permalink
Add CRX download icons + toggle, text only listing in textarea, copy …
Browse files Browse the repository at this point in the history
…to clipboard
  • Loading branch information
asheroto committed Jul 10, 2024
1 parent 039b6fd commit 87f2227
Show file tree
Hide file tree
Showing 6 changed files with 344 additions and 134 deletions.
42 changes: 24 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,20 @@
https://github.com/asheroto/Extension-Exporter/assets/49938263/c348aceb-dfaa-4e33-a903-c5886fb9a342

[![Release](https://img.shields.io/github/v/release/asheroto/Extension-Exporter)](https://github.com/asheroto/Extension-Exporter/releases)
[![GitHub Release Date - Published_At](https://img.shields.io/github/release-date/asheroto/Extension-Exporter)](https://github.com/asheroto/Extension-Exporter/releases)
[![Chrome Web Store Users](https://img.shields.io/chrome-web-store/users/doikmfpjbcjjimnbablebijofdbgfepb)](https://chromewebstore.google.com/detail/extension-exporter/doikmfpjbcjjimnbablebijofdbgfepb)
[![GitHub Downloads - All Releases](https://img.shields.io/github/downloads/asheroto/Extension-Exporter/total)](https://github.com/asheroto/Extension-Exporter/releases)
[![GitHub Sponsor](https://img.shields.io/github/sponsors/asheroto?label=Sponsor&logo=GitHub)](https://github.com/sponsors/asheroto)
<a href="https://ko-fi.com/asheroto"><img src="https://ko-fi.com/img/githubbutton_sm.svg" alt="Ko-Fi Button" height="20px"></a>
<a href="https://www.buymeacoffee.com/asheroto"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=seb6596&button_colour=FFDD00&font_colour=000000&font_family=Lato&outline_colour=000000&coffee_colour=ffffff](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=asheroto&button_colour=FFDD00&font_colour=000000&font_family=Lato&outline_colour=000000&coffee_colour=ffffff)" height="40px"></a>

# Extension Exporter

Extension Exporter is a Chrome extension designed to export the names and URLs of all your installed extensions into an HTML file. This extension is the reimagined edition of the previously available extension named 'Export links of all extensions', which was removed from the Chrome Web Store due to security concerns. This extension is fully open-source to ensure transparency and safety. The icon has also been redesigned from the original.

## Features

- Export installed extension names and URLs into an organized HTML file, with enabled and disabled extensions clearly separated
- Easy-to-use: just click the extension button at the top-right of your browser and the HTML file is generated instantly
- All code runs locally: extension does not make any connection to remote servers
- Export installed extension names and URLs into an organized HTML file, with enabled and disabled extensions clearly separated.
- Includes CRX download links for each extension.
- Generates a timestamp for the export.
- Provides a text-only listing with a copy-to-clipboard function.
- Toggle visibility of CRX download icons.
- Easy-to-use: just click the extension button at the top-right of your browser, and the HTML file is generated instantly.
- All code runs locally: the extension does not make any connection to remote servers.

## Installation

This extension is available on the [Chrome Web Store](https://chrome.google.com/webstore/detail/extension-exporter/doikmfpjbcjjimnbablebijofdbgfepb). This is the recommended installation approach. Alternatively you can install the CRX file in releases.
This extension is available on the [Chrome Web Store](https://chrome.google.com/webstore/detail/extension-exporter/doikmfpjbcjjimnbablebijofdbgfepb). This is the recommended installation approach. Alternatively, you can install the CRX file in releases.

## Open Source

Expand All @@ -30,8 +24,20 @@ This extension is fully open-source to ensure both transparency and security. Yo

We value community contributions and encourage you to get involved. For issues, feature requests, or code contributions, please visit our GitHub repository.

- If you come across any issues, open a new issue on GitHub.
- To suggest new features, you can also submit an issue.
- If you wish to contribute code, we accept Pull Requests. Be sure to read our [contributing guidelines](https://github.com/asheroto/Extension-Exporter/blob/main/CONTRIBUTING.md) for the required code style.
- If you come across any issues, open a new issue on GitHub.
- To suggest new features, you can also submit an issue.
- If you wish to contribute code, we accept Pull Requests. Be sure to read our [contributing guidelines](https://github.com/asheroto/Extension-Exporter/blob/main/CONTRIBUTING.md) for the required code style.

Detailed instructions on how to contribute can be found on the [contributing guidelines](https://github.com/asheroto/Extension-Exporter/blob/main/CONTRIBUTING.md) page. Thank you for helping to improve our Chrome extension.

## Support

If you found this extension helpful and want to show your appreciation, consider making a small donation to the developer. Your support is greatly appreciated and helps keep the coffee flowing, allowing me to continue working on other cool projects like this!

[![Buy Me a Coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=asheroto&button_colour=FFDD00&font_colour=000000&font_family=Lato&outline_colour=000000&coffee_colour=ffffff)](https://www.buymeacoffee.com/asheroto)

## Rate and Feedback

If you enjoyed using this extension, please take a moment to [rate it on the Chrome Web Store](https://chrome.google.com/webstore/detail/extension-exporter/doikmfpjbcjjimnbablebijofdbgfepb).

Detailed instructions on how to contribute can be found on the [contributing guidelines](https://github.com/asheroto/Extension-Exporter/blob/main/CONTRIBUTING.md) page Thank you for helping to improve our Chrome extension.
For feature requests and bug reports, visit our [GitHub repository](https://github.com/asheroto/Extension-Exporter).
36 changes: 36 additions & 0 deletions chrome/img/bmac.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion chrome/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@
"management"
],
"update_url": "https://clients2.google.com/service/update2/crx",
"version": "1.2.0"
"version": "2.0.0"
}
72 changes: 71 additions & 1 deletion chrome/page.html
Original file line number Diff line number Diff line change
@@ -1 +1,71 @@
<script src="page.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title>Extension Exporter</title>
<style>
body {
font-family: 'Arial', sans-serif;
margin: 20px;
line-height: 1.6;
font-size: 16px;
}

.container {
max-width: 600px;
margin: 0 auto;
text-align: center;
}

.title {
font-size: 36px;
font-weight: bold;
margin-bottom: 20px;
}

.button {
margin-top: 20px;
}

.button img {
height: 40px;
}

.links {
margin-top: 20px;
}

.links a {
color: #007bff;
text-decoration: none;
}

.links a:hover {
text-decoration: underline;
}
</style>
</head>

<body>
<div class="container">
<p class="title">Extension Exporter</p>
<p>Thanks for using Extension Exporter!</p>
<p>If you found this extension helpful and want to show your appreciation, consider making a small donation to the developer. Your support is greatly appreciated and helps keep the coffee flowing, allowing me to continue working on other cool projects like this!</p>
<div class="button">
<!-- Buy Me a Coffee button -->
<a href="https://www.buymeacoffee.com/asheroto" target="_blank">
<img src="img/bmac.svg" alt="Buy Me a Coffee">
</a>
</div>
<p>If you don't want to support the developer at this time, that's okay too!<br>Enjoy the extension and have a fantastic day! 😊</p>
<div class="links">
<p><a href="https://chrome.google.com/webstore/detail/doikmfpjbcjjimnbablebijofdbgfepb" target="_blank">Rate this extension on the Chrome Web Store</a></p>
<p><a href="https://github.com/asheroto/Extension-Exporter/issues" target="_blank">Report bugs or request a new feature</a></p>
<p><a href="https://github.com/asheroto/Extension-Exporter" target="_blank">GitHub repository</a></p>
</div>
</div>
<script src="page.js"></script>
</body>

</html>
27 changes: 19 additions & 8 deletions chrome/page.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,17 @@
var comment = '';

var url = baseUrl + extension.id;
var crxLink = `https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&acceptformat=crx3&x=id%3D${extension.id}%26installsource%3Dondemand%26uc`;
var nameAndVersion = `${htmlEscape(extension.name)} ${extension.version}`;

html += ' ';
html += '<li>';
html += '<a href="' + url + '" target="_blank" ';
html += 'title="' + htmlEscape(extension.description) + '">';
html += nameAndVersion + '</a>';
html += nameAndVersion + '</a> ';
html += '<a href="' + crxLink + '" target="_blank" title="Download CRX file" alt="Download CRX file">';
html += '<span class="crx-icon"></span>';
html += '</a>';
html += '</li>\n';

comment += nameAndVersion + '\n';
Expand All @@ -71,13 +75,18 @@
if (extension.enabled) {
enabled += html;
commentEnabled += comment;
}
else {
} else {
disabled += html;
commentDisabled += comment;
}
});

// Retrieve version from the manifest
const exporterVersion = chrome.runtime.getManifest().version;

// CRX icon encoded in base64
const crxIcon = 'PD94bWwgdmVyc2lvbj0iMS4wIiA/Pjxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMyA4VjJIN3Y2SDJsOCA4IDgtOGgtNXpNMCAxOGgyMHYySDB2LTJ6Ii8+PC9zdmc+';

loadTemplate(function (template) {
// Retrieve the extension ID to populate the 'generator' meta tag in the HTML output
let extensionId = chrome.runtime.id;
Expand All @@ -90,11 +99,13 @@

// Replace the placeholders in the template with the generated HTML
template = template.replace('{ENABLED}', enabled.trim())
.replace('{DISABLED}', disabled.trim())
.replace('{COMMENT_ENABLED}', commentEnabled.trim())
.replace('{COMMENT_DISABLED}', commentDisabled.trim())
.replace('{EXTENSION_ID}', extensionId)
.replace('{TIMESTAMP}', timestamp); // Replacing the timestamp placeholder
.replaceAll('{DISABLED}', disabled.trim())
.replaceAll('{COMMENT_ENABLED}', commentEnabled.trim())
.replaceAll('{COMMENT_DISABLED}', commentDisabled.trim())
.replaceAll('{EXTENSION_ID}', extensionId)
.replaceAll('{TIMESTAMP}', timestamp)
.replaceAll('{EXPORTER_VERSION}', exporterVersion)
.replaceAll('{CRX_ICON}', crxIcon);

// Download the generated HTML file with the date
download(template, `Extensions ${fileTimestamp}.html`);
Expand Down
Loading

0 comments on commit 87f2227

Please sign in to comment.