Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: chrome/common/extensions/docs/js/api_page_generator.js

Issue 10642015: Basic setup for generating app docs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview This file is the controller for generating extension 6 * @fileoverview This file is the controller for generating extension
7 * doc pages. 7 * doc pages.
8 * 8 *
9 * It expects to have available via XHR (relative path): 9 * It expects to have available via XHR (relative path):
10 * 1) API_TEMPLATE which is the main template for the api pages. 10 * 1) API_TEMPLATE which is the main template for the api pages.
11 * 2) The files located at MODULE_SCHEMAS which are shared with the extension 11 * 2) The files located at MODULE_SCHEMAS which are shared with the extension
12 * system and defines the methods and events contained in one api. 12 * system and defines the methods and events contained in one api.
13 * 3) (Possibly) A static version of the current page url in /static/. I.e. 13 * 3) (Possibly) A static version of the current page url in /static/. I.e.
14 * if called as ../foo.html, it will look for ../static/foo.html. 14 * if called as ../foo.html, it will look for ../static/foo.html.
15 * 15 *
16 * The "shell" page may have a renderering already contained within it so that 16 * The "shell" page may have a renderering already contained within it so that
17 * the docs can be indexed. 17 * the docs can be indexed.
18 * 18 *
19 */ 19 */
20 20
21 var API_TEMPLATE = 'template/api_template.html'; 21 var API_TEMPLATE_EXTENSIONS = 'template/api_template.html';
22 var API_TEMPLATE_APPS = 'template/api_template_apps.html';
22 var MODULE_SCHEMAS = [ 23 var MODULE_SCHEMAS = [
23 '../api/alarms.json', // autogenerated 24 '../api/alarms.json', // autogenerated
24 '../api/bookmarks.json', 25 '../api/bookmarks.json',
25 '../api/browser_action.json', 26 '../api/browser_action.json',
26 '../api/browsing_data.json', 27 '../api/browsing_data.json',
27 '../api/chrome_auth_private.json', 28 '../api/chrome_auth_private.json',
28 '../api/chromeos_info_private.json', 29 '../api/chromeos_info_private.json',
29 '../api/content_settings.json', 30 '../api/content_settings.json',
30 '../api/context_menus.json', 31 '../api/context_menus.json',
31 '../api/cookies.json', 32 '../api/cookies.json',
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 // The page name minus the '.html' extension. 150 // The page name minus the '.html' extension.
150 pageBase = document.location.href.match(/\/([^\/]*)\.html/)[1]; 151 pageBase = document.location.href.match(/\/([^\/]*)\.html/)[1];
151 if (!pageBase) { 152 if (!pageBase) {
152 alert('Empty page name for: ' + document.location.href); 153 alert('Empty page name for: ' + document.location.href);
153 return; 154 return;
154 } 155 }
155 156
156 pageName = pageBase.replace(/([A-Z])/g, ' $1'); 157 pageName = pageBase.replace(/([A-Z])/g, ' $1');
157 pageName = pageName.substring(0, 1).toUpperCase() + pageName.substring(1); 158 pageName = pageName.substring(0, 1).toUpperCase() + pageName.substring(1);
158 159
160 // TODO(aa): Ugh, this is horrible. The problem is that these files are
161 // rendered at many locations:
162 //
163 // - file:///some/path/on/your/machine/chrome/common/extensions/docs/
164 // - http://chromeextensionsdocs.appspot.com/
165 // - code.google.com/chrome/extensions
166 // - etc
167 //
168 // At this point, we don't know what the root is, so we can't know for sure
169 // which path component should be the family. So we just base it off the
170 // current assumption that all our HTML files are currently in the root
171 // directory.
172 var docFamily = location.pathname.split("/");
173 docFamily = docFamily[docFamily.length - 2];
174 if (docFamily != "extensions" && docFamily != "apps")
175 docFamily = "";
176
177 var apiTemplate = {
178 "extensions": API_TEMPLATE_EXTENSIONS,
179 "apps": API_TEMPLATE_APPS
180 }[docFamily];
181
182 if (!apiTemplate)
183 throw new Error("Unexpected doc family: " + docFamily);
184
159 // Fetch the api template and insert into the <body>. 185 // Fetch the api template and insert into the <body>.
160 fetchContent(API_TEMPLATE, function(templateContent) { 186 fetchContent(apiTemplate, function(templateContent) {
161 document.getElementsByTagName('body')[0].innerHTML = templateContent; 187 document.getElementsByTagName('body')[0].innerHTML = templateContent;
162 fetchStatic(); 188 fetchStatic();
163 }, function(error) { 189 }, function(error) {
164 alert('Failed to load ' + API_TEMPLATE + '. ' + error); 190 alert('Failed to load ' + API_TEMPLATE + '. ' + error);
165 }); 191 });
166 } 192 }
167 193
168 function fetchStatic() { 194 function fetchStatic() {
169 // Fetch the static content and insert into the 'static' <div>. 195 // Fetch the static content and insert into the 'static' <div>.
170 fetchContent(staticResource(pageBase), function(overviewContent) { 196 fetchContent(staticResource(pageBase), function(overviewContent) {
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 } 790 }
765 if (a.name > b.name) { 791 if (a.name > b.name) {
766 return 1; 792 return 1;
767 } 793 }
768 return 0; 794 return 0;
769 } 795 }
770 796
771 function disableDocs(obj) { 797 function disableDocs(obj) {
772 return !!obj.nodoc; 798 return !!obj.nodoc;
773 } 799 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/input.ime.html ('k') | chrome/common/extensions/docs/management.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698