Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 74 lines (44 sloc) 4.58 kB
706a2a7 @sr3d - change README to markdown
authored
1 # Github Finder
2 GithubFinder is a fast Github repository browser. The browser is inspired after Mac OSX Finder.
07166aa @sr3d - update readme
authored
3 [<img src="https://raw.github.com/sr3d/GithubFinder/master/public/img/githubfinder.png" alt="Github File Finder" />](https://raw.github.com/sr3d/GithubFinder/master/public/img/githubfinder.png)
b74ac9b @sr3d - update readme
authored
4
6958269 @sr3d - minify to -309 bytes away
authored
5 To see the finder in action, go to <http://sr3d.github.com/GithubFinder>
706a2a7 @sr3d - change README to markdown
authored
6
7
8 ## Features
9
c7a8327 @sr3d - update Readme's link to Greasemonkey's userscript
authored
10 - Support Greasemonkey/Greaskit script: <http://sr3d.github.com/GithubFinder/userscript.user.js>. After installing this script, a new button will appear on your Github repo page to let you quickly open the currently view repository in Github Finder.
11
12 [<img src="http://cl.ly/5452119dcf43ad5bfc31/content" alt="Github File Greasemonkey Button" />](http://sr3d.github.com/GithubFinder/userscript.user.js)
13
f1cbb96 @sr3d - update readme
authored
14 - Bookmarklet: If you don't have GreaseMonkey/Greasekit installed, you can drag the bookmarklet to your address bar. The bookmarklet will open a new GHFinder window of the currently viewed repository.
2493587 @sr3d - update app index
authored
15 - Switch between repos and branches with ease.
706a2a7 @sr3d - change README to markdown
authored
16 - Keyboard navigation support with arrow keys.
2493587 @sr3d - update app index
authored
17 - Text files can be previewed inline with syntax highlighting (support Ruby, JavaScript, CSS, and HTML) with Textmate-like Twilight theme.
f1cbb96 @sr3d - update readme
authored
18 - Files can be diff-ed directly between commits (diff is done by difflib).
19 - 100% javascript with full cross-domain support. For functionalities that Github API, the app relies on a proxy running on Heroku (<http://ghfinder-proxy.heroku.com>) to get the data.
20 - flexible framework to customize and extend the existing functionalities.
4c5178f @sr3d - fix diffing. Now it should work across revision
authored
21 - GitHub JS API wrapper (/javascripts/gh.js).
706a2a7 @sr3d - change README to markdown
authored
22
f1cbb96 @sr3d - update readme
authored
23
706a2a7 @sr3d - change README to markdown
authored
24 # 10K App
25
6958269 @sr3d - minify to -309 bytes away
authored
26 Github Finder is built as a contest entry into the 10K Apart contest (http://10k.aneventapart.com/).. I wanted to develop a real useful app instead of a mindless canvas drawing (which is cool, but not that useful), and I always wanted to browse Github repositories easier and faster.
706a2a7 @sr3d - change README to markdown
authored
27
28 ## Build
29
b74ac9b @sr3d - update readme
authored
30 Since the app needs to be under 10,240 bytes, it needs special optimization to achieve this size. The unminifed, uncompressed JS is about 30+ KB, all compressed down to 8.5KB or so.
31
5d0fe7c @sr3d - update README
authored
32 To build the app, run the provided ./build script to automatically bundle up everything into the ./app folder
b74ac9b @sr3d - update readme
authored
33
2493587 @sr3d - update app index
authored
34 For an IE9 build, run ./ie9build
35
706a2a7 @sr3d - change README to markdown
authored
36 ## App Bootstrap
37
b74ac9b @sr3d - update readme
authored
38 The minified app is working as follow:
39
40 - bootstrap.js loads code from png and eval
41 - javascripts/app.js file is executed (this file is appended at the end of the files list)
42
706a2a7 @sr3d - change README to markdown
authored
43
2493587 @sr3d - update app index
authored
44 # Architecture
45
4c5178f @sr3d - fix diffing. Now it should work across revision
authored
46 The code is somewhat modularized with a main class (F, defined in /javascripts/f.js) for the Finder itself. This class can be extended to add more functionalities through various plugins. Currently the plugins are
706a2a7 @sr3d - change README to markdown
authored
47
2493587 @sr3d - update app index
authored
48 - Diff: allowing user to diff 2 different files from Github.
f1cbb96 @sr3d - update readme
authored
49 - Code Highlighter: currently supports Ruby, JavaScript, CSS, and HTML.
50 - Keyboard navigation: user can use the arrow keys to navigate.
51 - ResizablePanel: enable the panels to be resizeable.
52 - GithubReadme: automatically grab the Readme files from github. Currently supported Markdown (.md, .markdown), Textile (.textile) readme files (Github only renders these files automatically)
53 - Bookmarklet: lets user create a bookmark to quickly access GithubFinder
54 - Greasemonk/Greasekit userscript: extend Github's interface with a button linking to Github Finder to allow quick access.
2493587 @sr3d - update app index
authored
55
56 Combined with the build script, this architecture is flexible enough to enable or disable certain components to achieve the right size/features.
57
f1cbb96 @sr3d - update readme
authored
58 The Application also relies on JSONP to grab the data from Github. The provided proxy.php script can handle both normal Ajax Requests and JSONP requests. However, the proxy now is done by a small Sinatra app running on Heroku at <http://ghfinder-proxy.heroku.com>. The source for this app is at <http://github.com/sr3d/http://github.com/sr3d/GHFinder-Proxy>
706a2a7 @sr3d - change README to markdown
authored
59
60
61 # Credits
62
b74ac9b @sr3d - update readme
authored
63 Github Finder is possible by leveraging these tools:
64
6958269 @sr3d - minify to -309 bytes away
authored
65 - string2png is inspired by NIHILOGIC. <http://blog.nihilogic.dk/2008/05/compression-using-canvas-and-png.html>
66 - The javascript implementation of difflib by Snowtide.com. <http://snowtide.com/jsdifflib>
67 - Dandean JSONP implementation for Prototype. Code is patched to support onSuccess() event, and to also hook into Ajax.Responders live-cycle (useful for indicator). <http://github.com/dandean/Ajax.JSONRequest>
b74ac9b @sr3d - update readme
authored
68 - Github API.
69
2493587 @sr3d - update app index
authored
70
706a2a7 @sr3d - change README to markdown
authored
71 # About
72
6958269 @sr3d - minify to -309 bytes away
authored
73 - My name is Alex Le. I'm an entrepreneur and I build web applications. I'm a single founder bootstrapping Marrily (<http://marrily.com>), an online wedding planner. Come check it out! My blog is at <http://alexle.net>
Something went wrong with that request. Please try again.