45 comments

[ 3.8 ms ] story [ 128 ms ] thread
I quickly whipped up a bookmarklet to view any Medium article in scribe.rip for anyone interested:

    javascript:location.hostname.includes("medium.com")?location.assign("https://scribe.rip"+location.pathname+location.search+location.hash):location.assign("https://scribe.rip");
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 toolbar
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

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.
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'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.

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.
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).

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.
This could use a bit of explanation for why someone would want to use this. I take it medium is bloated or something?
I’m more bothered with the login wall.
I'm more bothered by the fact that Medium is a content farm whose offerings are neither rare nor well-done.
opening in incognito also works!
If 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 :)

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.
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!
It does. The API I’m using just... doesn’t check. I’m not even sure how I’d support the pay wall.
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...

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.
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)

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:

    @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.

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)

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!

Any ideas how that could work for other domains in the medium platform?
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.