Show HN: Simple org-mode web adapter

GitHub – SpaceTurth/Org-Web-Adapter: A simple view into your org roam notes with editing, backlinks, and rendered math. Skip to content You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert SpaceTurth / Org-Web-Adapter Public Notifications You must be signed in to change notification settings Fork 1 Star 6 A simple view into your org roam notes with editing, backlinks, and rendered math. License AGPL-3.0 license 6 stars 1 fork Branches Tags Activity Star Notifications You must be signed in to change notification settings SpaceTurth/Org-Web-Adapter master Branches Tags Go to file Code Open more actions menu Folders and files Name Name Last commit message Last commit date Latest commit History 7 Commits 7 Commits media media notes notes static static templates templates .gitignore .gitignore LICENSE LICENSE README.md README.md config.yaml config.yaml main.py main.py makefile makefile View all files Repository files navigation Org Web Adapter A lightweight local web app for browsing and editing Org files. The app is implemented as a single Python server ( main.py ) plus one HTML template ( templates/index.html ) and one stylesheet ( static/style.css ). It scans a notes directory for .org files and renders a 3-pane UI. ⚠️ There is no authentication or encryption, only run this service on trusted networks. ⚠️ Screenshots Desktop Mobile Instructions Symlink your notes directory to notes . Edit the bind address and port in config.yaml if desired. python3 main.py . How’s it work? main.py starts an HTTP server. On each page request ( GET / ), it rescans the notes directory for .org files. It resolves links/backlinks and builds HTML fragments. It injects those fragments into templates/index.html placeholders: {{NAV_ITEMS}} {{MAIN_CONTENT}} {{BACKLINKS}} Browser JS in templates/index.html handles client-side interactions (search, shuffle, sorting, jump-to-current, theme toggle). Server-side components ( main.py ) File discovery and parsing: scan_org_files(…) recursively finds .org files. Extracts title from #+TITLE: and ID from :ID: . Org link/backlink handling: resolve_link_target(…) supports file:… and id:… links. find_backlinks(…) computes notes linking to the selected note. build_backlink_counts(…) computes backlink totals for sorting. Rendering: render_org_to_html(…) converts headings ( * , ** , …) and paragraphs to simple HTML. render_line_with_links(…) converts org links in text to clickable app links where resolvable. truncate_label(…) caps sidebar labels to 32 chars with … . Editing: POST /edit updates a selected .org file and redirects back with status flags. Static files: serve_static(…) serves files under static/ with path traversal protection. Frontend components templates/index.html : Base layout markup. Sidebar controls. Small JS contr

Source: Hacker News | Original Link