Bon Voyage, Drupal Footnotes module!

On June 10, 2006 I had gotten commit rights to the Drupal contrib repository and uploaded my new Drupal 4.7 module: Footnotes.

Actually, I had created this simple Drupal input filter for this site,, that I created when publising the English translation of my book Open Life: The Philosophy of Open Source. I wanted to have a simple way to have footnotes within HTML, without having to number them and format them myself. (Same functionality that is common for any word processor.) Drupal's input filter framework made it very simple to add an fn tag. You can see it at work if you read the online version of my book from the web site.

Footnotes was my first participation, as a code contributor, in a major open source project. It was a very pleasant experience. I didn't expect much, but very soon another Drupal developer added themeability to the module. Over time people added support for TinyMCE, CKEditor and Drupal Views (though the last one is a bit hacky...). provides usage statistics for each module, and eventually I found that my small module was used at over 1000 sites. It felt really good. (Just like when I found out that my book had been downloaded over 10.000 times within the first year.) In 2008 I met in person someone who used my module in his Drupal consultancy.

There was a bug in the Drupal core URL filter (that makes your URLs clickable) that was especially annoying for footnotes users. I submitted a patch. What can I say, it was an interesting experience. But 3 years later the patch was committed. I was one of the one thousand contributors to Drupal 7 core!

Maintaining the Footnotes module was very low effort and provided a lot of satisfaction over the years. Especially in the parts of my career where I've been in management positions it was a welcome disruption and an easy way to flex my coding muscles once or twice a year. It was recreational a bit like some people do crosswords. In fact, considering the heavy use of regular expressions, I'd say it was very much like doing crosswords :-)

Exactly a year ago I had taken a new job. It was clear to me I would continue as a MySQL specialist with no professional involvement with Drupal. (Which was always the case since 7 years ago.) I was becoming active also in contributing to various MySQL forks. So I decided that perhaps MySQL community needs me more than the Drupal community and I decided to focus on that.

Drupal handles the lifecycle of modules very well - it is built in to the tools. I set the module status to "Seeking new maintainer" and added some text to the project page:


Footnotes module is looking for a new maintainer. After developing it for 5 years and through 4 major Drupal releases, I am now more and more finding myself with responsibilities with what happens in the MySQL community, and have decided it is time to hand over my Drupal duties to fresh minds. I will of course be available for mentoring and code reviews as long as is needed.

The Footnotes module is in good shape and is used on over 1100 websites, particularly in academia and publishing contexts. At the same time it is a simple module not taking a lot of time per year. Over the years various members of the Drupal community have continued enhancements like theme support, enhancements to the footnotes themselves, integration with 2 wysiwyg editors and Views support.

A good candidate should:
- master regular expressions. (this is the important one, all the others are easier.)
- know or learn the Drupal filter API (easy, and even easier in D7)
There are also addition modules Wysiwyg CKEditor and TinyMCE (JavaScript) and for the Views API. These could of course be maintained by different persons if needed.

Then I sat back, and resisted the urge to fix any incoming bugs. (They are in CKEditor nowadays.)

Many people expressed their interest over tha past year. But nobody actually produced any commits. Last week there finally was a flurry of activity with many Footnotes issues resolved. Footnotes now has a new maintainer in user rooby.

Bon voyage, my baby!

Add new comment

The content of this field is kept private and will not be shown publicly. Cookie & Privacy Policy
  • No HTML tags allowed.
  • External and mailto links in content links have an icon.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Each email address will be obfuscated in a human readable fashion or, if JavaScript is enabled, replaced with a spam resistent clickable link. Email addresses will get the default web form unless specified. If replacement text (a persons name) is required a webform is also required. Separate each part with the "|" pipe symbol. Replace spaces in names with "_".
About the bookAbout this siteAcademicAccordAmazonBeginnersBooksBuildBotBusiness modelsbzrCassandraCloudcloud computingclsCommunitycommunityleadershipsummitConsistencycoodiaryCopyrightCreative CommonscssDatabasesdataminingDatastaxDevOpsDistributed ConsensusDrizzleDrupalEconomyelectronEthicsEurovisionFacebookFrosconFunnyGaleraGISgithubGnomeGovernanceHandlerSocketHigh AvailabilityimpressionistimpressjsInkscapeInternetJavaScriptjsonKDEKubuntuLicensingLinuxMaidanMaker cultureMariaDBmarkdownMEAN stackMepSQLMicrosoftMobileMongoDBMontyProgramMusicMySQLMySQL ClusterNerdsNodeNoSQLodbaOpen ContentOpen SourceOpenSQLCampOracleOSConPAMPPatentsPerconaperformancePersonalPhilosophyPHPPiratesPlanetDrupalPoliticsPostgreSQLPresalespresentationsPress releasesProgrammingRed HatReplicationSeveralninesSillySkySQLSolonStartupsSunSybaseSymbiansysbenchtalksTechnicalTechnologyThe making ofTransactionsTungstenTwitterUbuntuvolcanoWeb2.0WikipediaWork from HomexmlYouTube