< Back
New-MarkdownHelp
Post
NAME New-MarkdownHelp
SYNOPSIS
Creates help in markdown format.
SYNTAX
New-MarkdownHelp -Command <String[]> [-Encoding <Encoding>] [-Force] [-Metadata <Hashtable>] [-NoMetadata]
[-OnlineVersionUrl <String>] -OutputFolder <String> [-AlphabeticParamsOrder] [-UseFullTypeName] [-Session
<PSSession>] [-ExcludeDontShow] [<CommonParameters>]
New-MarkdownHelp [-Encoding <Encoding>] [-Force] [-FwLink <String>] [-HelpVersion <String>] [-Locale <String>]
[-Metadata <Hashtable>] -Module <String[]> [-NoMetadata] -OutputFolder <String> [-WithModulePage]
[-AlphabeticParamsOrder] [-UseFullTypeName] [-Session <PSSession>] [-ModulePagePath <String>] [-ExcludeDontShow]
[<CommonParameters>]
New-MarkdownHelp [-Encoding <Encoding>] [-Force] [-FwLink <String>] [-HelpVersion <String>] [-Locale <String>]
-MamlFile <String[]> [-Metadata <Hashtable>] [-ModuleGuid <String>] [-ModuleName <String>] [-NoMetadata]
-OutputFolder <String> [-WithModulePage] [-ConvertNotesToList] [-ConvertDoubleDashLists] [-AlphabeticParamsOrder]
[-UseFullTypeName] [-ModulePagePath <String>] [-ExcludeDontShow] [<CommonParameters>]
DESCRIPTION
The New-MarkdownHelp cmdlet creates help in markdown format based on a module, a command, or a file in Microsoft
Assistance Markup Language (MAML) format.
PARAMETERS
-Command <String[]>
Specifies the name of a command in your current session. This can be any command supported by Windows
PowerShell help, such as a cmdlet or a function.
Required? true
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Encoding <Encoding>
Specifies the character encoding for your markdown help files. Specify a System.Text.Encoding object. For more
information, see Character Encoding in the .NET Framework
(https://msdn.microsoft.com/en-us/library/ms404377.aspx)in the Microsoft Developer Network. For example, you
can control Byte Order Mark (BOM) preferences. For more information, see Using PowerShell to write a file in
UTF-8 without the BOM
(http://stackoverflow.com/questions/5596 ... ut-the-bom)at the
Stack Overflow community.
Required? false
Position? named
Default value UTF8 without BOM
Accept pipeline input? False
Accept wildcard characters? false
-Force [<SwitchParameter>]
Indicates that this cmdlet overwrites existing files that have the same names.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-FwLink <String>
Specifies the forward link for the module page. This value is required for .cab file creation. This value is
used as markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-HelpVersion <String>
Specifies the version of your help. This value is required for .cab file creation. This value is used as
markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Locale <String>
Specifies the locale of your help. This value is required for .cab file creation. This value is used as
markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-MamlFile <String[]>
Specifies an array of paths path of MAML .xml help files.
Required? true
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Metadata <Hashtable>
Specifies metadata that this cmdlet includes in the help markdown files as a hash table of string-to-sting
key-value pairs. This cmdlet writes the metadata in the header of each markdown help file.
The New-ExternalHelp cmdlet does not use this metadata. External tools can use this metadata.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Module <String[]>
Specifies an array of names of modules for which this cmdlet creates help in markdown format.
Required? true
Position? named
Default value None
Accept pipeline input? True (ByValue)
Accept wildcard characters? false
-ModuleGuid <String>
Specifies the GUID of the module of your help. This value is required for .cab file creation. This value is
used as markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ModuleName <String>
Specifies the name of the module of your help. This value is required for .cab file creation. This value is
used as markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-NoMetadata [<SwitchParameter>]
Indicates that this cmdlet does not write any metadata in the generated markdown.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-OnlineVersionUrl <String>
Specifies the URL where the updatable help function downloads updated help. If you do not specify a value, the
cmdlet uses an empty string.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-OutputFolder <String>
Specifies the path of the folder where this cmdlet creates the markdown help files.
Required? true
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-WithModulePage [<SwitchParameter>]
Indicates that this cmdlet creates a module page in the output folder. This file has the name that the
ModuleName parameter specifies. If you did not specify that parameter, the cmdlet supplies the default name
MamlModule. You can overwrite this setting by using ModulePagePath which allows you to define different path
for module page
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-ConvertNotesToList [<SwitchParameter>]
Indicates that this cmldet formats multiple paragraph items in the NOTES section as single list items. This
output follows TechNet formatting.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-ConvertDoubleDashLists [<SwitchParameter>]
Indicates that this cmldet converts double-hyphen list bullets into single-hyphen bullets. Double-hyphen lists
are common in Windows PowerShell documentation. Markdown accepts single-hyphens for lists.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-AlphabeticParamsOrder [<SwitchParameter>]
Order parameters alphabetically by name in PARAMETERS section. There are 5 exceptions: -Confirm, -WhatIf,
-IncludeTotalCount, -Skip, and -First parameters will be the last. These parameters are common and hence have
well-defined behavior.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-UseFullTypeName [<SwitchParameter>]
Indicates that the target document will use a full type name instead of a short name for parameters.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Session <PSSession>
Provides support for remote commands. Pass the session that you used to create the commands with
`Import-PSSession`. This is required to get accurate parameters metadata from the remote session.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ModulePagePath <String>
When WithModule parameter is used by default it puts .md file in same location as all other docs. With this
parameter you can specify new name/location providing better placement options.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ExcludeDontShow [<SwitchParameter>]
Exclude the parameters marked with `DontShow` in the parameter attribute from the help content.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
String[]
You can pipe module names to this cmdlet. These are the modules from which this cmdlet creates help markdown.
OUTPUTS
System.IO.FileInfo[]
This cmdlet returns a FileInfo[] object for created files.
NOTES
------------ Example 1: Create help from a command ------------
PS C:\\> function Command03 {param([string]$Value)}
PS C:\\> New-MarkdownHelp -Command "Command03" -OutputFolder ".\\docs"
Directory: D:\\Working\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:53 PM 664 Command03.md
The first command creates a function named Command03 by using standard Windows PowerShell syntax.
The second command creates help for that stub function in the .\\docs folder.
------------- Example 2: Create help from a module -------------
PS C:\\> Import-Module -Module "PlatyPS"
PS C:\\> New-MarkdownHelp -Module "PlatyPS" -OutputFolder ".\\docs" -Force
Directory: D:\\Working\\PlatyPS\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:54 PM 1496 Get-HelpPreview.md
-a---- 5/22/2016 6:54 PM 3208 Get-MarkdownMetadata.md
-a---- 5/22/2016 6:54 PM 3059 New-ExternalHelp.md
-a---- 5/22/2016 6:54 PM 2702 New-ExternalHelpCab.md
-a---- 5/22/2016 6:54 PM 6234 New-MarkdownHelp.md
-a---- 5/22/2016 6:54 PM 2346 Update-MarkdownHelp.md
-a---- 5/22/2016 6:54 PM 1633 Update-MarkdownHelpModule.md
-a---- 5/22/2016 6:54 PM 1630 Update-MarkdownHelpSchema.md
The first command loads the PlatyPS module into the current session by using the Import-Module cmdlet.
The second command creates help for all the cmdlets in the PlatyPS module. It stores them in the .\\docs folder.
This command specifies the Force parameter. Therefore, it overwrites existing help markdown files that have the
same name.
------ Example 3: Create help from an existing MAML file ------
PS C:\\> New-MarkdownHelp -OutputFolder "D:\\PSReadline\\docs" -MamlFile 'C:\\Program
Files\\WindowsPowerShell\\Modules\\PSReadline\\1.1\\en-US\\Microsoft.PowerShell.PSReadline.dll-help.xml'
Directory: D:\\PSReadline\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:56 PM 7443 Get-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:56 PM 3586 Get-PSReadlineOption.md
-a---- 5/22/2016 6:56 PM 1549 Remove-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:56 PM 5947 Set-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:56 PM 15320 Set-PSReadlineOption.md
This command creates help in markdown format for the specified help MAML file. You do not have to load the module,
as in the previous example. If the module is already loaded, this command creates help based on the MAML file, not
on the currently installed module.
Example 4: Create help from an existing MAML file for use in a CAB file
PS C:\\> New-MarkdownHelp -OutputFolder "D:\\PSReadline\\docs" -MamlFile 'C:\\Program
Files\\WindowsPowerShell\\Modules\\PSReadline\\1.1\\en-US\\Microsoft.PowerShell.PSReadline.dll-help.xml' -WithModulePage
-Force -ModuleName "PSReadLine"
Directory: D:\\PSReadline\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:59 PM 7443 Get-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:59 PM 3586 Get-PSReadlineOption.md
-a---- 5/22/2016 6:59 PM 1549 Remove-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:59 PM 5947 Set-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:59 PM 15320 Set-PSReadlineOption.md
-a---- 5/22/2016 6:59 PM 942 PSReadLine.md
This command creates help in markdown format for the specified help MAML file, as in the previous example. This
command also specifies the WithModulePage parameter and the ModuleName parameter. The command creates a file named
PSReadLine.md that contains links to the other markdown files in this module and metadata that can be used to
create .cab files.
RELATED LINKS
Online Version: https://github.com/PowerShell/platyPS/b ... ownHelp.md
Character Encoding in the .NET Framework https://msdn.microsoft.com/en-us/library/ms404377.aspx
Using PowerShell to write a file in UTF-8 without the BOM
http://stackoverflow.com/questions/5596 ... ut-the-bom
SYNOPSIS
Creates help in markdown format.
SYNTAX
New-MarkdownHelp -Command <String[]> [-Encoding <Encoding>] [-Force] [-Metadata <Hashtable>] [-NoMetadata]
[-OnlineVersionUrl <String>] -OutputFolder <String> [-AlphabeticParamsOrder] [-UseFullTypeName] [-Session
<PSSession>] [-ExcludeDontShow] [<CommonParameters>]
New-MarkdownHelp [-Encoding <Encoding>] [-Force] [-FwLink <String>] [-HelpVersion <String>] [-Locale <String>]
[-Metadata <Hashtable>] -Module <String[]> [-NoMetadata] -OutputFolder <String> [-WithModulePage]
[-AlphabeticParamsOrder] [-UseFullTypeName] [-Session <PSSession>] [-ModulePagePath <String>] [-ExcludeDontShow]
[<CommonParameters>]
New-MarkdownHelp [-Encoding <Encoding>] [-Force] [-FwLink <String>] [-HelpVersion <String>] [-Locale <String>]
-MamlFile <String[]> [-Metadata <Hashtable>] [-ModuleGuid <String>] [-ModuleName <String>] [-NoMetadata]
-OutputFolder <String> [-WithModulePage] [-ConvertNotesToList] [-ConvertDoubleDashLists] [-AlphabeticParamsOrder]
[-UseFullTypeName] [-ModulePagePath <String>] [-ExcludeDontShow] [<CommonParameters>]
DESCRIPTION
The New-MarkdownHelp cmdlet creates help in markdown format based on a module, a command, or a file in Microsoft
Assistance Markup Language (MAML) format.
PARAMETERS
-Command <String[]>
Specifies the name of a command in your current session. This can be any command supported by Windows
PowerShell help, such as a cmdlet or a function.
Required? true
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Encoding <Encoding>
Specifies the character encoding for your markdown help files. Specify a System.Text.Encoding object. For more
information, see Character Encoding in the .NET Framework
(https://msdn.microsoft.com/en-us/library/ms404377.aspx)in the Microsoft Developer Network. For example, you
can control Byte Order Mark (BOM) preferences. For more information, see Using PowerShell to write a file in
UTF-8 without the BOM
(http://stackoverflow.com/questions/5596 ... ut-the-bom)at the
Stack Overflow community.
Required? false
Position? named
Default value UTF8 without BOM
Accept pipeline input? False
Accept wildcard characters? false
-Force [<SwitchParameter>]
Indicates that this cmdlet overwrites existing files that have the same names.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-FwLink <String>
Specifies the forward link for the module page. This value is required for .cab file creation. This value is
used as markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-HelpVersion <String>
Specifies the version of your help. This value is required for .cab file creation. This value is used as
markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Locale <String>
Specifies the locale of your help. This value is required for .cab file creation. This value is used as
markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-MamlFile <String[]>
Specifies an array of paths path of MAML .xml help files.
Required? true
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Metadata <Hashtable>
Specifies metadata that this cmdlet includes in the help markdown files as a hash table of string-to-sting
key-value pairs. This cmdlet writes the metadata in the header of each markdown help file.
The New-ExternalHelp cmdlet does not use this metadata. External tools can use this metadata.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Module <String[]>
Specifies an array of names of modules for which this cmdlet creates help in markdown format.
Required? true
Position? named
Default value None
Accept pipeline input? True (ByValue)
Accept wildcard characters? false
-ModuleGuid <String>
Specifies the GUID of the module of your help. This value is required for .cab file creation. This value is
used as markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ModuleName <String>
Specifies the name of the module of your help. This value is required for .cab file creation. This value is
used as markdown header metadata in the module page.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-NoMetadata [<SwitchParameter>]
Indicates that this cmdlet does not write any metadata in the generated markdown.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-OnlineVersionUrl <String>
Specifies the URL where the updatable help function downloads updated help. If you do not specify a value, the
cmdlet uses an empty string.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-OutputFolder <String>
Specifies the path of the folder where this cmdlet creates the markdown help files.
Required? true
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-WithModulePage [<SwitchParameter>]
Indicates that this cmdlet creates a module page in the output folder. This file has the name that the
ModuleName parameter specifies. If you did not specify that parameter, the cmdlet supplies the default name
MamlModule. You can overwrite this setting by using ModulePagePath which allows you to define different path
for module page
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-ConvertNotesToList [<SwitchParameter>]
Indicates that this cmldet formats multiple paragraph items in the NOTES section as single list items. This
output follows TechNet formatting.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-ConvertDoubleDashLists [<SwitchParameter>]
Indicates that this cmldet converts double-hyphen list bullets into single-hyphen bullets. Double-hyphen lists
are common in Windows PowerShell documentation. Markdown accepts single-hyphens for lists.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-AlphabeticParamsOrder [<SwitchParameter>]
Order parameters alphabetically by name in PARAMETERS section. There are 5 exceptions: -Confirm, -WhatIf,
-IncludeTotalCount, -Skip, and -First parameters will be the last. These parameters are common and hence have
well-defined behavior.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-UseFullTypeName [<SwitchParameter>]
Indicates that the target document will use a full type name instead of a short name for parameters.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Session <PSSession>
Provides support for remote commands. Pass the session that you used to create the commands with
`Import-PSSession`. This is required to get accurate parameters metadata from the remote session.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ModulePagePath <String>
When WithModule parameter is used by default it puts .md file in same location as all other docs. With this
parameter you can specify new name/location providing better placement options.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ExcludeDontShow [<SwitchParameter>]
Exclude the parameters marked with `DontShow` in the parameter attribute from the help content.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
String[]
You can pipe module names to this cmdlet. These are the modules from which this cmdlet creates help markdown.
OUTPUTS
System.IO.FileInfo[]
This cmdlet returns a FileInfo[] object for created files.
NOTES
------------ Example 1: Create help from a command ------------
PS C:\\> function Command03 {param([string]$Value)}
PS C:\\> New-MarkdownHelp -Command "Command03" -OutputFolder ".\\docs"
Directory: D:\\Working\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:53 PM 664 Command03.md
The first command creates a function named Command03 by using standard Windows PowerShell syntax.
The second command creates help for that stub function in the .\\docs folder.
------------- Example 2: Create help from a module -------------
PS C:\\> Import-Module -Module "PlatyPS"
PS C:\\> New-MarkdownHelp -Module "PlatyPS" -OutputFolder ".\\docs" -Force
Directory: D:\\Working\\PlatyPS\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:54 PM 1496 Get-HelpPreview.md
-a---- 5/22/2016 6:54 PM 3208 Get-MarkdownMetadata.md
-a---- 5/22/2016 6:54 PM 3059 New-ExternalHelp.md
-a---- 5/22/2016 6:54 PM 2702 New-ExternalHelpCab.md
-a---- 5/22/2016 6:54 PM 6234 New-MarkdownHelp.md
-a---- 5/22/2016 6:54 PM 2346 Update-MarkdownHelp.md
-a---- 5/22/2016 6:54 PM 1633 Update-MarkdownHelpModule.md
-a---- 5/22/2016 6:54 PM 1630 Update-MarkdownHelpSchema.md
The first command loads the PlatyPS module into the current session by using the Import-Module cmdlet.
The second command creates help for all the cmdlets in the PlatyPS module. It stores them in the .\\docs folder.
This command specifies the Force parameter. Therefore, it overwrites existing help markdown files that have the
same name.
------ Example 3: Create help from an existing MAML file ------
PS C:\\> New-MarkdownHelp -OutputFolder "D:\\PSReadline\\docs" -MamlFile 'C:\\Program
Files\\WindowsPowerShell\\Modules\\PSReadline\\1.1\\en-US\\Microsoft.PowerShell.PSReadline.dll-help.xml'
Directory: D:\\PSReadline\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:56 PM 7443 Get-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:56 PM 3586 Get-PSReadlineOption.md
-a---- 5/22/2016 6:56 PM 1549 Remove-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:56 PM 5947 Set-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:56 PM 15320 Set-PSReadlineOption.md
This command creates help in markdown format for the specified help MAML file. You do not have to load the module,
as in the previous example. If the module is already loaded, this command creates help based on the MAML file, not
on the currently installed module.
Example 4: Create help from an existing MAML file for use in a CAB file
PS C:\\> New-MarkdownHelp -OutputFolder "D:\\PSReadline\\docs" -MamlFile 'C:\\Program
Files\\WindowsPowerShell\\Modules\\PSReadline\\1.1\\en-US\\Microsoft.PowerShell.PSReadline.dll-help.xml' -WithModulePage
-Force -ModuleName "PSReadLine"
Directory: D:\\PSReadline\\docs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/22/2016 6:59 PM 7443 Get-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:59 PM 3586 Get-PSReadlineOption.md
-a---- 5/22/2016 6:59 PM 1549 Remove-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:59 PM 5947 Set-PSReadlineKeyHandler.md
-a---- 5/22/2016 6:59 PM 15320 Set-PSReadlineOption.md
-a---- 5/22/2016 6:59 PM 942 PSReadLine.md
This command creates help in markdown format for the specified help MAML file, as in the previous example. This
command also specifies the WithModulePage parameter and the ModuleName parameter. The command creates a file named
PSReadLine.md that contains links to the other markdown files in this module and metadata that can be used to
create .cab files.
RELATED LINKS
Online Version: https://github.com/PowerShell/platyPS/b ... ownHelp.md
Character Encoding in the .NET Framework https://msdn.microsoft.com/en-us/library/ms404377.aspx
Using PowerShell to write a file in UTF-8 without the BOM
http://stackoverflow.com/questions/5596 ... ut-the-bom