Skip to content

Import v3.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@zachleat zachleat released this 23 Oct 15:48
· 15 commits to main since this release
Immutable release. Only release title and notes can be modified.
9102032

Breaking

  • Breaking Requires Node.js 22.12 or newer (was 20.19).
  • Breaking --overwrite now uses an content hash value stored in front matter to tell whether you've edited a file locally. Files imported before this release don't have it, so they're treated as edited and won't be overwritten unless you pass --overwrite. This improves how locally edited files are treated.
  • Breaking WordPress import source now includes pages by default (--posttypes=posts,pages).
  • Breaking fediverse now uses the Mastodon API instead of RSS. #33
  • Breaking fetches now have a default timeout of 30s (configurable per source)

Sources

  • New source: wordpressxml can import a Wordpress XML Export File
  • New source: jsonfeed
  • New source webmentions: uses webmention.io for replies and mentions, added to side-loaded data files (see comments support below, requires an env token: WEBMENTION_IO_TOKEN)
  • New experimental sources (careful with these!): squarespace, blogger, codepen (requires Token), devto, ghost, github (releases or repositories), github-gist, hobix (via wayback), instagram (requires Token), linktree, medium (via manual export), npm, substack, twitter (via manual export), typepad (uses wayback), wayback (Internet Archive)

Imported

  • Comments are now imported (in a side-loaded data file, for eligible sources: wordpress #62, squarespace, substack, ghost, blogger, devto, bluesky, mastodon, youtube requires Token, rss, typepad, hobix, and twitter but only for your own replies in a thread). Disable with addSource(type, { comments: false })
  • Broadens media import support: Audio files #57, Video and image attachments in feeds #58, WordPress author avatars #59, WordPress uploads (/wp-content/uploads/) #60
  • WordPress:
    • Imports cover images and descriptions into post data (#11).
    • Supports hosted WordPress sites on custom domains (#16).
    • The self-hosted and WordPress.com APIs now behave the same, and the importer autonavigates to the right API, falling back to the site RSS feed when no API is available.
    • Tags and categories are now fetched in bulk.
  • YouTube entries now include video description as content (#6).
  • slug is added to more metadata types.
  • Posts with content warnings or marked as "Unlisted"/private on Bluesky/Mastodon are imported as links only (no content included).

Features

  • --limit: import only the newest N entries (short-circuits fetching!)
  • --until: import only entries created on or before a date. For wayback, typepad and hobix, it also uses only captures archived on or before that date.
  • --avatarrefs: configure where avatars are saved, separately from --assetrefs.
  • --contentselector: choose the content element for wayback pages.
  • addSource(type, { content: false }): import front matter only.
  • setFetchRetries(): will retry on failed requests
  • addEmbed() and removeEmbed(): keep third-party embeds as HTML in Markdown, with built-ins for Instagram, Twitter, TikTok and Bluesky. Option to convert these to plaintext links too. This fixes Instagram embeds imported from WordPress (#20).

Fixes

  • Fix errors importing posts from some WordPress blogs (#9)
  • Bluesky imports failing when an account reposted its own post (#7)
  • Fix for Atom feeds with multiple authors, and Atom content without a type
  • RSS items without a guid
  • Fix errors in the importer that were not being reported

Import v3.0.0 Milestone: https://github.com/11ty/import/milestone/5?closed=1
Full Changelog: v2.0.1...v3.0.0-beta.1