From 9679d5daccdfe73db6cff17d4dbdf10325cc7642 Mon Sep 17 00:00:00 2001 From: Robbie Moyer Date: Wed, 14 Dec 2022 12:50:10 -0500 Subject: [PATCH] Create Readme to provide overview of the library (#10) - Complete first draft of readme - Add sheilds to readme - Update image src to use full URL - Add a Usage section to the readme --- README.md | 252 ++++++++++++++++++++++++++++++++- images/rich-string-0-dark.png | Bin 0 -> 23577 bytes images/rich-string-0-light.png | Bin 0 -> 24222 bytes 3 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 images/rich-string-0-dark.png create mode 100644 images/rich-string-0-light.png diff --git a/README.md b/README.md index 6e04d8b..ef3f288 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,251 @@ -# RichStringKit +# 💰 RichStringKit 🔡 -A description of this package. +![Swift Version 5.7](https://img.shields.io/badge/Swift-5.7-F05138) +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/moyerr/RichStringKit/Swift/main?label=Build&logo=github) +![Updated](https://img.shields.io/github/last-commit/moyerr/RichStringKit/main?color=1f6feb&label=Updated) + +RichStringKit is a declarative DSL for building rich text in Swift. + +### Table of Contents + +1. [Motivation 🧐](#motivation-) +2. [Documentation 📖](#documentation-) +3. [Installation 💻](#installation-) +4. [Usage 🔡](#usage-) + +___ + +## Motivation 🧐 + +`NSAttributedString` is a powerful tool for creating rich text, but using it can be cumbersome and error-prone. Consider the following attributed text: + + + + Image of an attributed string that reads 'For the love of Swift' with the Swift programming language logo + + + +Creating this text with `NSAttributedString` might look something like this: + +```Swift +let attributedString = NSMutableAttributedString( + string: "For the love of Swift ", + attributes: [.font: UIFont.systemFont(ofSize: 40)] +) + +let strongAttributes: [NSAttributedString.Key: Any] = [ + .foregroundColor: UIColor.swift, + .font: UIFont.boldSystemFont(ofSize: 40) +] + +if let swiftLogo = UIImage(systemName: "swift") { + let swiftLogoAttachment = NSTextAttachment(image: swiftLogo) + let swiftLogoString = NSAttributedString(attachment: swiftLogoAttachment) + + attributedString.append(swiftLogoString) + + if let swiftRange = attributedString.string.range(of: "Swift") { + let strongRange = swiftRange.lowerBound ..< attributedString.string.endIndex + + attributedString.addAttributes( + strongAttributes, + range: NSRange(strongRange, in: attributedString.string) + ) + } +} +``` + +Creating the same text with `RichStringKit` looks like this: + +```Swift +let richString = NSAttributedString { + "For the love of " + Group { + "Swift " + Attachment(systemName: "swift") + } + .foregroundColor(.swift) + .font(.boldSystemFont(ofSize: 40)) +} +``` + + + +## Documentation 📖 + +_Full documentation coming soon_ + +Until then, take a look at some [example usage](#usage-). + +## Installation 💻 + +> RichStringKit requires Swift 5.7 + +### Swift Package Manager 📦 + +`RichStringKit` can be added as a package dependency via Xcode or in your `Package.swift` file. + +#### Xcode + +* File > Swift Packages > Add Package Dependency +* Add `https://github.com/moyerr/RichStringKit.git` +* Select "Up to Next Major" with `0.0.1` + +#### Package.swift + +Add the following value to the `dependencies` array: + +```Swift +.package(url: "https://github.com/moyerr/RichStringKit", from: "0.0.1") +``` + +Include it as a dependency for one or more of your targets: + +```Swift +.target( + name: "", + dependencies: [ + .product(name: "RichStringKit", package: "RichStringKit"), + ] +) +``` + +## Usage 🔡 + +### Rich String Result Builder + +The mechanism that enables RichStringKit's declarative DSL is the `RichStringBuilder`, which is a `@resultBuilder` similar to SwiftUI's [`ViewBuilder`](https://developer.apple.com/documentation/swiftui/viewbuilder). Closures, methods, and computed properties that return `some RichString` can be decorated with the `@RichStringBuilder` attribute to enable the DSL within them. For example: + +```Swift +@RichStringBuilder +var richText: some RichString { + "Underlined text" + .underlineStyle(.single) + + " and " + + "strikethrough text" + .strikethroughStyle(.single) +} +``` + +For more general information about Swift's result builder types, see [the Result Builder section of the Language Guide](https://docs.swift.org/swift-book/LanguageGuide/AdvancedOperators.html#ID630). + +### Convenience Initializers + +For convenience, `RichStringKit` provides initializers on `NSAttributedString`, `AttributedString`, and SwiftUI's `Text` view, all of which can either accept a `RichString` or a `@RichStringBuilder` closure. So you can start start using rich strings with your UI framework of choice. + +Use the `NSAttributedString` initializers when working with UIKit: + +```Swift +let label = UILabel() +label.attributedString = NSAttributedString { + "UIKit" + .font(.boldSystemFont(ofSize: 14)) + " is " + "fun" + .kern(4) + .foregroundColor(.green) +} +``` + +Use the `Text` or `AttributedString` initializers when working with SwiftUI: + +```Swift +struct ContentView: View { + var body: some View { + Text { + "SwiftUI" + .font(.boldSystemFont(ofSize: 14)) + " is also " + "fun" + .kern(4) + .foregroundColor(.green) + } + } +} +``` + +### Modifiers + +Style your text using the modifiers that `RichStringKit` provides, or by defining your own modifiers using the `RichStringModifier` protocol and the `modifier(_:)` method. + +#### Built-in Modifiers + +`RichStringKit` provides many modifiers for styling text, most of which map directly to attribute keys from `NSAttributedString.Key`. The modifier methods that are currently available are: + +1. `.backgroundColor(_:)` +2. `.baselineOffset(_:)` +3. `.font(_:)` +4. `.foregroundColor(_:)` +5. `.kern(_:)` +6. `.link(_:)` +7. `.strikethroughStyle(_:)` +8. `.underlineColor(_:)` +9. `.underlineStyle(_:)` + +More attributes will be added soon (#7). + +#### Combining Modifiers + +Adopt the `RichStringModifier` protocol when you want to create a reusable modifier that you can apply to any `RichString`. The example below combines modifiers to create a new modifier that you can use to create highlighted text with a yellow background and a dark foreground: + +```Swift +struct Highlight: RichStringModifier { + func body(_ content: Content) -> some RichString { + content + .foregroundColor(.black) + .backgroundColor(.yellow) + } +} +``` + +You can apply `modifier(_:)` directly to a rich string, but a more common and idiomatic approach uses `modifier(_:)` to define an extension on `RichString` itself that incorporates the modifier: + +```Swift +extension RichString { + func highlighted() -> some RichString { + modifier(Highlight()) + } +} +``` + +Then you can apply the highlight modifier to any rich string: + +```Swift +var body: some RichText { + "Draw the reader's attention to important information " + "by applying a highlight" + .highlighted() +} +``` + +### Advanced Usage + +#### Formatted Strings + +The `Format` type is provided to apply styling to formatted strings and their arguments independently. + +```Swift +Format("For the love of %@") { + Group { + "Swift " + Attachment(systemName: "swift") + } + .foregroundColor(.swift) + .font(.boldSystemFont(ofSize: 40)) +} +.font(.systemFont(ofSize: 40)) +``` + +> **Note:** `RichStringKit` currently supports only the `%@` format specifier. If your use case requires more advanced formatting, you can apply the formatting before inserting it into the final format string. For example: +> ```Swift +> let receiptLine = AttributedString { +> Format("Iced latte: %@") { +> String(format: "%10.2f", -4.49) +> .foregroundColor(.red) +> } +> } +> +> // Iced latte: -4.49 +> ``` \ No newline at end of file diff --git a/images/rich-string-0-dark.png b/images/rich-string-0-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..cdff50eac30a197d0e42ac8480d0130722ef421d GIT binary patch literal 23577 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 z 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 F{69}xp&9@H literal 0 HcmV?d00001