index page - awarm.space

Goals

  1. Add proper error messages
  2. Implement a filter/query function in javascript
  3. start defining html outputs in fancynote itself

Errors

This is I think, the most important task for this weekend. If I have good error message infrastructure it lets me experiment with a lot more down the line and trust I'm going to get good feedback while I experiment.

Plan of attack

This is currently a little difficult as I don't have a clear space where errors could pop up...

We have the parser which basically only has one error, which is input did not terminate. The issue here is it's basically impossible to know where that error orginated from, as it's all square parens.

So, errors are more important on the language level, when we translate to HTML.

HTML in Fancynote

This is nice as it let's me more easily change the html outputted by markup and easily define new things! However, it does require a lot of infrastructure.

Namely, I need to add functions for extracting export blocks out of a fancynote document.

These export blocks then need to define a mapping between atoms and their html output.

What I actually did

So, I wasn't ready to do any of this. Instead I spent some time cleaning up the code base, simplifying the parser and lexer a wee bit, and laying down the groundwork for a repl.

I also added a little "dev server" that watches files and reloads them. Not much use right now, but we shall see!

Extras

A basic dev server that parses pages on demand

This isn't really all that useful yet, but I want it to evolve into a server for doing more interesting things, like outputting errors on file change, etc.

Frustrations

I'd like pages in the browser to reload when there are changes to their source file. This would require either using websockets to push events, or polling for updatespages. Either way, complicates things more than I want to right now!

Also, it would be great if the server would hot reload the javascript code it's using as well. This would let me quicker iterate on the "compiler" itself.