XML Config At-A-Glance

Click on a node or attribute name for details.

<root xmlns="urn:ChirpyConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Settings>
        <Setting
            key=""
            value="" />
    </Settings>

    <FileGroup
        Name="string"
        Path="string"
        Minify="true|false|both"
        Debug="true|false"
        Find="string|regex"
        Replace="string">

        <File
            Path="string"
            Minify="true|false|both"
            MinifyType="MinifyType"
            Engine="Less|<nothing>"
            CustomArgument="string"
            Find="string|regex"
            Replace="string" />
        
        <Folder
            Pattern="string"
            Minify="true|false"
            Deep="true|false"
            Find="string|regex"
            Replace="string" />
        
        <Raw
            Type="CSS|JS">
            <!-- Place your CSS or JS code here. -->
        </Raw>

    </FileGroup>
</root>

Element and Attribute Overview

  • Element: root
    This is the root node of the XML config file. It is required and must occur exactly once.

    • Element: Settings
      This is the container class for the Chirpy settings. It is not required, but must only occur once if used. Settings specified here will override the defaults set in the main Chirpy configuration window.

      • Element: Setting
        This is the node that contains an individual setting. It has two required attributes:
        key: The name of the setting. See the list below for a list of available settings and their values.
        value: The value of the setting.
    • Element: FileGroup
      This element defines a group of files that will be combined into one "compiled" file. This element is optional, and can occur an unlimited number of times.

      Child nodes in the file group are processed in the order they appear. This way if you have files that need to be included in a certain order this is possible.

      The following attributes are available:

      Name: The name of the "compiled" file. The file will be located in the same folder as the config file (or if a path is specified, the path must be relative to the location of the config file). Either Name or Path must be specified or an error will be thrown.

      Path: The name and path of the "compiled" file. This value will override the Name attribute (i.e. if both are specified, Name will be ignored). Paths are relative to the root of the Visual Studio project. Either Name or Path must be specified or an error will be thrown.

      Authors Note: As far as I can tell, Path is relative to the Visual Studio project root. I have not experimented to see if that is actually the case. Perhaps one of the developers can verify this.

      Minify: A value indicating if files in the file group should be minified or simply combined into a single file. Possible values are true, false, or both. If both is specified, then the files will be combined into an uncompiled file with the name specified in Name or Path, and a compiled version of the file will also be generated with ".min" (or the configured suffix) suffixed to the end of the file name (before the file extension). If this attribute is omitted, a true value is assumed.

      Debug: Indicates if debug information should be included in uncompiled versions of files.

      Authors Note: In older versions of Chirpy, this was what determined if an uncompiled version of the file group's file was generated. Currently it appears that all this option does is insert a comment at the top of each file in the combined file stating what options were used and the name and path of the original file.

      Find: A string or a regular expression search pattern to search for in the code before it is processed (compiled). Used in conjunction with Replace to perform search and replace operations on code files during the compilation process. For file groups, the search and replace operation is performed after all the files are combined into one but before they are minified.

      Authors Note: This attribute seems to be ignored (for the FileGroup node only) by source code currently. The FileGroupXml class never loads it's value from the config file.

      Replace: A string to replace values found by the Find attribute in the code before it is processed (compiled). Used in conjunction with Find to perform search and replace operations on code files during the compilation process. For file groups, the search and replace operation is performed after all the files are combined into one but before they are minified.

      Authors Note: This attribute seems to be ignored (for the FileGroup node only) by source code currently. The FileGroupXml class never loads it's value from the config file.

      • Element: File
        This element is used to include a single file in a FileGroup. This element is optional and can occur an unlimited number of times.

        The following attributes are available:

        Path: The path to the file to include in the file group. Can be either an absolute path or a path relative to the location of the config file. This attribute is required.

        Minify: A Boolean value indicating if the file should be minified before it is combined with other files in the file group. If this attribute is omitted, false is assumed.

        Authors Note: Currently, if true is specified, the file code appears to be compiled twice: once when iterating through the files (the file contents is compiled and then appended to the code for the file group) and then again when the file group's code is compiled (unless the file group has a Minify attribute value of false). This doesn't appear to affect the code, although it may affect it when using the advanced optimizations mode for the Google Closure compiler.

        MinifyType: Allows you to specify what compiler to use to compress the file. This attribute is only used if the Minify attribute is true. If omitted, the default compiler is used (specified in the Chirpy options).

        See MinifyType below for a list of possible values.

        Engine: Allows a custom parser engine to be specified. Currently only the {less} CSS engine is supported. If omitted, no custom engine is used.

        CustomArgument: Allows custom arguments to be passed to the compiler engine. This attribute is only used if the Minify attribute is true.

        Find: Same as Find for the FileGroup node, but allows a search and replace operation that is limited to the contents of this file only.

        Replace: Same as Replace for the FileGroup node, but allows a search and replace operation that is limited to the contents of this file only.

      • Element: Folder
        This element is used to include a folder of files in a FileGroup. This element is optional and can occur an unlimited number of times.

        The following attributes are available:

        Pattern: The path of the folder to include the files of. The path must be either an absolute path or a path relative to the config file. The wildcard characters "*" and "?" can be used to specify patterns in the file names of the files within the folder to include. The "*" wildcard will match zero or more characters and the "?" wildcard character will match exactly zero or one character. For example, "*.js" would include all files with the ".js" extension.

        This attribute is required. See the remarks section of http://msdn.microsoft.com/en-us/library/ms143316 for more details on wildcard support and examples.

        Deep: A value indicating if files within sub-folders should also be processed. If omitted, true is assumed.

        Minify: A Boolean value indicating if the files within the folder should be minified before they are combined with other files in the file group. If this attribute is omitted, false is assumed.

        Authors Note: Currently, if true is specified, the file code appears to be compiled twice: once when iterating through the files (the file contents is compiled and then appended to the code for the file group) and then again when the file group's code is compiled (unless the file group has a Minify attribute value of false). This doesn't appear to affect the code, although it may affect it when using the advanced optimizations mode for the Google Closure compiler.

        Find: Same as Find for the FileGroup node, but allows a search and replace operation that is limited to the files within this folder only.

        Replace: Same as Replace for the FileGroup node, but allows a search and replace operation that is limited to the files within this folder only.

      • Element: Raw
        This element is used to include raw code in a FileGroup that is not in a file. This element is optional and can occur an unlimited number of times.

        The following attributes are available:

        Type: Specifies the code type contained in the node. Possible values are "CSS" for cascading style sheet code, or "JS" for JavaScript code. If omitted, "JS" is assumed.

