XikiProject

Last edit December 7, 2012
Summary

Xiki is short for "Executable Wiki". It has wiki syntaxes for executing things, like shell commands, code (in various languages), sql, and even general-purpose menus you can define. Xiki runs mostly as a text editor plugin.

Links

Xiki has wiki syntaxes for

  • Normal wiki elements like headings and bullets
  • Shell commands
  • Files and directories
  • File contents
  • Sql
  • url's (to open in the browser, or fetch and insert the contents)
  • Code (ruby, javascript, python, etc.)
  • Menus with nested items (just words indented by 2 spaces)

Examples

  > A heading

- A bullet point

$ ls -l

$ ls -l | -rw-r--r-- root wheel 2k May 22 2012 passwd | -rw-r--r-- root wheel 1k May 22 2012 group

$ my-other-shell-command | Results are inserted underneath when you | double-click (or type control-enter) on the command. | Then you can double-click again to collapse the output.

/tmp/

/tmp/my-other-diretory/ - my-file.txt

/tmp/my-other-diretory/ - my-file.txt | Contents of | the file.

/tmp/my-other-diretory/ $ ls | file-in-this-dir.txt | and-another.txt

select * from users

select * from users/ | id name description | 1 Sam Wears sunglasses | 2 Steve Edit rows and double-click to save back to the db

puts 1 + 2 # Double-click on this ruby code to run it

puts 1 + 2 # Double-click on this ruby code to run it 3

html/ | <h1>Double-click on one of these lines</h1> | <p>to show this html in the browser</p>

css/ | h1 { color: red; } | body { | font-family: arial; | font-size: 15px; | }

js/alert('hi') // Double-click to run this javascript in your browser

dom/ - body/ - h1/ | Explore and edit the DOM of the current | page in your browser - div/

r/User.first

r/User.first | --- !ruby/object:User | attributes: | id: 1 | name: Steve | details: Runs code in rails apps. | more: You can edit ActiveRecord models and double-click again to save.

couchdb/ - my_db/ - id_of_a_document/ | name: Steve | description: Edit and double-click to save - my_other_db/

bootstrap/ > Heading This will be rendered in the browser as a bootstrap layout.

bootstrap/ > Heading This will be have (blank line) > Another Heading Two sections

bootstrap/ > Heading This will be have > Another Heading Two columns, because blank line omitted

rails/ + start/ - generate/ + app/ - model/house/ > Example fields | name:string | details:text | price:decimal | purchased_at:datetime | user:references + resource/ + controller/

Xiki has menus for

  • html, css, dom, rails, node, mysql, git, webgl, d3, brew, cassandra, coffee script, svg, apache, markdown, firefox, cookies, couch, curl, dom, itunes, memcache, mongo, python, rake, riak, rss, safari, sass, shoes, sinatra, rspec
  • many more tools and frameworks

Misc Features

  • Double-click or type control-enter on lines to run them
  • You can type some letters to incrementally narrow down the output each time you run something, to show only lines that match
  • Can be used as a development environment
  • Navigate with your mouse or your keyboard
  • Web interface for using menus
  • Command-line interface for using menus
  • Very simple mapping between classes and menus
    • For creating interactive menus backed by code

Supported Editors

  • Aquamacs
  • Emacs
  • experimental support
    • Redcar
    • Vim
    • Sublime

Invitation from the Author

  • The author has extended an invitation to anyone to remote pair program with him on Xiki for an hour
Ruby Conf 2012 Xiki talk

http://www.youtube.com/watch?v=QqOrQN0bxNE


CategoryWikiImplementation