diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-22 18:02:19 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-22 18:02:19 +0000 |
commit | 605fede7a976ee0859f1b7d19066553edef6d192 (patch) | |
tree | ce704846eba86719418843a3c325de0bf3fd94a4 /chrome/common/extensions/docs | |
parent | 020292294ce9964899728b076b28a6f3cd93c626 (diff) | |
download | chromium_src-605fede7a976ee0859f1b7d19066553edef6d192.zip chromium_src-605fede7a976ee0859f1b7d19066553edef6d192.tar.gz chromium_src-605fede7a976ee0859f1b7d19066553edef6d192.tar.bz2 |
Fix line endings doc files.
TBR
Review URL: http://codereview.chromium.org/155927
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21288 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/extensions/docs')
5 files changed, 339 insertions, 339 deletions
diff --git a/chrome/common/extensions/docs/js/api_page_generator.js b/chrome/common/extensions/docs/js/api_page_generator.js index d8593db..3aa87bf 100755 --- a/chrome/common/extensions/docs/js/api_page_generator.js +++ b/chrome/common/extensions/docs/js/api_page_generator.js @@ -1,144 +1,144 @@ -/**
- * @fileoverview This file is the controller for generating one api reference
- * page of the extension documentation.
- *
- * It expects:
- *
- * - To be called from a "shell" page whose "base" name matches an api module
- * name. For instance ../bookmarks.html -> chrome.bookmarks.
- *
- * - To have available via XHR (relative path):
- * 1) API_TEMPLATE which is the main template for the api pages.
- * 2) A file located at SCHEMA_PATH + |apiName| + SCHEMA_EXTENSION
- * which is shared with the extension system and defines the methods and
- * events contained in one api.
- * 3) An |apiName| + OVERVIEW_EXTENSION file which contains static authored
- * content that is inserted into the "overview" slot in the API_TEMPLATE.
- *
- * The "shell" page may have a renderering already contained within it so that
- * the docs can be indexed.
- *
- * TODO(rafaelw): XHR support for IE.
- * TODO(rafaelw): JSON support for non-chrome 3.x clients.
- */
-
-var API_TEMPLATE = "../template/api_template.html";
-var SCHEMA_PATH = "../../api/";
-var SCHEMA_EXTENSION = ".json";
-var OVERVIEW_EXTENSION = "_overview.html";
-var REQUEST_TIMEOUT = 2000;
-
-Array.prototype.each = function(f) {
- for (var i = 0; i < this.length; i++) {
- f(this[i], i);
- }
-}
-
-window.onload = function() {
- // Determine api module being rendered. Expect ".../<apiName>.html"
- var pathParts = document.location.href.split(/\/|\./);
- var apiName = pathParts[pathParts.length - 2];
- var apiOverviewName = apiName + OVERVIEW_EXTENSION;
- var apiSchemaName = SCHEMA_PATH + apiName + SCHEMA_EXTENSION;
-
- // Fetch the api template and insert into the <body>.
- fetchContent(API_TEMPLATE, function(templateContent) {
- document.getElementsByTagName("body")[0].innerHTML = templateContent;
-
- // Fetch the overview and insert into the "overview" <div>.
- fetchContent(apiOverviewName, function(overviewContent) {
- document.getElementById("overview").innerHTML = overviewContent;
-
- // Now the page is composed with the authored content, we fetch the schema
- // and populate the templates.
- fetchContent(apiSchemaName, renderTemplate);
- });
- });
-}
-
-/**
- * Fetches |url| and returns it's text contents from the xhr.responseText in
- * onSuccess(content)
- */
-function fetchContent(url, onSuccess) {
- var xhr = new XMLHttpRequest();
- var abortTimerId = window.setTimeout(function() {
- xhr.abort();
- console.log("XHR Timed out");
- }, REQUEST_TIMEOUT);
-
- function handleError(error) {
- window.clearTimeout(abortTimerId);
- console.error("XHR Failed: " + error);
- }
-
- try {
- xhr.onreadystatechange = function(){
- if (xhr.readyState == 4) {
- if (xhr.responseText) {
- window.clearTimeout(abortTimerId);
- onSuccess(xhr.responseText);
- } else {
- handleError("responseText empty.");
- }
- }
- }
-
- xhr.onerror = handleError;
-
- xhr.open("GET", url, true);
- xhr.send(null);
- } catch(e) {
- console.log("ex: " + e);
- console.error("exception: " + e);
- handleError();
- }
-}
-
-/**
- * Parses the content in |module| to json, adds any additional required values,
- * renders to html via JSTemplate, and unhides the <body>.
- * This uses the root <html> element (the entire document) as the template.
- */
-function renderTemplate(module) {
- var apiDefinition = JSON.parse(module);
- preprocessApi(apiDefinition);
-
- // Render to template
- var input = new JsEvalContext(apiDefinition);
- var output = document.getElementsByTagName("html")[0];
- jstProcess(input, output);
-
- // Show.
- document.getElementsByTagName("body")[0].className = "";
-}
-
-/**
- * Augment the |schema| with additional values that are required by the
- * template.
- */
-function preprocessApi(schema) {
- schema.functions.each(function(f) {
- f.fullName = schema.namespace + "." + f.name;
- if (f.callbackParameters) {
- f.callbackSignature = generateSignatureString(f.callbackParameters);
- }
- });
-
- schema.events.each(function(e) {
- e.callSignature = generateSignatureString(e.parameters);
- });
-}
-
-/**
- * Generates a simple string representation of the signature of a function
- * whose |parameters| are json schemas.
- */
-function generateSignatureString(parameters) {
- var retval = [];
- parameters.each(function(param, i) {
- retval.push(param.type + " " + (param.type ? param.type : param["$ref"]));
- });
-
- return retval.join(", ");
-}
+/** + * @fileoverview This file is the controller for generating one api reference + * page of the extension documentation. + * + * It expects: + * + * - To be called from a "shell" page whose "base" name matches an api module + * name. For instance ../bookmarks.html -> chrome.bookmarks. + * + * - To have available via XHR (relative path): + * 1) API_TEMPLATE which is the main template for the api pages. + * 2) A file located at SCHEMA_PATH + |apiName| + SCHEMA_EXTENSION + * which is shared with the extension system and defines the methods and + * events contained in one api. + * 3) An |apiName| + OVERVIEW_EXTENSION file which contains static authored + * content that is inserted into the "overview" slot in the API_TEMPLATE. + * + * The "shell" page may have a renderering already contained within it so that + * the docs can be indexed. + * + * TODO(rafaelw): XHR support for IE. + * TODO(rafaelw): JSON support for non-chrome 3.x clients. + */ + +var API_TEMPLATE = "../template/api_template.html"; +var SCHEMA_PATH = "../../api/"; +var SCHEMA_EXTENSION = ".json"; +var OVERVIEW_EXTENSION = "_overview.html"; +var REQUEST_TIMEOUT = 2000; + +Array.prototype.each = function(f) { + for (var i = 0; i < this.length; i++) { + f(this[i], i); + } +} + +window.onload = function() { + // Determine api module being rendered. Expect ".../<apiName>.html" + var pathParts = document.location.href.split(/\/|\./); + var apiName = pathParts[pathParts.length - 2]; + var apiOverviewName = apiName + OVERVIEW_EXTENSION; + var apiSchemaName = SCHEMA_PATH + apiName + SCHEMA_EXTENSION; + + // Fetch the api template and insert into the <body>. + fetchContent(API_TEMPLATE, function(templateContent) { + document.getElementsByTagName("body")[0].innerHTML = templateContent; + + // Fetch the overview and insert into the "overview" <div>. + fetchContent(apiOverviewName, function(overviewContent) { + document.getElementById("overview").innerHTML = overviewContent; + + // Now the page is composed with the authored content, we fetch the schema + // and populate the templates. + fetchContent(apiSchemaName, renderTemplate); + }); + }); +} + +/** + * Fetches |url| and returns it's text contents from the xhr.responseText in + * onSuccess(content) + */ +function fetchContent(url, onSuccess) { + var xhr = new XMLHttpRequest(); + var abortTimerId = window.setTimeout(function() { + xhr.abort(); + console.log("XHR Timed out"); + }, REQUEST_TIMEOUT); + + function handleError(error) { + window.clearTimeout(abortTimerId); + console.error("XHR Failed: " + error); + } + + try { + xhr.onreadystatechange = function(){ + if (xhr.readyState == 4) { + if (xhr.responseText) { + window.clearTimeout(abortTimerId); + onSuccess(xhr.responseText); + } else { + handleError("responseText empty."); + } + } + } + + xhr.onerror = handleError; + + xhr.open("GET", url, true); + xhr.send(null); + } catch(e) { + console.log("ex: " + e); + console.error("exception: " + e); + handleError(); + } +} + +/** + * Parses the content in |module| to json, adds any additional required values, + * renders to html via JSTemplate, and unhides the <body>. + * This uses the root <html> element (the entire document) as the template. + */ +function renderTemplate(module) { + var apiDefinition = JSON.parse(module); + preprocessApi(apiDefinition); + + // Render to template + var input = new JsEvalContext(apiDefinition); + var output = document.getElementsByTagName("html")[0]; + jstProcess(input, output); + + // Show. + document.getElementsByTagName("body")[0].className = ""; +} + +/** + * Augment the |schema| with additional values that are required by the + * template. + */ +function preprocessApi(schema) { + schema.functions.each(function(f) { + f.fullName = schema.namespace + "." + f.name; + if (f.callbackParameters) { + f.callbackSignature = generateSignatureString(f.callbackParameters); + } + }); + + schema.events.each(function(e) { + e.callSignature = generateSignatureString(e.parameters); + }); +} + +/** + * Generates a simple string representation of the signature of a function + * whose |parameters| are json schemas. + */ +function generateSignatureString(parameters) { + var retval = []; + parameters.each(function(param, i) { + retval.push(param.type + " " + (param.type ? param.type : param["$ref"])); + }); + + return retval.join(", "); +} diff --git a/chrome/common/extensions/docs/reference/bookmarks.html b/chrome/common/extensions/docs/reference/bookmarks.html index 082493d..092ef1f 100755 --- a/chrome/common/extensions/docs/reference/bookmarks.html +++ b/chrome/common/extensions/docs/reference/bookmarks.html @@ -1,32 +1,32 @@ -<!DOCTYPE html>
-<!-- This page is a placeholder for generated extensions api doc. Note:
- 1) The <head> information in this page is significant, should be uniform
- across api docs and should be edited only with knowledge of the
- templating mechanism.
- 2) The <body> tag *must* retain id="body"
- 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a
- browser, it will be re-generated from the template, json schema and
- authored overview content.
- 4) The <body>.innerHTML is also generated by an offline step so that this
- page may easily be indexed by search engines.
-
- TODO(rafaelw): Abstract this into a "pageshell" that becomes the single
- version of page template shell and the "instance" pages (bookmarks.html,
- etc...) can be generated with a build step.
--->
-<html xmlns="http://www.w3.org/1999/xhtml">
- <!-- <head> data is significant and loads the needed libraries and styles -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title jscontent="namespace">chrome.apiname</title>
- <link href="../css/ApiRefStyles.css" rel="stylesheet" type="text/css">
- <script type="text/javascript"
- src="../../../../third_party/jstemplate/jstemplate_compiled.js">
- </script>
- <script type="text/javascript" src="../js/api_page_generator.js"></script>
- </head>
- <!-- <body> content is completely generated. Do not edit, as it will be
- and rewritten. -->
- <body class="hidden">
- </body>
+<!DOCTYPE html> +<!-- This page is a placeholder for generated extensions api doc. Note: + 1) The <head> information in this page is significant, should be uniform + across api docs and should be edited only with knowledge of the + templating mechanism. + 2) The <body> tag *must* retain id="body" + 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a + browser, it will be re-generated from the template, json schema and + authored overview content. + 4) The <body>.innerHTML is also generated by an offline step so that this + page may easily be indexed by search engines. + + TODO(rafaelw): Abstract this into a "pageshell" that becomes the single + version of page template shell and the "instance" pages (bookmarks.html, + etc...) can be generated with a build step. +--> +<html xmlns="http://www.w3.org/1999/xhtml"> + <!-- <head> data is significant and loads the needed libraries and styles --> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title jscontent="namespace">chrome.apiname</title> + <link href="../css/ApiRefStyles.css" rel="stylesheet" type="text/css"> + <script type="text/javascript" + src="../../../../third_party/jstemplate/jstemplate_compiled.js"> + </script> + <script type="text/javascript" src="../js/api_page_generator.js"></script> + </head> + <!-- <body> content is completely generated. Do not edit, as it will be + and rewritten. --> + <body class="hidden"> + </body> </html>
\ No newline at end of file diff --git a/chrome/common/extensions/docs/reference/bookmarks_overview.html b/chrome/common/extensions/docs/reference/bookmarks_overview.html index b93be64..3cd3686 100755 --- a/chrome/common/extensions/docs/reference/bookmarks_overview.html +++ b/chrome/common/extensions/docs/reference/bookmarks_overview.html @@ -1,121 +1,121 @@ -<!-- BEGIN AUTHORED CONTENT -->
-<p id="classSummary">
-Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks.
-</p>
-
-<h2 id="description">Description</h2>
-
-<p>
-[PENDING: intro goes here...]
-</p>
-
-<p>
-<em>Bookmark objects</em> are an important part of the <code>chrome.bookmarks</code> API.
-Each bookmark object represents either a URL or a group of bookmarks, as you can see in the following figure.
-</p>
-
-<img
- alt="2 kinds of bookmark objects"
- width="415"
- height="123"
- src="https://sites.google.com/a/google.com/kathys-drafts/Chrome/chrome-extensions-drafts/api-mock-doc/chrome-bookmarks-final-mock/bookmarks.png"></a>
-
-
-<h3 id="overview-properties">Properties</h3>
-
-<p>Objects that represent bookmarks can have the following properties:
-</p>
-
-<dl>
-<dt> <code>id</code> </dt>
-<dd> An integer ID that's unique for each bookmark.
- Don't save this ID in persistent storage;
- the ID for a particular bookmark might change the next time the browser is started.
- </dd>
-
-<dt> <code>title</code> </dt>
-<dd> The name of the bookmark.
- This is the user-visible string that describes the URL or group.
- </dd>
-
-<dt> <code>parentId </code>
- <em>(omitted for the root group)</em>
- </dt>
-<dd> The ID of the group that this bookmark is in. </dd>
-
-<dt> <code>index</code>
- <em>(optional; omitted for the root group)</em>
- </dt>
-<dd> The 0-based integer position of the bookmark within its group. </dd>
-
-<dt> <code>url</code>
- <em>(omitted for groups)</em>
- </dt>
-<dd> The URL of the page that the bookmark points to. </dd>
-</dl>
-
-<h3 id="overview-examples">Examples</h3>
-
-<p>
-The following code creates a bookmark group with the title "Chromium bookmarks".
-The last argument defines a function to be executed after the folder is created.
-</p>
-
-<pre>
-chrome.bookmarks.create({'parentId': bookmarkBar.id,
- 'title': 'Chromium bookmarks'},
- function(newFolder) {...});
-</pre>
-
-<p>
-The next snippet creates a bookmark pointing to the Chromium developer doc.
-Since nothing too bad will happen if creating the bookmark fails,
-this snippet doesn't bother to define a callback function.
-</p>
-
-<pre>
-chrome.bookmarks.create({'parentId': chromiumBookmarks.id,
- 'title': 'dev doc',
- 'url': 'http://dev.chromium.org'});
-</pre>
-
-<p>
-Say you have bookmark hierarchy that looks like this:</p>
-
-<ul>
- <li>Bookmarks</li>
- <ul>
- <li>Google</li>
- <ul>
- <li>Apps</li>
- <ul>
- <li>...</li>
- <li>...</li>
- <li>...</li>
- </ul>
- <li>Google homepage</li>
- </ul>
- <li>Example</li>
- </ul>
-</ul>
-
-<p>
-Here's how those bookmarks might be represented with bookmark objects:</p>
-
-<img
- alt="a hierarchy of bookmarks"
- src="https://sites.google.com/a/google.com/kathys-drafts/Chrome/chrome-extensions-drafts/api-mock-doc/chrome-bookmarks-final-mock/bookmark-hierarchy.png">
-
-<p>
-Here's some code you could use to create that hierarchy:</p>
-
-<pre class="example">
-...code goes here...
-</pre>
-
-
-<div class="exampleLink">
-<a href="http://www.google.com/url?q=http%3A%2F%2Fexample.com&sa=D&sntz=1&usg=AFrqEzd0oeJ1qGwYPoKuq1dTesEchMDLIQ">Full source code</a> |
-<a href="http://www.google.com/url?q=http%3A%2F%2Fexample.com&sa=D&sntz=1&usg=AFrqEzd0oeJ1qGwYPoKuq1dTesEchMDLIQ">Install extension</a>
-</div> <!-- END exampleLink -->
-<!-- END AUTHORED CONTENT -->
+<!-- BEGIN AUTHORED CONTENT --> +<p id="classSummary"> +Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks. +</p> + +<h2 id="description">Description</h2> + +<p> +[PENDING: intro goes here...] +</p> + +<p> +<em>Bookmark objects</em> are an important part of the <code>chrome.bookmarks</code> API. +Each bookmark object represents either a URL or a group of bookmarks, as you can see in the following figure. +</p> + +<img + alt="2 kinds of bookmark objects" + width="415" + height="123" + src="https://sites.google.com/a/google.com/kathys-drafts/Chrome/chrome-extensions-drafts/api-mock-doc/chrome-bookmarks-final-mock/bookmarks.png"></a> + + +<h3 id="overview-properties">Properties</h3> + +<p>Objects that represent bookmarks can have the following properties: +</p> + +<dl> +<dt> <code>id</code> </dt> +<dd> An integer ID that's unique for each bookmark. + Don't save this ID in persistent storage; + the ID for a particular bookmark might change the next time the browser is started. + </dd> + +<dt> <code>title</code> </dt> +<dd> The name of the bookmark. + This is the user-visible string that describes the URL or group. + </dd> + +<dt> <code>parentId </code> + <em>(omitted for the root group)</em> + </dt> +<dd> The ID of the group that this bookmark is in. </dd> + +<dt> <code>index</code> + <em>(optional; omitted for the root group)</em> + </dt> +<dd> The 0-based integer position of the bookmark within its group. </dd> + +<dt> <code>url</code> + <em>(omitted for groups)</em> + </dt> +<dd> The URL of the page that the bookmark points to. </dd> +</dl> + +<h3 id="overview-examples">Examples</h3> + +<p> +The following code creates a bookmark group with the title "Chromium bookmarks". +The last argument defines a function to be executed after the folder is created. +</p> + +<pre> +chrome.bookmarks.create({'parentId': bookmarkBar.id, + 'title': 'Chromium bookmarks'}, + function(newFolder) {...}); +</pre> + +<p> +The next snippet creates a bookmark pointing to the Chromium developer doc. +Since nothing too bad will happen if creating the bookmark fails, +this snippet doesn't bother to define a callback function. +</p> + +<pre> +chrome.bookmarks.create({'parentId': chromiumBookmarks.id, + 'title': 'dev doc', + 'url': 'http://dev.chromium.org'}); +</pre> + +<p> +Say you have bookmark hierarchy that looks like this:</p> + +<ul> + <li>Bookmarks</li> + <ul> + <li>Google</li> + <ul> + <li>Apps</li> + <ul> + <li>...</li> + <li>...</li> + <li>...</li> + </ul> + <li>Google homepage</li> + </ul> + <li>Example</li> + </ul> +</ul> + +<p> +Here's how those bookmarks might be represented with bookmark objects:</p> + +<img + alt="a hierarchy of bookmarks" + src="https://sites.google.com/a/google.com/kathys-drafts/Chrome/chrome-extensions-drafts/api-mock-doc/chrome-bookmarks-final-mock/bookmark-hierarchy.png"> + +<p> +Here's some code you could use to create that hierarchy:</p> + +<pre class="example"> +...code goes here... +</pre> + + +<div class="exampleLink"> +<a href="http://www.google.com/url?q=http%3A%2F%2Fexample.com&sa=D&sntz=1&usg=AFrqEzd0oeJ1qGwYPoKuq1dTesEchMDLIQ">Full source code</a> | +<a href="http://www.google.com/url?q=http%3A%2F%2Fexample.com&sa=D&sntz=1&usg=AFrqEzd0oeJ1qGwYPoKuq1dTesEchMDLIQ">Install extension</a> +</div> <!-- END exampleLink --> +<!-- END AUTHORED CONTENT --> diff --git a/chrome/common/extensions/docs/reference/tabs.html b/chrome/common/extensions/docs/reference/tabs.html index 71dc7e3..a2f8a82 100755 --- a/chrome/common/extensions/docs/reference/tabs.html +++ b/chrome/common/extensions/docs/reference/tabs.html @@ -1,33 +1,33 @@ -<!DOCTYPE html>
-<!-- This page is a placeholder for generated extensions api doc. Note:
- 1) The <head> information in this page is significant, should be uniform
- across api docs and should be edited only with knowledge of the
- templating mechanism.
- 2) The <body> tag *must* retain id="body"
- 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a
- browser, it will be re-generated from the template, json schema and
- authored overview content.
- 4) The <body>.innerHTML is also generated by an offline step so that this
- page may easily be indexed by search engines.
-
- TODO(rafaelw): Abstract this into a "pageshell" that becomes the single
- version of page template shell and the "instance" pages (bookmarks.html,
- etc...) can be generated with a build step.
--->
-<!-- <html> must retain id="template -->
-<html xmlns="http://www.w3.org/1999/xhtml">
- <!-- <head> data is significant and loads the needed libraries and styles -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title jscontent="namespace">chrome.apiname</title>
- <link href="../css/ApiRefStyles.css" rel="stylesheet" type="text/css">
- <script type="text/javascript"
- src="../../../../third_party/jstemplate/jstemplate_compiled.js">
- </script>
- <script type="text/javascript" src="../js/api_page_generator.js"></script>
- </head>
- <!-- <body> content is completely generated. Do not edit, as it will be
- and rewritten. -->
- <body class="hidden">
- </body>
+<!DOCTYPE html> +<!-- This page is a placeholder for generated extensions api doc. Note: + 1) The <head> information in this page is significant, should be uniform + across api docs and should be edited only with knowledge of the + templating mechanism. + 2) The <body> tag *must* retain id="body" + 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a + browser, it will be re-generated from the template, json schema and + authored overview content. + 4) The <body>.innerHTML is also generated by an offline step so that this + page may easily be indexed by search engines. + + TODO(rafaelw): Abstract this into a "pageshell" that becomes the single + version of page template shell and the "instance" pages (bookmarks.html, + etc...) can be generated with a build step. +--> +<!-- <html> must retain id="template --> +<html xmlns="http://www.w3.org/1999/xhtml"> + <!-- <head> data is significant and loads the needed libraries and styles --> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title jscontent="namespace">chrome.apiname</title> + <link href="../css/ApiRefStyles.css" rel="stylesheet" type="text/css"> + <script type="text/javascript" + src="../../../../third_party/jstemplate/jstemplate_compiled.js"> + </script> + <script type="text/javascript" src="../js/api_page_generator.js"></script> + </head> + <!-- <body> content is completely generated. Do not edit, as it will be + and rewritten. --> + <body class="hidden"> + </body> </html>
\ No newline at end of file diff --git a/chrome/common/extensions/docs/reference/tabs_overview.html b/chrome/common/extensions/docs/reference/tabs_overview.html index 15d6e15..de647ae 100755 --- a/chrome/common/extensions/docs/reference/tabs_overview.html +++ b/chrome/common/extensions/docs/reference/tabs_overview.html @@ -1,11 +1,11 @@ -<!-- BEGIN AUTHORED CONTENT -->
-<p id="classSummary">
-Use the <code>chrome.tabs</code> API to create, organize, and otherwise manipulate bookmarks.
-</p>
-
-<h2 id="description">Description</h2>
-
-<p>
-[PENDING: intro goes here...]
-</p>
-<!-- END AUTHORED CONTENT -->
+<!-- BEGIN AUTHORED CONTENT --> +<p id="classSummary"> +Use the <code>chrome.tabs</code> API to create, organize, and otherwise manipulate bookmarks. +</p> + +<h2 id="description">Description</h2> + +<p> +[PENDING: intro goes here...] +</p> +<!-- END AUTHORED CONTENT --> |