1 // === Overview === 2 // 3 // This file configures where to find and how to serve content in the docserver. 4 // It's the most fundamentally important file in all of the docserver. 5 // 6 // === Format === 7 // 8 // Each entry declares a rule with: 9 // * An arbitrary identifier key e.g. "cr-extensions-examples". 10 // * What URL the rule should be invoked with, given by "serveFrom", e.g. 11 // "extensions/examples". 12 // * An object describing where the content originates, either "chromium", 13 // "github", or "gcs". 14 // * "chromium" must provide a "dir" value specifying which chromium directory 15 // to look in, e.g. "extensions/samples". 16 // * "github" must provide "owner" and "repo" values specifying the owner of 17 // the GitHub repository, and the repository name, e.g. "GoogleChrome" and 18 // "chrome-app-samples" respectively. 19 // 20 // In the chromium example, when the user navigates to 21 // 22 // developer.chrome.com/extensions/examples/some/sample/path 23 // 24 // then 25 // 1. The "cr-extensions-examples" rule is invoked (since it's served from 26 // "extensions/examples"). 27 // 2. The docserver will look up the path "docs/examples/some/sample/path" 28 // in chromium - the URL after the "serveFrom" path (some/sample/path) 29 // prefixed by the chromium directory (docs/examples). 30 // 3. Then render and serve it. 31 // 32 // === Special properties === 33 // 34 // There are some other properties that can be specified: 35 // * "supportsZip" indicates whether directories are allowed to be served as 36 // zip files. For safety this isn't supported for arbitrary URLs, only those 37 // within a rule that has "supportsZip": true. 38 // * "supportsTemplates" indicates whether HTML files should be treated and 39 // renderered as templates, versus just plain text. Complex documentation 40 // which interacts with docserver features (like API listing) need to set 41 // this to true. Otherwise, it's safer and more efficient to omit it. 42 43 { 44 "cr-chrome-docs-home": { 45 "chromium": { 46 "dir": "chrome/docs" 47 }, 48 "defaultExtensions": [".html", ".md"], 49 "serveFrom": "home", 50 "supportsTemplates": true 51 }, 52 "cr-extensions-examples": { 53 "chromium": { 54 "dir": "chrome/common/extensions/docs/examples" 55 }, 56 "serveFrom": "extensions/examples", 57 "supportsZip": true 58 }, 59 "cr-public": { 60 "chromium": { 61 "dir": "chrome/common/extensions/docs/templates/public" 62 }, 63 "defaultExtensions": [".html", ".md"], 64 "serveFrom": "", 65 "supportsTemplates": true 66 }, 67 "cr-static": { 68 "chromium": { 69 "dir": "chrome/common/extensions/docs/static" 70 }, 71 "serveFrom": "static" 72 }, 73 "cr-native-client": { 74 "chromium": { 75 "dir": "native_client_sdk/doc_generated" 76 }, 77 "defaultExtensions": [".html", ".md"], 78 "serveFrom": "native-client", 79 "supportsTemplates": true 80 }, 81 "devtools-docs": { 82 "defaultExtensions": [".html", ".md"], 83 "gcs": { 84 "bucket": "gs://chromedocs-devtools" 85 }, 86 "serveFrom": "devtools", 87 "supportsTemplates": true 88 }, 89 "multidevice-docs": { 90 "defaultExtensions": [".html", ".md"], 91 "gcs": { 92 "bucket": "gs://chromedocs-multidevice" 93 }, 94 "serveFrom": "multidevice", 95 "supportsTemplates": true 96 }, 97 "webstore-docs": { 98 "defaultExtensions": [".html", ".md"], 99 "gcs": { 100 "bucket": "gs://chromedocs-webstore" 101 }, 102 "serveFrom": "webstore", 103 "supportsTemplates": true 104 } 105 } 106