From 2a9659b9c1427d80daebe33a8bfba152b21fbeb3 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Thu, 11 Jun 2020 23:04:56 -0400 Subject: [PATCH] updated pages and wiki script --- awiki.rb | 123 ++++++++++++++---- config/page.html.erb | 56 ++++---- pages/20200609230839.md | 29 +++++ pages/20200610144534.md | 13 ++ pages/notes/c_style.md | 2 + pages/notes/erlang.md | 2 + pages/notes/forth.md | 2 + pages/notes/game_prog.md | 4 + pages/notes/index.md | 6 +- pages/notes/linux.md | 7 + pages/notes/lua.md | 2 + pages/notes/misc/cube_alogrithms.md | 2 + pages/notes/misc/fpga_dev.md | 4 +- pages/notes/misc/open_source.md | 4 + pages/notes/misc/zettelkasten.md | 8 +- pages/notes/oberon07.md | 2 + pages/notes/ocaml.md | 2 + pages/notes/proglangs.md | 4 + pages/notes/random.md | 2 + pages/notes/recipes.md | 7 - pages/{ => notes}/recipes/banana_pancakes.md | 2 + pages/notes/recipes/index.md | 8 ++ pages/{ => notes}/recipes/pancakes.md | 2 + pages/{ => notes}/recipes/teriyaki_sauce.md | 2 + pages/{ => notes}/recipes/zucchini_cookies.md | 2 + .../recipes/zucchini_cookies_with_oats.md | 4 +- pages/notes/scheme.md | 2 + pages/notes/sclpl.md | 2 + pages/notes/webdev.md | 4 + pages/notes/zam.md | 2 + pages/projs/archived/index.md | 2 + pages/projs/index.md | 2 +- 32 files changed, 250 insertions(+), 65 deletions(-) create mode 100644 pages/20200609230839.md create mode 100644 pages/20200610144534.md create mode 100644 pages/notes/linux.md delete mode 100644 pages/notes/recipes.md rename pages/{ => notes}/recipes/banana_pancakes.md (92%) create mode 100644 pages/notes/recipes/index.md rename pages/{ => notes}/recipes/pancakes.md (91%) rename pages/{ => notes}/recipes/teriyaki_sauce.md (96%) rename pages/{ => notes}/recipes/zucchini_cookies.md (98%) rename pages/{ => notes}/recipes/zucchini_cookies_with_oats.md (92%) create mode 100644 pages/notes/webdev.md diff --git a/awiki.rb b/awiki.rb index 70d3df1..b15015f 100755 --- a/awiki.rb +++ b/awiki.rb @@ -1,15 +1,17 @@ #!/usr/bin/env ruby require 'open3' require 'fileutils' -require 'webrick' require 'redcarpet' +require 'erb' # TODO: +# * Implement search functionality on sitemap +# * break javascript out to separate files +# * Add id linking with title and custom text +# * Add searchable, filterable z-index +# * Add tagging and tag filtering for search # * Add page attachment mechanism # * Add save shortcut -# * Add a create method -# * Add a delete method -# * Add a move/rename method # * Add git revisioning for pages SITE_TITLE = "Michael D. Lowis" @@ -25,12 +27,67 @@ EDIT_SCRIPT = <<-eos (() => { const keys = { "e": () => { window.location = window.location + "?edit=true"; }, - "s": () => { window.location = "/sitemap.html"; } + "i": () => { window.location = "/sitemap.html"; }, + "n": () => { window.location = "/new"; } }; - document.onkeydown = (ev) => (!!keys[ev.key] ? (keys[ev.key])(ev) : true); + document.onkeyup = (ev) => (!!keys[ev.key] ? (keys[ev.key])(ev) : true); })(); eos +SEARCH_SCRIPT = <<-eos + +eos def html_path(src) src.sub(/\.([^.]*)$/, '.html').sub(/^#{PAGES_DIR}/, HTML_DIR) @@ -40,6 +97,10 @@ def page_path(path) (PAGES_DIR + path).sub(/^\/html\//,'').sub(/\.html$/, ".md") end +def web_path(path) + "/" + path.sub(/^(#{PAGES_DIR}|#{HTML_DIR})/, '').sub(/\.md$/,'.html') +end + class Page def initialize(src) @markdown = (File.exist?(src) ? File.read(src) : "") @@ -48,6 +109,10 @@ class Page @page_path = src.gsub(%r{/+},'/') @gendate = Time.now.to_s @page_title = (@markdown.match(/#\s*(.*)$/) || [])[1] + $db[:pages][@page_path] ||= {} + $db[:pages][@page_path][:path] = @page_path + $db[:pages][@page_path][:title] = @page_title + $db[:pages][@page_path][:tags] = [] end def generate_graph(graph) @@ -60,7 +125,7 @@ class Page "

