Contributing

Alonzo Green edited this page Nov 15, 2016 · 24 revisions

Anyone who wants to contribute is more than welcome to do so! Wappalyzer has been improved by many.

To get started, please read the README, the guidelines below and the specification. For instructions on how to install Wappalyzer to test your changes, see the Drivers page.

Adding a new application

  • Edit src/apps.json (use a JSON validator).
  • You can now use SVGs. These are preferred to PNGs, as they are vector graphics and can scale to any size. If you do anything with Inkscape, be sure to save it as a Plain SVG. They will be compressed later in the build script, so don't worry about that. Open it in any browser just to be sure that it displays correctly. Width and height doesn't matter, as it is a vector image. You can open EPS files with Inkscape and save them as SVGs if you install the Ghostscript Postscript and PDF interpreter/renderer. The filename should be the same as the application name and should be added to src/icons. To find a logo you can use Instant Logo Search.

  • If you can't find an SVG, add a 32x32 PNG image to src/icons matching the application name (use iConvert Icons to convert from ICO format if needed; and then Kraken, Tinypng.com or OptiPNG for compression).

Adding a new category

Please open an issue to discuss. Adding a category involves updating apps.json, locales and wappalyzer.com.

Adding a new translation

Mozilla Firefox

Copy src/drivers/firefox/locale/en-US.properties and update its contents.

Google Chrome

Copy src/drivers/chrome/_locales/en and update its contents.

Refactoring or adding new features

I'm much more likely to merge a pull request if it's an incremental change rather than rewritten or added functionality. If you have an idea please open an issue to discuss it first. I'm interested to hear it.

Cleaning and improving the apps.json file

  • Use these regular expressions to spot potential problems. Note that these patterns are not perfect (i.e. false positive can occur) and we are constantly trying to improve them so share your patterns to spot problems.
Syntax problems Regular expression
Missing \\ ^.*[^\\];(?:version|confidence).*$
Missing ?: in groups ^.*[^\\]\([^?](?!.*(?:version|\\\\1)).*$
Missing ?: in groups 2 ^.*version:\\\\[^1].*$
Unescaped dot ^\t{3}"[^wi].*[^\\][^\\\[]\.[^+*\]].*$
Replace 0-9 by \\d ^.*0-9.*$
Useless array ^.*\[ "[^"]+" \].*$
Backslash not escaped ^.*[^\\]\\[^\\/"].*$
Useless ?: ^.*\\\(\?:.*$
Patterns problems Regular expression
HTML matching plain text ^.*"html"[^<>\n]*$
HTML slow matching ^.*"html".*\.[+*].*$
Useless http(s) ^.* "http.*$
Useless group ^.*\(\?:[^\n|]*[^\\?]\)[^?)*|].*$
Useless .+ or .* at the end ^.*"[^"]{2,}[*+]".*$