# Code structure **Note: this page needs to be updated to reflect changes made in Haketilo 1.0-beta1** The idea of arranging script files based on their execution context might not be the best one. Suggestions are welcome. {{toc}} ## `background/` Contains scripts that are to be run exclusively in the context of the background page. ## `build.sh` Builds the project, creating a `build_mozilla` or `build_chromium` folder in the working directory containing the unpacked extension. Run as `/path/to/build.sh mozilla|chromium`. ## `common/` Contains scripts that are to be run in more than one context. E.g. script that gets evaluated in contexts of both settings page and background page is going to reside in this directory. ## `content/` Contains scripts that execute exclusively in the context of content scripts. ## `copyright` Contains copyright information in [Debian's machine-readable format](https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/) (not all license texts are included; these reside under `licenses/`). ## `default_settings.json` The default settings for the extension, in the format that settings are exported from the extension. This will be removed at some point, as per #48 . ## `html/` Contains JavaScript, HTML and CSS files for settings and popup pages. ## `icons/` Contains icons graphics used by the extension. ## `licenses/` Contains full legal texts of licenses used. ## `manifest.json` Is the manifest file with the most important extension information for the browser. For now this is a version 2 manifest (version 3 is to require some more changes in the extension). This file is not a complete manifest - that one gets generated from `manifest.json` when `build.sh` script gets run. ## `README.txt` Contains some general information about the extension.