* Add the four mandatory H2 sections (Description / Overview / Features /
Credits) to every role README that was missing one. Strategy:
- prose between H1 and the first H2 is wrapped with `## Description`
- synonym headings rename to canonical (Goal/Goals/Use Case →
Overview, Contents/Tasks → Features)
- everything still missing is inserted at its canonical position with
content sourced from `galaxy_info.description`
* Resolve the 18 remaining documentation.md compat findings on the
modified set:
- em-dash separators replaced by parentheses (parenthetical
definitions), commas (clause separators), or colons (label/value)
- `Single Point of Truth (SPOT)` self-label headings renamed to
`User data resolution`
- one full-URL link text shortened to the project name
* tests/lint/repository/test_role_readme.py is now green across all
227 role READMEs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.4 KiB
Global JavaScript Injector for NGINX
Description
This Ansible role injects a custom JavaScript snippet into all HTML responses served by NGINX. It leverages NGINX’s sub_filter to seamlessly insert your application-specific script just before the closing </head> tag, ensuring that your code runs on every page load, which is useful for global feature flags, analytics, or UI enhancements.
Overview
This role injects a custom JavaScript snippet into Nginx-served HTML responses via sub_filter.
Features
-
One-line Script Injection
Collapses your JavaScript into a single line and injects it viasub_filterfor minimal footprint and maximal compatibility. -
Easy CSP Integration
Automatically computes and appends a CSP hash entry for your script, so you can lock down Content Security Policy without lifting a finger. -
Conditional Activation
Activates only when you enable thejavascriptfeature for a given application, keeping your server blocks clean and performant. -
Debug Mode
Supports anMODE_DEBUGflag that appends optionalconsole.logstatements for easier troubleshooting in staging or development.
Credits
Developed and maintained by Kevin Veen-Birkenbach. Learn more at veen.world. Part of the Infinito.Nexus Project. Licensed under the Infinito.Nexus Community License (Non-Commercial).