Neopolitan: Roadmap And Ideas
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