Welcome to my blog. It's actually very poorly coded. This is all being loaded from a note I created on my markdown note taking and publishing website. The plus side is that I only have to edit this note and my blog get's updated automatically, thanks to the public linking system I made.
Todays date is
I just did a complete redesign of my main website, most of the links actually point here because it's much easier to update and I always have preferred a simple design.
So you know when websites want you to upload a photo of your driver's license or something? But then you have to take the picture on your phone, email it to yourself, and then upload it? Well this aims to be a solution for that. It's not fully complete, and right now images are uploaded to ImgBB (which isn't very secure), but I'm gonna change that soon.
I just added some syntax to embed GitHub Gists in your notes (\{\{ gist|user/url \}\}
) and I want to let users embed github gists, jupyter notebooks, and repls in repl.email, but currently i dont allow scripts so I'm not sure how i'll do that.
For the zero people that read this blog, rafi has been working on a new design for repl.email. Check it out!
The Zen of Python is one of python's great easter eggs. But also a meaningful message that helps me to understand how python is, how it should be, and how to write it better. It is a set of guidelines to live by.
I just added pasting images to repl.email! Go check it out! Images are uploaded to i.marcusj.tech and embedded via their URL.
I hate quoted printables.
Why are they even a thing? Look what I had to do just to get the HTML of an email properly:
body = quopri.decodestring(message.get_payload()).strip().decode(errors="ignore")
At least I finally figured it out, though.
I realised all messages were being sent as HTML so that's a new fix, also I've added the option to toggle viewing HTML/Text which is good cause sometimes stuff doesn't render well. I now need to work on replying to emails because that's becoming a bother. I think I might change to the imaplib
library but it's a lot more complicated to get emails. I might just add it in alongside imapclient
.
Multipart emails should also work better now, but still only text/html is rendered client-side. But other parts should also get sent to the client, just not displayed yet.
I've started work on https://paste.marcusj.tech - which I'll hopefully integrate to allow users to create password-protected emails. And I also want to integrate https://i.marcusj.tech at some point.
Well, I fixed a bunch of bugs, so I might not need Rafi's help after all but I'll probably work on the design with him in the future and revamp it. I might move the entire client to a seperate repl so people can fork it and make their own changes. Plus, most of the interaction between client and server is done though an API, anyway.
So, at the time of writing this, the base functionality is done. You can send, recieve, and delete emails. I thought about creating a post on repl talk to announce this, but I think I'll rather add some more features and stuff before I do, in the hopes that people will like it and continue to use it. I think the next thing I'm going to work on is a proper markdown editor.
Oh, I forgot to add, but I put in functionality to forward emails. Once I check that's working I'll have to get around to adding a settings page where users can chose an address to forward emails to.
Well, I decided I wanted to host my own email service. And the domain repl.email
wasn't taken so I figured let's do it. I have no actual mailserver, though, and nowhere to host one. So I'm doing it without. If you want to read more about that whole fiasco, click here.
It's going pretty well so far, the actual email service itself works fine. It's just the web app that's sucky. I'm horrible and HTML and CSS and whatnot, as I've said a million times. I'm gonna try get my friend rafi to help with that, though, cause he's sick at that sort of stuff.
I have big aspirations for this project. As of now, you can only login through repl.it, and I think I'm gonna keep it that way. I also want to try integrate it with repl.it as much as possible. I'm gonna add a way to embed repls, share code, tag people (kinda), and more. I also want to add some sort of markdown editor (kind of like this) in. You can already write emails in markdown, there's just no preview. Viewing emails kinda works, but not really. Sending them works perfectly. I might add a way to attatch files, probably not, but I'll make it simple to add images via my image hosting service.
Repl auth has now been added! I have some security concerns due to the fact that it appears it's just confirmed through headers, but I'm not sure how cross-site headers work so I guess we'll find out. Also for some reason the auth card appears on the left of the screen, whereas I need it in the center so it looks sexy.
Here's a demo:
I recently discovered a new JavaScript library that lets you do some pretty cool stuff. It has no dependencies, is only 2 KB, and is under the MIT License, so you can essentially do what you want with it. And man, it is easy as fuck to use. All you have to do is define a couple commands like so:
var commands = {
'hello': () => { alert('Hello, world!') },
'ask (me) my *thing': (thing) => { prompt("What is your " + thing + "?") },
'search (for) *query': (q) => { window.location.href = "https://google.com/search?q=" + q },
}
And that's all it takes. Simply import the script, load the commands, and start annyang. And boom. Voice assistant. So I made a post on repl talk, and I'm looking forward to seeing what people do with it. I know I definitely am gonna try making a cool voice assistant.
Yes it's still the same date. So what if this is the fourth post I've made today? I'm testing new features. After a slight hiccup with localStorage
and openNote
I am proud to announce that you can now edit multiple notes in a single session, and then when you click save it will update them all. Very cool, Kanye. Autosave
is also back! Yayyyy.
A couple people have reported issues with creating links, and I'm seeing some errors in the console about a trailing /
or something. But I have no clue why it's happening or how to fix it.
If anyone has experience with Google Firebase/Firestore and has any suggestions, send me an email at marcusjw.ftw@gmail.com.
Live Javascript is pretty cool. I need some more ideas for expressions. And a better name for them. By expressions, I mean doing stuff like {{
date}}
. Right now I have four. date
, time
, js
, and counter
. The last one is pretty neat but it has limited use. I think maybe embedding simple forms would be neat since Markdown doesn't have a way to do that. I wish there was a simple way to extend the Markdown Syntax. Maybe I'll look at python-markdown2
(what I'm using for /link/*
because I know that has extras.
I think I might start working on creating entire websites inside this note-taking system. Just think it would be a cool concept. Now I'm gonna try something neat.
This is an example of a first post. My goal is to allow users to enclose JavaScript inside two pairs of braces. What this should do is render the result of said JavaScript in between them.