"+data.sub(/<\?[^?]*\?>/,'')+"

" end - def parse_graphs + def parse_extras graph = nil text = [] @markdown.split("\n").each do |ln| @@ -72,7 +137,14 @@ class Page graph = nil elsif graph graph << ln + elsif ln =~ /^@tags(.*)$/ then + $db[:pages][@page_path][:tags] += ($1 || "").split else + ln.scan(/[a-zA-Z_][a-zA-Z0-9_]*/).map{|w| w.downcase }.each do |w| + $db[:words][w] ||= ($db[:nextw] += 1) + $db[:pages][@page_path][:words] ||= {} + $db[:pages][@page_path][:words][$db[:words][w]] = 1 + end text << ln end end @@ -81,7 +153,7 @@ class Page def view() if not @article - @markdown = parse_graphs() + @markdown = parse_extras() @article = $markdown.render(@markdown) end ERB.new(File.read(VIEW_TEMPLATE)).result(binding) @@ -103,16 +175,16 @@ def genallpages() end def gensitemap() - links = [] - Dir.glob("#{PAGES_DIR}/**/*.md").each do |f| - path = f.sub(/\.([^.]*)$/, '.html').sub(/^#{PAGES_DIR}/, "") - title = (File.read(f).match(/#\s*(.*)$/) || [])[1] || path - links << { path: path, title: title } - end File.open("#{PAGES_DIR}/sitemap.md", "w") do |f| f.puts "" f.puts "# Sitemap\n\n" - links.sort_by{|h| h[:title] }.each {|l| f.puts "[#{l[:title]}](#{l[:path]})
" } + f.puts "\n\n

\n\n" + f.puts "" + f.puts "\n\n

#{SEARCH_SCRIPT}

