New vocabulary browser
Thursday, June 21, 2007
After spending more than a week on documentation, and a week porting
code to the module system before that, I finally got to code something
fun. Inspired by CPAN, but with a lot less
libraries included, I present the Factor vocabulary browser:
Notice how we support “tagging” (in the Web 2.0 agile SOA sense). Factor
itself doesn’t care about tags, they’re purely there to help the
programmer find modules they might otherwise overlook, and provide a
richer ontology than just a simple hierarchy:
We also keep track of who wrote each vocabulary:
The list of authors in the index page is very small, because only less
than half of all modules have been ported to the new syste.
In the new module system, vocabularies are organized into a hierarchy.
Here we’re viewing the editors vocabulary, which has some words to jump
to word definitions in your favorite editor; it has some child
vocabularies implementing support for each editor support by Factor:
Notice how each vocabulary, loaded or not, has meta-data: a one-line
summary, authors, and tags. These are stored in text files in the
vocabulary’s directory: summary.txt
, tags.txt
and authors.txt
. The
vocabulary system provides words for reading and writing these files:
vocab-summary ( vocab -- string )
set-vocab-summary ( string vocab -- )
vocab-tags ( vocab -- seq )
set-vocab-tags ( seq vocab -- )
vocab-authors ( vocab -- seq )
set-vocab-authors ( seq vocab -- )
Factor has great support for organizing and browsing code.