GithubHelp home page GithubHelp logo

org-wiki's Introduction

Org wiki

This is a simple project to host an org-powered wiki locally. Just point the package to the root of your directory and it will take care of the rest. It uses emacs as the rendering backend so the HTML files are rendered just the way you configured them to.

./screenshot.png

Features

  • Orgmode files are automatically rendered to html using Emacs
  • URLs ending in a folder name are automatically routed to display index.org
  • You can open the currently viewed file in emacs using C-x C-f in the browser
  • Source code snippets are rendered using Emacs and as such are colored exactly as they would be in your editor.

Installation

Right now, Org wiki isn’t yet available through a package archive, so you’ll have to install it manually. A Makefile is provided to make this as easy as possible. First, you have to make the package:

git clone https://github.com/jiri/org-wiki
cd org-wiki
make package

This will create a file called org-wiki-0.2.tar in the source directory. Now you just need to install it through package.el using M-x package-install-file RET and providing path to the tar file.

Usage

I’m aiming to make the package as simple as possible. All you have to do to get a wiki up and running is starting it. Unless you provide a port as a second argument, port 8000 will be used. Note that any one root directory can only be served on one port.

(org-wiki/start "~/org/wiki")
(org-wiki/start "~/org/wiki2" 8080)

You can stop an already running wiki by providing either the path to the root directory or the port the wiki is running on.

(org-wiki/stop "~/org/wiki")
(org-wiki/stop 8080)

Features to implement before v1.0

  • [X] Edit using `/path?edit` instead of `/edit/path`
  • [X] Support multiple Org-wiki instances
  • [X] Guard start / stop functions against multiple calls
  • [X] Make relative links in Org files work
  • [-] Better CSS support
    • [X] Generate highlighting CSS dynamically
    • [ ] Add an option to use static CSS
    • [ ] Let users supply their own CSS files
  • [ ] Add docstrings to all functions and variables
  • [X] Improve routing
  • [ ] Render a directory tree for navigation
  • [ ] Complete CSS styles for Org HTML exports
  • [X] Package Org-wiki
  • [X] Make start-wiki / stop-wiki interactive
  • [ ] Add a license file
  • [ ] Distribute Org-wiki through MELPA / Marmalade
  • [ ] Improve the 404 page
    • [ ] Easy creation of new pages in-browse
  • [ ] Make a screenshot for README.org

Features to implement in the future

  • [ ] Let users configure keyboard shortcuts

Improve the API

Right now, the setup is reusable, but the API could be better. Ideally, all you’d need to do to is use a macro / alist to define a wiki setup and run it with an independent handler.

(make-wiki :root "~/Org/wiki"
           :custom-css "~/Org/wiki/style.css")

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.