Scribe – An alternative front-end to Medium(scribe.rip)
scribe.rip
Scribe – An alternative front-end to Medium
https://scribe.rip/
45 comments
I quickly whipped up a bookmarklet to view any Medium article in scribe.rip for anyone interested:
Seems to work even for the subdomain link example below:
https://kgizdov.medium.com/the-efficiency-of-microsoft-e50ea...
Output:
https://scribe.rip/the-efficiency-of-microsoft-e50ea81f69f5
https://kgizdov.medium.com/the-efficiency-of-microsoft-e50ea...
Output:
https://scribe.rip/the-efficiency-of-microsoft-e50ea81f69f5
I _believe_ you can do one simpler (assuming the reader only clicks the link if they recognize it's a medium post)
javascript:q=location.pathname;location.href="https://scribe.rip"+q;while we're golfing
javascript:location.href="https://scribe.rip"+location.pathname;Golf you say?
javascript:l=location;l.href="//scribe.rip"+l.pathname;Thanks, I ended up using yours. But I might change that if someone shortens it even more /s
javascript:l=location;l.href="//scribe.rip"+(l.hostname.includes("medium.com")?l.pathname:"");
is a happy medium (no pun intended) & I'll give it a go in my bookmark toolbarIf you have an iOS device, I whipped up a quick and dirty Siri Shortcut:
https://www.icloud.com/shortcuts/d6782bdf84f94612a197ef410ec...
Once installed, you can long tap on any medium link, select share, then pick Scribe 4 Medium from your quick actions.
The link opens in Safari.
Edit: if you use it on medium links within the app, Scribe adds a link.scribe subdomain which throws a SSL warning and creates a broken link. Could be due to the ?source=link in the medium app url. I’m trying to clean it out. Not sure if that’s an intended functionality from scribe tho
Edit 2: nope it’s medium cloaked links. Will fix it later :)
Once installed, you can long tap on any medium link, select share, then pick Scribe 4 Medium from your quick actions.
The link opens in Safari.
Edit: if you use it on medium links within the app, Scribe adds a link.scribe subdomain which throws a SSL warning and creates a broken link. Could be due to the ?source=link in the medium app url. I’m trying to clean it out. Not sure if that’s an intended functionality from scribe tho
Edit 2: nope it’s medium cloaked links. Will fix it later :)
It would be great if there was a way to configure the browser to automatically process a particular domain through such a shortcut automatically (without needing to go through the share screen.
Historical note: In 1980-81, Brian Reid invented the Scribe markup language and processor, basically a predecessor to HTML and Markdown; a successor to RUNOFF; and simpler than Knuth's then-recent TeX. Scribe led to Reid's getting the ACM's Grace Murray Hopper award. I used The Final Word's version of Scribe and Emacs to produce camera-ready copy for my first book.
https://en.wikipedia.org/wiki/Scribe_(markup_language)
https://en.wikipedia.org/wiki/Scribe_(markup_language)
In fact, the syntax of LaTeX (not TeX)—the idea of environments etc—is heavily based on Scribe: Leslie Lamport, who was a Scribe user, basically reimplemented parts of Scribe in TeX macros; the result was LaTeX. You can see the resemblance between Scribe's syntax:
> I don’t think TeX and LaTeX would have become popular had they not been free. Indeed, I think most users would have been happier with Scribe. Had Scribe been free and had it continued to be supported, I suspect it would have won out over TeX. On the other hand, I think it would have been supplanted more quickly by Word than TeX has been.
(I'm not sure he's right; I think TeX/LaTeX benefited from both Knuth's concern for typographical excellence and Lamport's concern for authors' convenience, and the "book-quality printing" of TeX would have always had a place, but hard to say what would have happened.)
[Edit: Changed "superficial syntax"; I just meant syntax as opposed to implementation details.]
@Heading(The Beginning)
@Begin(Quotation)
Let's start at the very beginning, a very good place to start
@End(Quotation)
and LaTeX's. Lamport mentions Scribe a few times in this interview: https://tug.org/TUGboat/tb22-1-2/tb70lamp.pdf> I don’t think TeX and LaTeX would have become popular had they not been free. Indeed, I think most users would have been happier with Scribe. Had Scribe been free and had it continued to be supported, I suspect it would have won out over TeX. On the other hand, I think it would have been supplanted more quickly by Word than TeX has been.
(I'm not sure he's right; I think TeX/LaTeX benefited from both Knuth's concern for typographical excellence and Lamport's concern for authors' convenience, and the "book-quality printing" of TeX would have always had a place, but hard to say what would have happened.)
[Edit: Changed "superficial syntax"; I just meant syntax as opposed to implementation details.]
> the superficial syntax of LaTeX (not TeX) is heavily based on Scribe
Interesting — I hadn't previously connected those dots; it's been years since I used Scribe and only recently did I start using LaTeX (mostly with org-mode as a front end, delving into LaTeX only as needed).
Thanks for the link to the Lamport interview, which was illuminating.
Interesting — I hadn't previously connected those dots; it's been years since I used Scribe and only recently did I start using LaTeX (mostly with org-mode as a front end, delving into LaTeX only as needed).
Thanks for the link to the Lamport interview, which was illuminating.
There is also the browser extension Make Medium Readable Again[1], one thing that I like about it is that it removes Medium's lazy loading[2]
[1] https://makemediumreadable.com/
[2] if you have a fast connection you may have no idea why it's bad, try to load an image-heavy Medium article on a slow connection and you will see what I mean (indistinguishable blobs of colour for about 30 seconds, then finally full res images, with no in-between).
[1] https://makemediumreadable.com/
[2] if you have a fast connection you may have no idea why it's bad, try to load an image-heavy Medium article on a slow connection and you will see what I mean (indistinguishable blobs of colour for about 30 seconds, then finally full res images, with no in-between).
This extension was working for some times but then Medium made some changes and it stopped working. Or is it working again?
I have to confess that I haven't tried it recently, I was still reading regularly a few Medium blogs back when I had it installed. That's no longer the case so I no longer use it.
An alternative for all text-heavy websites: https://archive.is/ debloats, that is archives a markup-only webpage free of javascript, dealing admirably well even with SPAs.
My only gripe with archive.is is that their archived pages don't support Firefox Reader Mode, even if the original page would have. It's great for breaking paywalls, though.
Is this going to let me read articles that are locked behind a subscription?
Yes. More about that here: https://news.ycombinator.com/item?id=28839112
This could use a bit of explanation for why someone would want to use this. I take it medium is bloated or something?
There are quite a few chrome extensions that just fix the referer on medium, and work just fine. You can also trivially use your own version, as well as limit them to only medium.com.
(Or use one of the more generic referer rewriters)
(Or use one of the more generic referer rewriters)
Any ideas how that could work for other domains in the medium platform?
Padding is a little big on mobile for my taste, maybe you could look into it? Especially on smaller phones every horizontal pixel matters for a great reading experience.
Great project otherwise!
Great project otherwise!
after ad blocking, since many websites are API driven, alternative frontends are another user movement? I saw the PR for scribe.rip to be added to https://github.com/SimonBrazell/privacy-redirect - a Browser extension redirecting twitter, instagram etc. I welcome this development.
If someone uses a medium.com subdomain converting it is a little more work.
For example, this link from the current HN homepage before and after:
https://kgizdov.medium.com/the-efficiency-of-microsoft-e50ea...
https://scribe.rip/@kgizdov/the-efficiency-of-microsoft-e50e...
For example, this link from the current HN homepage before and after:
https://kgizdov.medium.com/the-efficiency-of-microsoft-e50ea...
https://scribe.rip/@kgizdov/the-efficiency-of-microsoft-e50e...
Actually, you don't even need to do this! Scribe only cares about the last few hex digits in the URL's path: the post id. So you can leave off the subdomain and https://scribe.rip/the-efficiency-of-microsoft-e50ea81f69f5 will work just as well.
Sadly, Scribe can't recursively recognize & replace sub-links to Medium, see this[0] table of contents.
[0] https://scribe.rip/orienteering-mapping-with-lidar-smartphon...
[0] https://scribe.rip/orienteering-mapping-with-lidar-smartphon...
Yup, this is on my todo list. Thanks for the example post I can use as a reference!
I wish there were simple Docker deployment instructions so I could self-host an instance.
This project seems like pure static files replacing medium frontend. No need for a docker deployment.
It's a Crystal [1] app built with the Lucky Framework [2]. The source code is here [3] and there are a few instructions in the README for deploying, but not much yet.
[1] https://crystal-lang.org
[2] https://luckyframework.org
[3] https://git.sr.ht/~edwardloveall/scribe
[1] https://crystal-lang.org
[2] https://luckyframework.org
[3] https://git.sr.ht/~edwardloveall/scribe
Any particular reason to use this language? Invidious uses this as well and it's been a major pain to contribute compared to a more mainstream language like Python, Ruby, PHP or Javascript.
I'm a ruby dev so as @bogwog mentioned, Crystal is appealing in it's similarly. I like being in a typed language, and it's _fast_. I'm running this on a very low powered server and it's holding up great.
Also, while I'm really glad it seems to have resonated with so many people, a huge part of this project was the learning I got from it. Getting better at Crystal's type system and the Lucky framework, discovering and using the monads library, learning how to deploy crystal, etc. I hear you on Invidious being difficult to contribute to. I've felt the same way. My difficulties have stemmed, not from crystal, but from the custom libraries that invidious needs. I effectively can't run it locally without Docker. Scribe should work fine locally.
Every language and framework has its tradeoffs. Rails would certainly have been the safer choice, but I also don't expect this to have massive contributions, so I went for the thing I was more interested in. Maybe that was a wrong choice, who knows!
So TL;DR I like crystal and wanted more experience with it. It felt like the right tradeoff for this project, this time.
Also, while I'm really glad it seems to have resonated with so many people, a huge part of this project was the learning I got from it. Getting better at Crystal's type system and the Lucky framework, discovering and using the monads library, learning how to deploy crystal, etc. I hear you on Invidious being difficult to contribute to. I've felt the same way. My difficulties have stemmed, not from crystal, but from the custom libraries that invidious needs. I effectively can't run it locally without Docker. Scribe should work fine locally.
Every language and framework has its tradeoffs. Rails would certainly have been the safer choice, but I also don't expect this to have massive contributions, so I went for the thing I was more interested in. Maybe that was a wrong choice, who knows!
So TL;DR I like crystal and wanted more experience with it. It felt like the right tradeoff for this project, this time.
The neat 3D spinning crystal on the landing page probably has a non-zero impact on adoption.
I don't see what else could be a big draw for it. Maybe it's appealing for Ruby devs, since it has a similar syntax? I've never used Ruby, but it probably makes more sense if you compare them.
I don't see what else could be a big draw for it. Maybe it's appealing for Ruby devs, since it has a similar syntax? I've never used Ruby, but it probably makes more sense if you compare them.
is it javascript and/or tracking free?
It is. I use JS to generate the statically loaded CSS, and there's some JS built into the Lucky Framework which is loaded, but not used.
You can check out the source code here if you like: https://git.sr.ht/~edwardloveall/scribe
You can check out the source code here if you like: https://git.sr.ht/~edwardloveall/scribe
awesome :)
Does it allow me to bypass the paywall (which I can already using private browsing mode but an extra thing)? If yes, I'm sold!
I don’t think so, but there’s https://burles.co/en for this
It does. The API I’m using just... doesn’t check. I’m not even sure how I’d support the pay wall.