The BiDi quest continues.
I now have the ability to wrap an entire paragraph in one go while also having FriBidi tell me the directions.
My initial attempt is going badly. Wrapping the entire paragraph in visual order means that the first wrapped line covers the end of the paragraph.
Back to the drawing board… Seems like wrapping needs to be done in logical order and only the drawing in visual order.
It's a bit of a challenge to call FriBidi at the right time. I'll need to refactor the document layout somewhat so the text renderer has visibility to the full paragraph and can process it in one go. At the moment it's more of a line-based operation, which makes it more challenging to apply alignment (and justification).
Looks like FriBidi is doing its thing!
(i.e., applying the Unicode Bidirectional Algorithm)
Still need to optimize the text handling a bit to avoid repeated processing of static strings, e.g., UI labels. Text selection is also a bit wonky over RTL runs...
HarfBuzz & FriBidi mean a big step forward in supporting complex scripts. The final big issue remaining is expanding the collection of available fonts.
After a while it became evident that trying to write my own text shaping engine would be a monumental project of its own. And since HarfBuzz already exists, quite a waste a time...
So I've gradually been integrating HarfBuzz into Lagrange's text renderer. There are still a few issues with the current set of fonts not containing all combining glyphs.
Next step: FriBidi for dealing with RTL scripts.
Call for smolZINE Contributions
Would like to get some cool gemini capsule recommendations, short essays, poetry, or whatever you feel like contributing to the smolZINE. I can fill out each issue on my own but having more diverse perspectives will make it more interesting for everyone I think. If you're interested contact me ( smolzine [at] cyberbot.space ).
Boosts appreciated.
There is a new #Lagrange iOS TestFlight build with significant improvements: swipe navigation, opening files, and MP3 audio control. Many of the internal changes will be coming to the desktop in v1.6 as usual.
Gemlog post & change log:
gemini://skyjake.fi/gemlog/2021-06_testflight.gmi
https://gmi.skyjake.fi/gemlog/2021-06_testflight.gmi
#Lagrange v1.5.2 is available:
https://github.com/skyjake/lagrange/releases/v1.5.2
This patch contains various small tweaks:
- fixed importing certs via Ctrl/Cmd+V
- workaround for decomposited Unicode characters
- StartupWMClass in .desktop file
- recognize a couple new custom link icons
- more Smol Emoji
Apple is working towards iCloud Keychain backed public-key-based credentials to replace passwords.
Sounds good! #Gemini client certs demonstrate that crypto-based user authentication is a great solution. Having a secure store for the keys/certs is essential, though.
Hi all! Thank you for your patience, as always. The Summer 2021 tape is now out! gemini://konpeito.media
#gemini #geminiprotocol #KONPEITO #lofi #mixtape
Resource update for #Lagrange v1.5:
https://github.com/skyjake/lagrange/releases/tag/v1.5.1
This patch has updated UI translations and a couple of new Smol Emoji glyphs.
That Eagle is a wee bit too detailed to be "smol" but it looks pretty cool. It's based on Apple's Emoji so not an original design... ☺️
🦆 My new font project now has a Git repository: https://codeberg.org/skyjake/smol-emoji
The test page shows that a quarter of Emojis are currently missing in Lagrange: gemini://skyjake.fi/smol-emoji/emoji-test.gmi
#Lagrange v1.5 is now available with several UI improvements.
https://gmi.skyjake.fi/gemlog/2021-05_lagrange-1.5.gmi
gemini://skyjake.fi/gemlog/2021-05_lagrange-1.5.gmi
- improved identity management
- multi-line text input
- query response length indicator
- animated sidebars and dialogs
- custom fallback font
- Gempub navigation
This 5 line #awk program prints #gemini documents with syntax highlighting and numbered links.
https://git.sr.ht/~chambln/gmi/tree/ba42a734/item/contrib/gemtext.awk
Ok, inspired by @jk and his Lagrange project, I finished hacking together my small but functional #Gemini server in #crystal _^ It's very basic right now, but it's a start! No CGI or anything yet, so it just serves static files, and will attempt to detect mime types as it does. I'll expand it to be more feature-full soon.
Graphics/UX/UI researcher at Nokia. On my free time I write code for fun. 💻
Currently focusing on the Lagrange Gemini client. I started working on Doomsday Engine in 1999 and somehow that project is still ongoing, too.
PGP public key fingerprint: 1567 4AE4 9866 7047 A3EB 9431 BACC FCFB 98DB 2EDC