Skip to content
This repository, the site for preventing SQL injections

tree: 3cde40724c

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 s
Octocat-spinner-32 share
Octocat-spinner-32 static add l10n March 11, 2012
Octocat-spinner-32 t
Octocat-spinner-32 tt
Octocat-spinner-32 .gitignore add l10n March 11, 2012
Octocat-spinner-32 Makefile

This project is the source code for, plus the Perl code that converts it from Markdown format into HTML and uploads it to the server.

Repository layout

  • s/
    • page bodies in Markdown format
  • tt/
    • templates in Template::Toolkit format
  • static/
    • images and styles
  • share/locale
    • translations in gettext format
  • t/
    • tests
  • build/ (Not stored)
    • output


GNU bash, make, gettext-runtime, gettext-tools.

Perl and additional CPAN modules.

For building:

  • File::Slurp
  • libintl-perl (for Locale::Messages, Locale::TextDomain)
  • Locale::Maketext::Lexicon (for
  • Template
  • Text::Markdown

For testing:

  • Test::HTML::Lint

Contributing page content

  1. Modify templates or page bodies. New pages have to be registered in the file crank.
  2. Run make to build the site and inspect the result in the build directory.
  3. Run make test to check for HTML errors.
  4. Commit/publish changes, see s/

Contributing translations

  1. Run make messages.
  2. Skip this step if you just amend a translation. If you need to start a new language, copy share/locale/com.bobby-tables.pot to share/locale/xx_YY/LC_MESSAGES/com.bobby-tables.po, but substitute xx for the appropriate language code and YY for the territory code. (Alternatively to copying, use the command msginit.) Naming convention examples:

    sv_SE.po    standard Swedish
    pt_BR.po    Brazilian Portuguese
  3. Edit the PO file. Lokalize (formerly KBabel) is excellent, Poedit is good. Any text editor supporting UTF-8 can handle PO files, but it will not be as convenient.

  4. Continue at step 2. of the previous section.
Something went wrong with that request. Please try again.