Home > vim-underground

vim-underground

Vim-underground is a project mainly written in JavaScript, it's free.

A sample couchapp built using soca

h2. WTH is this?

Vim Underground is a couchapp, that is, a web application served from "CouchDB":http://couchdb.apache.org/ itself. While most of the application makes use of CouchDB's awesome features, it uses "node.js":http://nodejs.org/ and ruby sparingly to overcome certain limitations of CouchDB and to speed up development.

h3. CouchDB

CouchDB displays most of the data for the site through several views and lists. Templates, inside the @templates@ directory, provide the underlying HTML. The @lib@ directory contains modules that one can use inside of lists, shows, views, and updates. Speaking of which, the @db@ folder houses those functions, along with filters that the app consumes to notify of new articles and to keep up to date with the latest script activity from the "vim-scripts":https://github.com/vim-scripts atom "feed":https://github.com/vim-scripts.atom.

h3. Ruby & Soca

VU uses "soca":http://nodejs.org/ for pushing changes to CouchDB. Additionally, seeding the database requires "thor":https://github.com/wycats/thor, along with "compass":https://github.com/chriseppstein/compass for the look and feel of the site. See the @Gemfile@ for other ruby dependencies.

The @Jimfile@ lists all JavaScript dependencies. Rather than letting soca concatenate all our scripts into one big file, VU uses "yepnope.js":http://yepnopejs.com/ instead to load them asynchronously. Scripts are divided into three sections: core, plugins, and application. Core includes all mandatory scripts, such as Sammy.js and jquery.couch. Plugins includes scripts like sammy.mustache and h5validate. Lastly, application contains helpers, models and app.js.

h3. NodeJS

VU uses CouchDB external processes for things like sending emails and new article submission notifications. In addition, there's a screen scraper script in @data/tasks@ for scraping vim plugin information from the vim site.

h3. Pubsubhubub

VU is a subscriber to the vim-scripts atom feed. To subscribe, follow the instructions "here":http://github.superfeedr.com/. Make sure to specify the callback as @http://yourapp.com/feeds/feed-name@.

h2. TODO

  • Layout for mobile
  • Search functionality

h2. License

The Vim Underground logo is licensed under "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported":http://creativecommons.org/licenses/by-nc-sa/3.0/. All code is licensed under the "wtfpl":http://sam.zoy.org/wtfpl/COPYING , reproduced here for convenience:

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

Copyright (C) 2004 Sam Hocevar [email protected]

Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed.

        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. You just DO WHAT THE FUCK YOU WANT TO.
Previous:nilo