Format and beautify nginx config files
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
LICENSE
README.md
index.js
nginxbeautifier.js
package-lock.json
package.json

README.md

npm version

nginx config file formatter and beautifier

This Javascript script beautifies and formats Nginx configuration files like so:

  • all lines are indented in uniform manner, with 4 spaces per level
  • neighbouring empty lines are collapsed to at most two empty lines
  • curly braces placement follows Java convention
  • whitespaces are collapsed, except in comments an quotation marks

Where

From our website

This project can be used directly at: nginxbeautifier.com

From the NPM repository

Please see Installation section below.

From the Arch-AUR repository

Please see Installation section below.

Installation

NodeJS is needed to run this program.

You can install nginxbeautifier using one of the ways below:

From AUR

Using pacaur (or any other way from AUR repository)

pacaur -S nginxbeautifier

From NPM repository

npm install -g nginxbeautifier

Directly from source

simpley clone our repository and copy the executable to your /usr/bin so you can use it anywhere on the system(unix only).

git clone https://github.com/vasilevich/nginxbeautifier
cp nginxbeautifier/nginxbeautifier.js /usr/bin/nginxbeautifier

How to use

Usage: nginxbeautifier [OPTION]... [FILE]...
Description: Formats nginx conf files into a more readable format by re-indenting the lines.

Mandatory arguments to long options are mandatory for short options too, Arguments are case insensitive.
-h, --help, Show this help text.
-s, --space, Amount of spaces to indent with, Can not be used if tabs are specified.
-t, --tabs, Amount of tabs to indent with, Can not be used if spaces are specified.
-dj, --dontjoin, --dont-join, if set to true, commands such as 'server' and '{' will be on a seperate line, false by default ('server {' )
-r, --recursive, scan the whole current folder, and all sub folders recursively.
-i, --input, The file to input, is optional if you provide a path after all the arguments.
-o, --output, The file to output to, is optional if you provide a path after all the arguments.
-e, -ext, --extension, The extension of the config file to look for(.conf by default).

Usage examples:

(1)>nginxbeautifier -s 4 -r sites-enabled/
(2)>nginxbeautifier -s 4 -r /etc/nginx/sites-enabled/
(3)>nginxbeautifier -s 4 -i /etc/nginx/sites-enabled/site.conf -o /etc/nginx/sites-enabled/newSite.conf
(4)>nginxbeautifier -s 4 -i /etc/nginx/sites-enabled/site.conf
(5)>nginxbeautifier -s 4 -i /etc/nginx/sites-enabled/*
(6)>nginxbeautifier -t 4 -i /etc/nginx/sites-enabled/*
(7)>nginxbeautifier -t 4 /etc/nginx/sites-enabled/*
(8)>nginxbeautifier -t 4 -i /etc/nginx/sites-enabled/* -o /etc/nginx/new-sites-enabled/*

Credits

Michał Słomkowski - Original code was ported from their project(nginxfmt.py), and also used their readme.md as a template. some methods were rewritten or changed a bit, but most of the code follows their design.

Notes:

I am keeping the same licenese format as the one that was given by the owner of the project the code was ported from: Apache 2.0.

Additional related projects you may find interesting:

nginxbeautify - derived from this project, and much improved, by adding modularity and much more, by Denys Vitali, you should check it out!