Skip to content

zebzhao/indent.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fc100ec · Apr 24, 2025
Apr 19, 2025
Oct 17, 2018
Oct 17, 2018
Jan 15, 2020
Oct 29, 2017
Aug 28, 2018
Aug 28, 2018
Nov 11, 2016
Aug 23, 2018
Apr 24, 2025
Oct 17, 2018
Aug 27, 2018
Nov 10, 2016
Jan 15, 2020

Repository files navigation

indent.js - pure code indentation for js, jsx, json, ts, tsx, html, css, less, scss

Build Status

Fast, minimalistic, pure code indentation. Indents JavaScript, JSON, JSX, Typescript, TSX, CSS, LESS, SCSS, and HTML. Unlike JSBeautify, which adds new lines when reformatting code and changes single line expressions, indent.js preserves new lines in when indenting it. Indent.js is coded with simple, but universal, and unopinionated rules.

Indent.js is thoroughly tested to make sure it correctly indents all styles, and types of code.

If you like this project please leave a star. Your support is greatly appreciated.

Online indent.js demo

You have following options to get indent.js:

  1. Install with bower: bower install indent.js
  2. Install with npm: npm install indent.js

Download

Usage

Browser Global

var indented = indent.js(code, {tabString: '\t'});
console.log(indented);

Browser using AMD

define(['indent'] , function (indent) {
    var indented = indent.js(code, {tabString: '\t'});
    console.log(indented);
});

Node/CommonJS

var indent = require('indent');
var indented = indent.js(code, {tabString: '  '});
console.log(indented);

ES6/ES2015 Modules

import { indent } from 'indent.js';

var indentedJs = indent.js(code);  // JSX as well
var indentedTs = indent.ts(code);  // TSX as well
var indentedCss = indent.css(code);
var indentedHtml = indent.html(code);

Projects using indent.js:

  1. Spck Editor - Full-fledged code editor for the web

API Reference

Methods

js(code: String, options: Object): String
ts(code: String, options: Object): String
css(code: String, options: Object): String
html(code: String, options: Object): String

Options

Field Type Description
tabString string String to indent the code with. Counts as 1 indent.
indentHtmlTag bool Whether to indent contents inside <html> tag or not. Valid only for html(...).

Languages not supported:

  1. CoffeeScript
  2. Pug

Getting the project

  1. Clone the repo.
  2. Run npm install to install dependencies
  3. Run npm test to run tests in tests folder
  4. Run npm run build to build the project