CB-11196: Converting mark elements in docs to platform logos

Changes the XML references to display platform logos rather
than lists of highlighted platform names. Also adds new logos
for the OS X and Browser platforms that will appear both in
the docs and in plugin search.

This closes #593


Project: http://git-wip-us.apache.org/repos/asf/cordova-docs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-docs/commit/e0fcadc8
Tree: http://git-wip-us.apache.org/repos/asf/cordova-docs/tree/e0fcadc8
Diff: http://git-wip-us.apache.org/repos/asf/cordova-docs/diff/e0fcadc8

Branch: refs/heads/master
Commit: e0fcadc8d662b66031dff5db5d692cde7f9ef980
Parents: 2758815
Author: Richard Knoll <richard.b.kn...@gmail.com>
Authored: Tue May 3 13:40:42 2016 -0700
Committer: Richard Knoll <richard.b.kn...@gmail.com>
Committed: Fri May 6 16:34:25 2016 -0700

----------------------------------------------------------------------
 doc/docs-STYLEGUIDE.md                       |  28 +-
 www/docs/en/dev/config_ref/index.md          | 150 +++----
 www/docs/en/dev/plugin_ref/spec.md           |  56 +--
 www/static/css-src/_docs.scss                |  38 +-
 www/static/css-src/_plugins.scss             |  22 +-
 www/static/img/platform-logos-all-sprite.svg | 484 +++++++++++++---------
 www/static/js/docs.js                        |  26 ++
 www/static/plugins/supportedplatforms.jsx    |  15 +-
 8 files changed, 488 insertions(+), 331 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e0fcadc8/doc/docs-STYLEGUIDE.md
----------------------------------------------------------------------
diff --git a/doc/docs-STYLEGUIDE.md b/doc/docs-STYLEGUIDE.md
index e9cac3c..abf99ba 100644
--- a/doc/docs-STYLEGUIDE.md
+++ b/doc/docs-STYLEGUIDE.md
@@ -402,19 +402,33 @@ help identify them in Markdown.
 ## XML References
 
 * Each element has it's own section with the following structure:
-  
+
   * Element Name
   * General Description
   * Attributes Table
   * Examples
 
 * If an element has a sub-element, follow a nested structure. The parent 
element becomes a H1 heading, child becomes H2 and so on.
-    
+
+* If an attribute is specific to a set of platforms:
+
+  * Supported platforms should be listed below the attribute name in the same 
table column
+  * Only list platforms if the attribute is platform-specific. Do not list any 
if it is supported by all platforms.
+  * Use the syntax `==platform-name==` when giving a platform. This will be 
converted on the website into a logo for that platform. Valid `platform-name` 
values are:
+    * android
+    * browser
+    * firefoxos
+    * fireos
+    * ios
+    * osx
+    * ubuntu
+    * webos
+    * windows
+
 * Attribute description should include the following in order:
 
   * Default: Use *italics* formatting to provide default value of the attribute
   * Required: Use *italics* formatting to provide if the attribute value is 
required
-  * Platforms supported: Use ==platform-name== to specify different platforms. 
This gets custom highlighted on the website. Default is supported in all 
platforms.
   * Textual Description.
 
 * Below is an example documentation for 'platform' element for plugin.xml. 
'source-file' is a sub-element of the 'platform' element.
@@ -422,7 +436,7 @@ help identify them in Markdown.
   ### platform
     Identifies platforms that have associated native code or require 
modifications to their configuration files. Tools using this specification can 
identify supported platforms and install the code into Cordova projects. 
Plugins without <platform> tags are assumed to be JavaScript-only, and 
therefore installable on any and all platforms.
 
-    Attributes(type) | Description
+    Attributes(type) <br/> <span class="sub-header">Only for platform:</span> 
| Description
     ---------------- | ------------
     name(string) | *Required* <br/> Allowed values: ios, android, 
blackberry10, amazon-fireos, wp8, windows <br/> Identifies a platform as 
supported, associating the element's children with that platform.
 
@@ -436,12 +450,12 @@ help identify them in Markdown.
   #### source-file
     Identifies executable source code that should be installed into a project.
 
-    Attributes (type) | Description
+    Attributes (type) <br/> <span class="sub-header">Only for platform:</span> 
| Description
     ----------------- | ------------
     src(string) | *Required* <br/> Location of the file relative to 
plugin.xml. If the src file can't be found, plugman stops and reverses the 
installation, issues a notification about the problem, and exits with a 
non-zero code.
     target-dir(string) | A directory into which the files should be copied, 
