Permalink
Browse files

Updated README

  • Loading branch information...
1 parent c7af42a commit 88584542ee4918e38bc145d3e9e9a8f86c2d78dc @davglass davglass committed Aug 17, 2012
Showing with 127 additions and 154 deletions.
  1. +127 −9 README.md
  2. +0 −145 doc/README
View
@@ -1,13 +1,14 @@
-YUI Compressor
-=============
+YUI Compressor - The Yahoo! JavaScript and CSS Compressor
+=========================================================
-The YUI Compressor is written in Java (requires Java >= 1.4) and relies on Rhino to tokenize the source JavaScript file.
-It starts by analyzing the source JavaScript file to understand how it is structured. It then prints out the token stream,
-omitting as many white space characters as possible, and replacing all local symbols by a 1 (or 2, or 3) letter symbol
-wherever such a substitution is appropriate (in the face of evil features such as eval or with, the YUI Compressor takes
-a defensive approach by not obfuscating any of the scopes containing the evil statement) The CSS compression algorithm
-uses a set of finely tuned regular expressions to compress the source CSS file. The YUI Compressor is open-source,
-so don't hesitate to look at the code to understand exactly how it works.
+The YUI Compressor is a JavaScript compressor which, in addition to removing
+comments and white-spaces, obfuscates local variables using the smallest
+possible variable name. This obfuscation is safe, even when using constructs
+such as 'eval' or 'with' (although the compression is not optimal is those
+cases) Compared to jsmin, the average savings is around 20%.
+
+The YUI Compressor is also able to safely compress CSS files. The decision
+on which compressor is being used is made on the file extension (js or css)
Building
--------
@@ -32,3 +33,120 @@ Build Status
------------
[![Build Status](https://secure.travis-ci.org/yui/yuicompressor.png?branch=master)](http://travis-ci.org/yui/yuicompressor)
+
+
+Global Options
+--------------
+
+ -h, --help
+ Prints help on how to use the YUI Compressor
+
+ --line-break
+ Some source control tools don't like files containing lines longer than,
+ say 8000 characters. The linebreak option is used in that case to split
+ long lines after a specific column. It can also be used to make the code
+ more readable, easier to debug (especially with the MS Script Debugger)
+ Specify 0 to get a line break after each semi-colon in JavaScript, and
+ after each rule in CSS.
+
+ --type js|css
+ The type of compressor (JavaScript or CSS) is chosen based on the
+ extension of the input file name (.js or .css) This option is required
+ if no input file has been specified. Otherwise, this option is only
+ required if the input file extension is neither 'js' nor 'css'.
+
+ --charset character-set
+ If a supported character set is specified, the YUI Compressor will use it
+ to read the input file. Otherwise, it will assume that the platform's
+ default character set is being used. The output file is encoded using
+ the same character set.
+
+ -o outfile
+
+ Place output in file outfile. If not specified, the YUI Compressor will
+ default to the standard output, which you can redirect to a file.
+ Supports a filter syntax for expressing the output pattern when there are
+ multiple input files. ex:
+ java -jar yuicompressor.jar -o '.css$:-min.css' *.css
+ ... will minify all .css files and save them as -min.css
+
+ -v, --verbose
+ Display informational messages and warnings.
+
+JavaScript Only Options
+-----------------------
+
+ --nomunge
+ Minify only. Do not obfuscate local symbols.
+
+ --preserve-semi
+ Preserve unnecessary semicolons (such as right before a '}') This option
+ is useful when compressed code has to be run through JSLint (which is the
+ case of YUI for example)
+
+ --disable-optimizations
+ Disable all the built-in micro optimizations.
+
+Notes
+-----
+
+* If no input file is specified, it defaults to stdin.
+
+* Supports wildcards for specifying multiple input files.
+
+* The YUI Compressor requires Java version >= 1.5.
+
+* It is possible to prevent a local variable, nested function or function
+argument from being obfuscated by using "hints". A hint is a string that
+is located at the very beginning of a function body like so:
+
+```
+function fn (arg1, arg2, arg3) {
+ "arg2:nomunge, localVar:nomunge, nestedFn:nomunge";
+
+ ...
+ var localVar;
+ ...
+
+ function nestedFn () {
+ ....
+ }
+
+ ...
+}
+```
+ The hint itself disappears from the compressed file.
+
+* C-style comments starting with /*! are preserved. This is useful with
+ comments containing copyright/license information. For example:
+```
+ /*!
+ * TERMS OF USE - EASING EQUATIONS
+ * Open source under the BSD License.
+ * Copyright 2001 Robert Penner All rights reserved.
+ */
+```
+ becomes:
+```
+ /*
+ * TERMS OF USE - EASING EQUATIONS
+ * Open source under the BSD License.
+ * Copyright 2001 Robert Penner All rights reserved.
+ */
+```
+
+Modified Rhino Files
+--------------------
+
+YUI Compressor uses a modified version of the Rhino library
+(http://www.mozilla.org/rhino/) The changes were made to support
+JScript conditional comments, preserved comments, unescaped slash
+characters in regular expressions, and to allow for the optimization
+of escaped quotes in string literals.
+
+Copyright And License
+---------------------
+
+Copyright (c) 2011 Yahoo! Inc. All rights reserved.
+The copyrights embodied in the content of this file are licensed
+by Yahoo! Inc. under the BSD (revised) open source license.
View
@@ -1,145 +0,0 @@
-==============================================================================
-YUI Compressor
-==============================================================================
-
-NAME
-
- YUI Compressor - The Yahoo! JavaScript and CSS Compressor
-
-SYNOPSIS
-
- Usage: java -jar yuicompressor-x.y.z.jar [options] [input file]
-
- Global Options
- -h, --help Displays this information
- --type <js|css> Specifies the type of the input file
- --charset <charset> Read the input file using <charset>
- --line-break <column> Insert a line break after the specified column number
- -v, --verbose Display informational messages and warnings
- -o <file> Place the output into <file> or a file pattern.
- Defaults to stdout.
-
- JavaScript Options
- --nomunge Minify only, do not obfuscate
- --preserve-semi Preserve all semicolons
- --disable-optimizations Disable all micro optimizations
-
-DESCRIPTION
-
- The YUI Compressor is a JavaScript compressor which, in addition to removing
- comments and white-spaces, obfuscates local variables using the smallest
- possible variable name. This obfuscation is safe, even when using constructs
- such as 'eval' or 'with' (although the compression is not optimal is those
- cases) Compared to jsmin, the average savings is around 20%.
-
- The YUI Compressor is also able to safely compress CSS files. The decision
- on which compressor is being used is made on the file extension (js or css)
-
-GLOBAL OPTIONS
-
- -h, --help
- Prints help on how to use the YUI Compressor
-
- --line-break
- Some source control tools don't like files containing lines longer than,
- say 8000 characters. The linebreak option is used in that case to split
- long lines after a specific column. It can also be used to make the code
- more readable, easier to debug (especially with the MS Script Debugger)
- Specify 0 to get a line break after each semi-colon in JavaScript, and
- after each rule in CSS.
-
- --type js|css
- The type of compressor (JavaScript or CSS) is chosen based on the
- extension of the input file name (.js or .css) This option is required
- if no input file has been specified. Otherwise, this option is only
- required if the input file extension is neither 'js' nor 'css'.
-
- --charset character-set
- If a supported character set is specified, the YUI Compressor will use it
- to read the input file. Otherwise, it will assume that the platform's
- default character set is being used. The output file is encoded using
- the same character set.
-
- -o outfile
-
- Place output in file outfile. If not specified, the YUI Compressor will
- default to the standard output, which you can redirect to a file.
- Supports a filter syntax for expressing the output pattern when there are
- multiple input files. ex:
- java -jar yuicompressor.jar -o '.css$:-min.css' *.css
- ... will minify all .css files and save them as -min.css
-
- -v, --verbose
- Display informational messages and warnings.
-
-JAVASCRIPT ONLY OPTIONS
-
- --nomunge
- Minify only. Do not obfuscate local symbols.
-
- --preserve-semi
- Preserve unnecessary semicolons (such as right before a '}') This option
- is useful when compressed code has to be run through JSLint (which is the
- case of YUI for example)
-
- --disable-optimizations
- Disable all the built-in micro optimizations.
-
-NOTES
-
- + If no input file is specified, it defaults to stdin.
-
- + Supports wildcards for specifying multiple input files.
-
- + The YUI Compressor requires Java version >= 1.5.
-
- + It is possible to prevent a local variable, nested function or function
- argument from being obfuscated by using "hints". A hint is a string that
- is located at the very beginning of a function body like so:
-
- function fn (arg1, arg2, arg3) {
- "arg2:nomunge, localVar:nomunge, nestedFn:nomunge";
-
- ...
- var localVar;
- ...
-
- function nestedFn () {
- ....
- }
-
- ...
- }
-
- The hint itself disappears from the compressed file.
-
- + C-style comments starting with /*! are preserved. This is useful with
- comments containing copyright/license information. For example:
-
- /*!
- * TERMS OF USE - EASING EQUATIONS
- * Open source under the BSD License.
- * Copyright 2001 Robert Penner All rights reserved.
- */
-
- becomes:
-
- /*
- * TERMS OF USE - EASING EQUATIONS
- * Open source under the BSD License.
- * Copyright 2001 Robert Penner All rights reserved.
- */
-
-MODIFIED RHINO FILES
-
- YUI Compressor uses a modified version of the Rhino library
- (http://www.mozilla.org/rhino/) The changes were made to support
- JScript conditional comments, preserved comments, unescaped slash
- characters in regular expressions, and to allow for the optimization
- of escaped quotes in string literals.
-
-COPYRIGHT AND LICENSE
-
- Copyright (c) 2011 Yahoo! Inc. All rights reserved.
- The copyrights embodied in the content of this file are licensed
- by Yahoo! Inc. under the BSD (revised) open source license.

0 comments on commit 8858454

Please sign in to comment.