Swiftpack.co - Swift Packages by JohnSundell

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by JohnSundell

JohnSundell/Publish 0.9.0
A static site generator for Swift developers
⭐️ 4,788
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Publish 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.
Publish 0.8.0
2 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).
Publish 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.
Publish 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).
Publish 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.
Publish 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.
Publish 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.
Publish 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](https://github.com/JohnSundell/Plot/releases/tag/0.4.0). Also thanks to @fbernutz, @danielmgauthier and @brettkoonce for fixing spelling errors in the documentation.
Publish 0.1.0
4 years ago
Initial release of Publish.
macOS
JohnSundell/Files 4.2.0
A nicer way to handle files & folders in Swift
⭐️ 2,498
πŸ•“ 1 year ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Files 4.2.0
3 years ago
- You can now easily check if a `Folder` is empty using the `isEmpty()` method. - `Folder.documents` and `Folder.library` are now both available on iOS and tvOS, as well as macOS. - There's a new API, `Folder.matching()`, which enables you to return a system folder that matches a given search path. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5f99cd92424829000179dddd)
Files 4.1.1
4 years ago
This release restores Files' compatibility with Mac Catalyst. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5e13adf3fbf8f90001416e36)
Files 4.1.0
4 years ago
- On macOS, files can now be opened within the OS by calling `open()` on them (by @Amzd). - Fixed a bug that could cause `nameExcludingExtension` to return an empty string. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5e0d1d8ad9c46e0001f8955a)
Files 4.0.2
4 years ago
This release contains patches for two bugs: - When calling the `createFileIfNeeded` set of APIs, the `content` passed as any newly created file's content was previously ignored. That has now been fixed. - When accessing the `parent` of any folder contained within the file system's root folder, the actual root folder is now correctly returned. Thanks to @MaximeLM for implementing that fix. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5d8e004765fdb60001b1681b)
Files 4.0.1
4 years ago
This patch restores the `copy` API to again return the new file/folder that was copied. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5d8a97643326cb000119c883)
Files 4.0
4 years ago
Files 4.0 brings a brand new, streamlined implementation, improved error handling, more thorough documentation, and a more modern API. Since it's a new major release, some breaking API changes have been made. Here's everything that's new: - The `FileSystem` class has been removed. To perform operations relative to the root of the file system, use the new `Folder.root` API instead. To use a custom `FileManager`, call `managedBy()` on any `File` or `Folder`. - `FileSystem.Item` has been replaced by the `Location` protocol, and `FileSystem.Item.Kind` has been replaced by `LocationKind`. - You can now consistently use either a `name` or `path` when using any API for creating or referring to files and subfolders within a folder. - Methods accepting a `path` now use the simplified `at:` label, rather than `atPath:`. - External argument labels have been removed for APIs that write new contents to a file. So `write(string:)` and `write(data:)` are now two overloads of the same method: `write(_:)`. - All of the APIs for creating files now only accept `Data` as a file's initial contents. To write strings to a file, first create the file and then call `file.write(string)` on it. - `File` now has a `creationDate` property. - `Folder` now has static properties for accessing the current user's *Library* and *Documents* folders. - Error handling has been improved to now use a unified `FilesError` type, that always contains the `path` at which the error occurred, as well as a `Reason` - which can either be for locations, writes, or reads. See the `LocationError`, `WriteError` and `ReadError` type aliases for the three types of errors that Files can throw. - Computed properties that don't have `O(1)` time complexity have now been changed into methods instead. That includes `name()`, `count()`, and `last()` on file/folder sequences, since computing those requires enumerating the sequence. The time complexity of each sequence operation is now also documented. - `FileSystemSequence` is now `Folder.ChildSequence`, and each sequence can now easily be turned into a recursive one by accessing the `recursive` property. The same is also true for including hidden files, which is now done by accessing the `includingHidden` property on a sequence. The `makeFileSequence(...)` and `makeSubfolderSequence(...)` APIs have been removed in favor of constructing customized sequences using those new computed properties. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5d73a2057acd0a000130893b)
Files 3.1.0
5 years ago
- Both `File` and `Folder` now have a `path(relativeTo:)` API, which makes it easy to calculate a given item's path relative to one of its parent folders. - `FileSystem.documentFolder` and `FileSystem.libraryFolder` are now only available on macOS. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5ca7cf40e6bc2600017ba26a)
Files 3.0.0
5 years ago
Files now uses Swift `5.0`, which makes it incompatible with toolchains with versions lower than `4.2`. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5c9a203f3f10aa0001213d1f)
Files 2.3.0
5 years ago
- New APIs have been added to check whether a given folder contains either another folder or a file (thanks @clayellis!) - The old, long since deprecated `creatingSubfolderFailed` error has now been fully removed. > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5c8ba3d613361600013d1fe0)
Files 2.2.1
6 years ago
This patch makes Files backwards compatible with Swift 4.0. Thanks @iainsmith πŸ™Œ > View build details and download artifacts on buddybuild: > [Files (iOS, Files-iOS)](https://dashboard.buddybuild.com/apps/5932f7d9b0c2b000015d6b79/build/5acce326090bfb00017b5d08)
JohnSundell/Ink 0.6.0
A fast and flexible Markdown parser written in Swift.
⭐️ 2,349
πŸ•“ 1 year ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Ink 0.6.0
1 year ago
This new version of Ink is long overdue (very sorry about that!) and includes some great fixes by the community: * Support links with parenthesis by @Richard-Gist in https://github.com/JohnSundell/Ink/pull/73 * Fix formatting of lists appearing immediately after a paragraph by @adam-fowler in https://github.com/JohnSundell/Ink/pull/63 * Fix formatting of indented lists by @adam-fowler in https://github.com/JohnSundell/Ink/pull/62 * Recognize CR-LF pairs as newlines for the purposes of Paragraph separation. by @jimstudt in https://github.com/JohnSundell/Ink/pull/60
Ink 0.5.1
2 years ago
Ink now supports Swift 5.4, while still maintaining backward compatibility with 5.3 and 5.2.
Ink 0.5.0
3 years ago
Ink now ships with support for Markdown tables - including headers, column alignment, and balancing of cells. Thanks a lot to @christiankm and @john-mueller for their work on this.
Ink 0.4.0
4 years ago
Pre-escaped HTML entities (such as `&`) are now left as-is, rather than being double-escaped.
Ink 0.3.0
4 years ago
Metadata keys and values can now be modified using the `.metadataKeys` and `.metadataValues` modifier targets, which makes it easier to integrate Ink (and tools written on top of it, like Publish) with existing Markdown metadata.
Ink 0.2.0
4 years ago
- Code blocks can now have an exceeding number of closing backtick markers (by @steve-h). - Code block language strings are now trimmed (by @steve-h). - The CSS class assigned to a code block now has the prefix `language-` (by @john-mueller). - If a line ends with two spaces that's now treated as a hard line break (by @ezfe). - The Ink CLI tool has been improved to accept `stdin` input and has better usage info (by @john-mueller). - The `Markdown` value that's returned from `MarkdownParser.parse` now has a `title` property, which matches the first top-level heading found in the Markdown text. - Self-closing tags are now inline with HTML, rather than XML (by @steve-h). - String parsing terminators are now successfully ignored when escaped (by @JoaoPinheiro).
Ink 0.1.3
4 years ago
- Unordered list items can now be defined using `+` (by @ezfe). - Ordered lists can now be defined using `1)` (by @ezfe). - Improved CommonMark compatibility for lists (by @ezfe). - Xcode is now able to fully parse Ink's code-level documentation. - URL references are now case-insensitive (by @ezfe). - Trailing markers (`#`) are now trimmed from headings.
Ink 0.1.2
4 years ago
- The `ink` command line tool now accepts STDIN input by passing `-` as a single argument (by @bamx23) - HTML comments are now parsed correctly. - Fixed that unterminated links at the end of a file could cause a crash (by @john-mueller)
Ink 0.1.1
4 years ago
This version addresses Linux compatibility issues in the unit testing suite.
Ink 0.1.0
4 years ago
Initial release of Ink.
JohnSundell/Plot 0.14.0
A DSL for writing type-safe HTML, XML and RSS in Swift.
⭐️ 1,958
πŸ•“ 50 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Plot 0.14.0
50 weeks ago
* `twitter:site` meta tag added by @harrydayexe in https://github.com/JohnSundell/Plot/pull/92 * `Aside` HTML component added by @Vithanco in https://github.com/JohnSundell/Plot/pull/93 * `<time>` element added by @harrydayexe in https://github.com/JohnSundell/Plot/pull/86
Plot 0.13.0
1 year ago
This new version of Plot makes the library fully compatible with the Open Graph protocol, and includes neat new extensions added by the community. * Compatibility with Open Graph protocol by @CoolONEOfficial in https://github.com/JohnSundell/Plot/pull/88 * Add `crossorigin` link attribute by @davidrothera in https://github.com/JohnSundell/Plot/pull/87 * Extend `<dl>` with `<div>` wrapped groups by @nkalvi in https://github.com/JohnSundell/Plot/pull/89
Plot 0.12.0
1 year ago
This new release of Plot is long overdue (very sorry about that!) and includes some great new features added by the community: * Fix typo in the documentation for `EnvironmentValue` by @jordanekay in https://github.com/JohnSundell/Plot/pull/83 * Adding `type` attribute to `PictureSourceContext` by @fishcharlie in https://github.com/JohnSundell/Plot/pull/76 * Replace `HTMLAnchorRelationship` enum with `RawRepresentable` struct by @emorydunn in https://github.com/JohnSundell/Plot/pull/75 * Chinese language variants added by @zgjie in https://github.com/JohnSundell/Plot/pull/84 * Update README to mark a codeblock as being `swift` by @ptrkstr in https://github.com/JohnSundell/Plot/pull/74 * Add the `dir` HTML attribute by @alobaili in https://github.com/JohnSundell/Plot/pull/72 * Add `viewport-fit` to viewport meta tag by @hallee in https://github.com/JohnSundell/Plot/pull/41 * Add support for the `object` tag by @AlexLike in https://github.com/JohnSundell/Plot/pull/39
Plot 0.11.0
2 years ago
This release fixes two compatibility issues with Swift 5.6 and Xcode 13.3: - `HTMLAnchorTarget.self` has been replaced with `.current`, since using `self` for enum case names now yields a compiler warning. Backward compatibility for `.self` is still maintained through a deprecated computed property, but all Plot users who are using `HTMLAnchorTarget.self` within their code bases are encouraged to switch to `.current` as soon as possible. - A compiler error that could be triggered by using a custom `EnvironmentKey` with an optional `Value` type has been fixed.
Plot 0.10.0
2 years ago
- You can now define an RSS item's `description` using Plot nodes, which are then converted into HTML (by @daveverwer). - The `title` and `spellcheck` attributes can now be natively attached to any HTML element (by @daveverwer). - The `type` attribute is now natively supported for HTML `<button>` elements (by @daveverwer). - The rendering of boolean HTML attributes has been optimized, and are now often rendered without any value, further minimizing the overall footprint of the HTML that Plot generates (by @daveverwer). This release also contains documentation fixes by @omaralbeik.
Plot 0.9.3
2 years ago
This release fixes a minor regression for documents rendered with indentation, in that text nodes would always be rendered on a new line. The previous (0.8.0 and earlier) rendering behavior has now been restored, and purely `Text`-based components now also get this inline rendering behavior as well.
Plot 0.9.2
2 years ago
When appending attributes (such as a `class`) to a custom component that uses a `ComponentGroup` as its `body`, those attributes are now appended individually to each of the group's members.
Plot 0.9.1
2 years ago
- The `content` namespace of generated RSS feeds now points to the correct URL (by @mwermeester). - You can now append attributes to custom component wrappers, and they will be added to the component's underlying element. - Appending an empty attribute to a component no longer causes additional whitespace to be rendered.
Plot 0.9.0
2 years ago
This version of Plot introduces a brand new `Component` API that can be used to build HTML components in a very SwiftUI-like way. It also includes a brand new rendering engine, the ability to append values to attributes, and more. All while maintaining complete backward compatibility with the existing API. Check out the ["Components" section](https://github.com/JohnSundell/Plot#components) in the updated README to learn more about the new component-based API. - Plot now uses Swift 5.4. - The new `Component` protocol can be used to define HTML `<body>` components in a very SwiftUI-like way. - `Node` is no longer an enum, and is now implemented as a struct instead, for added flexibility. This is the only potentially breaking change in this release, but will only affect API users that have been manually switching on `Node` values, which is a highly unlikely scenario. - Values can now be appended to attributes (rather than overwriting them) by setting the `replaceExisting` property on `Attribute` to `false`. - Plot now natively supports the `<small>` element (by @daveverwer). - Attributes can now be attached to the `<hr>` element (by @daveverwer). - The `title` attribute can now be attached to any HTML `<body>` element (by @daveverwer). - The `label` attribute can now be attached to the `<option>` element (by @mredig). - HTML tables can now be natively grouped using `<thead>`, `<tbody>`, and `<tfoot>` (by @mredig). - The `<img>` element now natively supports the `width` and `height` attributes (by @MainasuK). - Brazilian Portuguese has now been added to the `Language` enum (by @ednofedulo).
Plot 0.8.0
3 years ago
- All HTML body elements now support the `onclick` attribute (by @8W9aG). - HTML forms now support the `novalidate` attribute (by @julianschiavo). - HTML `<input>` elements now support the `placeholder` attribute (by @julianschiavo). - The HTML `aria-hidden` accessibility attribute is now natively supported (by @julianschiavo). - The HTML `<aside>` element is now natively supported (by @l1ghthouse). - HTML body and form elements can now be freely mixed, and elements that typically appear within a form (such as `<input>`) can now appear anywhere within a page's `<body>`. This release also includes documentation additions by @BastianInuk.
JohnSundell/Unbox 4.0.0
[Deprecated] The easy to use Swift JSON decoder
⭐️ 1,946
πŸ•“ 5 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Unbox 4.0.0
5 years ago
This version moves Unbox to Xcode 10.2 and Swift 5, and with that comes some API changes that will require manual fixes for users adopting this new version. Since Swift now automatically flattens optionals returned from throwing functions called with `try?`, Unbox now uses throwing APIs for **all** unboxing methods. That means that while in previous versions, you’d unbox an optional property like this: ```swift struct User: Unboxable { var name: String? init(unboxer: Unboxer) throws { name = unboxer.unbox(key: "name") } } ``` You’ll now have to prefix such calls with `try?`: ```swift struct User: Unboxable { var name: String? init(unboxer: Unboxer) throws { name = try? unboxer.unbox(key: "name") } } ``` While I realize that the above change brings a slight regression in terms of Unbox’s ease-of-use, it’s necessary in order to make Unbox support the latest Swift tools within a reasonable scope, and also moves Unbox's API to be more inline with modern Swift conventions for throwing methods. > View build details and download artifacts on buddybuild: > [Unbox (iOS, Unbox-iOS)](https://dashboard.buddybuild.com/apps/593726082c64d30001545887/build/5ca4d1c4e80c10000130e2cd)
Unbox 3.1.0
5 years ago
This version migrates Unbox to Swift 4.2. > View build details and download artifacts on buddybuild: > [Unbox (iOS, Unbox-iOS)](https://dashboard.buddybuild.com/apps/593726082c64d30001545887/build/5c5eb18424c5370001343556)
Unbox 3.0.0
5 years ago
This version migrates Unbox to Swift 4.1 > View build details and download artifacts on buddybuild: > [Unbox (iOS, Unbox-iOS)](https://dashboard.buddybuild.com/apps/593726082c64d30001545887/build/5ae6ec39ad6ed70001e27fca)
Unbox 2.5.0
6 years ago
This version of Unbox adds support for Xcode 9 and Swift 3.2, as well as re-organizes the project to be easier to browse, with separate files for each part of the API. It also enables the tests to be run using the Swift Package Manager.
Unbox 2.4.0
7 years ago
- You can now unbox a dictionary of models directly using the top-level `unbox()` function. Works with both `Data` and `UnboxableDictionary`. Implemented by @mislavjavor. - `Decimal` is now a first-class number type, and gets automatically converted from other number types and strings. Implemented by @bencallis. - You can now unbox `Set` directly from an array, without any custom transformation code. Implemented by @hartbit.
Unbox 2.3.1
7 years ago
More `unbox()` functions that return an `Array` can now (optionally) be passed the `allowInvalidElements` parameter.
Unbox 2.3.0
7 years ago
- `UnboxPathError` is now public, meaning that the detailed error reporting introduced in `2.2` has now been combined with the granularity of earlier versions. `UnboxError` is again an enum to enable developers to `switch` on the different cases. - Xcode settings have now been updated for `8.1`. No more ⚠️. - Unbox now has a shiny new logo (kind of shiny anyway, I'm not a designer 😁). - When unboxing `Data` to an array, you can now start unboxing at a certain key path. - Unbox can again be used by dragging `Unbox.swift` directly into a project, instead of using it as a library.
Unbox 2.2.1
7 years ago
This release makes Unbox usable with the new version of the Swift Package Manager.
Unbox 2.2.0
7 years ago
This version is focused on increasing Unbox's speed - it's now **up to 50% faster** compared to the previous version! It also contains error reporting improvements. **Perfrormance** - Unboxing collections is now up to 25% faster, because of decreased iteration complexity. - Unboxing with key paths is now up to 50% faster, since associated enum values is no longer used. The next releases of Unbox will continue to make performance improvements in order to make decoding your JSON even more... eh... swift πŸ˜‰ **Error reporting** Unbox now produces a coherent, easy to read error type. `UnboxError` has been made into a struct instead of an enum, and when printed - it produces easily debuggable information. For example, here's how an invalid array element would be reported in Unbox 2.1 or earlier: ``` [UnboxError] Invalid value ([1, "Bad value", 3]) for key "array" ``` And here's how Unbox 2.2 reports the same error: ``` [UnboxError] An error occured while unboxing path "model.array": Invalid array element ("Bad value") at index 1. ``` This also means you only have to catch one error type (`UnboxError`) instead of performing complex pattern matching.
Unbox 2.1.1
7 years ago
`Decimal` can now be unboxed directly (thanks @garnett!)
JohnSundell/Marathon 3.3.0
[DEPRECATED] Marathon makes it easy to write, run and manage your Swift scripts πŸƒ
⭐️ 1,869
πŸ•“ 4 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Marathon 3.3.0
4 years ago
This release adds support for Swift 5.1 and Xcode 11. Note that, since Marathon is deprecated, this will likely be the last official release. See [this issue](#208) for more information. > View build details and download artifacts on buddybuild: > [Marathon (iOS, MarathonCore - Debug)](https://dashboard.buddybuild.com/apps/58ff19a79a06210001d14c2d/build/5d7eafb9b0044500014ce526)
Marathon 3.2.0
5 years ago
This release adds support for Swift 5 and Xcode 10.2. > View build details and download artifacts on buddybuild: > [Marathon (iOS, MarathonCore - Debug)](https://dashboard.buddybuild.com/apps/58ff19a79a06210001d14c2d/build/5cb5c85875f19f0001b3b1cc)
Marathon 3.1.0
5 years ago
Swift 4.2 and Xcode 10 support! πŸŽ‰
3.0.0 - Xcode 9.3 Support
6 years ago
> View build details and download artifacts on buddybuild: > [Marathon (iOS, MarathonCore - Debug)](https://dashboard.buddybuild.com/apps/58ff19a79a06210001d14c2d/build/5adb9d27fab5bc0001f22853)
Marathon 2.0.2: Exposes MarathonDependencies
6 years ago
If you want to use libMarathon to generate dependencies, they're now exposed as a library product in their script folder making them linkable from external apps.
Marathon 2.0.1: MarathonCore opening for business
6 years ago
* Opens up a chunk of the Marathon API for others to use (an example being [Danger Swift](https://github.com/danger/danger-swift)) * Fixes for `--verbose` > View build details and download artifacts on buddybuild: > [Marathon (iOS, MarathonCore - Debug)](https://dashboard.buddybuild.com/apps/58ff19a79a06210001d14c2d/build/5a1afd0dd62fc900018d6811)
Marathon 2.0.0
6 years ago
- Xcode 9 or later is now required to build & install Marathon. - Support for Xcode 9.1 and Swift 4.0.2. - Support for Swift 3.x is now deprecated and will be fully removed soon. - Support for running any remote Swift package as a script. > View build details and download artifacts on buddybuild: > [Marathon (iOS, MarathonCore - Debug)](https://dashboard.buddybuild.com/apps/58ff19a79a06210001d14c2d/build/5a034b149ca4a100018c2686)
Marathon 1.0.1
6 years ago
Changes to Makefile to enable installation through Homebrew (thanks @orta!)
Marathon 1.0.0
6 years ago
Initial stable release of Marathon, from here on semantic versioning will be used πŸ‘
JohnSundell/Splash 0.16.0
A fast, lightweight and flexible Swift syntax highlighter for blogs, tools and fun!
⭐️ 1,747
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Splash 0.16.0
2 years ago
This version of Splash includes support for highlighting code written using Swift 5.5's new concurrency features, including `async/await` and `actor` types. It also upgrades the Swift version that Slash uses to `5.4`. Syntax highlighting has also been corrected in the following situations: - When `nil` is used within a ternary operation. - When a comment is placed next to an array type or literal. - When an underscore is used to ignore function parameters. - When a property wrapper's projected value is used. This release also includes documentation fixes by @Yaacoub and @haikusw, and an infrastructure improvement by @fjcaetano.
Splash 0.15.0
3 years ago
This release fixes syntax highlighting within the following scenarios: - When a multi-line-style comment is placed next to, or within, a generic type list. - References to a generic type's static property or enum case. - Calls to methods that have names matching a keyword. - Keywords like `init` and `didSet` are no longer highlighted as method calls in certain situations.
Splash 0.14.0
3 years ago
- Syntax highlighting for Swift property wrappers has been improved. - Comments that are proceeded by a comma are now correctly highlighted. - Splash now installs and runs more predictably on case sensitive file systems (thanks to @hybridcattt)
Splash 0.13.0
3 years ago
- Splash now requires Swift 5.2. - The `try` keyword is now correctly highlighted when used within a function call. - Comments that appear next to curly brackets are now correctly highlighted. - Generic parameter types that appear in an initializer declaration are no longer highlighted. - Generic superclasses are now correctly highlighted within subclass declarations.
Splash 0.12.0
4 years ago
- Enum cases called `some` are now correctly highlighted. - You can now pass a custom `Grammar` when using `MarkdownDecorator` (by @marcocapano). - Function calls that are the first statement within a closure that accepts arguments are now correctly highlighted. - When switching on an expression that includes accessing a property, that property is no longer incorrectly highlighted as a function call.
Splash 0.11.1
4 years ago
This releases makes Splash compatible with the Swift 5.2 compiler that's bundled with the current Xcode 11.4 beta, thanks to @duemunk.
Splash 0.11.0
4 years ago
- Keyword-like function parameters placed on a separate line are no longer highlighted. - Keyword-like variables used when unwrapping optionals are no longer highlighted. - Splash now recognizes the `unowned` keyword. - Multiline comments are now correctly highlighted when placed next to punctuation, and when such a comment has no content (like `/**/`), by @duemunk. - String literals that end with a newline character are now correctly highlighted. This release also contains a test improvement by @artrmz.
Splash 0.10.0
4 years ago
- Splash now fully escapes all required HTML entities when outputting HTML and when highlighting Markdown code blocks. - The `prefix` keyword is now correctly highlighted.
Splash 0.9.0
4 years ago
**New features:** - You can now inject a custom CSS class prefix when using `MarkdownDecorator` to highlight all code blocks within a Markdown file. **Fixes:** - Single-expression raw string interpolation is now highlighted correctly. - Strings appearing within another string's interpolation are now correctly highlighted. - Types appearing within a generic subscript's declaration are now highlighted correctly. - `nil` is now properly highlighted when passed to a parameter-less function. - Support has been added for the `#warning` and `#error` compiler directives.
Splash 0.8.0
4 years ago
**New APIs** - `Grammar` now has a method called `isDelimiter(mergableWith:)`, which is optional to adopt, and allows each grammar to tweak whether two delimiters should be merged into a single token when evaluated. **Fixes** - The `convenience` keyword is now supported. - `MarkdownDecorator` no longer hard-codes line breaks within the HTML code blocks that it generates (which is also true for the `splashmarkdown` command line tool, since it uses that same decoration code). - APIs called using dot syntax are now only highlighted as `dotAccess` when there are no associated values or parameters passed. So `.someCase` will be highlighted as `dotAccess`, while `.someCall()` won't. This is to make static APIs called using dot access highlighted in a more accurate way. - Highlighting for strings containing interpolation has now been made a *lot* more robust, especially for strings that contain punctuation and other delimiter-like characters. - Fixed a bug that could cause a type following a comment ending with a punctuation character to not be highlighted correctly. - Comments that start with a delimiter are now highlighted correctly.
JohnSundell/Codextended 0.3.0
Extensions giving Swift's Codable API type inference super powers πŸ¦Έβ€β™‚οΈπŸ¦Ήβ€β™€οΈ
⭐️ 1,493
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Codextended 0.3.0
4 years ago
This version of Codextended adds an API for decoding optionals while still throwing an error if the decoding failed; named `decodeIfPresent` (same as vanilla Codable). Thanks to @eseay for implementing this πŸ‘
Codextended 0.2.0
5 years ago
- `PropertyListDecoder` is now supported on non-Apple platforms when using Swift 5.1 (thanks @pvieito!) - `ISO8601DateFormatter` can now be used when decoding or encoding dates
Codextended 0.1.0
5 years ago
Initial release of Codextended.
JohnSundell/ShellOut 2.3.0
Easily run shell commands from a Swift script or command line tool
⭐️ 856
πŸ•“ 28 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
ShellOut 2.3.0
4 years ago
This release enables a custom `Process` instance to be injected when calling `shellOut`.
ShellOut 2.2.1
4 years ago
- A race condition that could occur when capturing output data is now being avoided (by @helje5) - ShellOut no longer closes standard file handles (like `stdin` and `stderr`) when finishing (by @SteveBarnegren)
ShellOut 2.2.0
5 years ago
This version migrates ShellOut to Swift 4.2
ShellOut 2.1.0
6 years ago
ShellOut is now thread safe thanks to @harlanhaskins πŸŽ‰
ShellOut 2.0.0
6 years ago
- ShellOut now uses Swift 4. - `copyFile` and `removeFile` has been added to the convenience API. - You can now use paths containing a tilde to refer to the home folder. - More user friendly descriptions of errors.
ShellOut 1.2.1
6 years ago
This release fixes build errors on Linux, since attaching handlers to FileHandles is not yet supported in the Swift standard library on that platform.
ShellOut 1.2.0
6 years ago
- You can now capture the output of `STDOUT` and `STDERR` by injecting your own custom `FileHandle`s. - ShellOut now supports pre-defined commands (using `ShellOutCommand`), and ships with a suite of commands for common tasks.
ShellOut 1.1.0
7 years ago
**New features** - Run a series of commands at once - Run either a single command or a series of commands at a given path See updated `README` for usage examples of the above **Fixes** - Documentation fixes (thanks @pixyzehn!)
ShellOut 1.0.0
7 years ago
Initial release of ShellOut πŸŽ‰
JohnSundell/CollectionConcurrencyKit 0.2.0
Async and concurrent versions of Swift’s forEach, map, flatMap, and compactMap APIs.
⭐️ 746
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
CollectionConcurrencyKit 0.2.0
2 years ago
CollectionConcurrencyKit now supports the same backward compatibility as Swift's concurrency system itself, meaning that it can now be used on iOS 13+, macOS 10.15+, watchOS 6+, and tvOS 13+ (as long as Xcode 13.2 or later is used).
CollectionConcurrencyKit 0.1.0
2 years ago
The initial release of CollectionConcurrencyKit.
iOS macOS watchOS tvOS
JohnSundell/Wrap 3.0.1
[DEPRECATED] The easy to use Swift JSON encoder
⭐️ 730
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Wrap 3.0.1
6 years ago
Wrap now uses the Swift 4 version of the Swift Package Description API. > View build details and download artifacts on buddybuild: > [Wrap (iOS, Wrap-iOS)](https://dashboard.buddybuild.com/apps/5936eda6f22b9400013db5cc/build/59ff6b11232fb9000146641d)
Wrap 3.0.0
6 years ago
- Wrap now uses Swift 4 - Fixed a bug when a custom date formatter was being used when wrapping to `Data` (thanks @fpillet!) > View build details and download artifacts on buddybuild: > [Wrap (iOS, Wrap-iOS)](https://dashboard.buddybuild.com/apps/5936eda6f22b9400013db5cc/build/59fdcfe6a674ee00015b6af9)
Wrap 2.1.1
7 years ago
**Fixes** - Better Linux compatibility with `NSRegularExpression`, by @darthpelo. - More robust nil handling by not using `Some` string, by @PaulTaykalo.
Wrap 2.1
7 years ago
- Linux support! πŸŽ‰ You can now use Wrap to super easily encode JSON when using Swift server-side. Thanks to @agisboye for helping to implement this! - Wrap now automatically ignores closure properties.
Wrap 2.0.2
7 years ago
Wrap is now fully updated for Xcode 8.1 and the latest version of the Swift Package Manager (thanks @rayfix!)
Wrap 2.0.1
7 years ago
- Wrap now automatically encodes instances of Swift's `URL` type, as well as `NSURL`. - Compatibility for (mac)OS (X) 10.0 added by @maxsz
Wrap 2.0
7 years ago
Wrap 2.0 is a new major version that brings full Swift 3 APIs, bug fixes and new features πŸŽ‰ ⚠️ Note that this release includes breaking changes for users of Wrap 1.x. Please upgrade with caution and make sure that you migrate to the new APIs. Also note that Wrap 2.0 is only compatible with Swift 3. - `Wrap(..)` is now `wrap(..)` - `Wrap(objects:)` is now `wrap(_)` - `keyForWrapping(propertyName:)` is now `keyForWrapping(propertyNamed:)` - `WrapCustomizable.wrap()` is now `wrap(context:dateFormatter:)` - `wrap(propertyName:originalValue:)` is now `wrap(propertyNamed:originalValue:context:dateFormatter:)` - All enums use a lower case leading character - Wrapping to `snake_case` is now supported (`myProperty ->`my_property`) - Int64 & UInt64 are now encoded properly on 32 bit systems - Date Formatters are now kept througout the entire wrapping process, and can be used in customized wrapping - Wrap now has support for contextual objects just like Unbox has (send `context:`) when initiating the wrapping
Wrap 1.1.1
7 years ago
- Add support the Swift Package Manager (SPM) (thanks @alexaubry) - Add backwards-compatibility for OS X 10.10 (thanks @bmichotte) - Add support for using Wrap in an App Extension
Wrap 1.1
7 years ago
This release of Wrap introduces the ability to encode JSON arrays directly using Wrap: ``` let objects = [...] let dictionaries: [WrappedDictionary] = try Wrap(objects) let data: NSData = try Wrap(objects) ```
Wrap 1.0.3
8 years ago
- Automatically convert keys that conform to `CustomStringConvertible` into strings, rather than requiring them to conform to `WrappableKey`. - Wrap & Unbox can now be used together in a tvOS app. Thanks @JaviLorbada for this!
JohnSundell/Sweep 0.4.0
Fast and powerful Swift string scanning made simple
⭐️ 532
πŸ•“ 4 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Sweep 0.4.0
4 years ago
A single substring can now easily be scanned for using the new `firstSubstring(between:and:)` API.
Sweep 0.3.0
4 years ago
This release of Sweep makes it possible to create instances of `Matcher` that get discarded after their first match, by setting `allowMultipleMatches` to `false` (default is still `true`, so this is a backward-compatible change).
Sweep 0.2.1
5 years ago
This releases fixes matching against the `.start` identifier.
Sweep 0.2.0
5 years ago
- Each custom `Matcher` now gets passed both each matched substring, as well as the range that was matched within the scanned string. - Tests now correctly run on Linux.
Sweep 0.1.0
5 years ago
Initial release of Sweep
JohnSundell/Require 2.0.1
Require optional values to be non-nil, or crash gracefully
⭐️ 413
πŸ•“ 4 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Require 2.0.1
6 years ago
Require now uses the Swift 4 version of the Swift Package Description API.
Require 2.0.0
6 years ago
Require now uses Swift 4 (thanks @basememara!)
Require 1.0.2
7 years ago
This release makes Require Linux-compatible by not using `NSException` on that platform. Thanks to @darthpelo! πŸŽ‰
1.0.1
7 years ago
This release makes crashes generated from Require work a lot better with crash reporting tools such as Crashlytics, by raising an `NSException` before calling `preconditionFailure()`.
Require 1.0.0
7 years ago
Initial release of Require πŸŽ‰
JohnSundell/AsyncCompatibilityKit 0.1.2
iOS 13-compatible backports of commonly used async/await-based system APIs that are only available from iOS 15 by default.
⭐️ 379
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
AsyncCompatibilityKit 0.1.2
2 years ago
Fixed an issue that could cause the `task` SwiftUI modifier not to cancel the correct task when its view disappeared after a state update (thanks to @jegnux for helping out with the fix for this issue).
AsyncCompatibilityKit 0.1.1
2 years ago
When performing a network call using the `async`-marked `URLSession` methods that AsyncCompatibilityKit provides, cancelling such an operation's parent `Task` now also cancels that network call.
AsyncCompatibilityKit 0.1.0
2 years ago
Initial release of AsyncCompatibilityKit.
iOS
JohnSundell/Identity 0.3.0
πŸ†” Type-safe identifiers in Swift
⭐️ 299
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Identity 0.3.0
4 years ago
This version of Identity adds support for expressing identifiers using string interpolation (when their underlying raw type supports it), and also adds `description` support.
Identity 0.2.0
4 years ago
This release adds an `ID` typealias to all `Identifiable` types, making it possible to implement identifiers by simply using `ID` as the type, and to refer to any ID using `SomeType.ID`.
Identity 0.1.0
4 years ago
Initial release of Identity
JohnSundell/Xgen 2.2.0
A Swift package for generating Xcode workspaces & playgrounds
⭐️ 191
πŸ•“ 3 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Xgen 2.2.0
5 years ago
This release makes it possible to add auxiliary source files to a playground generated with Xgen.
Xgen 2.1.0
5 years ago
Added the option to disable auto running a generated playground.
Xgen 2.0.1
6 years ago
Xgen now uses Files 2.0 and ShellOut as a test-only dependency.
Xgen 2.0.0
6 years ago
Xgen now uses Swift 4
Xgen 1.0.1
6 years ago
Xgen now uses HTTPS to clone its dependencies.
Xgen 1.0.0
7 years ago
Initial release of Xgen πŸŽ‰
JohnSundell/SplashPublishPlugin 0.2.0
A Splash plugin for the Publish static site generator
⭐️ 93
πŸ•“ 1 year ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.2.0
1 year ago
This release makes this plugin fully compatible with Publish 0.9.0.
Version 0.1.0
4 years ago
Initial release of the Splash Publish plugin.
macOS
JohnSundell/Releases 5.0.0
A Swift package for resolving released versions from a Git repository
⭐️ 51
πŸ•“ 1 year ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Releases 5.0.0
4 years ago
Releases now uses Swift 5.1. > View build details and download artifacts on buddybuild: > [Releases (iOS, Releases - Debug)](https://dashboard.buddybuild.com/apps/59fdd9e7e962060001e7145c/build/5de7a828937b710001d439d3)
Releases 4.0.0
5 years ago
- Releases now uses Swift 4.2. - `Version` now conforms to Codable. > View build details and download artifacts on buddybuild: > [Releases (iOS, Releases - Debug)](https://dashboard.buddybuild.com/apps/59fdd9e7e962060001e7145c/build/5c681735af9f6a0001e22cc0)
Releases 3.0.0
6 years ago
Releases now uses Swift 4.1 (thanks @sunshinejr πŸ‘) To use Releases with Swift 4.0, use version 2.X.
Releases 2.0.1
6 years ago
Releases now uses ShellOut version 2.0.0 > View build details and download artifacts on buddybuild: > [Releases (iOS, Releases - Debug)](https://dashboard.buddybuild.com/apps/59fdd9e7e962060001e7145c/build/59ff65bd232fb900014661ef)
Releases 2.0.0
6 years ago
Releases now uses Swift 4. > View build details and download artifacts on buddybuild: > [Releases (iOS, Releases - Debug)](https://dashboard.buddybuild.com/apps/59fdd9e7e962060001e7145c/build/59fde09dcf2bd0000114dfb3)
Releases 1.0.6
6 years ago
Releases now uses HTTPS to clone all of its dependencies, instead of SSH.
Releases 1.0.5
6 years ago
This release patches a bug that would cause a version’s string to be different when accessed after parsing it using `Version.string`. For example; a version parsed from the string `"3.0"` would have the string `"3.0.0"`. This has now been fixed, in order to support a 1:1 relationship with git tags.
Releases 1.0.4
6 years ago
Version prefixes (like `v3.2.1`) are now supported. `Version` now has a `prefix` property, and tags containing prefixes are now parsed correctly.
Releases 1.0.3
6 years ago
Using Releases with a git repo containing non-semantic version git tags no longer causes it to fail - it now simply ignores any non-version tag.
Releases 1.0.2
6 years ago
Any `^{}` suffix (which appears in some GitHub tags) is now stripped out when parsing a version
JohnSundell/MarathonTestPackage 0.1.0
A Swift package that's used in Marathon's tests
⭐️ 1
πŸ•“ 5 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.1.0
5 years ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics