melpa/html/index.erb
2012-01-27 11:47:01 -06:00

107 lines
3.1 KiB
Text

%% MELPA
[ [Packages](#current-list-of-packages) ]
[ [Installing](#installing) ]
[ [Known Issues](#known-issues) ]
[ [Updating Packages](#updating-packages) ]
[ [Development](#development) ]
*MELPA* or *Milkypostman's ELPA* or *Milkypostman's Experimental Lisp Package Repository* if you're not into the whole brevity thing.
> a repository for development versions of Emacs packages (hot from the repo).
**Last Update:** *<%= Time.now.strftime("%Y.%m.%d %H:%M") %>*
## Current List of Packages
<%
def parse str
# credit to: http://stackoverflow.com/q/3128406/154508
tokens = str.scan(/#{Regexp.escape("(")}|#{Regexp.escape(")")}|[a-zA-Z0-9\-\_\+]+/)
stack = [[]]
tokens.each do |tok|
case tok
when "("
stack << []
when ")"
stack[-2] << stack.pop
else
stack[-1] << tok
end
end
return stack[-1][-1]
end
headers = ["Package", "Version", "Description"]
data = parse(File.open("../packages/archive-contents").read)[1..-1]
data.map! do |row|
[row[0], row[1][0], row[3..-2].join(" ")]
end
data.sort!
colwidth = [0,0,0]
data.map do |row|
row.to_enum(:each_with_index).map do |e,i|
colwidth[i] = [colwidth[i], e.length].max
end
end
%>
<%=
headers.to_enum(:each_with_index).map{
|h,i| h + " "*(colwidth[i]-h.length) }.join(" ")
%>
<%= colwidth.map{ |w| "-"*w }.join(" ") %>
<%=
data.map{ |row|
row.to_enum(:each_with_index).map{ |c,i|
c + " "*(colwidth[i]-c.length)
}.join(" ")
}.join("\n")
%>
## Installing
To add the repository put this before the call to `package-initialize`
in your `init.el` file.
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
Please read about [known issues](#known-issues) below before
attempting to install multiple packages at once.
## Known Issues
Due to the way the HTTP routing works on my provider, the HTTP/1.1
connection will time out for long package installs -- where the
package is large and takes a while to compile -- like *magit* or *evil*.
(setq url-http-attempt-keepalives nil)
This makes things a tad more slow but means that the install completes
correctly. Otherwise the connection times out and the install goes haywire.
## Updating Packages
`package.el` now includes a mechanism to upgrade packages. After running `package-list-pacages`, type *u* (mark Upgradable packages) and then *x* (eXecute the installs and deletions). When it's done installing all the packages it will ask if you want to delete the obsolete packages and so you can hit *y* (Yes).
If you run into a problem installing or upgrading, you may need to go into your `~/.emacs.d/elpa/` directory and delete packages that are installed multiple times. This can happen when the install times out (see [Known Issues](#known-issues)).
## Development
[https://github.com/milkypostman/melpa](https://github.com/milkypostman/melpa)
Contributions are welcome. Currently, the builder only supports
packages using git, subversion, mercurial, and darcs. This covers
most of the packages that I am interested in.