Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Statick Web Plugins

Unit Tests PyPI version Codecov Python Versions License Checked with mypy Daily Downloads Weekly Downloads Monthly Downloads

This is a set of plugins for Statick that will discover Web (HTML, CSS, JavaScript) files and perform static analysis on those files.

Custom exceptions can be applied the same way they are with Statick exceptions.

Table of Contents

Deprecated

This set of plugins was merged into the main [Statick] repository and Python package. All future development will happen in that repository.

Installation

The recommended method to install these Statick plugins is via pip:

python3 -m pip install statick-web

You can also clone the repository and use it locally.

Usage

Make sure you install all the dependencies from apt/npm. See the Actions file to see exactly which commands work for various operating systems. Pay particular attention to which packages are installed locally and globally.

Pip Install

The most common usage is to use statick and statick-web from pip. In that case your directory structure will look like the following:

project-root
 |- web-project
 |- statick-config

To run with the default configuration for the statick-web tools use:

statick web-project/ --output-directory statick-output/ --profile web-profile.yaml

Pip Install and Custom Configuration

There are times when you will want to have a custom Statick configuration. This is usually done to run a different set of tools than are called out in the default profile, or to add exceptions. For this case you will have to add the new Statick configuration somewhere. This example will have custom exceptions in the web-project, such that the directory structure is:

project-root
 |- web-project
 |- statick-config
     |- rsc
         |- exceptions.yaml
 |- statick-output

For this setup you will run the following:

statick web-project/ --output-directory statick-output/ --user-paths web-project/statick-config/ --profile web-profile.yaml

Source Install and Custom Configuration

The last type of setup will be to have all of the tools available from cloning repositories, not installing from pip. The directory structure will look like:

project-root
 |- web-project
 |- statick-config
     |- rsc
         |- exceptions.yaml
 |- statick-output
 |- statick
 |- statick-web

Using the example where we want to override the default exceptions with custom ones in the web-project, the command to run would be:

./statick/statick web-project/ --output-directory statick-output/ --user-paths statick-web/,web-project/statick-config/ --profile web-profile.yaml

Existing Plugins

Discovery Plugins

Note that if a file exists without the extension listed it can still be discovered if the file command identifies it as a specific file type. This type of discovery must be supported by the discovery plugin and only works on operating systems where the file command exists.

File Type Extensions
css .css
html .html
javascript .js

Tool Plugins

Tool About
eslint Find and fix problems in your JavaScript code.
htmllint An unofficial html5 linter and validator.
jshint JSHint is a community-driven tool that detects errors and potential problems in JavaScript code.
stylelint A mighty, modern linter that helps you avoid errors and enforce conventions in your styles.

Contributing

If you write a new feature for Statick or are fixing a bug, you are strongly encouraged to add unit tests for your contribution. In particular, it is much easier to test whether a bug is fixed (and identify future regressions) if you can add a small unit test which replicates the bug.

Before submitting a change, please run tox to check that you have not introduced any regressions or violated any code style guidelines.

Mypy

Statick Web uses mypy to check that type hints are being followed properly. Type hints are described in PEP 484 and allow for static typing in Python. To determine if proper types are being used in Statick Web the following command will show any errors, and create several types of reports that can be viewed with a text editor or web browser.

python3 -m pip install mypy
mkdir report
mypy --ignore-missing-imports --strict --html-report report/ --txt-report report src

It is hoped that in the future we will generate coverage reports from mypy and use those to check for regressions.

Formatting

Statick code is formatted using black. To fix locally use

python3 -m pip install black
black src tests

Release files for statick-web 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statick-web 0.4.0
File Size Uploaded
statick_web-0.4.0.tar.gz 13.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for statick-web 0.4.0
File Interpreter ABI Platform
statick_web-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.5 kB

Release files / statick_web-0.4.0.tar.gz

Download URL statick_web-0.4.0.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a8afd751988c9556f573dc9382d2d762d718f55047b1a32be07fc0d9049bc96a
BLAKE2b-256 checksum
How to use checksums
3ba49bd0272e9cc2d8ed1d3fd0d1bf30b92129a21029e0f9aed2f229e6114a5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / statick_web-0.4.0-py3-none-any.whl

Download URL statick_web-0.4.0-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
19b8cb48a51002427aa783a52c11c59a192f6dcd0fed066a2a406176d4350b2f
BLAKE2b-256 checksum
How to use checksums
34151640f8a6c1ef3f5defcb50859798048841ebe039742cf7843f9f899df8b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page