Neopolitan: Roadmap And Ideas

March 2023

This is a collection of ideas for things to do with neopolitan. Some of them are bugs, some are ideas I definitely want to do and some and just things that popped into my head. The items are for the neopolitan format, the neopolign static site generator, and the tree-sitter parser.

Bugs

TODO

    Fix not being able to add a language or attributes under a -- code/ token

Things To Do

TODO

    Get RSS Working

    Add alt text via multiple "alt" lines that get collected into one

    Delete files from site when they are moved or removed from the gimoire

    Set up for easy renames and deletions

    Handle trailing (or leading) whitespace in nvim-treesitter-neopolitan

    Create a template to turns line numbers on/off in the -- code, -- html, and -- pre sections and containers

    Add search to the site

    Switch from .org to .neo

    Add attribute output for kbd and other tags

    Reenable copying all files from the content dir into the site dir automatically

    Add scriptsrc functionalty for loading external scripts

    Add cssscr functionality for loading external stylesheets

    Set up so neopoigin updates the home page links when new pages are added

    Add ability to source a lua code block directly into nvim

    Log pages that have errors and aren't built

    Let more than on -- script work on a page

    Make it so any unknwon inline tags turn into span instead of breaking the parsing. Capture styles if they are there. This is mainly to deal with misspellings of tag names

    Create a section for scripts to be automatically executed when a file is open (and optionally be updated later with a hotkey or whatever)

    Make a "coding mode" that switches the filetype to whatever code block your in and comments out everything that's not in the codeblock so that LSP style tools work

    Put JS files in the grimoire and have them output to a "/scripts" dir on the site. The idea being that they'll have the JS extension and you can use an LSP while working on them when doing more complicated stuff where the goal isn't to demonstrate the code but to add functionalty to pages on the site

    Setup so builder doesn't crash when pages are removed

    Generate redirect file when file names change

    Flush the content and _site dirs before each build to remove files that were deleted

    Adjust tree-sitter so spacing between sections doesn't matter

    Add a way to source lua code directly from a lua code block in a file (might not matter if just exporting the code block to a file that's already sourced picks up the updates)

    Add shorthand links with greater than signs

    Auto-format files for paragraph length like prettier

    Make a flag in the metadata to turn auto-formatting off

    Update binder to remove files that are changed or renamed from the grimoire in the search index

    Set up bookmark pages

    Add the carot footnote functionalty

    Add inline styles for em and strong

    Make executable code blocks

    Create category lists and links

    Create group lists and links

    Add global IDs for references and links that can be used repeatedly (gid:)

    Setup link tags to allow for IDs to be used somewhere else on the page for the URL (probably with id:the_id)

    Figure out how to next sections under list items

    Automatically add "index.neo" to paths if there's not a filename so they go to the right place automatically

    Figure out a way to handle web components (maybe the widget section) or maybe it should just be HTML

    Add an inline html feature (like link, span, setc..) for dropping HTML directly inside of content (maybe use three | characters for the start and end. (three instead of two because two pipes is an OR in code

    Figure out how to render html code blocks in a place other than where they are defined (the idea being to make it easier to show HTML then have some explination and then show the renderd output (or vice verse)

    Add default "Notes" and "Warning" titles to those sectios if no title is provided

    Add -- template: attributes to every section

    Implement calls to external processes

    Setup images to render with srcset

    Add open graph images and metadata

    Use cloudinary for images

    Provide a way to link to pages with only their page id

    Add the ability to style lists by adding something like PIPE_HEREclass: whateverPIPE_HERE before the lines

    Figure out a syntax for tables

    Add multiple checkboxes for todos and checklists so you can make different things for each item (e.g. [] [] [] whatever)

    Add the cite stuff to blockquote

    Automated link checker

    Maybe do include files

    Make an -- input section to correspond with the results so you can show a full process from start to finish

    See if tree-sitter can be setup so that if parsing fails at some point it doesn't try to do the rest of the file. The idea being that it would make it eaiser to find issues Though, it might blink a log which would be annoying. Maybe there's a toggle? or a way to highlight errors?

    Update -- code/ so you can add attributes

    Add default notes title to notes sections and todo and warnings

    Add prelude section

    Add an afterword section

    Get footnote basic id calls working with references

    Make an RSS feed

    Get checklists working

    Add dates to posts

    Migrate the "ideas" site into the main site

    Set up so that multiple code exports can be defiend in a single file

    Toggle visibility of code show/hide blocks and toggle if the lines break or scroll

    Add copy button for code blocks

    Do a full refresh of the dev site if stylesheets or scripts change

    Create browser extensions to make bookmark text you can paste in

    Get redirects working

    Make binder commit to repo on every save

    Add sorting of lists and todos via neovim

    Allow olist sections to use numbers as well as dashes

    Create nvim extension to updates numbers in olists if you move things around

    Setup an attribute for script tags that drops the code in DOMContentLoaded wrappers so you don't have to mess with that? and it would look nicer

    Prevent private notes from showing up in history file for grimoire search

    Move surftech.tv onto main site

    Setup content after close tldr to be a paragraphs section

    Sort posts chronoligically

    Filter the home page links to remove things like quotes and bookmarks to keep them from overwhelming the list

    Get monocrark working again

    Set up a way to collapse paragraphs in draft mode so you don't re-read them all the time when drafting

    Create a toggle to switch between dev and prod

    Add show/toggle to scripts html and css so you can view the source if you want. Maybe toggleon and toggleoff to set the initial state?

    Add feature in neovim to move checklist items up and down in checklist

    Add feature in neovim to move marked off check list items to the end of the checklist

    Get the binary clock running

    Move all the subdomains over to the main site

    Setup YouTube embed so you can set a start and end time

    Build an interface to SQLlite in a browser that then populates pages for things like tables

    Move mardkdowntable.com to site

    Setup individual built processes for individual pages for example it would have an input section, a code section, and a results section. The page would process the input with the script and pipe it to the output. Then the page would render with only that content (in some sort of wrapper, probably).

    Add caching to file builds so only files that change get updated (not at all necessary right now and probably won't be, but it would be cool to see the site build even faster)

    Add stats to todo lists (e.g. last updated # - 54 items total - 32 complete)

    Make a way to have code on a page that generates output for the page directly each time the site is generated

    Pre-flight processes that run before the site is generated to make includes or whatever

    Provide alt titles for links to pages

    Make a tool to auto convert text strings into big text

    Remove bookmarks and quotes from main list of links

    Set up export so ~/ works for the home directory

    Set up a way to add more text to exports like messages saying not to edit the files in a way that prevents it from showing up in the HTML output or having to be in the main code block

    Provide for sub categories with something like ("Neovim -> Neovim Configs") can be used to expand out maybe

    Undo back into git history if you reach the end of the neovim undo buffer

    Autocomplection in code blocks

    Finish all the nvim-treesitter-neopolitan sections and inline tags

    Ability to post to mastodon? Not sure that would work great with the way drafts go out and are udpated and tweaked. Could wait until it sees a published flag and then check to make sure it's not sent again (make sure not to send the entire site the first time thru)

    Output whatever the latest file to change was to "/last-edit/" so you can just keep that open and see whatever you last updated

    Prevent the last-edit file from showing up twice in the main index

    Add code block execution feature for nvim language that highlights as lua but then sources the contents when run so you can update neovim stuff with it from your notes

    Move to using just an ID

There are TODO lists in these places that need to be pulled into here so there's just the one list.

  • Neopolitan Sections
  • Inline Tags (phase 1 is done)
  • Shorthand Tags
  • Attributes
end of line