Write apropos branch to search through Markdown documentation The NetBSD Project
Status: Closed Time to complete: 192 hrs Mentors: Julian Coleman, Julian Fagir Tags: C, research, man

apropos(1) is a last summer's Google Summer Of Code project implemented in NetBSD. It allows a relevance-based search through manpages written in mdoc.
As maybe Markdown is going to be in the source tree, we want to extend apropos to also be able to search through generic documentation articles.

Your task would be to research the possibility of creating another binary that is able to search through markdown documentation pages, creating its own index file (mandb).
If you are having fun with this, thinking about ways how to combine the two binaries into one single documentation search binary would be good.
Mail announcement import of apropos: http://mail-index.netbsd.org/tech-userlevel/2012/02/01/msg006040.html

Uploaded Work
File name/URL File size Date submitted
AproposMarkdown.tgz 4.4 KB January 03 2013 11:26 UTC
example.md 2.2 KB January 03 2013 11:28 UTC
AproposMarkdown2.tgz 4.3 KB January 03 2013 20:44 UTC
Васил Божурски on December 3 2012 23:52 UTC Task Claimed

I would like to work on this task.

Julian Fagir on December 3 2012 23:56 UTC Task Assigned

This task has been assigned to Васил Божурски. You have 192 hours to complete this task, good luck!

Aleksej Saushev on December 8 2012 19:44 UTC Progress?


You're working on the task for five(!) days. By this time you should have at least something working. Please, contact us on #netbsd-code to discuss your progress.

Васил Божурски on December 10 2012 16:01 UTC Claim Removed

The claim on this task has been removed, someone else can claim it now.

wmzhere on December 30 2012 03:32 UTC Problems about compiling


I downloaded the source from the mailing list, then I tried to compile it under NetBSD 6.0. However, gcc complained that there's no "man.h". Errors still exist after executing "pkg_add mdocml".

I know that "man.h" is lies in "src/external/bsd/mdocml/dist/". But I don't think fetching this directory and modify the makefile to add include path is the right way.

What's the correct way to do this? Are there any devel version of mdocml? How could I compile it?

Could you please give me some help? Thank you very much.


Julian Fagir on December 30 2012 21:17 UTC Use the NetBSD sources

Hm, I didn't even think of using the one from the announcement. You can find apropos and everything belonging to it in the NetBSD sources. You can fetch the sources either via sysinst or directly get them from a NetBSD server (there is a guide chapter about how to get the current sources).

Puck Meerburg on January 2 2013 22:35 UTC Task Claimed

I would like to work on this task.

Julian Fagir on January 2 2013 22:47 UTC Task Assigned

This task has been assigned to Puck Meerburg. You have 192 hours to complete this task, good luck!

Puck Meerburg on January 3 2013 11:26 UTC Ready for review

The work on this task is ready to be reviewed.

Puck Meerburg on January 3 2013 11:28 UTC Done!


I fixed it, while not changing other code, so it works together with the normal code. I added a diff and a small manual and a example, but I see I forgot to change the bottom 4 lines, so see the attached example that is fixed.




Julian Coleman on January 3 2013 21:21 UTC Looks good. Some comments.


This looks good to me.  I tested makemandb and apropos with the current example, and the result from the markdown sources was the same as with the mdoc sources.  A couple of comments:

  a standard man extension for filenames is expected when indexing (e.g. example.1), but I'm not sure if this should be altered for markdown files

  I didn't try patching the NetBSD current sources, but looking at the diff, it should apply there too.



Julian Coleman on January 3 2013 21:21 UTC Task Closed

Congratulations, this task has been completed successfully.