relative to the root of the Cordova project. In practice, this is most 
important for Java-based platforms, where a file in the com.alunny.foo package 
must be located within the com/alunny/foo directory. For platforms where the 
source directory is not important, this attribute should be omitted.
-    framework(boolean) | *Default: false* <br/> ==iOS== <br/> If set to true, 
also adds the specified file as a framework to the project.
-    compiler-flags(string) | ==iOS== <br/> If set, assigns the specified 
compiler flags for the particular source file.
+    framework(boolean) <br/> ==ios== | *Default: false* <br/> If set to true, 
also adds the specified file as a framework to the project.
+    compiler-flags(string) <br/> ==ios== | If set, assigns the specified 
compiler flags for the particular source file.
 
     Examples:
     ```

http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e0fcadc8/www/docs/en/dev/config_ref/index.md
----------------------------------------------------------------------
diff --git a/www/docs/en/dev/config_ref/index.md 
b/www/docs/en/dev/config_ref/index.md
index 7d5878d..114d9fd 100644
--- a/www/docs/en/dev/config_ref/index.md
+++ b/www/docs/en/dev/config_ref/index.md
@@ -58,15 +58,15 @@ platform. See [Customize icons topic](images.html) for more 
information.
 # widget
    Root element of the config.xml document.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ---------------- | ------------
    id(string) | *Required* <br/> Specifies the app's reverse-domain 
identifier, and the `version` its full version number expressed in 
major/minor/patch notation.
    version(string) | *Required* <br/> Full version number expressed in 
major/minor/patch notation.
-   android-versionCode(string) | ==Android== <br/> Alternative version for 
Android. Sets the [version 
code](http://developer.android.com/tools/publishing/versioning.html) for the 
application. See [the Android 
guide](../guide/platforms/android/index.html#setting-the-version-code) for 
information on how this attribute may be modified.
-   ios-CFBundleVersion(string) |  ==iOS== <br/> Alternative version for iOS. 
For further details, see [iOS 
versioning](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102364).
-   osx-CFBundleVersion(string) |  ==OS X== <br/> Alternative version for OS X. 
For further details, see [OS X 
versioning](https://developer.apple.com/library/prerelease/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102364).
-   windows-packageVersion(string) |   ==Windows== <br/> Alternative version 
for Windows. For futher details, see [Windows 
versioning](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx)
-   packageName(string) | *Default: Cordova.Example* <br/> ==Windows== <br/> 
Package name for Windows.
+   android-versionCode(string) <br/> ==Android== | Alternative version for 
Android. Sets the [version 
code](http://developer.android.com/tools/publishing/versioning.html) for the 
application. See [the Android 
guide](../guide/platforms/android/index.html#setting-the-version-code) for 
information on how this attribute may be modified.
+   ios-CFBundleVersion(string) <br/> ==iOS== | Alternative version for iOS. 
For further details, see [iOS 
versioning](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102364).
+   osx-CFBundleVersion(string) <br/> ==OS X== | Alternative version for OS X. 
For further details, see [OS X 
versioning](https://developer.apple.com/library/prerelease/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102364).
+   windows-packageVersion(string) <br/> ==Windows== | Alternative version for 
Windows. For futher details, see [Windows 
versioning](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx)
+   packageName(string) <br/> ==Windows== | *Default: Cordova.Example* <br/>  
Package name for Windows.
    xmlns(string) | *Required* <br/> Namespace for the config.xml document.
    xmlns:cdv(string) | *Required* <br/> Namespace prefix.
 
@@ -115,7 +115,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
 ## author
    Specifies contact information that may appear within app-store lisitngs.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    email(string) | *Required* <br/> Email of the author.
    href(string) | *Required* <br/> Website of the author.
@@ -133,7 +133,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
    Defines the app's starting page in the top-level web assets directory. The 
default value is index.html, which customarily
    appears in a project's top-level ```www``` directory.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    src(string) | *Required* <br/> Defines the app's starting page in the 
top-level web assets directory. The default value is index.html, which 
customarily
    appears in a project's top-level ```www``` directory.
@@ -150,7 +150,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
    Defines the set of external domains the app is allowed to communicate with. 
The default value shown above allows it to access any server.
    See the Domain [Whitelist Guide](../guide/appdev/whitelist/index.html) for 
details.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    origin(string) | *Required* <br/> Defines the set of external domains the 
app is allowed to communicate with.
    The default value shown above allows it to access any server.
@@ -172,7 +172,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
 ## allow-navigation
    Controls which URLs the WebView itself can be navigated to. Applies to 
top-level navigations only.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    href(string) | *Required* <br/> Defines the set of external domains the 
WebView is allowed to navigate to.
    See the cordova-plugin-whitelist 
[cordova-plugin-whitelist][whitelist_navigation] for details.
@@ -190,7 +190,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
 ## allow-intent
    Controls which URLs the app is allowed to ask the system to open. By 
default, no external URLs are allowed.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    href(string) | *Required* <br/> Defines which URLs the app is allowed to 
ask the system to open.
    See the cordova-plugin-whitelist 
[cordova-plugin-whitelist][whitelist_intent] for details.
@@ -207,7 +207,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
 ## engine
    Specifies details about what platform to restore during a prepare.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    name(string) | *Required* <br/> Name of the platform to be restored
    spec(string) | *Required* <br/> Details about the platform to be restored. 
This could be a ```major.minor.patch``` version number, a directory containing 
the platform or a url pointing to a git repository. This information will be 
used to retrieve the platform code to restore from NPM, a local directory or a 
git repository. See [Platform Spec][platform_spec] for further details.
@@ -222,7 +222,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
 ## plugin
    Specifies details about what plugin to restore during a prepare.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    name(string) | *Required* <br/> Name of the plugin to be restored
    spec(string) | *Required* <br/> Details about the plugin to be restored. 
This could be a ```major.minor.patch``` version number, a directory containing 
the plugin or a url pointing to a git repository. This information will be used 
to retrieve the plugin code to restore from NPM, a local directory or a git 
repository. See [Plugin Spec][plugin_spec] for further details.
@@ -238,64 +238,64 @@ platform. See [Customize icons topic](images.html) for 
more information.
    Sets various options as pairs of name/value attributes. Each preference's 
name is case-insensitive. Many preferences are unique to specific platforms,
    and will be indicated as such.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
-   AllowInlineMediaPlayback(boolean) | *Default: false* <br/> ==iOS== <br/> 
Set to true to allow HTML5 media playback to appear inline within the screen 
layout, using browser-supplied controls rather than native controls. For this 
to work, add the webkit-playsinline attribute to any ```<video>``` elements.
-   AndroidLaunchMode(string) | *Default: singleTop* <br/> Allowed values: 
standard, singleTop, singleTask, singleInstance <br/> ==Android== <br/> Sets 
the Activity android:launchMode attribute. This changes what happens when the 
app is launched from app icon or intent and is already running.
-   android-maxSdkVersion(integer) | *Default: Not Specified* <br/> ==Android== 
<br/> Sets the `maxSdkVersion` attribute of the `<uses-sdk>` tag in the 
project's `AndroidManifest.xml` (see [here][uses-sdk]).
-   android-minSdkVersion(integer) | *Default: Dependent on cordova-android 
Version* <br/> ==Android== <br/> Sets the `minSdkVersion` attribute of the 
`<uses-sdk>` tag in the project's `AndroidManifest.xml` (see [here][uses-sdk]).
-   android-targetSdkVersion(integer) | *Default: Dependent on cordova-android 
Version* <br/> ==Android== <br/> Sets the `targetSdkVersion` attribute of the 
`<uses-sdk>` tag in the project's `AndroidManifest.xml` (see [here][uses-sdk]).
-   AppendUserAgent(string) | ==Android== ==iOS== <br/> If set, the value will 
append to the end of old UserAgent of webview. When using with 
OverrideUserAgent, this value will be ignored.
-   BackgroundColor(string) | ==Android== ==BlackBerry== ==Windows== <br/> Sets 
the app's background color. Supports a four-byte hex value, with the first byte 
representing the alpha channel, and standard RGB values for the following three 
bytes. <br/> For Windows, the alpha channel is ignored. <br/> __Note__: 
`transparent` value will set the application tile background to the accent 
color on Windows.
-   BackupWebStorage(string) | *Default: cloud* <br/> Allowed values: none, 
local, cloud. <br/> ==iOS== <br/>  Set to cloud to allow web storage data to 
backup via iCloud. Set to local to allow only local backups via iTunes sync. 
Set to none prevent web storage backups.
-   ChildBrowser(string) | *Default: enable* <br/> ==BlackBerry== <br/> 
Disables child browser windows. By default, apps launch a secondary browser 
window to display resources accessed via window.open() or by specifying a 
_blank anchor target. Specify disable to override this default behavior.
-   CordovaWebViewEngine(string) | *Default: CDVUIWebViewEngine* <br/> ==iOS== 
<br/> This sets the WebView engine plugin to be used to render the host app. 
The plugin must conform to the CDVWebViewEngineProtocol protocol. The 'value' 
here should match the 'feature' name of the WebView engine plugin that is 
installed. This preference usually would be set by the WebView engine plugin 
that is installed, automatically.
-   DefaultVolumeStream(string) | *Default: default* <br/> ==Android==<br/> 
Added in cordova-android 3.7.0, This preference sets which volume the hardware 
volume buttons link to. By default this is "call" for phones and "media" for 
tablets. Set this to "media" to have your app's volume buttons always change 
the media volume. Note that when using Cordova's media plugin, the volume 
buttons will dynamically change to controlling the media volume when any Media 
objects are active.
-   DisallowOverscroll(boolean) | *Default: false* <br/> ==iOS== ==Android== 
<br/> Set to **true** if you don't want the interface to display any feedback 
when users scroll past the beginning or end of content. On iOS, overscroll 
gestures cause content to bounce back to its original position. on Android, 
they produce a more subtle glowing effect along the top or bottom edge of the 
content. <br/>
-   EnableViewportScale(boolean) | *Default: false* <br/>  ==iOS== <br/> Set to 
true to allow a viewport meta tag to either disable or restrict the range of 
user scaling, which is enabled by default. Place a viewport such as the 
following in the HTML to disable scaling and fit content flexibly within the 
rendering WebView: <br/> ```<meta name='viewport' content='width=device-width, 
initial-scale=1, user-scalable=no' />```
-   EnableWebGL(boolean) | *Default: false* <br/>  ==OS X **4.0.0**== <br/> Set 
to true to enable WebGL on the web view.
-   ErrorUrl(URL) | *Default: null* <br/> ==Android== <br/> If set, will 
display the referenced page upon an error in the application instead of a 
dialog with the title "Application Error".
-   ErrorUrl(string) | ==iOS== <br/> If set, will display the referenced local 
page upon an error in the application.
-   FullScreen(boolean) | *Default: false* <br/> ==Android== <br/> Allows you 
to hide the status bar at the top of the screen. <br/> __Note__: Recommended 
platform-agnostic way to achieve this is to use the [StatusBar 
plugin][statusbar_plugin].
-   GapBetweenPages(float) | *Default: 0* <br/> ==iOS== <br/> The size of the 
gap, in points, between pages.
-   HideKeyboardFormAccessoryBar(boolean) | *Default: false* <br/> 
==BlackBerry== <br/> Set to true to hide the additional toolbar that appears 
above the keyboard, helping users navigate from one form input to another.
-   HideMousePointer(integer) | *Default: -1* <br/> ==OS X **4.0.0**== <br/> 
Sets the timeout for hiding the mouse pointer. Set to 0 for immediate, set to 
-1 for never.
-   InAppBrowserStorageEnabled (boolean) | *Default: true* <br/> ==Android== 
<br/> Controls whether pages opened within an InAppBrowser can access the same 
localStorage and WebSQL storage as pages opened with the default browser.
-   KeepRunning(boolean) | *Default: true* <br/> ==Android== <br/> Determines 
whether the application stays running in the background even after a 
[pause](../../../cordova/events/events.pause.html) event fires. Setting this to 
false does not kill the app after a 
[pause](../../../cordova/events/events.pause.html) event, but simply halts 
execution of code within the cordova webview while the app is in the background.
-   KeyboardDisplayRequiresUserAction(boolean) | *Default: true* <br/> ==iOS== 
<br/> Set to false to allow the keyboard to appear when calling focus() on form 
inputs.
-   LoadUrlTimeoutValue(number in milliseconds) | *Default: 20000, 20 seconds* 
<br/> ==Android== <br/> When loading a page, the amount of time to wait before 
throwing a timeout error.
-   LoadingDialog(string) | *Default: null* <br/> ==Android== <br/> If set, 
displays a dialog with the specified title and message, and a spinner, when 
loading the first page of an application. The title and message are separated 
by a comma in this value string, and that comma is removed before the dialog is 
displayed.
-   LogLevel(string) | *Default: ERROR* <br/> Allowed values: ERROR, WARN, 
INFO, DEBUG, VERBOSE <br/> ==Android== <br/> Sets the minimum log level through 
which log messages from your application will be filtered.
-   MediaPlaybackAllowsAirPlay(boolean) | *Default: true* <br/> ==iOS== <br/> 
Set to false to prevent Air Play from being used in this view. Available in 
default UIWebView and WKWebView.
-   MediaPlaybackRequiresUserAction(boolean) | *Default: false* <br/> ==iOS== 
<br/> Set to true to prevent HTML5 videos or audios from playing automatically 
with the autoplay attribute or via JavaScript.
-   Min/Max Version(Regex) | ==Windows== <br/> Allowed values: **/(Microsoft.+? 
&#124; Windows.+?)-(MinVersion &#124; MaxVersionTested)/i** <br/> Identifies 
the ecosystems and their min/max versions the app is compatible with. There are 
three parts to each value: the **SDK**, the **version restriction**, and the 
**version value**.  These preferences are detected by beginning with `Windows` 
or `Microsoft` and ending in `-MinVersion` or `-MaxVersionTested`: <ul><li>The 
**SDK** defines what specialized platform you want to target.  The default is 
`Windows.Universal`.  Valid values for these are defined in the AppxManifest 
schema, in the `Package/Depednencies/TargetPlatform` elements.</li><li>The 
**version restriction** defines application compatibility rules.  For example, 
if the `-MinVersion` is set to 10.1.0.0, then OS versions which don't support 
at least 10.1.0.0 of the corresponding SDK won't be able to load it. Similarly 
you can also use `-MaxVersionTested` which specifies the hig
 hest-tested version of the SDK. If a new version of the corresponding SDK is 
released, it will run in compatibility mode for the specified 
version.</li><li>The **version value** is a 4-integer tuple in the form of 
*major.minor.build.qfe*.</li></ul> If no preferences of these types are 
specified in your config.xml file, then Windows.Universal version 10.0.0.0 will 
be chosen by default. <br/> **Note:** These preferences are only set in the 
appxmanifest files of the desired target-platform and not in the jsproj files.
+   AllowInlineMediaPlayback(boolean) <br/> ==iOS== | *Default: false* <br/>  
Set to true to allow HTML5 media playback to appear inline within the screen 
layout, using browser-supplied controls rather than native controls. For this 
to work, add the webkit-playsinline attribute to any ```<video>``` elements.
+   AndroidLaunchMode(string) <br/> ==Android== | *Default: singleTop* <br/> 
Allowed values: standard, singleTop, singleTask, singleInstance <br/>  Sets the 
Activity android:launchMode attribute. This changes what happens when the app 
is launched from app icon or intent and is already running.
+   android-maxSdkVersion(integer) <br/> ==Android== | *Default: Not Specified* 
<br/>  Sets the `maxSdkVersion` attribute of the `<uses-sdk>` tag in the 
project's `AndroidManifest.xml` (see [here][uses-sdk]).
+   android-minSdkVersion(integer) <br/> ==Android== | *Default: Dependent on 
cordova-android Version* <br/>  Sets the `minSdkVersion` attribute of the 
`<uses-sdk>` tag in the project's `AndroidManifest.xml` (see [here][uses-sdk]).
+   android-targetSdkVersion(integer) <br/> ==Android== | *Default: Dependent 
on cordova-android Version* <br/>  Sets the `targetSdkVersion` attribute of the 
`<uses-sdk>` tag in the project's `AndroidManifest.xml` (see [here][uses-sdk]).
+   AppendUserAgent(string) <br/> ==Android== ==iOS== | If set, the value will 
append to the end of old UserAgent of webview. When using with 
OverrideUserAgent, this value will be ignored.
+   BackgroundColor(string) <br/> ==Android== ==BlackBerry== ==Windows== | Sets 
the app's background color. Supports a four-byte hex value, with the first byte 
representing the alpha channel, and standard RGB values for the following three 
bytes. <br/> For Windows, the alpha channel is ignored. <br/> __Note__: 
`transparent` value will set the application tile background to the accent 
color on Windows.
+   BackupWebStorage(string) <br/> ==iOS== | *Default: cloud* <br/> Allowed 
values: none, local, cloud. <br/>   Set to cloud to allow web storage data to 
backup via iCloud. Set to local to allow only local backups via iTunes sync. 
Set to none prevent web storage backups.
+   ChildBrowser(string) <br/> ==BlackBerry== | *Default: enable* <br/>  
Disables child browser windows. By default, apps launch a secondary browser 
window to display resources accessed via window.open() or by specifying a 
_blank anchor target. Specify disable to override this default behavior.
+   CordovaWebViewEngine(string) <br/> ==iOS== | *Default: CDVUIWebViewEngine* 
<br/>  This sets the WebView engine plugin to be used to render the host app. 
The plugin must conform to the CDVWebViewEngineProtocol protocol. The 'value' 
here should match the 'feature' name of the WebView engine plugin that is 
installed. This preference usually would be set by the WebView engine plugin 
that is installed, automatically.
+   DefaultVolumeStream(string) <br/> ==Android== | *Default: default* <br/>  
Added in cordova-android 3.7.0, This preference sets which volume the hardware 
volume buttons link to. By default this is "call" for phones and "media" for 
tablets. Set this to "media" to have your app's volume buttons always change 
the media volume. Note that when using Cordova's media plugin, the volume 
buttons will dynamically change to controlling the media volume when any Media 
objects are active.
+   DisallowOverscroll(boolean) <br/> ==iOS== ==Android== | *Default: false* 
<br/>  Set to **true** if you don't want the interface to display any feedback 
when users scroll past the beginning or end of content. On iOS, overscroll 
gestures cause content to bounce back to its original position. on Android, 
they produce a more subtle glowing effect along the top or bottom edge of the 
content. <br/>
+   EnableViewportScale(boolean) <br/> ==iOS== | *Default: false* <br/>   Set 
to true to allow a viewport meta tag to either disable or restrict the range of 
user scaling, which is enabled by default. Place a viewport such as the 
following in the HTML to disable scaling and fit content flexibly within the 
rendering WebView: <br/> ```<meta name='viewport' content='width=device-width, 
initial-scale=1, user-scalable=no' />```
+   EnableWebGL(boolean) <br/> ==OS X== | *Default: false* <br/>  **(OS X 
4.0.0+)** Set to true to enable WebGL on the web view.
+   ErrorUrl(URL) <br/> ==Android== | *Default: null* <br/>  If set, will 
display the referenced page upon an error in the application instead of a 
dialog with the title "Application Error".
+   ErrorUrl(string) <br/> ==iOS== | If set, will display the referenced local 
page upon an error in the application.
+   FullScreen(boolean) <br/> ==Android== | *Default: false* <br/>  Allows you 
to hide the status bar at the top of the screen. <br/> __Note__: Recommended 
platform-agnostic way to achieve this is to use the [StatusBar 
plugin][statusbar_plugin].
+   GapBetweenPages(float) <br/> ==iOS== | *Default: 0* <br/>  The size of the 
gap, in points, between pages.
+   HideKeyboardFormAccessoryBar(boolean) <br/> ==BlackBerry== | *Default: 
false* <br/>  Set to true to hide the additional toolbar that appears above the 
keyboard, helping users navigate from one form input to another.
+   HideMousePointer(integer) <br/> ==OS X== | *Default: -1* <br/> **(OS X 
4.0.0+)** Sets the timeout for hiding the mouse pointer. Set to 0 for 
immediate, set to -1 for never.
+   InAppBrowserStorageEnabled (boolean) <br/> ==Android== | *Default: true* 
<br/>  Controls whether pages opened within an InAppBrowser can access the same 
localStorage and WebSQL storage as pages opened with the default browser.
+   KeepRunning(boolean) <br/> ==Android== | *Default: true* <br/>  Determines 
whether the application stays running in the background even after a 
[pause](../../../cordova/events/events.pause.html) event fires. Setting this to 
false does not kill the app after a 
[pause](../../../cordova/events/events.pause.html) event, but simply halts 
execution of code within the cordova webview while the app is in the background.
+   KeyboardDisplayRequiresUserAction(boolean) <br/> ==iOS== | *Default: true* 
<br/>  Set to false to allow the keyboard to appear when calling focus() on 
form inputs.
+   LoadUrlTimeoutValue(number in milliseconds) <br/> ==Android== | *Default: 
20000, 20 seconds* <br/>  When loading a page, the amount of time to wait 
before throwing a timeout error.
+   LoadingDialog(string) <br/> ==Android== | *Default: null* <br/>  If set, 
displays a dialog with the specified title and message, and a spinner, when 
loading the first page of an application. The title and message are separated 
by a comma in this value string, and that comma is removed before the dialog is 
displayed.
+   LogLevel(string) <br/> ==Android== | *Default: ERROR* <br/> Allowed values: 
ERROR, WARN, INFO, DEBUG, VERBOSE <br/>  Sets the minimum log level through 
which log messages from your application will be filtered.
+   MediaPlaybackAllowsAirPlay(boolean) <br/> ==iOS== | *Default: true* <br/>  
Set to false to prevent Air Play from being used in this view. Available in 
default UIWebView and WKWebView.
+   MediaPlaybackRequiresUserAction(boolean) <br/> ==iOS== | *Default: false* 
<br/>  Set to true to prevent HTML5 videos or audios from playing automatically 
with the autoplay attribute or via JavaScript.
+   Min/Max Version(Regex) <br/> ==Windows== | Allowed values: **/(Microsoft.+? 
&#124; Windows.+?)-(MinVersion &#124; MaxVersionTested)/i** <br/> Identifies 
the ecosystems and their min/max versions the app is compatible with. There are 
three parts to each value: the **SDK**, the **version restriction**, and the 
**version value**.  These preferences are detected by beginning with `Windows` 
or `Microsoft` and ending in `-MinVersion` or `-MaxVersionTested`: <ul><li>The 
**SDK** defines what specialized platform you want to target.  The default is 
`Windows.Universal`.  Valid values for these are defined in the AppxManifest 
schema, in the `Package/Depednencies/TargetPlatform` elements.</li><li>The 
**version restriction** defines application compatibility rules.  For example, 
if the `-MinVersion` is set to 10.1.0.0, then OS versions which don't support 
at least 10.1.0.0 of the corresponding SDK won't be able to load it. Similarly 
you can also use `-MaxVersionTested` which specifies the hig
 hest-tested version of the SDK. If a new version of the corresponding SDK is 
released, it will run in compatibility mode for the specified 
version.</li><li>The **version value** is a 4-integer tuple in the form of 
*major.minor.build.qfe*.</li></ul> If no preferences of these types are 
specified in your config.xml file, then Windows.Universal version 10.0.0.0 will 
be chosen by default. <br/> **Note:** These preferences are only set in the 
appxmanifest files of the desired target-platform and not in the jsproj files.
    Orientation(string) | *Default: default* <br/> Allowed values: default, 
landscape, portait <br/> Allows you to lock orientation and prevent the 
interface from rotating in response to changes in orientation. <br/> **NOTE:** 
The default value means Cordova will strip the orientation preference entry 
from the platform's manifest/configuration file allowing the platform to 
fallback to its default behavior. For iOS, to specify both portrait & landscape 
mode you would use the platform specific value 'all'.
-   OSXLocalStoragePath(string) | ==OS X **4.0.0**== <br/> *Default: 
`~/Library/Application Support/{bundle.id}`* <br/> Sets the directory for the 
local storage path.
-   OverrideUserAgent(string) | ==Android== <br/> If set, the value will 
replace the old UserAgent of webview. It is helpful to identify the request 
from app/browser when requesting remote pages. Use with caution, this may 
causes compitiable issue with web servers. For most cases, use AppendUserAgent 
instead.
-   PageLength(float) | *Default: 0* <br/> ==iOS== <br/> The size of each page, 
in points, in the direction that the pages flow. When PaginationMode is right 
to left or left to right, this property represents the width of each page. When 
PaginationMode is topToBottom or bottomToTop, this property represents the 
height of each page. The default value is 0, which means the layout uses the 
size of the viewport to determine the dimensions of the page.
-   PaginationBreakingMode(string) | *Default: page* <br/> Allowed values: 
page, column <br/> ==iOS== <br/> Valid values are page and column.The manner in 
which column- or page-breaking occurs. This property determines whether certain 
CSS properties regarding column- and page-breaking are honored or ignored. When 
this property is set to column, the content respects the CSS properties related 
to column-breaking in place of page-breaking.
-   PaginationMode(string) | *Default: unpaginated* <br/> Allowed values: 
unpaginated, leftToRight, topToBottom, bottomToTop, rightToLeft <br/> ==iOS== 
<br/> This property determines whether content in the web view is broken up 
into pages that fill the view one screen at a time,or shown as one long 
scrolling view. If set to a paginated form, this property toggles a paginated 
layout on the content, causing the web view to use the values of PageLength and 
GapBetweenPages to relayout its content.
-   PopupBlocker(string) | *Default: enable* <br/> ==BlackBerry== <br/> Enables 
the popup blocker, which prevents calls to window.open(). By default, popups 
display in a child browser window. Setting the preference to enable prevents it 
from displaying at all.
-   SetFullscreen(boolean) | *Default: false* <br/> ==Android== <br/> Same as 
the Fullscreen parameter in the global configuration of this xml file. This 
Android-specific element is deprecated in favor of the global Fullscreen 
element, and will be removed in a future version.
-   ShowTitle(boolean) | *Default: false* <br/> ==Android== <br/> Show the 
title at the top of the screen.
-   SplashScreenBackgroundColor | *Default: #464646* <br/> ==Windows== <br/> 
Sets the splashscreen background color. Supports a CSS color name or a 
four-byte hex value, with the first byte representing the alpha channel, and 
standard RGB values for the following three bytes. <br/> The alpha channel is 
ignored although `transparent` value will cause black/white background color in 
case of Dark/Light theme accordingly.
-   Suppresses3DTouchGesture(boolean) | *Default: false* <br/> ==iOS== <br/> 
Set to true to avoid 3D Touch capable iOS devices rendering a magnifying glass 
widget when the user applies force while longpressing the webview. Test your 
app thoroughly since this disables onclick handlers, but plays nice with 
ontouchend. If this setting is true, SuppressesLongPressGesture will 
effectively be true as well.
-   SuppressesIncrementalRendering(boolean) | *Default: false* <br/> ==iOS== 
<br/> Set to true to wait until all content has been received before it renders 
to the screen.
-   SuppressesLongPressGesture(boolean) | *Default: false* <br/> ==iOS== <br/> 
Set to true to avoid iOS9+ rendering a magnifying glass widget when the user 
longpresses the webview. Test your app thoroughly since this may interfere with 
text selection capabilities.
-   TopActivityIndicator(string) | *Default: gray* <br/> Allowed values: 
whiteLarge, white, gray. <br/> ==iOS== <br/>  <br/> Controls the appearance of 
the small spinning icon in the status bar that indicates significant processor 
activity.
-   uap-target-min-version(string) | ==Windows== <br/> This property sets the 
MinTargetVersion for the Windows UAP. If not specified, this is set to the 
initial release version 10.0.10240.0 <br/> **Note:** This preference is set in 
the jsproj file and not in the appxmanifest file. So users with OS version 
lower than this value would not be able to run the app.
-   UIWebViewDecelerationSpeed(string) | *Default: normal* <br/> Allowed 
values: normal, fast <br/> ==iOS== <br/> This property controls the 
deceleration speed of momentum scrolling. normal is the default speed for most 
native apps, and fast is the default for Mobile Safari.
-   WebSecurity(string) | *Default: enable* <br/> ==BlackBerry== <br/> Set to 
disable to override web security settings, allowing access to remote content 
from unknown sources. This preference is intended as a development convenience 
only, so remove it before packaging the app for distribution. For the released 
app, all URIs should be known and whitelisted using the <access> element, 
described in the Domain Whitelist Guide.
-   WindowSize(string) | *Default: auto* <br/> ==OS X **4.0.0**== <br/> Sets 
the size of the application window. <br/> Accepts the format `WxH` for a 
specific width and height or the special values `auto` and `fullscreen`. The 
latter will open a borderless window spanning the entire desktop area. Please 
note, that this is different from the _normal_ OS X fullscreen mode, which 
would never span multiple displays. <br/> **Note**: The global cordova 
`fullscreen` preference has no effect in OS X.
-   WindowsDefaultUriPrefix(string) | ==Windows== <br/> Allowed values: 
`ms-appx://`, `ms-appx-web://` <br/>  Identifies whether you want your app to 
target the local context or remote context as its startup URI. When building 
for Windows 10, the default is the remote context (`ms-appx-web://`). <br/> In 
order to have a local-mode application that is not impacted by Remote Mode 
capability restrictions, you must set this preference to `ms-appx://` and not 
declare any `<access>` elements with remote URIs. The local mode is the default 
for Windows 8.1
-   WindowsStoreDisplayName(string) | ==Windows== <br/> A friendly name for the 
publisher that can be displayed to users.
-   WindowsStoreIdentityName(string) | ==Windows== <br/> Identity name used for 
Windows store. The identity defines a globally unique identifier for a package. 
A package identity is represented as a tuple of attributes of the package. See 
the [identity page on the package manifest schema 
reference](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx) 
for further details.
-   WindowsStorePublisherName(string) | ==Windows== <br/> Publisher Display 
Name.
-   WindowsToastCapable(boolean) | *Default: false* <br/> ==Windows== <br/> A 
value of ```true``` indicates that the app is allowed to provide 'toast 
notifications'.
-   deployment-target(string) | ==iOS== <br/> This sets the 
IPHONEOS_DEPLOYMENT_TARGET in the build, which ultimately tranlsates to the 
MinimumOSVersion in the ipa. For more details please refer to Apple's 
documentation on Deployment Target Settings
-   target-device(string) | *Default: universal* <br/> Allowed values: handset, 
tablet, universal <br/> ==iOS== <br/> This property maps directly to 
TARGETED_DEVICE_FAMILY in the xcode project. Note that if you target universal 
(which is the default) you will need to supply screen shots for both iPhone and 
iPad or your app may be rejected.
-   windows-phone-target-version(string) | ==Windows== <br/> Sets the version 
of Windows Phone for which the package (resulting from ```cordova build```) 
will target. If none is specified, it will be set to the same version as 
```windows-target-version``` (if found).
-   windows-target-version(string) | ==Windows== <br/> Sets the version of 
Windows for which the package (resulting from ```cordova build```) will target. 
If none is specified, it will be set to '8.1'.
+   OSXLocalStoragePath(string) <br/> ==OS X== | *Default: 
`~/Library/Application Support/{bundle.id}`* <br/> **(OS X 4.0.0+)** Sets the 
directory for the local storage path.
+   OverrideUserAgent(string) <br/> ==Android== | If set, the value will 
replace the old UserAgent of webview. It is helpful to identify the request 
from app/browser when requesting remote pages. Use with caution, this may 
causes compitiable issue with web servers. For most cases, use AppendUserAgent 
instead.
+   PageLength(float) <br/> ==iOS== | *Default: 0* <br/>  The size of each 
page, in points, in the direction that the pages flow. When PaginationMode is 
right to left or left to right, this property represents the width of each 
page. When PaginationMode is topToBottom or bottomToTop, this property 
represents the height of each page. The default value is 0, which means the 
layout uses the size of the viewport to determine the dimensions of the page.
+   PaginationBreakingMode(string) <br/> ==iOS== | *Default: page* <br/> 
Allowed values: page, column <br/>  Valid values are page and column.The manner 
in which column- or page-breaking occurs. This property determines whether 
certain CSS properties regarding column- and page-breaking are honored or 
ignored. When this property is set to column, the content respects the CSS 
properties related to column-breaking in place of page-breaking.
+   PaginationMode(string) <br/> ==iOS== | *Default: unpaginated* <br/> Allowed 
values: unpaginated, leftToRight, topToBottom, bottomToTop, rightToLeft <br/>  
This property determines whether content in the web view is broken up into 
pages that fill the view one screen at a time,or shown as one long scrolling 
view. If set to a paginated form, this property toggles a paginated layout on 
the content, causing the web view to use the values of PageLength and 
GapBetweenPages to relayout its content.
+   PopupBlocker(string) <br/> ==BlackBerry== | *Default: enable* <br/>  
Enables the popup blocker, which prevents calls to window.open(). By default, 
popups display in a child browser window. Setting the preference to enable 
prevents it from displaying at all.
+   SetFullscreen(boolean) <br/> ==Android== | *Default: false* <br/>  Same as 
the Fullscreen parameter in the global configuration of this xml file. This 
Android-specific element is deprecated in favor of the global Fullscreen 
element, and will be removed in a future version.
+   ShowTitle(boolean) <br/> ==Android== | *Default: false* <br/>  Show the 
title at the top of the screen.
+   SplashScreenBackgroundColor <br/> ==Windows== | *Default: #464646* <br/>  
Sets the splashscreen background color. Supports a CSS color name or a 
four-byte hex value, with the first byte representing the alpha channel, and 
standard RGB values for the following three bytes. <br/> The alpha channel is 
ignored although `transparent` value will cause black/white background color in 
case of Dark/Light theme accordingly.
+   Suppresses3DTouchGesture(boolean) <br/> ==iOS== | *Default: false* <br/>  
Set to true to avoid 3D Touch capable iOS devices rendering a magnifying glass 
widget when the user applies force while longpressing the webview. Test your 
app thoroughly since this disables onclick handlers, but plays nice with 
ontouchend. If this setting is true, SuppressesLongPressGesture will 
effectively be true as well.
+   SuppressesIncrementalRendering(boolean) <br/> ==iOS== | *Default: false* 
<br/>  Set to true to wait until all content has been received before it 
renders to the screen.
+   SuppressesLongPressGesture(boolean) <br/> ==iOS== | *Default: false* <br/>  
Set to true to avoid iOS9+ rendering a magnifying glass widget when the user 
longpresses the webview. Test your app thoroughly since this may interfere with 
text selection capabilities.
+   TopActivityIndicator(string) <br/> ==iOS== | *Default: gray* <br/> Allowed 
values: whiteLarge, white, gray. <br/>   <br/> Controls the appearance of the 
small spinning icon in the status bar that indicates significant processor 
activity.
+   uap-target-min-version(string) <br/> ==Windows== | This property sets the 
MinTargetVersion for the Windows UAP. If not specified, this is set to the 
initial release version 10.0.10240.0 <br/> **Note:** This preference is set in 
the jsproj file and not in the appxmanifest file. So users with OS version 
lower than this value would not be able to run the app.
+   UIWebViewDecelerationSpeed(string) <br/> ==iOS== | *Default: normal* <br/> 
Allowed values: normal, fast <br/>  This property controls the deceleration 
speed of momentum scrolling. normal is the default speed for most native apps, 
and fast is the default for Mobile Safari.
+   WebSecurity(string) <br/> ==BlackBerry== | *Default: enable* <br/>  Set to 
disable to override web security settings, allowing access to remote content 
from unknown sources. This preference is intended as a development convenience 
only, so remove it before packaging the app for distribution. For the released 
app, all URIs should be known and whitelisted using the <access> element, 
described in the Domain Whitelist Guide.
+   WindowSize(string) <br/> ==OS X== | *Default: auto* <br/> **(OS X 4.0.0+)** 
Sets the size of the application window. <br/> Accepts the format `WxH` for a 
specific width and height or the special values `auto` and `fullscreen`. The 
latter will open a borderless window spanning the entire desktop area. Please 
note, that this is different from the _normal_ OS X fullscreen mode, which 
would never span multiple displays. <br/> **Note**: The global cordova 
`fullscreen` preference has no effect in OS X.
+   WindowsDefaultUriPrefix(string) <br/> ==Windows== | Allowed values: 
`ms-appx://`, `ms-appx-web://` <br/>  Identifies whether you want your app to 
target the local context or remote context as its startup URI. When building 
for Windows 10, the default is the remote context (`ms-appx-web://`). <br/> In 
order to have a local-mode application that is not impacted by Remote Mode 
capability restrictions, you must set this preference to `ms-appx://` and not 
declare any `<access>` elements with remote URIs. The local mode is the default 
for Windows 8.1
+   WindowsStoreDisplayName(string) <br/> ==Windows== | A friendly name for the 
publisher that can be displayed to users.
+   WindowsStoreIdentityName(string) <br/> ==Windows== | Identity name used for 
Windows store. The identity defines a globally unique identifier for a package. 
A package identity is represented as a tuple of attributes of the package. See 
the [identity page on the package manifest schema 
reference](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx) 
for further details.
+   WindowsStorePublisherName(string) <br/> ==Windows== | Publisher Display 
Name.
+   WindowsToastCapable(boolean) <br/> ==Windows== | *Default: false* <br/>  A 
value of ```true``` indicates that the app is allowed to provide 'toast 
notifications'.
+   deployment-target(string) <br/> ==iOS== | This sets the 
IPHONEOS_DEPLOYMENT_TARGET in the build, which ultimately tranlsates to the 
MinimumOSVersion in the ipa. For more details please refer to Apple's 
documentation on Deployment Target Settings
+   target-device(string) <br/> ==iOS== | *Default: universal* <br/> Allowed 
values: handset, tablet, universal <br/>  This property maps directly to 
TARGETED_DEVICE_FAMILY in the xcode project. Note that if you target universal 
(which is the default) you will need to supply screen shots for both iPhone and 
iPad or your app may be rejected.
+   windows-phone-target-version(string) <br/> ==Windows== | Sets the version 
of Windows Phone for which the package (resulting from ```cordova build```) 
will target. If none is specified, it will be set to the same version as 
```windows-target-version``` (if found).
+   windows-target-version(string) <br/> ==Windows== | Sets the version of 
Windows for which the package (resulting from ```cordova build```) will target. 
If none is specified, it will be set to '8.1'.
 
    Examples:
 
@@ -370,7 +370,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
    the [Plugin Development Guide](../guide/hybrid/plugins/index.html) for more 
information on plugins.
    NOTE: Most of the time, you do NOT want to set this directly.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    name(string) | *Required* <br/> The name of the plugin to enable.
 
@@ -378,10 +378,10 @@ platform. See [Customize icons topic](images.html) for 
more information.
 ### param
    Used to specify what certain plugin parameters such as: what package to 
retrieve the plugin code from, and whether the plugin code is to be initialized 
during the Webview's initialization.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
-   name(string) | *Required* <br/> Allowed values: android-package, 
ios-package, osx-package, onload. <br/> ==iOS== ==OS X== ==Android== <br/> 
'ios-package', 'osx-package' and 'android-package' are used to specify the name 
of the package (as specified by the 'value' attribute) to be used to initialize 
the plugin code, while 'onload' is used to specify whether the corresponding 
plugin (as specified in the 'value' attribute) is to be instantiated when the 
controller is initialized.
-   value(string or boolean) | *Required* <br/> ==iOS== ==OS X== ==Android== 
<br/> Specifies the name of the package to be used to initialize the plugin 
code (when the 'name' attribute is android-package, ios-package or 
osx-package), specifies the name of the plugin to be loaded during controller 
initialization (when 'name' attribute is set to 'onload').
+   name(string) <br/> ==iOS== ==OS X== ==Android== | *Required* <br/> Allowed 
values: android-package, ios-package, osx-package, onload. <br/>  
'ios-package', 'osx-package' and 'android-package' are used to specify the name 
of the package (as specified by the 'value' attribute) to be used to initialize 
the plugin code, while 'onload' is used to specify whether the corresponding 
plugin (as specified in the 'value' attribute) is to be instantiated when the 
controller is initialized.
+   value(string or boolean) <br/> ==iOS== ==OS X== ==Android== | *Required* 
<br/>  Specifies the name of the package to be used to initialize the plugin 
code (when the 'name' attribute is android-package, ios-package or 
osx-package), specifies the name of the plugin to be loaded during controller 
initialization (when 'name' attribute is set to 'onload').
 
 
    Examples:
@@ -409,7 +409,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
 ## platform
    When using the CLI to build applications, it is sometimes necessary to 
specify preferences or other elements specific to a particular platform. Use 
the <platform> element to specify configuration that should only appear in a 
single platform-specific config.xml file.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    name(string) | *Required* <br/> The platform whose preferences are being 
defined.
 
@@ -427,7 +427,7 @@ platform. See [Customize icons topic](images.html) for more 
information.
    prepare logic is invoked). This is useful when you need to extend
    default Cordova functionality. See [Hooks 
Guide](../guide/appdev/hooks/index.html) for more information.
 
-   Attributes(type) | Description
+   Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
    ----------------- | ------------
    type(string) | *Required* <br/> Specifies the action during which the 
custom script is to be called.
    src(string) | *Required* <br/> Specifies the location of the script to be 
called when a specific action occurs.

http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e0fcadc8/www/docs/en/dev/plugin_ref/spec.md
----------------------------------------------------------------------
diff --git a/www/docs/en/dev/plugin_ref/spec.md 
b/www/docs/en/dev/plugin_ref/spec.md
index 2fc4b02..f6e14d2 100644
--- a/www/docs/en/dev/plugin_ref/spec.md
+++ b/www/docs/en/dev/plugin_ref/spec.md
@@ -30,7 +30,7 @@ Plugin.xml file defines the structure and settings required 
for your plugin. It
 
 The `plugin` element is the plugin manifest's top-level element.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 xmlns(string) | *Required* <br/> The plugin namespace, 
`http://apache.org/cordova/ns/plugins/1.0`. If the document contains XML from 
other namespaces, such as tags to be added to the `AndroidManifest.xml` file in 
the case of Android, those namespaces should also be included in the <plugin> 
element.
 id(string) | *Required* <br/> A npm-style identifier for the plugin.
@@ -53,7 +53,7 @@ The child elements of the `<engines>` element specify 
versions of Apache Cordova
 >is in a plugin's `package.json`. See [specifying Cordova 
 >dependencies](../guide/hybrid/plugins/index.html#specifying-cordova-dependencies)
 >for more information
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 name(string) | *Required* <br/> Name of the engine. Here are the default 
engines that are supported : <ul><li> `cordova` </li> <li> `cordova-plugman` 
</li> <li> `cordova-android` </li> <li> `cordova-ios` </li> <li> 
`cordova-blackberry10` </li> <li> `cordova-wp8` </li> <li> `cordova-windows` 
</li> <li> `cordova-osx` </li> <li> `windows-os` </li> <li> `android-sdk` 
(returns the highest Android api level installed) </li> <li> `windows-sdk` 
(returns the native windows SDK version) </li> <li> `apple-xcode` (returns the 
xcode version) </li> <li> `apple-ios` (returns the highest iOS version 
installed) </li> <li> `apple-osx` (returns the OSX version) </li> <li> 
`blackberry-ndk` (returns the native blackberry SDK version) </li> You can also 
specify a custom framework apart from the default ones.
 version(string) | *Required* <br/> The version that your framework must have 
in order to install. Semver syntax is supported.
@@ -141,7 +141,7 @@ Example:
 
 This element is used to list the files or directories to be copied into a 
Cordova app's `www` directory. Any `<asset>` elements that are nested within 
`<platform>` elements specify platform-specific web assets.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | *Required* <br/>  Where the file or directory is located in the 
plugin package, relative to the `plugin.xml` document. If a file does not exist 
at the specified src location, the CLI stops and reverses the installation 
process, issues a notification about the conflict, and exits with a non-zero 
code.
 target(string) | *Required* <br/> Where the file or directory should be 
located in the Cordova app, relative to the `www` directory. If a file already 
exists at the target location, the CLI stops and reverses the installation 
process, issues a notification about the conflict, and exits with a non-zero 
code.
@@ -163,7 +163,7 @@ Assets can be targeted to subdirectories as well. This will 
create the `js/exper
 
 Most plugins include one or more JavaScript files.  Each `<js-module>` tag 
corresponds to a JavaScript file, and prevents the plugin's users from having 
to add a `<script>` tag for each file. Do not wrap the file with 
cordova.define, as it is added automatically. The module is wrapped in a 
closure, with module, exports, and require in scope, as is normal for AMD 
modules. Nesting `<js-module>` elements within `<platform>` declares 
platform-specific JavaScript module bindings.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | References a file in the plugin directory relative to the 
`plugin.xml` file. If src does not resolve to an existing file, the CLI stops 
and reverses the installation, issues a notification of the problem, and exits 
with a non-zero code.
 name(string) | Provides the last part of the module name. It can generally be 
whatever you like, and it only matters if you want to use cordova.require to 
import other parts of your plugins in your JavaScript code. The module name for 
a `<js-module>` is your plugin's id followed by the value of name.
@@ -182,7 +182,7 @@ Also for this example, with a plugin id of `chrome-socket`, 
the module name will
 Allowed within `<js-module>` element. Used to specify the namespace under 
`window` object where module.exports gets inserted. You can have as many 
`<clobbers>` as you
 like. Any object not available on `window` is created.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 target(string) | The namespace where module.exports gets inserted to.
 
@@ -198,7 +198,7 @@ Here module.exports gets inserted into the `window` object 
as `window.chrome.soc
 
 Allowed within `<js-module>` element. Used to specify the namespace under 
`window` object where module.exports gets merged with any existing value. If 
any key already exists, the module's version overrides the original. You can 
have as many `<merges>` as you like. Any object not available on `window` is 
created.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 target(string) | The namespace which module.exports gets merged to.
 
@@ -225,7 +225,7 @@ Example:
 
 The `<dependency>` tag allows you to specify other plugins on which the 
current plugin depends. The plugins are referenced by their unique npm ids or 
by github url.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 id(string) | Provides the ID of the plugin.
 url(string) | A URL for the plugin. This should reference a git repository, 
which the CLI attempts to clone.
@@ -243,7 +243,7 @@ Examples:
 
 Identifies platforms that have associated native code or require modifications 
to their configuration files. Tools using this specification can identify 
supported platforms and install the code into Cordova projects. Plugins without 
`<platform>` tags are assumed to be JavaScript-only, and therefore installable 
on any and all platforms.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 name(string) | *Required* <br/> Allowed values: ios, android, blackberry10, 
amazon-fireos, wp8, windows <br/> Identifies a platform as supported, 
associating the element's children with that platform.
 
@@ -258,12 +258,12 @@ Example:
 
 Identifies executable source code that should be installed into a project.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | *Required* <br/> Location of the file relative to `plugin.xml`. 
If the src file can't be found, the CLI stops and reverses the installation, 
issues a notification about the problem, and exits with a non-zero code.
 target-dir(string) | A directory into which the files should be copied, 
relative to the root of the Cordova project. In practice, this is most 
important for Java-based platforms, where a file in the `com.alunny.foo` 
package must be located within the `com/alunny/foo` directory. For platforms 
where the source directory is not important, this attribute should be omitted.
-framework(boolean) | *Default: false* <br/> ==iOS== <br/> If set to true, also 
adds the specified file as a framework to the project.
-compiler-flags(string) | ==iOS== <br/> If set, assigns the specified compiler 
flags for the particular source file.
+framework(boolean) <br/> ==iOS== | *Default: false* <br/>  If set to true, 
also adds the specified file as a framework to the project.
+compiler-flags(string) <br/> ==iOS== | If set, assigns the specified compiler 
flags for the particular source file.
 
 Examples:
 ```xml
@@ -279,7 +279,7 @@ Examples:
 
 This is like `<source-file>` element but specifically for platforms such as 
iOS and Android that distinguish between source files, headers, and resources. 
This is not supported by Windows.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | *Required* <br/> Location of the file relative to `plugin.xml`. 
If the src file can't be found, the CLI stops and reverses the installation, 
issues a notification about the problem, and exits with a non-zero code.
 target(string) | Path to where the file will be copied in your directory.
@@ -295,13 +295,13 @@ For iOS:
 
 This is like `<source-file>` element, but specifically for platforms such as 
iOS and Android that distinguish between source files, headers, and resources.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | *Required* <br/> Location of the file relative to `plugin.xml`. 
If the src file can't be found, the CLI stops and reverses the installation, 
issues a notification about the problem, and exits with a non-zero code.
 target(string) | Path to where the file will be copied in your directory.
-arch(string) | ==windows== <br/> Allowed values: `x86`, `x64` or `ARM`. <br/> 
Indicates that the file should only be included when building for the specified 
architecture.
-device-target | ==windows== <br/> Allowed values: `win` (or `windows`), 
`phone` or `all`. <br/> Indicates that the file should only be included when 
building for the specified target device type.
-versions | ==windows== <br/> Indicates that the file should only be included 
when building for versions that match the specified version string. Value can 
be any valid node semantic version range string.
+arch(string) <br/> ==windows== | Allowed values: `x86`, `x64` or `ARM`. <br/> 
Indicates that the file should only be included when building for the specified 
architecture.
+device-target <br/> ==windows== | Allowed values: `win` (or `windows`), 
`phone` or `all`. <br/> Indicates that the file should only be included when 
building for the specified target device type.
+versions <br/> ==windows== | Indicates that the file should only be included 
when building for versions that match the specified version string. Value can 
be any valid node semantic version range string.
 
 Examples:
 
@@ -321,13 +321,13 @@ Identifies an XML-based configuration file to be 
modified, where in that documen
 Two file types that have been tested for modification with this element are 
`xml` and `plist` files.
 The `config-file` element only allows you to append new children to an XML 
document tree. The children are XML literals to be inserted in the target 
document.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 target(string) | The file to be modified, and the path relative to the root of 
the Cordova project. If the specified file does not exist, the tool ignores the 
configuration change and continues installation. <br/> The target can include 
wildcard (`*`) elements. In this case, the CLI recursively searches through the 
project directory structure and uses the first match. <br/> On iOS, the 
location of configuration files relative to the project directory root is not 
known, so specifying a target of `config.xml` resolves to 
`cordova-ios-project/MyAppName/config.xml`.
 parent(string) | An XPath selector referencing the parent of the elements to 
be added to the config file. If you use absolute selectors, you can use a 
wildcard (`*`) to specify the root element, e.g., `/*/plugins`. If the selector 
does not resolve to a child of the specified document, the tool stops and 
reverses the installation process, issues a warning, and exits with a non-zero 
code. <br/> For `plist` files, the `parent` determines under what parent key 
the specified XML should be inserted.
 after(string) | A prioritized list of accepted siblings after which to add the 
XML snippet. Useful for specifying changes in files which require strict 
ordering of XML elements like 
[this](http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769509%28v=vs.105%29.aspx#BKMK_EXTENSIONSelement).
-device-target(string) | ==windows== <br/> Allowed values: `win`, `phone`, 
`all`. <br/> Applicable when affecting the meta-name `package.appxmanifest`, 
this attribute indicates that the file should only be modified when building 
for the specified target device type.
-versions(string) | ==windows== <br/> Applicable when affecting the meta-name 
`package.appxmanifest`, this attribute indicates that app manifests for 
specific Windows versions should only be altered for versions that match the 
specified version string. Value can be any valid node semantic version range 
string.
+device-target(string) <br/> ==windows== | Allowed values: `win`, `phone`, 
`all`. <br/> Applicable when affecting the meta-name `package.appxmanifest`, 
this attribute indicates that the file should only be modified when building 
for the specified target device type.
+versions(string) <br/> ==windows== | Applicable when affecting the meta-name 
`package.appxmanifest`, this attribute indicates that app manifests for 
specific Windows versions should only be altered for versions that match the 
specified version string. Value can be any valid node semantic version range 
string.
 
 Examples:
 
@@ -378,12 +378,12 @@ Example:
 
 Like source, resource, and header files, but specifically for platforms such 
as BlackBerry 10 that use user-generated libraries. For the Windows platform, 
the `<lib-file>` element allows the inclusion of an `<SDKReference>` in the 
generated Windows project files.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | *Required* <br/> The location of the file relative to 
`plugin.xml`. If `src` can't be found, the CLI stops and reverses the 
installation, issues a warning about the problem, and exits with a non-zero 
code. <br/> For Windows, it indicates the name of the SDK to include (which 
will be used as value of the `Include` attribute of the generated 
`<SDKReference>` element).
 arch(string) | The architecture for which the `.so` file has been built, 
either `device` or `simulator`. <br/> For Windows, it indicates that the 
`<SDKReference>` should only be included when building for the specified 
architecture. Supported values are `x86`, `x64` or `ARM`.
-device-target(string) | ==windows== <br/> Allowed values: `win` (or 
`windows`), `phone` or `all`. <br/> Indicates that the `<SDKReference>` should 
only be included when building for the specified target device type.
-versions(string) | ==windows== <br/> Indicates that the `<SDKReference>` 
should only be included when building for versions that match the specified 
version string. Value can be any valid node semantic version range string.
+device-target(string) <br/> ==windows== | Allowed values: `win` (or 
`windows`), `phone` or `all`. <br/> Indicates that the `<SDKReference>` should 
only be included when building for the specified target device type.
+versions(string) <br/> ==windows== | Indicates that the `<SDKReference>` 
should only be included when building for versions that match the specified 
version string. Value can be any valid node semantic version range string.
 
 Examples:
 ```xml
@@ -403,17 +403,17 @@ For Windows:
 
 Identifies a framework (usually part of the OS/platform) on which the plugin 
depends.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 src(string) | *Required* <br/> The name of the system framework or the 
relative path to one which is included as part of your plugin files.
 custom(boolean) | Indicates whether the framework is included as part of your 
plugin files.
 weak(boolean) | *Default: false* <br/> Indicates whether the framework should 
be weakly linked.
 type(string) | Indicates the type of framework to add.
 parent(string) | *Default: .* <br/> Sets the relative path to the directory 
containing the sub-project to which to add the reference. The default, `.`, 
implies the application project.
-arch(string) | ==windows== <br/> Allowed values: `x86`, `x64` or `ARM`. <br/> 
Indicates that the framework should only be included when building for the 
specified architecture.
-device-target(string) | ==windows== <br/> Allowed values: `win` (or 
`windows`), `phone` or `all`. <br/>  Indicates that the framework should only 
be included when building for the specified target device type.
-versions(string) | ==windows== <br/> Indicates that the framework should only 
be included when building for versions that match the specified version string. 
Value can be any valid node semantic version range string.
-target-dir(string) | ==windows== <br/>  Indicates a subdirectory into which 
the framework should be copied. In practice, this is most important when plugin 
contains different framework versions for different chip architectures or 
device targets, but which have the same name. This allows you to specify 
different subfolders for each framework version so that they don't overlap each 
other.
+arch(string) <br/> ==windows== | Allowed values: `x86`, `x64` or `ARM`. <br/> 
Indicates that the framework should only be included when building for the 
specified architecture.
+device-target(string) <br/> ==windows== | Allowed values: `win` (or 
`windows`), `phone` or `all`. <br/>  Indicates that the framework should only 
be included when building for the specified target device type.
+versions(string) <br/> ==windows== | Indicates that the framework should only 
be included when building for versions that match the specified version string. 
Value can be any valid node semantic version range string.
+target-dir(string) <br/> ==windows== | Indicates a subdirectory into which the 
framework should be copied. In practice, this is most important when plugin 
contains different framework versions for different chip architectures or 
device targets, but which have the same name. This allows you to specify 
different subfolders for each framework version so that they don't overlap each 
other.
 
 Examples:
 
@@ -507,7 +507,7 @@ As seen in the previous section, sometimes plugin might 
require user to specify
 a `<preference>` tag.
 The CLI checks that these required preferences are passed in.  If not, it 
should warn the user how to pass the variable in and exit with a non-zero code.
 
-Attributes(type) | Description
+Attributes(type) <br/> <span class="sub-header">Only for platform:</span> | 
Description
 ---------------- | ------------
 name(string) | *Required* <br/> Name of the variable.
 default(string) | Default value of the variable. If present, its value will be 
used and no error will be emitted in case user does not enter any value.

http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e0fcadc8/www/static/css-src/_docs.scss
----------------------------------------------------------------------
diff --git a/www/static/css-src/_docs.scss b/www/static/css-src/_docs.scss
index dcc5987..e668111 100644
--- a/www/static/css-src/_docs.scss
+++ b/www/static/css-src/_docs.scss
@@ -23,11 +23,43 @@
     .row {
         margin: 0px;
     }
+
+    /*
+     * Used to style the platform logos in xml references. Uses the mark 
element
+     * because we hijack the markdown highlight syntax using js (e.g. 
==android==).
+     * See www/static/js/docs.js
+     */
     mark {
-        background-color: lightblue;
-        padding: 0.1px 0.2px 0.1px 0.2px;
-        margin-right: 7px;
+        display: inline-block;
+        height:30px;
+        background-color: #ffffff;
+    }
+
+    mark.logo {
+        background-image:url('{{ site.baseurl 
}}/static/img/platform-logos-all-sprite.svg');
+        width:35px;
+        background-size: 385px 35px;
+    }
+
+    mark.android    { background-position: 0 }
+    mark.ios        { background-position: 10%; }
+    mark.windows    { background-position: 20%; }
+    mark.blackberry { background-position: 30%; }
+    mark.ubuntu     { background-position: 40%; }
+    mark.firefox    { background-position: 50%; }
+    mark.webos      { background-position: 60%; }
+    mark.fireos     { background-position: 70%; }
+    mark.osx        { background-position: 80.8%; }
+    mark.browser    { background-position: 92.2%; }
+
+    .sub-header {
+        color: #6d6d6d;
+        font-size: 9pt;
+        display: block;
+        min-width: 120px;
+        font-weight: 300;
     }
