{"id":14965700,"url":"https://github.com/gildas-lormeau/singlefile","last_synced_at":"2025-05-13T17:06:40.828Z","repository":{"id":37484338,"uuid":"906022","full_name":"gildas-lormeau/SingleFile","owner":"gildas-lormeau","description":"Web Extension for saving a faithful copy of a complete web page in a single HTML file","archived":false,"fork":false,"pushed_at":"2025-04-22T14:36:06.000Z","size":347519,"stargazers_count":17402,"open_issues_count":124,"forks_count":1095,"subscribers_count":128,"default_branch":"master","last_synced_at":"2025-04-22T14:58:51.350Z","etag":null,"topics":["annotations","archive","archiver","auto-save","browser","chrome","chrome-extension","cli","firefox","firefox-addon","javascript","offline-reading","osint","puppeteer","screenshot","selenium","self-extracting","self-extracting-zip","snapshot","web-clipper"],"latest_commit_sha":null,"homepage":"https://getsinglefile.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gildas-lormeau.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://www.paypal.me/glormeau","liberapay":"gildas"}},"created_at":"2010-09-12T23:50:21.000Z","updated_at":"2025-04-22T14:36:09.000Z","dependencies_parsed_at":"2023-10-03T17:44:37.356Z","dependency_job_id":"adbb2819-0d77-44ee-984f-8a9edf0c530e","html_url":"https://github.com/gildas-lormeau/SingleFile","commit_stats":{"total_commits":7480,"total_committers":47,"mean_commits":"159.14893617021278","dds":0.09625668449197866,"last_synced_commit":"941677601054f529e272b70e2371c4fc2e3d014e"},"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildas-lormeau%2FSingleFile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildas-lormeau%2FSingleFile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildas-lormeau%2FSingleFile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gildas-lormeau%2FSingleFile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gildas-lormeau","download_url":"https://codeload.github.com/gildas-lormeau/SingleFile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990466,"owners_count":21995774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotations","archive","archiver","auto-save","browser","chrome","chrome-extension","cli","firefox","firefox-addon","javascript","offline-reading","osint","puppeteer","screenshot","selenium","self-extracting","self-extracting-zip","snapshot","web-clipper"],"created_at":"2024-09-24T13:35:06.622Z","updated_at":"2025-05-13T17:06:40.787Z","avatar_url":"https://github.com/gildas-lormeau.png","language":"JavaScript","funding_links":["https://www.paypal.me/glormeau","https://liberapay.com/gildas"],"categories":[],"sub_categories":[],"readme":"# SingleFile\r\n\r\nSingleFile helps you to save a complete web page into a single HTML\r\nfile. SingleFile is a Web Extension (and a CLI tool) compatible with Chrome, Firefox\r\n(Desktop and Mobile), Microsoft Edge, Safari, Vivaldi, Brave, Waterfox, Yandex\r\nbrowser, and Opera.\r\n\r\n## Table of Contents\r\n\r\n- [SingleFile](#singlefile)\r\n  - [Table of Contents](#table-of-contents)\r\n  - [Demo](#demo)\r\n  - [Install](#install)\r\n  - [Getting started](#getting-started)\r\n  - [Additional notes](#additional-notes)\r\n  - [FAQ](#faq)\r\n  - [Release notes](#release-notes)\r\n  - [Known Issues and Troubleshooting](#known-issues-and-troubleshooting)\r\n  - [Command Line Interface (SingleFile CLI)](#command-line-interface-singlefile-cli)\r\n  - [Integration with user scripts](#integration-with-user-scripts)\r\n  - [File format comparison](#file-format-comparison)\r\n  - [Projects using/compatible with SingleFile](#projects-usingcompatible-with-singlefile)\r\n  - [Privacy Policy](#privacy-policy)\r\n  - [Contributors](#contributors)\r\n  - [Code derived from third party projects](#code-derived-from-third-party-projects)\r\n  - [Icons](#icons)\r\n  - [License](#license)\r\n\r\n## Demo\r\n\r\nhttps://user-images.githubusercontent.com/396787/156664907-cc458e35-f41b-45ca-91eb-372213812b44.mp4\r\n\r\n## Install\r\n\r\nSingleFile can be installed from the store of:\r\n\r\n- Firefox: https://addons.mozilla.org/firefox/addon/single-file\r\n- Firefox for Android:\r\n  https://addons.mozilla.org/android/addon/single-file\r\n- Chrome:\r\n  https://chrome.google.com/extensions/detail/mpiodijhokgodhhofbcjdecpffjipkle\r\n- Safari (macOS and iOS): https://apps.apple.com/us/app/singlefile-for-safari/id6444322545\r\n- Microsoft Edge:\r\n  https://microsoftedge.microsoft.com/addons/detail/efnbkdcfmcmnhlkaijjjmhjjgladedno\r\n\r\nYou can also download the zip file\r\n(https://github.com/gildas-lormeau/SingleFile/archive/master.zip) of the project\r\nand install it manually by unzipping it somewhere on your disk and following\r\nthese instructions:\r\n\r\n- Firefox: https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox\r\n- Chrome and Microsoft Edge: https://github.com/gildas-lormeau/SingleFile-MV3\r\n- Safari: https://github.com/gildas-lormeau/SingleFile-Safari-Extension\r\n  \r\n## Getting started\r\n\r\n- Click on the SingleFile button in the extension toolbar to save the page.\r\n- You can click again on the button to cancel the action when processing a page.\r\n\r\n## Additional notes\r\n\r\n- Open the context menu by right-clicking the SingleFile button in the extension\r\n  toolbar or on the webpage. It allows you to save:\r\n  - the current tab,\r\n  - the selected content,\r\n  - the selected frame.\r\n- You can also process multiple tabs in one click and save:\r\n  - the selected tabs,\r\n  - the unpinned tabs,\r\n  - all the tabs.\r\n- Select \"Annotate and save the page...\" in the context menu to:\r\n  - highlight text,\r\n  - add notes,\r\n  - remove content.\r\n- The context menu also allows you to activate the auto-save of:\r\n  - the current tab,\r\n  - the unpinned tabs,\r\n  - all the tabs.\r\n- With auto-save active, pages are automatically saved every time after being\r\n  loaded (or before being unloaded if not).\r\n- Right-click on the SingleFile button and select \"Manage extension\" (Firefox) /\r\n  \"Options\" (Chrome) to open the options page.\r\n- Enable the option \"Destination \u003e save to Google Drive\" or \"Destination \u003e\r\n  upload to GitHub\" to upload pages to Google Drive or GitHub respectively.\r\n- Enable the option \"Misc. \u003e add proof of existence\" to prove the existence of\r\n  saved pages by linking the SHA256 of the pages into the blockchain.\r\n- You can use the customizable shortkey Ctrl+Shift+Y to save the current tab or\r\n  the selected tabs. Go to about:addons and select \"Manage extension shortcuts\"\r\n  in the cogwheel menu to change it in Firefox. Go to\r\n  chrome://extensions/shortcuts to change it in Chrome.\r\n- The default save folder is the download folder configured in your browser, cf.\r\n  about:addons in Firefox and chrome://settings in Chrome.\r\n- See the extension help in the options page for more detailed information about\r\n  the options and technical notes.\r\n\r\n## FAQ\r\n\r\nSee https://github.com/gildas-lormeau/SingleFile/blob/master/faq.md\r\n\r\n## Release notes\r\n\r\nSee https://addons.mozilla.org/firefox/addon/single-file/versions/\r\n\r\n## Known Issues and Troubleshooting\r\n\r\nSee https://github.com/gildas-lormeau/SingleFile/blob/master/known-issues.md\r\n\r\n## Command Line Interface (SingleFile CLI)\r\n\r\nYou can save web pages to HTML from the command line interface. See here for\r\nmore info: https://github.com/gildas-lormeau/single-file-cli.\r\n\r\n## Integration with user scripts\r\n\r\nYou can execute a user script just before (and after) SingleFile saves a page.\r\nFor more info, see\r\nhttps://github.com/gildas-lormeau/SingleFile/wiki/How-to-execute-a-user-script-before-a-page-is-saved.\r\n\r\n## File format comparison\r\n\r\n|   \t                                                                          |        HTML        | Self-extracting ZIP | MHTML | Webarchive (Safari) | HTML+folder |\r\n| ---                                \t                                          |       :---:        |        :---:        | :---: |         :---:       |    :---:    |\r\n| Pages are saved as a single file                                              | ✓ \t               | ✓ \t                 | ✓     | ✓                   |             |\r\n| HTML and styles are minified                                                  | ✓                  | ✓ \t                 |       |    \t               |             |\r\n| Unused HTML and styles are removed from files                                 | ✓                  | ✓ \t                 |       |                     |   \t         |\r\n| Binary resources are not encoded in base 64                                   |                    | ✓ \t                 |       | ✓                   | ✓ \t         |\r\n| Files are compressed                                                          |                    | ✓ \t                 |       |                     |   \t         |\r\n| Files can be viewed without installing any extension                          | ✓                  | ✓¹                  | ✓²    | ✓³                  | ✓           |\r\n| Files can be viewed without running JavaScript                                | ✓                  |         \t           | ✓     | ✓                   | ✓ \t         |\r\n| Files can be unzipped to extract page resources                               |                    | ✓ \t                 |       |                     | n/a         |\r\n| Files contains the text of the page (plain or formatted) which can be indexed | ✓ \t               | ✓⁴                  | ✓     | ✓ \t                 | ✓ \t         |\r\n\r\nFootnotes:\r\n\r\n¹ When using the \"universal\" self-extracting file format\r\n\r\n² Only in Chromium-based browsers, and Internet Explorer\r\n\r\n³ Only in Safari\r\n\r\n⁴ An option must be enabled in the extension\r\n\r\n## Projects using/compatible with SingleFile\r\n\r\n- ArchiveBox - Open-source self-hosted web archiving:\r\n  https://github.com/ArchiveBox/ArchiveBox\r\n- htmls-to-datasette - Tool to index HTML files into a Sqlite database:\r\n  https://github.com/pjamar/htmls-to-datasette\r\n- Karakeep - Self-hostable bookmark-everything app with a touch of AI: \r\n  https://karakeep.app\r\n- KOReader - Document viewer primarily aimed at e-ink readers:\r\n  https://github.com/koreader/koreader\r\n- linkding - Bookmark manager that you can host yourself. It's designed be to\r\n  be minimal, fast, and easy to set up using Docker:\r\n  https://github.com/sissbruecker/linkding\r\n- obsidian-html-plugin - Plugin for reading HTML pages in Obsidian:\r\n  https://github.com/nuthrash/obsidian-html-plugin\r\n- Org-Dex.el - Emacs package designed to enhance Org-mode by integrating \r\n  SingleFile CLI: https://github.com/nitincodery/org-dex.el\r\n- Petal Cite Web Importer - Browser extension to save PDFs and capture web pages\r\n  in Petal Cite: https://github.com/ks-collab/cite-extension\r\n- Pocket Search Engine - Semantic search app for Android that works entirely \r\n  offline: https://play.google.com/store/apps/details?id=com.pocketsearchengine.app\r\n- singlefile2trilium - Tool to save faithful copy of a web page as a Trilium\r\n  note with SingleFile: https://github.com/nil0x42/singlefile2trilium\r\n- SingleFileMac - Integration of SingleFile in a swift application using\r\n  webkit: https://github.com/david-littlefield/SingleFileMac\r\n- Trilium-SingleFile - An addon for Trilium Notes to easily import SingleFile \r\n  html pages: https://github.com/rauenzi/Trilium-SingleFile\r\n- Trilium Simple SingleFile Renderer - A plugin to add a new Template note to\r\n  Trilium for render file created by SingleFile:\r\n  https://github.com/xnohat/trilium-simple-singlefile-renderer\r\n- web document - Browser extension for saving web documents locally, allowing\r\n  you to access them offline and quickly search for webpage:\r\n  https://github.com/wvit/web-document\r\n- Zotero Connector - Browser extension for Zotero, a tool to help you collect,\r\n  organize, cite, and share your research sources:\r\n  https://github.com/zotero/zotero-connectors\r\n\r\n## Privacy Policy\r\n\r\nSee https://github.com/gildas-lormeau/SingleFile/blob/master/privacy.md\r\n\r\n## Contributors\r\n\r\nSee https://github.com/gildas-lormeau/SingleFile/blob/master/contributors.md\r\n\r\n## Code derived from third party projects\r\n\r\n- csstree: https://github.com/csstree/csstree\r\n- postcss-media-query-parser:\r\n  https://github.com/dryoma/postcss-media-query-parser\r\n- postcss-selector-parser: https://github.com/postcss/postcss-selector-parser\r\n- UglifyCSS: https://github.com/fmarcia/UglifyCSS\r\n- parse-srcset: https://github.com/albell/parse-srcset\r\n- parse-css-font: https://github.com/jedmao/parse-css-font\r\n- Readability: https://github.com/mozilla/readability\r\n- whatwg-mimetype: https://github.com/jsdom/whatwg-mimetype\r\n\r\n## Icons\r\n\r\n- Icon made by [Kiranshastry](https://www.flaticon.com/authors/kiranshastry)\r\n  from [Flaticon](https://www.flaticon.com/) is licensed by\r\n  [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/)\r\n\r\n## License\r\n\r\nSingleFile is licensed under AGPL. Code derived from third-party projects is\r\nlicensed under MIT. Please contact me at gildas.lormeau \u0026lt;at\u0026gt; gmail.com if\r\nyou are interested in licensing the SingleFile code for a commercial service or\r\nproduct.\r\n\r\nSuggestions are welcome :)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgildas-lormeau%2Fsinglefile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgildas-lormeau%2Fsinglefile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgildas-lormeau%2Fsinglefile/lists"}