List of Settings

And their possible values.

  • ChirpDeanEdwardsPackerFile: <var>string</var>
  • ChirpDeanEdwardsPackerFastDecode: <var>true</var> | <var>false</var>
  • ChirpDeanEdwardsPackerSpecialChars: <var>true</var> | <var>false</var>
  • ChirpDeanEdwardsPackerEncoding: <var>DeanEdwardsPackerEncoding</var>
  • ChirpJsFile: <var>string</var>
  • ChirpSimpleJsFile: <var>string</var>
  • ChirpWhiteSpaceJsFile: <var>string</var>
  • ChirpSassFile: <var>string</var>
  • ChirpMSAjaxSassFile: <var>string</var>
  • ChirpHybridSassFile: <var>string</var>
  • ChirpMichaelAshSassFile: <var>string</var>
  • ChirpScssFile: <var>string</var>
  • ChirpMSAjaxScssFile: <var>string</var>
  • ChirpHybridScssFile: <var>string</var>
  • ChirpMichaelAshScssFile: <var>string</var>
  • ChirpYUIJsFile: <var>string</var>
  • ChirpGctJsFile: <var>string</var>
  • ChirpMSAjaxJsFile: <var>string</var>
  • ChirpPartialViewFile: <var>string</var>
  • ChirpViewFile: <var>string</var>
  • ChirpRazorCSViewFile: <var>string</var>
  • ChirpRazorVBViewFile: <var>string</var>
  • ChirpLessFile: <var>string</var>
  • LessSyntaxHighlighting: <var>true</var> | <var>false</var>
  • ChirpMSAjaxLessFile: <var>string</var>
  • ChirpHybridLessFile: <var>string</var>
  • ChirpMichaelAshLessFile: <var>string</var>
  • ChirpUglifyJsFile: <var>string</var>
  • ChirpCoffeeScriptFile: <var>string</var>
  • ChirpSimpleCoffeeScriptFile: <var>string</var>
  • ChirpWhiteSpaceCoffeeScriptFile: <var>string</var>
  • ChirpYUICoffeeScriptFile: <var>string</var>
  • ChirpGctCoffeeScriptFile: <var>string</var>
  • ChirpMSAjaxCoffeeScriptFile: <var>string</var>
  • ChirpUglifyCoffeeScriptFile: <var>string</var>
  • ChirpCssFile: <var>string</var>
  • ChirpMSAjaxCssFile: <var>string</var>
  • ChirpHybridCssFile: <var>string</var>
  • ChirpMichaelAshCssFile: <var>string</var>
  • ChirpConfigFile: <var>string</var>
  • DefaultCssMinifier: <var>MinifyType</var>
  • DefaultJavaScriptMinifier: <var>MinifyType</var>
  • DotLessCompress: <var>true</var> | <var>false</var> <!--
  • AllLessExtensions: comma delimited string
  • AllExtensions: comma delimited string
  • JsHintOptions: <var>JSHintOptions</var>
  • CssLintOptions: <var>CSSLintOptions</var>
  • CoffeeScriptOptions: <var>CoffeeScriptOptions</var>
  • MsJsSettings: <var>Microsoft.Ajax.Utilities.CodeSettings</var>
  • MsCssSettings: <var>Microsoft.Ajax.Utilities.CssSettings</var>
  • YuiCssSettings: <var>YuiCssSettings</var>
  • YuiJsSettings: <var>YuiJsSettings</var> -->
  • T4RunAsBuild: <var>true</var> | <var>false</var>
  • T4RunAsBuildTemplate: <var>string</var>
  • SmartRunT4MVC: <var>true</var> | <var>false</var>
  • RunJSHint: <var>true</var> | <var>false</var>
  • RunCSSLint: <var>true</var> | <var>false</var>
  • OutputExtensionJS: <var>string</var>
  • OutputExtensionCSS: <var>string</var>
  • GoogleClosureOffline: <var>true</var> | <var>false</var>
  • GoogleClosureJavaPath: <var>string</var>
  • ShowDetailLog: <var>true</var> | <var>false</var>