+
     .site-toc-title {
         font-weight: 300;
         font-size: 22px;

http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e0fcadc8/www/static/css-src/_plugins.scss
----------------------------------------------------------------------
diff --git a/www/static/css-src/_plugins.scss b/www/static/css-src/_plugins.scss
index 1144391..5859b69 100644
--- a/www/static/css-src/_plugins.scss
+++ b/www/static/css-src/_plugins.scss
@@ -189,13 +189,15 @@ hr.results-divider-line {
                 width:50px;
                 height:50px;
                 display:inline-block;
-                background-size: 400px 50px;
-}
-.android { background-position: 0 }
-.ios { background-position: 14.3%; }
-.windows { background-position: 28.6%; }
-.blackberry { background-position: 42.9%; }
-.ubuntu { background-position: 57.1%; }
-.firefox { background-position: 71.4%; }
-.webos { background-position: 85.7%; }
-.fireos { background-position: 100%; }
+                background-size: 550px 50px;
+}
+.android    { background-position: 0 }
+.ios        { background-position: 10%; }
+.windows    { background-position: 20%; }
+.blackberry { background-position: 30%; }
+.ubuntu     { background-position: 40%; }
+.firefox    { background-position: 50%; }
+.webos      { background-position: 60%; }
+.fireos     { background-position: 70%; }
+.osx        { background-position: 80.8%; }
+.browser    { background-position: 92.2%; }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org
For additional commands, e-mail: commits-h...@cordova.apache.org

Reply via email to