2025-05-11

Norgolith

Started really migrating a legacy zola based blog.

Migrated two major blog posts into norg by hand. While doing this, I implemented:

  1. @details tag to handle details

  2. carryover attributes for lists/blockquotes (hacky, but it is working for now)

  3. hash id for anchor tags (hash Vec<NorgInline> object from rust parser and put that u64 id in AST as :hash field)

Also, I found that heading link target is pretty critical to fully migrating. Buuuut I need a rust parser to rust to implement it. I have to parse text after * prefix.

I also need foonotes.

Both are link to an element feature. Heading link is a link to an element that is query-able. Footnote link is a link without actually confirming the existance of target element.

scoped links

But I should consider link to another note for first case. Therefore, all target-able elements should expose their UIDs.

  1. query element from link scope (optionally change the document on app-link), get queried element's UID

  2. when exporting, HTML exporter might try to create a readable ID for both link and target elements. (This might fail when linking to multiple scopes, so it should be configurable)

{ * heading : ** heading }

This means first, walk through AST until "* heading" is found and continue this until the end of scopes So it basically means ** heading physically placed under * heading. This allows us to query heading under quotes.

Hmmm

Do we want this? because it won't guarantee * heading to be upper level than ** heading. For example, think about:

> * heading
** heading

footnotes

also, I need to implement custom metadata field for norgolith so that it can hide the footnotes.

I really need to rewrite rust types for abstract objects...

neorg-language-server

fixed some minor bugs