* Add simple test for escaping markdown content in statuses
* Add ~ as markdown character to be escaped in statuses
The ~ isn't documented in the original markdown syntax docs but is
commonly used (including by AttributedString) to surround text
formatted with a strikethrough.
* Allow creation of URL objects from strings containing non-ASCII characters
Adds a new initializer for creating URL objects with a flag to specify that
non-ASCII characters found in the path or query string should first be
URL encoded.
* Add basic test for creating HTMLString objects
* Encode link paths and queries when parsing statuses
It's common to use non-ASCII characters in URLs even though they're technically
invalid characters. Every modern browser handles this by silently encoding
the invalid characters on the user's behalf. However, trying to create a URL
object with un-encoded characters will result in nil so we need to encode the
invalid characters before creating the URL object. The unencoded version
should still be shown in the displayed status.
The parsing of the URL string is a little messy because we can't use the URL
class for this scenario and need to duplicate some of its work.
* Only encode link URLs as a backup
If a URL can be created from a status href, don't try URL encoding
it as this could result in double encoding. Only encode the string
if the creation of a URL fails. This is also more efficient.
* Allow specifying the visibility of replies
Replies can now have their own default visibility. This visibility is always at
least as restrictive as the default post visibility. When posting a reply, the
visibility is pre-populated with the more restrictive out of the default and
the visibility of the original post.
Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
* Use iOS-specific modifier
If the app is run on iOS 17, the new onChange(...)-modifier is used.
Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
* Restrict the extension of the onChange-Modifier
The extension of the view to allow the use of the version-appropriate
onChange-modifier is now only available in the relevant file.
Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
* Reset to use Xcode 14 / iOS 16
The iOS 17 specific changes are removed to allow building in the older Xcode 14.
Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
* Make the default reply visibility public
The standard default reply visibility is now public, the behavior of the app
isn't changed for a user who just updated.
Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
---------
Signed-off-by: Paul Schuetz <pa.schuetz@web.de>