diff --git a/www/graph01.png b/www/graph01.png new file mode 100644 index 00000000..327e0795 Binary files /dev/null and b/www/graph01.png differ diff --git a/www/index.org b/www/index.org index 223df817..a47b601a 100644 --- a/www/index.org +++ b/www/index.org @@ -1,6 +1,7 @@ -#+title: Mu +#+title: #+style: #+html: +#+options: skip t * Welcome to mu! @@ -9,15 +10,32 @@ that mail - in particular, to instantly find that one important e-mail you need right now. - *mu* is a tool for dealing with e-mail messages stored in the - [[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format. *mu*'s main purpose is to help you to quickly find the + *mu* is a tool for dealing with e-mail messages stored in the [[http://en.wikipedia.org/wiki/Maildir][Maildir]]-format, + on Unix-like systems. *mu*'s main purpose is to help you to quickly find the messages you need; in addition, it allows you to view messages, extract attachments, create new maildirs, ... See the [[file:cheatsheet.org][mu cheatsheet]] for some examples. Searching works by first indexing your messages into a [[http://xapian.org/][Xapian]]-database, which can then be queried using a custom query language. +** Features + + - fast indexing for Maildir, Maildir+ and Maildir-on-VFAT + - search for messages based on the sender, receiver, subject, date range, + size, priority, words in message, flags (signed, encrypted, new, replied, + has-attachment,...), message-id, maildir, tags, attachment (name, + mime-type, text) and more + - command-line tools for indexing, searching, viewing, extracting + attachments, exporting address lists, creating maildirs, ... + - accent/case normalization - so /angstrom/ will match /Ångström/. + - can be integrated with other e-mail clients such as [[http://www.mutt.org/][mutt]] and [[http://www.emacswiki.org/emacs/WanderLust][Wanderlust]]. + - [[file:mu4e.html][mu4e]], an emacs-based e-mail client based on =mu= + - [[file:mu-guile.html][mu-guile]]: guile-bindings that allow for scripting, advanced processing of + your data + - fully documented (man pages, info pages) + ** News + - 2012-01-07: [[http://code.google.com/p/mu0/downloads/detail?name%3Dmu-0.9.8-alpha3.tar.gz][mu-0.9.8-alpha-3]] is available, with fixes for some =mu4e= configuration problems; also, the documentation now contains an example of how to set up =mu4e= with Gmail. @@ -73,23 +91,6 @@ - [[file:old-news.org][Old news]] -** Features - - - fast indexing for Maildir, Maildir+ and Maildir-on-VFAT - - search for messages based on the sender, receiver, message subject, size, - priority, words in the message body, attachments, date range, flags - (signed, encrypted, new, replied, unread, ...), message-id, maildir - - known to work on Linux (Ubuntu/Fedora/Debian/Gentoo), FreeBSD, MacOS, - Solaris, ... - - fully documented (man pages) - - can be integrated with e-mail clients; documentation has examples for [[http://www.mutt.org/][mutt]] - and [[http://www.emacswiki.org/emacs/WanderLust][Wanderlust]]. - - output in plain text, xml, s-expressions (experimental) - - extract message parts, attachments, open them using their default - application - - In addition, there is a toy UI for *mu* called [[file:mug.org][mug]]; the plan is to slowly - evolve this into a full-featured UI. ** Development & download :PROPERTIES: diff --git a/www/mu-guile.org b/www/mu-guile.org new file mode 100644 index 00000000..b899a1b1 --- /dev/null +++ b/www/mu-guile.org @@ -0,0 +1,156 @@ +#+title: mu-guile: guile-bindings for mu +#+style: +#+options: skip t + + Starting from version 0.9.7, =mu= had early, experimental bindings for the + [[http://www.gnu.org/software/guile/][GNU/Guile]] programming language, which is a version of the [[http://en.wikipedia.org/wiki/Scheme_(programming_language)][Scheme]] programming + language, specifically designed for extending existing programs. + + =mu= version 0.9.8 has much improved bindings, and they are [[file:mu-guile/index.html][documented]], with + many examples. You can find more examples in the =guile/examples= directory of + the =mu= source package. + + It must be said that Scheme (and in general, languages from the Lisp-family) + initially may look a bit 'strange' -- all these parentheses etc.; so please + bear with us. + +** Some examples + + Here are some examples; we don't provide too much explanation /how/ they do + what they do, but the [[file:mu-guile/index.html][manual]] takes you through that, step-by-step. + +*** Messages per weekday + +#+begin_src scheme +#!/bin/sh +exec guile -s $0 $@ +!# + +(use-modules (mu) (mu message) (mu stats) (mu plot)) +(mu:initialize) + +;; create a list like (("Mon" . 13) ("Tue" . 23) ...) +(define weekday-table + (mu:day-numbers->names + (sort + (mu:tabulate-messages + (lambda (msg) + (tm:wday (localtime (mu:date msg))))) + (lambda (a b) (< (car a) (car b)))))) + +(for-each + (lambda (elm) + (format #t "~a: ~a\n" (car elm) (cdr elm))) + weekday-table) +#+end_src + + Which might get us something like: + +#+begin_example +Sun: 2278 +Mon: 2991 +Tue: 3077 +Wed: 2734 +Thu: 2796 +Fri: 2343 +Sat: 1856 +#+end_example + +*** Drawing graphs + + We can also draw graphs from this, by adding the following to the script: + +#+begin_src scheme +;; plain-text graph +(mu:plot (weekday-table) "Messages per weekday" "Day" "Messages" #t) + +;; GUI graph +(mu:plot (weekday-table) "Messages per weekday" "Day" "Messages") +#+end_src scheme + + This gives us the following: + +**** plain text graph +#+begin_example + Messages per weekday + Messages + 3200 ++---+--------+---------+--------+---------+---------+--------+---++ + | + + "/tmp/filel8NGRf" using 2:xticlabels(1) ****** | + 3000 ++ * * ++ + | *********** * | + | * ** * | + 2800 ++ * ** * ********* ++ + | * ** ************ * | + 2600 ++ * ** ** ** * ++ + | * ** ** ** * | + | * ** ** ** * | + 2400 ++ * ** ** ** *********** ++ + *********** ** ** ** ** * | + 2200 *+ ** ** ** ** ** * ++ + * ** ** ** ** ** * | + * ** ** ** ** ** * | + 2000 *+ ** ** ** ** ** * ++ + * + ** + ** + ** + ** + ** + *********** + 1800 ******************************************************************** + Sun Mon Tue Wed Thu Fri Sat + Day +#+end_example + +**** GUI graph + + [[file:graph01.png]] + + + +*** Export contacts to =mutt= + + =mu= provides =mu cfind= to get contact information from the database; it's + fast, since it uses cached contact data. But sometimes, we may want to get a + bit more advanced. For examples, suppose I want a list of names and e-mail + addresses of people that were seen at least 20 times since 2010, in the + =mutt= address book format. + + We could get such a list with something like the following: + +#+begin_src scheme +#!/bin/sh +exec guile -s $0 $@ !# + +(use-modules (mu) (mu message) (mu contact)) +(mu:initialize) + +;; Get a list of contacts that were seen at least 20 times since 2010 +(define (selected-contacts) + (let ((addrs '()) + (start (car (mktime (car (strptime "%F" "2010-01-01"))))) + (minfreq 20)) + (mu:for-each-contact + (lambda (contact) + (if (and (mu:email contact) + (>= (mu:frequency contact) minfreq) + (>= (mu:last-seen contact) start)) + (set! addrs (cons contact addrs))))) + addrs)) + +(for-each + (lambda (contact) + (format #t "~a\n" (mu:contact->string contact "mutt-alias"))) + (selected-contacts)) +#+end_src + +** License & Copyright + + *mu4e* was designed and implemented by Dirk-Jan C. Binnema, and is Free + Software, licensed under the GNU GPLv3 + +#+html:
© 2011-2012 Dirk-Jan C. Binnema
+#+begin_html + + +#+end_html diff --git a/www/mu.css b/www/mu.css index a63b0b78..ecbaca08 100644 --- a/www/mu.css +++ b/www/mu.css @@ -22,3 +22,95 @@ a.menu:visited {color: #ffffff; text-decoration: none; } a.menu:hover {color: #ff0000; text-decoration: underline; } .mine {color: #ffffff; font-weight: bold} + + + + +/* emacs-code -----------------------*/ + +/* zenburnesque code blocks in for html-exported org mode */ + + +pre.src { + background: #dddddd; + color: #555555; +} + +.org-preprocessor { + color: #8cd0d3; +} + +.org-variable-name { + color: #0084C8; + font-weight: bold; +} + +.org-string { + color: #4E9A06; +} + +.org-type { + color: #2F8B58; + font-weight: bold; +} + +.org-function-name { + color: #00578E; + font-weight: bold +} + +.org-keyword { + color: #A52A2A; + font-weight: bold; +} + +.org-comment { + color: #204A87; +} + +.org-doc { + color: #afd8af; +} + +.org-comment-delimiter { + color: #708070; +} + +.org-constant { + color: #F5666D; +} + +.org-builtin { + color: #A020F0; +} + + +.warning, .org-warning { + color: yellow; + font-weight: bold +} + + +/* emacs other stuff --------------------- */ + .org-date, .org-org-date { + /* org-date */ + color: #00ffff; + text-decoration: underline; + } + .org-hide, .org-org-hide { + /* org-hide */ + color: #000000; + } + .org-level-1, .org-org-level-1 { + /* org-level-1 */ + color: #356da0; + } + .org-level-2,.org-org-level-2 { + /* org-level-2 */ + color: #7685de; + } + .org-todo,.org-org-todo { + /* org-todo */ + color: #ffc0cb; + font-weight: bold; + } diff --git a/www/mu4e-1.png b/www/mu4e-1.png new file mode 100644 index 00000000..c76e4c23 Binary files /dev/null and b/www/mu4e-1.png differ diff --git a/www/mu4e-2.png b/www/mu4e-2.png new file mode 100644 index 00000000..288bc9a0 Binary files /dev/null and b/www/mu4e-2.png differ diff --git a/www/mu4e-3.png b/www/mu4e-3.png new file mode 100644 index 00000000..dc09c533 Binary files /dev/null and b/www/mu4e-3.png differ diff --git a/www/mu4e.org b/www/mu4e.org new file mode 100644 index 00000000..6c9284a2 --- /dev/null +++ b/www/mu4e.org @@ -0,0 +1,37 @@ +#+title: mu4e: mu for emacs +#+style: +#+options: skip t + + With version 0.9.8, =mu= comes with an emacs-based e-mail client that uses + =mu= for its back-end: *mu4e*. For all the details, please see [[file:mu4e/index.html][manual]]. + +** Screenshots + + Here are some screenshots. + +*** The main view + [[file:mu4e-1.png]] + +*** The headers view + [[file:mu4e-2.png]] + +*** The message view + [[file:mu4e-3.png]] + + +** License & Copyright + + *mu4e* was designed and implemented by Dirk-Jan C. Binnema, and is Free + Software, licensed under the GNU GPLv3 + +#+html:
© 2011-2012 Dirk-Jan C. Binnema
+#+begin_html + + +#+end_html