Publish Versions Save

A static site generator for Swift developers

0.9.0

2 years ago
  • Publish now requires Swift 5.5 and macOS 12.0 Monterey (or an equivalent Swift installation on Linux).
  • Many aspects of Publish now run concurrently, which vastly speeds up the generation of larger websites when Publish is used on a machine with a multi-core CPU.
  • Git-based deployment is now more reliable regardless of what branch name that's used (by @schrismartin)
  • publish run now always uses Python 3 for better compatibility with macOS Monterey.

This release also includes documentation improvements by @omaralbeik and a CLI fix by @uhooi.

0.8.0

3 years ago
  • Publish now uses (and requires) Swift 5.4.
  • Full support has been added for Plot's new component-based API, with dedicated Component implementations for markdown rendering (Markdown), video playback (VideoPlayer), and the ability to use Plot's AudioPlayer component with Publish's Audio models.
  • Since Publish now contains a type called Markdown, if you want to refer to Ink's type with the same name, you have to use Ink.Markdown. That's the only potentially breaking change within this release, and should hopefully not have a big impact on any Publish-based code base.
  • The Content.Body type can now also be used directly as a Plot component.
  • You can now specify what Git branch to deploy to when using the .git and .gitHub deployment methods (by @Kilo-Loco).
  • If you generate a website called "Website" using the Publish CLI, the generator will now prefix the Website protocol with Publish as to not cause conflicts with the website definition itself (by @sviatoslav).
  • When generating site map files, the excludedPaths argument is now interpreted as a prefix, rather than using absolute string matching, which enables you to exclude entire sections/folders at once (by @bensyverson).

0.7.0

3 years ago
  • The publish command line tool can now generate projects for building plugins, using publish new plugin.
  • A predicate can now be applied to filter which items that should be included when generating a podcast feed.

0.6.0

3 years ago
  • Publish now requires Swift version 5.2.
  • If a Markdown file doesn’t contain a title (H1), that file’s name is now used as a fallback for the corresponding item’s title (by @bensyverson).
  • Items can now be filtered out of a given RSS feed by passing an itemPredicate when using the generateRSSFeed publishing step.
  • An item’s body can now be prefixed and suffixed when it appears within an RSS feed.
  • Items can now be removed from a section (by @peteschaffner).
  • When writing a custom deployment method, you can now pass an outputFolderPath when creating a deployment folder for it, to have the website’s output copied into a nested folder (by @baguio and @john-mueller).

0.5.0

4 years ago
  • The publish run command now gives clearer instructions on how to stop it, by @honghaoz.
  • The publish run command is now compatible with both Python 2 and 3, by @hisaac.
  • The publish new command will now generate a project that better reflects its folder name, especially when numbers and underscores are used, by @natanrolnik.
  • Any hidden files within a project's Output folder are now cleaned up before each publishing process begins, by @Hejki.
  • Publish now ships with the latest versions of Ink, Plot and Sweep.

This release also contains documentation improvements by @Ze0nC, @alex-ross and @navanchauhan.

0.4.0

4 years ago
  • The Foundation theme now correctly renders content for stand-alone pages.
  • The Foundation theme's CSS has been improved when using multiple sections.
  • When using a custom rawValue within a website's SectionID enum, that is now taken into account during the generation process (by @Goosse).
  • When iterating over a website's sections, the iteration order is now predictable and follows the order that the website's sections were defined in within the SectionID enum.
  • You can now specify an RSS titleSuffix for items.
  • Publish is now using version 0.3.0 of Ink.

This release also includes documentation improvements by @alexito4.

0.3.0

4 years ago
  • When generating a new project using the publish new command line tool, any camelCasing within the current folder’s name will now be preserved in the project’s default name (by @wacumov).
  • A custom port number can now be specified when running the publish run command line tool (by @jlorfeo).
  • The publish run tool will now also correctly shut down its localhost server when it exits, and its error messaging has been improved.
  • External resources can now be referred to using Path instances, such as when specifying CSS files using the built-in head Plot component.
  • The Git deployment method will now output much richer error messages in case an error occured (by @ytyubox and @sindresorhus).
  • An item’s path can now be overriden using the path Markdown metadata property (by @dmonagle).
  • Publish now ships with Files 4.1.1 and Plot 0.5.0.
  • The Foundation theme's default CSS has been improved.

This release also includes documentation improvements by @NSBrianWard, @daniloc, @antonio081014 and @labradon.

0.2.0

4 years ago
  • When using the command line tool publish run, the local web server's address is now prefixed with http://, which enables you to click it to open your site in your web browser (by @slashmo). Also, if any error was encountered when starting that server, it's now reported to the user (by @camdeardorff).
  • Nested items are now generated at the correct path. So if you place a content item in Content/yourSection/path/to/item it will be generated at Output/yourSection/path/to/item (by @tonisuter).
  • You can now exclude an entire section from a website's sitemap.xml by including its path in excludedPaths (by @artrmz).
  • Plugins can now easily be added when using the default publishing pipeline, using the plugins: argument (by @slashmo).
  • RSS/podcast feeds are now only re-generated when their content was changed.
  • RSSFeedConfiguration and PodcastFeedConfiguration are now value types.
  • A podcast/RSS feed's publishing date can now be customized.
  • Attempting to publish a website with an empty pipeline now throws an error.
  • Publishing steps can now easily create and use cache files, using PublishingContext.cacheFile(named:).
  • Publish now uses version 0.4.0 of Plot.

Also thanks to @fbernutz, @danielmgauthier and @brettkoonce for fixing spelling errors in the documentation.

0.1.0

4 years ago

Initial release of Publish.