diff --git a/bun.lockb b/bun.lockb
index ee88013..7f58294 100644
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/components/title.tsx b/components/title.tsx
index 6629473..21ac638 100644
--- a/components/title.tsx
+++ b/components/title.tsx
@@ -28,7 +28,7 @@ function Title() {
let currRoot: SiteSubPages = SiteMap.subpages;
let title: string | null = null;
if (pagePath !== '/') {
- const subPaths = pagePath.split('/');
+ const subPaths = pagePath.split('?')[0].split('#')[0].split('/');
for (const p of subPaths.slice(1, subPaths.length)) {
splitPath.push({ name: currRoot[p].title, path: p });
diff --git a/notes/browsers.md b/notes/browsers.md
index 9f829f4..8c5d987 100644
--- a/notes/browsers.md
+++ b/notes/browsers.md
@@ -21,7 +21,7 @@ Product/Service-specific Extensions:
- [Firefox Source Docs](https://firefox-source-docs.mozilla.org/)
### Reducing UI element padding
-- Go to [about:config](about:config)
+- Go to the browser's [about\:config](#) page
- Set `browser.uidensity` equal to `1`
## Safari
diff --git a/notes/lua.md b/notes/lua.md
new file mode 100644
index 0000000..092c7ee
--- /dev/null
+++ b/notes/lua.md
@@ -0,0 +1,68 @@
+# Lua Programming Language
+
+## Lua 5.4 C API
+
+
+## Lua 5.4 Bytecode
+
+> [!note]
+> These are **unstable** and may differ in different versions of the language.
+> They are not part of the language specification but an implementation detail, which in this case is the reference implementation.
+
+> [!note]
+> The reference implementation used to have a stack based but now uses a register based VM similar to how modern real computer architectures.
+
+The instructions are 32 bits wide; every instruction has an opcode that takes up 7 bits, which leaves out 25 bits for the addresses and values.
+
+The instructions work with three register referred to as: A, B, C; each are of length 8 bits.
+
+
+
+
+
+
31
...
24
23
...
16
15
14
...
7
6
...
0
+
+
+
+
iABC
+
C (8 bits)
+
B (8 bits)
+
k (1 bit)
+
A (8 bits)
+
OP (7 bits)
+
+
+
iABx
+
B (17 bits)
+
A (8 bits)
+
OP (7 bits)
+
+
+
iAsBx
+
signed B 17 bits)
+
A (8 bits)
+
OP (7 bits)
+
+
+
iAx
+
Ax (25 bits)
+
OP (7 bits)
+
+
+
sJ
+
signed jump address (25 bits)
+
OP (7 bits)
+
+
+
+```lua
+-- arithmetic to calculate the lengths used from https://www.lua.org/source/5.4/lopcodes.h.html
+A = 8
+B = 8
+C = 8
+Bx = A + B + 1 -- 17
+Ax = A + Bx -- 25
+sJ = A + Bx -- 25
+```
+This page contains excerpts from Lua's source code which is the copyright of Lua.org, PUC-Rio and is licensed under the MIT License.
+[lua.org/license.html](https://www.lua.org/license.html)
diff --git a/notes/os.md b/notes/os.md
new file mode 100644
index 0000000..3b8b842
--- /dev/null
+++ b/notes/os.md
@@ -0,0 +1,40 @@
+# Operating Systems
+## Windows
+
+### Package Managers
+
+- Chocolatey
+ - requires Administrator permissions
+- Winget
+ - comes with Windows
+ - (it doesn't work half of the time for me)
+
+### Mounting ISO, CUE images
+
+Windows versions 8 and above natively support mounting ISOs. However CUE images are not supported.
+WinCDEmu is a lightweight, open-source disc emulator that supports mounting CUE, NRG, IMG, ISO, etc. images.
+- [WinCDEmu Website](https://wincdemu.sysprogs.org/)
+- [Source (GitHub)](https://github.com/sysprogs/WinCDEmu)
+- [Portable Version](https://wincdemu.sysprogs.org/portable/)
+
+### Master Control Panel / God Mode
+(Misnomer; you probably won't use this either)
+
+Shows a list of all the available settings on Windows in a single view.
+
+Open it by exceuting the following command or saving it as a shortcut: `explorer.exe shell:::{ED7BA470-8E54-465E-825C-99712043E01C}`
+
+## MacOS
+
+### Package Manager
+
+- [HomeBrew](https://brew.sh)
+ - package manager everyone uses but it is noticeably slow
+
+### Video Players
+
+- IINA
+ - video player based on mpv with native macOS UI
+- mpv
+ - mpv doesn't have a brew cask for Apple silicon; stolen-mpv exists but it is x86 only
+ - mpv brew formula is the cli tool which works pretty well but it is not as nice as packaged applications
diff --git a/package.json b/package.json
index 672afed..fa74c03 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,9 @@
"react-markdown": "^9.0.0",
"react-syntax-highlighter": "^15.5.0",
"rehype-raw": "^7.0.0",
+ "remark-directive": "^3.0.0",
"remark-gfm": "^4.0.0",
+ "remark-github-admonitions-to-directives": "^2.0.0",
"uri-js": "^4.4.1"
},
"devDependencies": {
diff --git a/pages/notes/[note].tsx b/pages/notes/[note].tsx
index 4144019..9bd9c9c 100644
--- a/pages/notes/[note].tsx
+++ b/pages/notes/[note].tsx
@@ -1,10 +1,12 @@
-import Layout from '../../components/layout';
import ReactMarkdown from 'react-markdown';
import SyntaxHighlighter from 'react-syntax-highlighter';
import { monokaiSublime as hlTheme } from 'react-syntax-highlighter/dist/cjs/styles/hljs';
import remarkGfm from 'remark-gfm';
import rehypeRaw from 'rehype-raw';
+import remarkDirective from 'remark-directive';
+import remarkGithubAdmonitionsToDirectives from 'remark-github-admonitions-to-directives';
+import Layout from '../../components/layout';
import readMarkdown from '../../lib/read-markdown';
import NotesInfo from '../../public/notes.json';
@@ -19,7 +21,7 @@ interface Notes {
function Markdown({ content }: any) {
return
{traverseMap(info, path, depth + 1)}
>);
elements.push(<>
- <>
{info.title}
-
{path}
+
paulw.xyz{path}
{children}
- >
>);
}
return elements;
diff --git a/public/notes.json b/public/notes.json
index 7b1e287..c8139f9 100644
--- a/public/notes.json
+++ b/public/notes.json
@@ -1 +1 @@
-{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:38:33.757Z"},"browsers":{"title":"Web Browsers","mtime":"2024-04-20T19:48:29.981Z"}}
\ No newline at end of file
+{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:59:46.944Z"},"os":{"title":"Operating Systems","mtime":"2024-05-10T16:07:32.581Z"},"lua":{"title":"Lua Programming Language","mtime":"2024-09-13T08:45:18.515Z"},"browsers":{"title":"Web Browsers","mtime":"2024-09-13T08:47:57.942Z"}}
\ No newline at end of file
diff --git a/public/sitemap.json b/public/sitemap.json
index 4158c72..8e025c4 100644
--- a/public/sitemap.json
+++ b/public/sitemap.json
@@ -1 +1 @@
-{"title":"PaulW.XYZ","subpages":{"posts":{"title":"Posts","subpages":{}},"notes":{"title":"Notes","subpages":{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:38:33.757Z"},"browsers":{"title":"Web Browsers","mtime":"2024-04-20T19:48:29.981Z"}}},"about":{"title":"About"},"sitemap":{"title":"Site Map"}}}
\ No newline at end of file
+{"title":"PaulW.XYZ","subpages":{"posts":{"title":"Posts","subpages":{}},"notes":{"title":"Notes","subpages":{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:59:46.944Z"},"os":{"title":"Operating Systems","mtime":"2024-05-10T16:07:32.581Z"},"lua":{"title":"Lua Programming Language","mtime":"2024-09-13T08:45:18.515Z"},"browsers":{"title":"Web Browsers","mtime":"2024-09-13T08:47:57.942Z"}}},"about":{"title":"About"},"sitemap":{"title":"Site Map"}}}
\ No newline at end of file