Custom Types

DeanEdwardsPackerEncoding
None
Numeric
Mid
Normal
HighAscii
MinifyType
Unspecified: Not set/use default
yui: Yahoo UI compressor
yuiMARE: Yahoo UI with Michael Ash Regex Enhancement
yuiHybrid: Yahoo UI hybrid
gctAdvanced: Google Closure Tools - Advanced
gctSimple: Google Closure Tools - Simple
gctWhiteSpaceOnly: Google Closure Tools - Whitespace only
msAjax: Microsoft Ajax Toolkit
uglify: Uglify.js
jsBeautifier: js Beautifier <!--
JSHintOptions
bitwise: <var>true</var> | <var>false</var> - Prohibit the use of bitwise operators.
boss: <var>true</var> | <var>false</var> - Allow assignments inside if/for/while/do.
curly: <var>true</var> | <var>false</var> - Require curly braces around all blocks.
debug: <var>true</var> | <var>false</var> - Allow debugger statements.
eqeqeq: <var>true</var> | <var>false</var> - Require that you use === and !== for all comparisons
evil: <var>true</var> | <var>false</var> - Allow the use of eval.
forin: <var>true</var> | <var>false</var> - Disallow the use of for in without hasOwnProperty.
immed: <var>true</var> | <var>false</var> - Require immediate invocations to be wrapped in parens.
laxbreak: <var>true</var> | <var>false</var> - Not check line breaks.
maxerr: <var>integer</var> | <var>null</var> - Maximum number of errors before stops processing your source.
newcap: <var>true</var> | <var>false</var> - Require that you capitalize all constructor functions.
noarg: <var>true</var> | <var>false</var> - Prohibit the use of arguments.caller and arguments.callee.
noempty: <var>true</var> | <var>false</var> - Prohibit the use of empty blocks.
nonew: <var>true</var> | <var>false</var> - Prohibit the use of constructors for side-effects.
nomen: <var>true</var> | <var>false</var> - Disallow the use of initial or trailing underbars in names.
onevar: <var>true</var> | <var>false</var> - Allow only one var statement per function.
passfail: <var>true</var> | <var>false</var> - Stop on the first error it encounter.
plusplus: <var>true</var> | <var>false</var> - Prohibit the use of increment and decrement operators.
regexp: <var>true</var> | <var>false</var> - Prohibit the use of unsafe in regular expressions.
undef: <var>true</var> | <var>false</var> - Require all non-global variables be declared before they are used.
sub: <var>true</var> | <var>false</var> - Tolerate all forms of subscript notation.
strict: <var>true</var> | <var>false</var> - Require you to use "use strict"; pragma.
white: <var>true</var> | <var>false</var> - Check your code against strict whitespace rules.
CSSLintOptions
AdjoiningClasses: <var>true</var> | <var>false</var> - Don't use adjoining classes.
Import: <var>true</var> | <var>false</var> - Don't use @import.
Ids: <var>true</var> | <var>false</var> - Don't use IDs in selectors.
EmptyRules: <var>true</var> | <var>false</var> - Remove empty rules.
DisplayPropertyGrouping: <var>true</var> | <var>false</var> - Use correct properties for a display.
Floats: <var>true</var> | <var>false</var> - Don't use too many floats.
FontFaces: <var>true</var> | <var>false</var> - Don't use too many web fonts.
FontSizes: <var>true</var> | <var>false</var> - Don't use too may font-size declarations.
QualifiedHeadings: <var>true</var> | <var>false</var> - Don't qualify headings.
UniqueHeadings: <var>true</var> | <var>false</var> - Heading styles should only be defined once.
ZeroUnits: <var>true</var> | <var>false</var> - Zero values don't need units.
VendorPrefix: <var>true</var> | <var>false</var> - Vendor prefixed properties should also have the standard.
Gradients: <var>true</var> | <var>false</var> - CSS gradients require all browser prefixes.
RegexSelectors: <var>true</var> | <var>false</var> - Avoid selectors that look like regular expressions.
BoxModel: <var>true</var> | <var>false</var> - Beware of broken box models.
Important: <var>true</var> | <var>false</var> - Don't use !important.
CompatibleVendorPrefixes: <var>true</var> | <var>false</var> - Include all compatible vendor prefixes.
DuplicateProperties: <var>true</var> | <var>false</var> - Avoid duplicate properties.
CoffeeScriptOptions
bare: <var>true</var> | <var>false</var> - Compile the JavaScript without the top-level function safety wrapper.
YuiCssSettings
ColumnWidth: <var>integer</var> - Number of characters before text wrapping occurs.
RemoveComments: <var>true</var> | <var>false</var> - Indicates if comments should be stripped.
YuiJsSettings
IsObfuscateJavascript: <var>true</var> | <var>false</var>
PreserveAllSemiColons: <var>true</var> | <var>false</var>
DisableOptimizations: <var>true</var> | <var>false</var>
LineBreakPosition: <var>integer</var>
IgnoreEval: <var>true</var> | <var>false</var>-->

Last edited Oct 6, 2012 at 5:28 PM by ploufs, version 1

Comments

ploufs Oct 6, 2012 at 5:30 PM 
Create by : flamewave4
http://chirpy.codeplex.com/workitem/153