" end end @@ -129,14 +201,15 @@ def genpage(path, src, force=false) end gensitemap() html = html.sub("", - "[edit]") + "[new]" + + "[edit]") html.sub("", EDIT_SCRIPT) end def do_post(req, res, path) page_path = page_path(path) FileUtils.mkdir_p(File.dirname(page_path)) - markup = req.query["markup"].gsub("\r\n","\n").gsub(/</,"<").gsub(/>/,">") + markup = req.query["markup"].gsub(//,"\n").gsub("\r\n","\n").gsub(/</,"<").gsub(/>/,">") File.open(page_path, "wb") {|f| f.write(markup) } res.status = 302 res["Location"] = req.path @@ -149,8 +222,12 @@ def do_edit(req, resp, path, src) end def do_get(req, res, path) - if path.end_with?(".html") + if path == "/new" + res.status = 302 + res["Location"] = "/#{Time.now.strftime("%Y%m%d%k%M%S")}.html" if path == "/new" + elsif path.end_with?(".html") page_path = page_path(path) + puts path if (req.query["edit"] == "true") || (not File.exist?(page_path)) do_edit(req, res, path, page_path) else @@ -166,6 +243,7 @@ end #------------------------------------------------------------------------------- +$db = { pages: {}, words: {}, nextw: 0 } $plantuml_in, $plantuml_out, _ = Open3.popen2(PLANTUML_CMD) $markdown = Redcarpet::Markdown.new( @@ -187,6 +265,7 @@ $markdown = Redcarpet::Markdown.new( genallpages() if ARGV.length > 0 then + require 'webrick' $server = WEBrick::HTTPServer.new( :Port => SERVER_PORT, :SSLEnable => false, @@ -196,6 +275,7 @@ if ARGV.length > 0 then $server.mount_proc '/' do |req, res| rqtype = req.request_method + puts req.path path = (req.path.end_with?("/") ? req.path + "index.html" : req.path) if rqtype == "GET" do_get(req, res, path) @@ -204,9 +284,8 @@ if ARGV.length > 0 then end end - trap 'INT' do - $server.shutdown - # genallpages() - end + trap 'INT' do $server.shutdown end $server.start end + +#pp $db \ No newline at end of file diff --git a/config/page.html.erb b/config/page.html.erb index e7f638c..7f20915 100644 --- a/config/page.html.erb +++ b/config/page.html.erb @@ -21,7 +21,7 @@ } h1, h2, h3, h4, h5, h6 { - margin: 1.5em 0em 0rem 0em; + margin: 1.5em 0em 0em 0em; font-weight: 100; } h1 { font-size: 2.00em; } @@ -73,56 +73,50 @@ padding: 0.5em 1em 0.5em 1em; } - .headerLink, .navLink { + header a { color: #222222; text-decoration: none; - } - - .headerLink { font-size: 1.5rem; margin-left: 1rem; + flex-grow: 1; } - .navLink { - font-size: 1rem; - margin-right: 1rem; - } - - .box { - width: 100%; + nav, header { display: flex; flex-wrap: wrap; } - .grow { flex-grow: 1; } - .shrink { flex-shrink: 1; } + + nav a { + font-size: 1rem; + margin: 0 1rem 0 0; + flex-shrink: 1; + } - + + -
+
+
<%= @article %>
- + diff --git a/pages/20200609230839.md b/pages/20200609230839.md new file mode 100644 index 0000000..2b49c9c --- /dev/null +++ b/pages/20200609230839.md @@ -0,0 +1,29 @@ +@tags todo + +# Todo List + +## Now +### Release Plugin +* Fix links on release report +* Fix up variant handling approach +* Add support for reports generated by the assembly build + +### Miscellaneous +* Build for Andrew (FCA TT) +* Build for Ryan (AR0233) +* release plugin +* review feedback +* broken builds + +## Soon +* Allen's review write-up +* Get a dongle and DiVa setup for Randy + +## Later +* Asciidoc documentation for CVP +* Update SerDes confluence page + +## Follow-Up +* Corporate Gen 2 Backlight issue on startup +* AR0233 Development (Will) + diff --git a/pages/20200610144534.md b/pages/20200610144534.md new file mode 100644 index 0000000..bfa7243 --- /dev/null +++ b/pages/20200610144534.md @@ -0,0 +1,13 @@ +@tags data-structures trees tries associative-array + +# Trie +A type of tree structure designed for mapping a set of keys to associated values. Each level of the tree is indexed by a character in the key to determine the next node to look at. The bitwise variant of this structure uses the bits of an integer value to index into the structure and retrieve the corresponding data. + +## Further Reading +* [Trie](https://en.wikipedia.org/wiki/Trie) +* [Radix Tree](https://en.wikipedia.org/wiki/Radix_tree) +* [Hash Array Mapped Trie](https://en.wikipedia.org/wiki/Hash_array_mapped_trie) +* https://www.techiedelight.com/trie-implementation-insert-search-delete/ +* http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/Text/trie01.html +* https://github.com/panosalbanis/bitwise-trie/blob/master/trie.c +* http://www.cs.yale.edu/homes/aspnes/pinewiki/RadixSearch.html diff --git a/pages/notes/c_style.md b/pages/notes/c_style.md index f769c5e..950c360 100644 --- a/pages/notes/c_style.md +++ b/pages/notes/c_style.md @@ -1,3 +1,5 @@ +@tags c programming style-guide + # C Programming Guidelines This is a suggested set of guidelines to follow when writing C code. It is based on my own experience as well as the influential "The Power of 10: Rules for Developing Safety-Critical Code". diff --git a/pages/notes/erlang.md b/pages/notes/erlang.md index 6340989..731d70e 100644 --- a/pages/notes/erlang.md +++ b/pages/notes/erlang.md @@ -1,3 +1,5 @@ +@tags erlang language programming + # Erlang **Type System:** Dynamically typed
**Memory Management:** Garbage Collected (Automatic)
diff --git a/pages/notes/forth.md b/pages/notes/forth.md index 560ce8d..ec508ae 100644 --- a/pages/notes/forth.md +++ b/pages/notes/forth.md @@ -1,3 +1,5 @@ +@tags forth language programming + # Forth **Type System:** None
**Memory Management:** Manual
diff --git a/pages/notes/game_prog.md b/pages/notes/game_prog.md index 4d22711..82d29e3 100644 --- a/pages/notes/game_prog.md +++ b/pages/notes/game_prog.md @@ -1,2 +1,6 @@ +@tags game-dev programming + # Game Programming * https://github.com/a1studmuffin/SpaceshipGenerator +* https://github.com/eduard-permyakov/permafrost-engine + diff --git a/pages/notes/index.md b/pages/notes/index.md index e006ea0..f1dd01a 100644 --- a/pages/notes/index.md +++ b/pages/notes/index.md @@ -1,3 +1,5 @@ +@tags note-index + # Notes This section of the site is constructed as an informal wiki (using [awiki](https://git.mdlowis.com/?p=projs/awiki.git;a=summary)). As such, it is a chaotic mess of notes, musings, and useful links. Enter at your own risk... @@ -5,6 +7,8 @@ This section of the site is constructed as an informal wiki (using [awiki](https * [Programming Languages](proglangs.html) * [C Programming Rules](c_style.html) * [Game Programming](game_prog.html) +* [Linux Programming](linux.html) +* [Web Development](webdev.html) ## Writing * [Article Ideas](article_ideas.html) @@ -12,7 +16,7 @@ This section of the site is constructed as an informal wiki (using [awiki](https ## Miscellaneous * [Cube Algorithms](misc/cube_alogrithms.html) -* [Recipes](recipes.html) +* [Recipes](recipes/) * [FPGA Development](misc/fpga_dev.html) * [Open Source Programs](misc/open_source.html) * [Zettelkasten](misc/zettelkasten.html) diff --git a/pages/notes/linux.md b/pages/notes/linux.md new file mode 100644 index 0000000..b3ae6b1 --- /dev/null +++ b/pages/notes/linux.md @@ -0,0 +1,7 @@ +@tags linux programming + +# Linux Programming +* [Writing to the framebuffer](http://seenaburns.com/2018/04/04/writing-to-the-framebuffer/) +* https://news.ycombinator.com/item?id=23391380 +* https://github.com/oasislinux/oasis +* https://nixos.org/learn.html diff --git a/pages/notes/lua.md b/pages/notes/lua.md index 637fcef..cbdc5c5 100644 --- a/pages/notes/lua.md +++ b/pages/notes/lua.md @@ -1,3 +1,5 @@ +@tags lua programming language + # Lua ## References https://www.lua.org/doc/jucs05.pdf diff --git a/pages/notes/misc/cube_alogrithms.md b/pages/notes/misc/cube_alogrithms.md index 8b189c7..5523180 100644 --- a/pages/notes/misc/cube_alogrithms.md +++ b/pages/notes/misc/cube_alogrithms.md @@ -1,3 +1,5 @@ +@tags rubix rubix-cube cube-algorithms + # Cube Algorithms ## Orient Corners diff --git a/pages/notes/misc/fpga_dev.md b/pages/notes/misc/fpga_dev.md index 6990d9e..c6dd54a 100644 --- a/pages/notes/misc/fpga_dev.md +++ b/pages/notes/misc/fpga_dev.md @@ -1,5 +1,7 @@ +@tags fpga + # FPGA Development ## Free Books * [Quick Start Guide to VHDL](https://link.springer.com/book/10.1007/978-3-030-04516-6) -* [Introduction to Logic Circuits & Logic Design with VHDL](https://link.springer.com/book/10.1007/978-3-030-12489-2) +* [Introduction to Logic Circuits & Logic Design with VHDL](https://link.springer.com/book/10.1007/978-3-030-12489-2) diff --git a/pages/notes/misc/open_source.md b/pages/notes/misc/open_source.md index 135d7e5..c4f058e 100644 --- a/pages/notes/misc/open_source.md +++ b/pages/notes/misc/open_source.md @@ -1,5 +1,9 @@ +@tags note-index open-source + # Open Source Programs * [Pick](https://github.com/mptre/pick) - Fuzzy picker, inspiration for the fuzzy picker in tide * [Nushell](https://www.nushell.sh/book/en/table_of_contents.html) - interesting new command shell with piping of data and metadata * [ES Shell](https://github.com/wryun/es-shell) - An extensible shell with higher order functions +* [oksh](https://github.com/ibara/oksh) - Portable OpenBSD ksh +* [choose](https://github.com/theryangeary/choose) - Alternative to cut or awk for picking fields out of a text stream. diff --git a/pages/notes/misc/zettelkasten.md b/pages/notes/misc/zettelkasten.md index b310b8c..5d951ee 100644 --- a/pages/notes/misc/zettelkasten.md +++ b/pages/notes/misc/zettelkasten.md @@ -1,6 +1,12 @@ +@tags zettelkasten + # Zettelkasten -An interesting approach to note taking that has similarities to a wiki. Should investigate making awiki support some of the ideas here: +An interesting approach to note taking that has similarities to a wiki. Originally implemented using numbered index cards. Cards can be cross referenced and can link to one another by id. Each card covers one topic in a manner such that the card can be read and is useful standalone (The cards are atomic). Each card has a defined home in the catalog (determined by ID) thus making it easy to perform cross referencing and find cards later. + +In digital form, each note is typically given a unique ID based on the date and time it was created. This ID is then used to link notes together and build topical trees. In addition, notes can be "tagged" to indicate related topics or otherwise categorize the note. These tags can then be used to find the notes later. + +Should investigate making awiki support some of the ideas here: * https://zettelkasten.de/tools/ * https://writingcooperative.com/zettelkasten-its-like-gtd-for-writing-and-here-s-why-you-should-consider-it-7dddf02be394 diff --git a/pages/notes/oberon07.md b/pages/notes/oberon07.md index 363928a..980ce35 100644 --- a/pages/notes/oberon07.md +++ b/pages/notes/oberon07.md @@ -1,3 +1,5 @@ +@tags oberon programming language + # Oberon 07 ## Declarations and scope rules diff --git a/pages/notes/ocaml.md b/pages/notes/ocaml.md index 1adda7f..e975077 100644 --- a/pages/notes/ocaml.md +++ b/pages/notes/ocaml.md @@ -1,3 +1,5 @@ +@tags ocaml programming language + # OCaml **Type System:** Strongly statically typed with type inference (Hindley-Milner)
**Memory Management:** Garbage Collected (Automatic)
diff --git a/pages/notes/proglangs.md b/pages/notes/proglangs.md index 4fe1601..f07c8f5 100644 --- a/pages/notes/proglangs.md +++ b/pages/notes/proglangs.md @@ -1,3 +1,5 @@ +@tags note-index programming + # Programming Languages ## Designs I'm Working On @@ -10,10 +12,12 @@ * [Oberon 07](oberon07.html) * [Forth](forth.html) * [Lua](lua.html) +* [Postfix](https://cs.wellesley.edu/~cs251/s05/postfix.pdf) ## Compiler Design * https://inf.ethz.ch/personal/wirth/CompilerConstruction/index.html * https://inf.ethz.ch/personal/wirth/ProjectOberon/index.html +* https://sr.ht/%7Emcf/cproc/ ## Runtime Design * [ZINC Abstract Machine](zam.html) diff --git a/pages/notes/random.md b/pages/notes/random.md index d8b2b4f..e7a61a1 100644 --- a/pages/notes/random.md +++ b/pages/notes/random.md @@ -1,3 +1,5 @@ +@tags note-index + # Random Thoughts https://untools.co/ - Tools for better thinking diff --git a/pages/notes/recipes.md b/pages/notes/recipes.md deleted file mode 100644 index 4c0ab9c..0000000 --- a/pages/notes/recipes.md +++ /dev/null @@ -1,7 +0,0 @@ -# Recipes - -* [Banana Brown Sugar Pancakes](recipes/banana_pancakes.html) -* [Plain Old Pancakes](recipes/pancakes.html) -* [Teriyaki Sauce](recipes/teriyaki_sauce.html) -* [Zucchini Cookies](recipes/zucchini_cookies.html) -* [Zucchini Cookies With Oats](recipes/zucchini_cookies_with_oats.html) diff --git a/pages/recipes/banana_pancakes.md b/pages/notes/recipes/banana_pancakes.md similarity index 92% rename from pages/recipes/banana_pancakes.md rename to pages/notes/recipes/banana_pancakes.md index 5c22db0..31c3143 100644 --- a/pages/recipes/banana_pancakes.md +++ b/pages/notes/recipes/banana_pancakes.md @@ -1,3 +1,5 @@ +@tags recipe pancakes + # Banana Brown Sugar Pancakes Makes 10 Pancakes diff --git a/pages/notes/recipes/index.md b/pages/notes/recipes/index.md new file mode 100644 index 0000000..3a9d1f4 --- /dev/null +++ b/pages/notes/recipes/index.md @@ -0,0 +1,8 @@ +@tags recipes note-index + +# Recipes +* [Banana Brown Sugar Pancakes](banana_pancakes.html) +* [Plain Old Pancakes](pancakes.html) +* [Teriyaki Sauce](teriyaki_sauce.html) +* [Zucchini Cookies](zucchini_cookies.html) +* [Zucchini Cookies With Oats](zucchini_cookies_with_oats.html) diff --git a/pages/recipes/pancakes.md b/pages/notes/recipes/pancakes.md similarity index 91% rename from pages/recipes/pancakes.md rename to pages/notes/recipes/pancakes.md index 5e8a847..0cc2ff3 100644 --- a/pages/recipes/pancakes.md +++ b/pages/notes/recipes/pancakes.md @@ -1,3 +1,5 @@ +@tags recipe pancakes + # Plain Old Pancakes ## Ingredients diff --git a/pages/recipes/teriyaki_sauce.md b/pages/notes/recipes/teriyaki_sauce.md similarity index 96% rename from pages/recipes/teriyaki_sauce.md rename to pages/notes/recipes/teriyaki_sauce.md index bcd2598..cc7f665 100644 --- a/pages/recipes/teriyaki_sauce.md +++ b/pages/notes/recipes/teriyaki_sauce.md @@ -1,3 +1,5 @@ +@tags recipe sauce + # Teriyaki Sauce ## Ingredients diff --git a/pages/recipes/zucchini_cookies.md b/pages/notes/recipes/zucchini_cookies.md similarity index 98% rename from pages/recipes/zucchini_cookies.md rename to pages/notes/recipes/zucchini_cookies.md index 51bec4f..c0825a6 100644 --- a/pages/recipes/zucchini_cookies.md +++ b/pages/notes/recipes/zucchini_cookies.md @@ -1,3 +1,5 @@ +@tags recipe cookies + # Zucchini Cookies Makes 96 cookies. Takes 45 minutes. diff --git a/pages/recipes/zucchini_cookies_with_oats.md b/pages/notes/recipes/zucchini_cookies_with_oats.md similarity index 92% rename from pages/recipes/zucchini_cookies_with_oats.md rename to pages/notes/recipes/zucchini_cookies_with_oats.md index 8b25c8c..8cd8a50 100644 --- a/pages/recipes/zucchini_cookies_with_oats.md +++ b/pages/notes/recipes/zucchini_cookies_with_oats.md @@ -1,3 +1,5 @@ +@tags recipe cookies + # Zucchini Cookies With Oats ## Ingredients @@ -16,7 +18,7 @@ ## Directions -1. preheat oven to 350° F. Lightly grease baking sheets. +1. preheat oven to 350 F. Lightly grease baking sheets. 2. combine flour, cinnamon and baking soda in small bowl. 3. Beat butter and sugar in large mixer bowl until well combined. 4. Add egg and vanilla extract, beat well. diff --git a/pages/notes/scheme.md b/pages/notes/scheme.md index bc8c799..967247a 100644 --- a/pages/notes/scheme.md +++ b/pages/notes/scheme.md @@ -1,3 +1,5 @@ +@tags scheme programming language + # Scheme **Type System:** Dynamically typed
**Memory Management:** Garbage Collected (Automatic)
diff --git a/pages/notes/sclpl.md b/pages/notes/sclpl.md index 0118e16..1615029 100644 --- a/pages/notes/sclpl.md +++ b/pages/notes/sclpl.md @@ -1,3 +1,5 @@ +@tags sclpl programming language language-design + # SCLPL Design Notes Language Requirements: diff --git a/pages/notes/webdev.md b/pages/notes/webdev.md new file mode 100644 index 0000000..d9b1c97 --- /dev/null +++ b/pages/notes/webdev.md @@ -0,0 +1,4 @@ +@tags web-dev programming + +# Web Development +* [Preview of links using an iframe](http://jsfiddle.net/yboss/q29tP/) diff --git a/pages/notes/zam.md b/pages/notes/zam.md index e3a793a..bcaf53d 100644 --- a/pages/notes/zam.md +++ b/pages/notes/zam.md @@ -1,3 +1,5 @@ +@tags vm language-design runtime + # ZINC Abstract Machine ## Registers diff --git a/pages/projs/archived/index.md b/pages/projs/archived/index.md index 5a6e6e4..6f9356c 100644 --- a/pages/projs/archived/index.md +++ b/pages/projs/archived/index.md @@ -1,3 +1,5 @@ +@tags archived + # Archived Projects No longer developed but still contain useful bits of code. diff --git a/pages/projs/index.md b/pages/projs/index.md index 6f0dca9..7db2f6c 100644 --- a/pages/projs/index.md +++ b/pages/projs/index.md @@ -1,4 +1,4 @@ -# Projects +# Project Organization I have a large number of side projects and ideas that I am exploring. In order to keep these things organized, I split these projects up into three distinct categories as defined below: * [Projects](projects/): Matured ideas that have moved past the proof of concept phase and may even be in active use. -- 2.51.0