scribe/CHANGELOG

172 lines
2.8 KiB
Plaintext
Raw Normal View History

2023-05-06 19:18:13 +02:00
2023-05-06
* Upgrade to Lucky framework 1.0.0
* Upgrade to Crystal version 1.8.1
* If embedded media has a caption, it will now be displayed
2023-03-25
* Headings now have an ID so readers can link to a part if an article
* If a URL contains `global-identity-2`, Scribe will now correctly parse the article ID.
2022-11-06
* Fix viewing articles if the URL has a trailing slash
* Update to nodejs 16.18.0
2022-11-04 23:25:14 +01:00
2022-10-30
* Update to nodejs 16.18.0
2022-10-30
* Fix viewing articles if the URL has a trailing slash
2022-11-04 23:25:14 +01:00
2022-10-11
* Don't clip gist contents (CSS fix)
2022-09-24
* Replace Redirector extension with LibRedirect
2022-09-24 21:59:37 +02:00
* Remove downloadable Redirector config
2022-07-19
* Fix downloadable config file for Redirector extension
2022-07-17
* Fix source code link
* Upgrade to Lucky 0.30.1
2022-07-17 18:02:01 +02:00
* Upgrade to Crystal 1.5.0
* Add scrollbar to long code blocks
* Add a downloadable config file for Redirector extension
2022-05-21
* Show error page for missing posts
2022-05-21
* Remove the need for a fake DATABASE_URL
2022-04-05 02:41:00 +02:00
2022-04-04
* Fix gist files with file extensions
2022-03-12
* Fix redirection pattern
2022-02-13
* Better article ID parsing
* Link to full Medium URL on error page
* Fix article ID parsing bug
2022-02-12
* Error page matches Scribe styles
* New error page for not being able to parse article URL
Fix markup errors caused by UTF-16/8 differences Medium uses UTF-16 character offsets (likely to make it easier to parse in JavaScript) but Crystal uses UTF-8. Converting strings to UTF-16 to do offset calculation then back to UFT-8 fixes some markup bugs. --- Medium calculates markup offsets using UTF-16 encoding. Some characters like Emoji are count as multiple bytes which affects those offsets. For example in UTF-16 💸 is worth two bytes, but Crystal strings only count it as one. This is a problem for markup generation because it can offset the markup and even cause out-of-range errors. Take the following example: 💸💸! Imagine that `!` was bold but the emoji isn't. For Crystal, this starts at char index 2, end at char index 3. Medium's markup will say markup goes from character 4 to 5. In a 3 character string like this, trying to access character range 4...5 is an error because 5 is already out of bounds. My theory is that this is meant to be compatible with JavaScript's string length calculations, as Medium is primarily a platform built for the web: ```js "a".length // 1 "💸".length // 2 "👩‍❤️‍💋‍👩".length // 11 ``` To get these same numbers in Crystal strings must be converted to UTF-16: ```crystal "a".to_utf16.size # 1 "💸".to_utf16.size # 2 "👩‍❤️‍💋‍👩".to_utf16.size # 11 ``` The MarkupConverter now converts text into UFT-16 byte arrays on initialization. Once it's figured out the range of bytes needed for each piece of markup, it converts it back into UTF-8 strings.
2022-01-30 17:47:08 +01:00
2022-01-30
* Fix bug in markup generation for text with multiple codepoints
2022-01-29
* Provide list of instances as JSON file
2022-01-23
2022-01-23 21:06:01 +01:00
* Proxy GitHub gists with rate limiting
* Add CHANGELOG
2022-01-16
2022-01-23 21:06:01 +01:00
* Add scribe.bus-hit.me instance
2022-01-15
2022-01-23 21:06:01 +01:00
* Add instructions for Lucky config variables
* Ensure that scr/version is up-to-date when building
2022-01-08
2022-01-23 21:06:01 +01:00
* Use FAQ entry to explain custom domains
2022-01-04
2022-01-23 21:06:01 +01:00
* Improve Redirector extension instructions
* Home page instructions for custom domains
* Add visible version
2021-12-16
* update crystal version in Dockerfile
2021-12-12
* Upgrade Crystal to 1.2.1 and Lucky to 0.29.0
2021-12-04
* Add FAQ on how to use Scribe with custom domains
2021-11-20
* Add citizen4.eu instance
* Update readme
2021-11-11
* Add instance docs
2021-11-07
* Add project goals to README
2021-11-06
* Support null image widths and heights
2021-10-23
* Add FAQ
2021-10-20
* Add SECTION_CAPTION paragraph type
* Support null text on paragraphs
2021-10-16
* Parsing Fix: Add H2 Paragraph type
* Add Dockerfile
* Point source link at sr.ht project page
2021-10-15
* Further improve proposed pattern for Redirector
* Add support for development with Nix
2021-10-14
* Use app_domain in Redirector example
* Add mailing list for patches to README
2021-10-12
* Improve proposed pattern for Redirector extension
2021-10-11
* README updates
* Support medium's redirectUrl query param
* Homepage Example
2021-10-03
* Initial release