{"id":13558374,"url":"https://github.com/xvxx/deadwiki","last_synced_at":"2025-04-03T13:31:04.952Z","repository":{"id":45141665,"uuid":"262850517","full_name":"xvxx/deadwiki","owner":"xvxx","description":"☠️ dead simple personal wiki","archived":true,"fork":false,"pushed_at":"2022-01-05T18:41:29.000Z","size":1166,"stargazers_count":61,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T09:48:00.582Z","etag":null,"topics":["cli","markdown","vial","web","wiki"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xvxx.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-10T18:30:24.000Z","updated_at":"2025-02-22T19:39:11.000Z","dependencies_parsed_at":"2022-09-13T08:31:51.772Z","dependency_job_id":null,"html_url":"https://github.com/xvxx/deadwiki","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xvxx%2Fdeadwiki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xvxx%2Fdeadwiki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xvxx%2Fdeadwiki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xvxx%2Fdeadwiki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xvxx","download_url":"https://codeload.github.com/xvxx/deadwiki/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247009544,"owners_count":20868566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","markdown","vial","web","wiki"],"created_at":"2024-08-01T12:04:55.110Z","updated_at":"2025-04-03T13:31:04.427Z","avatar_url":"https://github.com/xvxx.png","language":"Rust","funding_links":[],"categories":["Rust","cli"],"sub_categories":[],"readme":"\u003cimg src=\"/assets/img/rip.gif\" alt=\"R.I.P.\" height=\"200\" align=\"left\"\u003e\n\n# RIP deadwiki\n\nA fun project that I used almost constantly in 2020, deadwiki was an \nexperiment in organizing information,\n[developing a web library](https://github.com/xvxx/vial),\nand creating a [weird web language](https://github.com/xvxx/hatter).\n\nIt is now abandoned and archived. Thanks for all the PRs!\n\n---\n\n# deadwiki\n\n**deadwiki** is a Markdown-powered wiki that uses your filesystem as\nits db. This means you can keep your wiki in a git repository and edit\ncontent with your text editor, or read and modify pages `with style`\nusing its 1990s-era web interface.\n\n---\n\nThere are two built-in ways to access your deadwiki:\n\n- Run the local webserver and use the (minimal) HTML UI.\n- Just use your filesystem. Regular Markdown files. `cat`, `ls`, etc.\n\n## ~ status ~\n\nUnder construction!\n\n_The git `master` may be broken, so make sure you install from\ncrates.io (see below)._\n\nI use it every day, and I like combining it with other small tools. I\nkeep a Markdown TODO list in `~/.todo` that I manage on the command\nline with a `todo` program, and I have a little scratch pad in\n`~/.scratch` that I add links to in a shell using an `s` program,\nlike:\n\n    $ s https://git.coolstuff.com/some/repo\n\nWith deadwiki, I symlinked both of those files into my `~/.deadwiki`\ndir and can browse them using a fancy, 1990s-era HTML interface.\n\n## ~ installation ~\n\nOkay, so how do you get started? You just need `grep`, which you\nprobably already have, and [cargo], which is usually pretty easy to\ninstall.\n\nOnce you've got both of them you can install it with:\n\n    cargo install deadwiki\n\nThat'll give you a handy dandy `dead` CLI tool, if everything is setup\nand `~/.cargo/bin` is in your `$PATH`. You should now be able to run\n`dead -h` to see the possibilities.\n\n## ~ getting started ~\n\nTo begin, create an empty directory or find one already populated with\n`.md` files. This is your deadwiki. Simply point the CLI utility at it\nto get going:\n\n    $ dead my-wiki-dir/\n    -\u003e deadwiki serving my-wiki-dir/ at http://0.0.0.0:8000\n\nNow visit http://0.0.0.0:8000/ in your browser!\n\nBy default the main page will list all your wiki pages, but if\n`index.md` exists in your wiki it'll show that wiki page instead.\n\nYou can edit wiki pages locally with something like `vim`, or by using\nthe web UI. Edits show up on the next page load, as do new pages -\nthere is no database and no fancy pantsy caching. Just you, your\nfilesystem, and a dream.\n\nIn addition to [CommonMark], Markdown files can link to each other by\nputting the `[Page Name]` in brackets. Like most wikis, it'll either\nbe a link to the actual page or a link to create it.\n\ndeadwiki also includes support for `#hashtags`. Any hashtag appearing\nin wiki text will be linked to a search page that lists all wiki pages\ncontaining that hashtag.\n\nFinally, if you want to sync your wiki automatically, there is some\n_very basic_ git support. Basically, if you start the `dead`\nprogram with the `-s` or `--sync` flag and point it at an existing git\nrepository, it'll do this every 30 seconds or so:\n\n    git add .\n    git commit -am update\n    git pull origin master\n    git push origin master\n\nLike I said, super basic! But it works, and it's nice that it syncs\nchanges you make even outside of the web UI.\n\n## ~ keyboard shortcuts ~\n\nThere are two modes: browsing and editing. Editing is powered by\n[SimpleMDE] and includes all its default shortcuts (shown below), plus\na few deadwiki-specific shortcuts.\n\nBrowsing mode includes a few keyboard shortcuts to make navigation\nquicker and more nimble.\n\n### Browse Mode\n\n| **Shortcut**   | **Notes**                    |\n| -------------- | ---------------------------- |\n| `Double Click` | Enter edit or create mode    |\n| `Ctrl-h`       | Go to the home page          |\n| `Ctrl-j`       | Jump to page (fuzzy finder)  |\n| `Ctrl-n`       | Go to the \"new\" page         |\n| `Ctrl-e`       | Open editor for current page |\n| `i`            | Insert mode: Edit or New     |\n\n### Edit Mode\n\n| **Shortcut**  | **Notes**                |\n| ------------- | ------------------------ |\n| `ESC`         | Exits edit mode          |\n| `Ctrl Enter`  | Submits your edits       |\n| `Cmd Enter`   | Same                     |\n| `Cmd-'`       | Toggle Blockquote        |\n| `Cmd-B`       | Toggle Bold              |\n| `Cmd-E`       | Clean Block              |\n| `Cmd-H`       | Toggle Heading (Smaller) |\n| `Cmd-I`       | Toggle Italic            |\n| `Cmd-K`       | Draw Link                |\n| `Cmd-L`       | Toggle Unordered List    |\n| `Cmd-P`       | Toggle Preview           |\n| `Cmd-Alt-C`   | Toggle Code Block        |\n| `Cmd-Alt-I`   | Draw Image               |\n| `Cmd-Alt-L`   | Toggle Ordered LIST      |\n| `Shift-Cmd-H` | Toggle Heading (Bigger)  |\n| `F9`          | Toggle Side-By-Side      |\n| `F11`         | Toggle Fullscreen        |\n\n## ~ hacking ~\n\nThe code is in pretty rough shape right now, as this is mostly a\nprototype-in-progress. But you can hack on it pretty easily with\n[cargo]:\n\n    $ git clone https://github.com/xvxx/deadwiki\n    $ cd deadwiki\n    $ cargo run wiki/\n\nThere's a basic wiki included that shows off some features.\n\n## ~ future features ~\n\n- `--read-only` mode, so i can have a copy i can view anywhere\n- mobile-friendly CSS\n- search (probably just `grep`)\n- `--gopher`: serve wiki pages over gopher too (probably using [phd])\n- `*.css` in wiki dir gets included\n- homebrew package, AUR package\n- `brew services` for running on osx, `systemd` for arch\n- basic TUI for creating new pages or opening wiki pages in `$EDITOR`.\n\n## ~ philosophy ~\n\n- no database\n- text editor/plain text friendly\n- prefer server-side rendering\n- take your data with you (scm friendly)\n- lean on standard UNIX commands (find, grep)\n- js only for user input (keyboard shortcuts, markdown editor, finder)\n- no js frameworks/helpers\n- build time matters (28 crates currently, ~6s release ~4s debug)\n\n## ~ screenies ~\n\n| ![screenie1](/assets/img/screenie1.jpeg) | ![screenie1](/assets/img/screenie2.jpeg) |\n| :--------------------------------------: | :--------------------------------------: |\n|        Rendering Markdown. `Wow.`        |       Editing Markdown. `Amazing.`       |\n\n## ~ bug reports ~\n\nPlease direct all known and unknown (suspected) bugs to this URL:\n\n- https://github.com/xvxx/deadwiki/issues/new\n\n## ~ credits ~\n\nAll SVG icons are Feather icons: https://feathericons.com/\n\ndeadwiki's source is licensed under the [MIT License].\n\n[cargo]: https://rustup.rs\n[simplemde]: https://simplemde.com/\n[keys]: https://github.com/sparksuite/simplemde-markdown-editor#keyboard-shortcuts\n[commonmark]: https://commonmark.org/\n[phd]: https://github.com/xvxx/phd\n[mit license]: https://opensource.org/licenses/MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxvxx%2Fdeadwiki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxvxx%2Fdeadwiki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxvxx%2Fdeadwiki/lists"}