[NetBSD Developer Wiki]
- view: text
- select for diffs
Sun Nov 6 01:59:12 2011 UTC
(6 years, 10 months ago) by jmmv
CVS tags: HEAD
Move existing project definitions from projects/gsoc_2011/ to
The goal for this reorganization is to remove any knowledge of the projects
classification from the file hierarchy: the classification goes into tags,
and projects indexes automatically list projects based on such tags.
Also, the current gsoc_2011 name was wrong anyway, because GSoC 2011 has
already concluded and projects would have had to move to a gsoc_2012 directory
Lastly, yes, "projects/project/*" is slightly redundant. But I want to keep
the project lists from the projects "database" clearly separated.
This is as proposed in www@.
title="Apropos replacement based on mandoc and SQLite's FTS"
NetBSD ships a lot of useful documentation in the form of manual pages.
Finding the right manual page can be difficult though.
If you look for a library function, it will sometimes fail, because it is part of a larger manual page and doesn't have a MLINKS entry.
If you look for a program, but don't know the exact name, it can be hard to find as well.
Historically, the content of the NAME section of each manual page has been extracted and put into a special file.
The apropos command has been used to search this file based on keywords.
This brings severe limitations as it restricts the list of potential matches significantly and requires very good descriptions of the content of a manual page in typically one line.
The goal of this project is to provide a modern replacement based on the [Full Text Search of SqLite](http://sqlite.org/fts3.html).
The most basic version of the new apropos builds an index from the text output of [mandoc](http://mdocml.bsd.lv/mandoc.1.html) and queries it using appropriate SQL syntax.
Some basic form of position indications should be provided as well (e.g. line number).
A more advanced version could use the mandoc parser directly too.
This would easily allow relatively precise position marks for the HTML version of manual pages.
It would also allow weighting the context of a word.
Consider Google's preference of URLs that contain the keywords or documents containing them in the head lines as an example.
Another idea is to use the index for directly handling manual page aliases.
This could replace the symbolic links currently used via the MLINKS mechanism.
The aliases can be derived automatically from the .Nm macros in the manual page.
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb