index page - awarm.space

TODOS for fancynote

There's lots to do!

Language

Auto Lists

Currently, I have to wrap lists in a top level node like this:

    [list
        [1. Item 1]
        [2. Item 2]]
     

I'd much rather prefer to write:

    [1. Item 1]
    [2. Item 1]
 

Link to subnodes

Linking to specific places in adocument, and having those links persist even if the document is rearranged, is really useful!

The challenge is making sure that subnodes keep a unique identityt even as they're potentially refactored. So you can't refer to them by position. This is handled in other places by

Read files

I want to be able to read directories of fancynote files from within fancynote. This is mainly useful for dynamically constructred index pages, but eventually could be used for things like generating a todos page.

Output

Backlinks

Backlinks (the list of pages that link back to a particular page) are extremely useful both for writing and reading.

Source view

It would be useful to be able to easily toggle between a view of the source code and the outputted html. The easiest way to achieve this would be linking to the file in gitlab/source but it would be cleaner to implement it in site.

Now that I have the pretty printer based on the AST this might be a lot simpler to do.

Output Markdown

Given the amount of services that speak markdown it would make it much more viable to use fancynote on a daily basis if it could be compiled to markdown. In it's current state that's definitely viable, but it may not be for more complicated structures.

Search files

Currently I have to have indexes to work with everything. What if instead I just implemented some kind of search?

Backend

Allow pages to query other pages

I have no idea how to implement this, but I'd like to have some way to write queries for other pages. For example a page could have a "blurb" node, and I want to pull from it when linking. Etc. I'm not sure yet if this should be implemented purely on the backend or should be usuable on the "front".

This would also be useful for:

Executable nodes

This also contributes to backlinks, especially in the editor experience. I want to be able to have sections of a document that are replaced by the results of executing code, and updated not by the writer but by the fancynote program.

Tooling

Dev Server

An always watching fancynote devserver to generate html, give you errors, and update your files when neccesary.

Validate links

This is part of a bigger validation feature but it's explcitly really useful to check whether links, internal or external, point to real things.

Error Messages

Right now there are a couple error messages for things like completely empty links, or no terminals for parentheses or backticks. However, I don't expect them to be useful at all in their current form as they don't give any line or context information.

Doing errors right is going to take a good amount of work getting the parser and lexer to such a state that they maintain context. It's also an issue given that we use the same parens for goddamn everything. It might be worth it to implement different parens just so there are boundaries.

Fuzzy

Terminology for things

What are the things that go inside parentheses? What are the first things in them? How do we talk about the step in which things get turned into html?