SingleFile for Safari
效率
免费
SingleFile is a Safari extension that helps you to save an entire webpage including images, styling, frames, fonts etc. as a single HTML file. Unlike screenshots or PDFs, SingleFile can preserve the original layout, links, etc. It's like having a digital snapshot that you can easily access offline.
Getting started
Wait until the page is fully loaded.
Click on the SingleFile button in the extension toolbar to process and save the page.
You can click again on the button to cancel the action when processing a page.
Demo: https://www.youtube.com/watch?v=oVvTmcwxvmc
Additional notes
- Open the context menu by right-clicking the SingleFile button in the extension toolbar or on the webpage. It allows you to save:
- the current tab,
- the selected content,
- the selected frame,
- the selected link(s).
- Select "Annotate and save the page..." in the context menu to:
- highlight text,
- add notes,
- remove content.
- You can also process multiple tabs in one click and save:
- the unpinned tabs,
- all the tabs.
- The context menu also allows you to activate the auto-save (after pages are being loaded) of:
- the current tab,
- the unpinned tabs,
- all the tabs.
See the extension help in the options page for more detailed information about the options.
Project on GitHub: https://github.com/gildas-lormeau/SingleFile
Suggestions are welcome :)
更多 - Saved pages are smaller: fonts the page never draws with are left out, and style rules that match nothing are removed together with the images they reference
- Fonts the page really uses are no longer dropped, such as fonts used only by list markers, the first line of a paragraph, the placeholder of a form field or a file upload button
- The content of a popover or a dialog opened by a button is now kept in the saved page
- A page saved as a self-contained archive stores a font or an image only once when the same file appears several times, and no longer stores empty stylesheets
- A style block repeated several times in a page is now applied in the right order in the saved page
- Saving the same unchanged page twice produces the same archive
- A video whose frame could not be captured no longer shows a broken image
- Improved Russian translation (thanks to solokot)
1.26.1 21小时前
The characters that cannot be used in a file name, and what they are replaced with, can now be edited in the options, with a preview and a button to restore the defaults.
The animation of the bar added to a saved page can now be turned off.
The option that saves the address the page came from now has a checkbox on the options page.
The marks showing the progress of a save are readable again when the browser uses a dark color scheme.
An option in the editor settings was displayed without its label.
A resource the server refuses is no longer requested a second time.
The columns of the automatic settings table are named for what they hold, and a name too wide for its column is shown in full when the pointer rests on it.
Several translations are corrected, and the Chinese help page documents the options that were missing from it.
An italic font declared with a slant angle is kept, instead of being removed as unused.
A file name shortened to the maximum length keeps its complete extension.
1.26.0 4天前
- A save in progress can be cancelled, with a Cancel button in the bar or by pressing Escape
- New option to limit how far the page is zoomed out while deferred content is loaded
- New option to save the canonical address of the page, which can also be turned off
- New option to recover the original address and date of a page saved in the MAFF format
- The bar and the progress panel shown while saving follow the dark color scheme of the browser
- The "deferred images" options are renamed "deferred content", because they also load text and other content added while scrolling, and they now come before the network options
- The icon of the bar added to a saved page shows a ripple animation
- A saved page can no longer submit a form or follow a javascript: link, which makes opening a page from an untrusted source safer
- The interface shown while saving is isolated from the page, so a page can no longer change how it looks
- The overlay shown while saving is removed when a capture fails, instead of staying on the screen
- Pressing Escape to cancel an area selection no longer reaches the page underneath
- A large page is saved even when a maximum resource size is set
- A resource whose declared type is wrong is stored with the type its content really has
- Saving a large page uses less memory
- With Lockdown Mode enabled, importing settings, choosing a custom image for an archive and saving to GitHub work again
1.25.0 5天前
- Icon fonts split across several files render again. The previous release kept only the last font declared for a family, so icons carried by an earlier file showed as empty boxes.
- A font source repeated at the end of a declaration is embedded once instead of twice.
- A page added to a multi-page archive keeps the dates, attributes and other metadata of the page it came from.
- Hiding a large archive inside the saved page is faster and uses far less memory.
1.24.3 9月10日
Fixes:
- An iframe holding an SVG document keeps its content instead of being saved empty.
- A sandboxed frame is saved as it renders, rather than as its source attribute reads.
- A page declaring the same font twice embeds only the font it actually uses, so saved pages are smaller.
- A font declaration left without a usable source is removed instead of being written out invalid.
- Fonts offering several sources keep the best one for the browser again, instead of all of them.
- A BMP or GIF image served without a content type is stored with its real extension.
- With the mixed content option enabled, resources created by the page itself are no longer blocked.
- An image whose responsive sources could not be saved falls back to its main source.
- A canvas drawing is no longer stretched or cropped by a page rule fixing the background.
- A resource the page could not fetch itself is retried directly again.
- Pages inspecting the browser's built-in functions during a save see them unchanged.
1.24.2 9月8日
Fixes
- The notes of a saved page keep their position relative to the element they are anchored to, and are laid out again when the page layout settles, instead of staying where they were before the images were loaded
- The zoom out applied while deferred images load is anchored at the top of the document and follows the scroll position
- An iframe with an inline pointer-events declaration keeps it in a page saved from the editor
- The Swedish translation is updated
1.24.1 9月6日
New
- The context menus can be customized from the new "Menus" section of the options page: add, remove, rename, reorder and nest entries, list profiles directly
Fixes
- Multi-page and self-extracting archives sent to an MCP server are transmitted as base64
- A font, image, video or audio URL answering with an HTML page is no longer embedded
- Images that appear once on the page are resized too when the image reduction factor is set
- Several fixes to self-extracting archives: archive time in frame manifests, safer declared length of the appended data, fallback to the page text when the full download fails
1.24.0 9月3日
- Pages saved to WebDAV, GitHub, S3 or a REST API are uploaded byte for byte; a multi-page archive saved again from the editor was decoded as text first and arrived corrupted
- Switching profiles in the editor keeps the options a regular save uses
- Pages that size their blocks from the viewport in a script were saved with enormous headers
- The lazy-loading pass stays open while the page inserts stylesheets
- Page text can no longer close the SingleFile comment
- Several extraction and layout fixes for self-extracting archives: long doctypes, escaped canonical link and viewport meta, byte order of the recovery payload, page.pdf records, and archives that ZIP readers rejecting trailing bytes can now open
1.23.3 9月2日
- Fixed fonts missing in saved pages in several cases: fonts declared in a frame that cannot be read, fonts named by a "font" shorthand the parser cannot read, and font families built with CSS variables or with multi-word names
- Fixed the loss of the id, class, data-* and title attributes of stylesheets, which could break the scripts and the styles of saved pages
- Fixed inline SVG images being removed when the saving of images is disabled
- Fixed the loss of the styles defined in a closed shadow root
- Fixed the content of a canvas being lost when saving a page that was already saved
- Fixed a save that never finished on pages with circular CSS imports
- Fixed CSS values with a vendor prefix being dropped when the browser supports them
- Fixed the truncation of filenames when the page title contains several special characters in a row
- Improved memory usage when saving pages repeatedly
- Reduced the size of saved pages containing videos
- Fixed the names of the files displayed when opening a self-extracting page
- Fixed images missing from self-extracting pages when the page contains duplicate stylesheets
- Reduced the size of self-extracting pages
- Fixed the page address being readable in a password-protected self-extracting page
- Fixed the display of self-extracting pages containing an embedded PDF document
- Improved the reliability of the extraction of self-extracting pages
1.23.2 9月1日
- Fixed a blank page when displaying a self-extracting archive served with an HTTP error status. The page content is now extracted from the page text
- Fixed extracting pages saved in "universal" self-extracting mode with an embedded PDF
- The data appended after the ZIP data in self-extracting archives now always fits in the search window of ZIP readers
- The entries of self-extracting archives are now stored in the order they were added (via zip.js 2.8.61)
1.23.1 8月29日
- Added support of multi-page archives in the annotation editor (these archives are currently created with single-file-cli): the table of contents is displayed, pages can be edited, and the archive is saved back as one file
- Added template variables for the day of the week, e.g. {weekday-locale} and {weekday-short-utc}
- Fixed saving pages when Lockdown Mode is enabled
- Fixed destinations being ignored when saving from the annotation editor
- Fixed a hang when saving pages with very large stylesheets
- Improved performance and memory usage when saving pages repeatedly
- Fixed the display of SVG icons on some saved pages
- Fixed filenames when the page title contains special characters
- Updated translations
1.23.0 8月28日
- Improved performance when opening pages saved as self-extracting files
- Added new option "File format > disable compression" to produce uncompressed zip files
1.22.98 2月24日
- Fixed minor issues related to CSS mlnification
- Fixed handling of 202 HTTP status code when enabling the option "Destination > upload to a REST Form API"
1.22.97 1月21日
Fixed {url-filename} template variable value when empty
Fixed bug related to stylesheet minification
1.22.96 2025/12/17
- Added "Import MHT file" button in the annotation editor
- Reversed regressions related to stylesheets minification introduced in version 1.22.88
1.22.93 2025/12/15
- Fixed bug in the removal of unused CSS rules wiyth selectors containing pseudo-classes
1.22.92 2025/12/11
- Added option "Images > image reduction factor"
- Improved support of constructable stylesheets
1.22.91 2025/12/10
- Improved support of constructable stylesheets
- Fixed %encode-base64 and %decode-base64 template functions
- Updated Polish and Russian translations
1.22.90 2025/12/06
- Added {url-filename} variable (for filename or infobar templates)
- Added "HTML content > remove specific elements" option
- Added support of custom shortcuts
- Fixed aspect ratio of video screenshots
- Added "MCP Server" as destination
1.22.89 2025/12/02
- Improved support of invalid nesting tags (fix rendering issues on bilibili)
- Fixed issues related to the ":defined" selector in stylesheets and custom elements (fix rendering issues on Reddit)
- Fixed support of iframes in custom elements
- Added cleanup of "link[rel=compression-dictionary]" elements
1.22.88 2025/11/21
Fixed issue related to CSS minification
1.22.86 2025/11/03
Fixed issue related to CSS minification
1.22.85 2025/11/03
Fixed potential rendering issue with stylesheets containing invalid values in declarations
1.22.83 2025/10/30
- Fixed support of CSS nesting, Cascade layers, Feature queries, Container queries, and Scope at-rules when minimizing stylesheets
- Improved removal of stylesheets for alternative devices to screens
- Improved serialization of XML (e.g. SVG) contents
- Improved compression of the "extra data" when saving pages in the "universal self-extracting pages" file format
- Fixed handling of proof of existence (cf. Misc. options) when using the annotation editor
- Fixed issue leading to saving useless duplicate URLs with anchors when using "Save selected links" (anchors will now be ignored)
- Fixed issue when saving selecting selection with empty tags (e.g. IMG tags)
- Fixed removal of NOSCRIPT tags in BODY (and descendant) tags, and added an hidden option "removeNoScriptTags" (true by default, see https://github.com/gildas-lormeau/SingleFile/wiki/Hidden-options for more info)
- Added hidden option "delayAfterProcessing" which can be useful to avoid sending too many requests to a site, especially in batch processing
1.22.82 2025/10/28
- Added dark and tinted icons
- Added Swedish translation
- Fixed JS error when displaying pages with embedded infobar
1.22.81 2025/04/01
- Saved pages are smaller: fonts the page never draws with are left out, and style rules that match nothing are removed together with the images they reference
- Fonts the page really uses are no longer dropped, such as fonts used only by list markers, the first line of a paragraph, the placeholder of a form field or a file upload button
- The content of a popover or a dialog opened by a button is now kept in the saved page
- A page saved as a self-contained archive stores a font or an image only once when the same file appears several times, and no longer stores empty stylesheets
- A style block repeated several times in a page is now applied in the right order in the saved page
- Saving the same unchanged page twice produces the same archive
- A video whose frame could not be captured no longer shows a broken image
- Improved Russian translation (thanks to solokot)
更多 版本 1.26.1 21小时前
未收集数据 开发者不会从此 App 中收集任何数据。