├── .bowerrc
├── .dockerignore
├── .gitignore
├── .npmrc
├── Makefile
├── README.md
├── bower.json
├── build.js
├── circle.yml
├── config
├── nginx-extras
│ └── Dockerfile
└── nginx
│ ├── maps
│ ├── main.map
│ ├── meta.map
│ └── wpd.map
│ └── sites-enabled
│ └── docs.conf
├── docker-compose.yml
├── layouts
└── default.hbs
├── lib
├── handlebars
│ └── index.js
└── remarkable
│ ├── highlighter.js
│ └── index.js
├── package.json
├── partials
├── attributions.hbs
├── breadcrumb.hbs
├── metadata.hbs
└── notice.hbs
├── serve.js
├── static
├── _internal
│ ├── fancy.css
│ ├── footer.html
│ └── header.html
├── assets
│ ├── css
│ │ └── docs.css
│ └── js
│ │ └── docs.js
└── favicon.ico
└── yarn.lock
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "analytics": false,
3 | "directory": "static/bower_components",
4 | "tmp": "./.tmp_bower"
5 | }
6 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | src/.git/
2 | src/WPD/.git/
3 | src/Meta/.git/
4 | build/
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .npm/
2 | node_modules/
3 | bower_components/
4 | build/
5 | npm-debug.log
6 | src/
7 | static/assets/css/highlight.css
8 | logs/
9 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | prefix = ./node_modules
2 | cache = ./.npm
3 | tmp = ./.tmp_npm
4 | HOME = .npmhome
5 | cwd = .
6 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | SHELL := bash
2 | PATH := bin:${PATH}
3 | DATE := `date '+%Y%m%d'`
4 | PWD := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
5 | .DEFAULT_GOAL := build
6 |
7 | # https://www.gnu.org/software/make/manual/make.html
8 |
9 |
10 | .PHONY: build
11 | build: src/ \
12 | static/assets/css/highlight.css
13 | time npm run build
14 |
15 |
16 | src/:
17 | @if [[ ! -d src ]]; then\
18 | git clone https://github.com/webplatform/docs.git src;\
19 | cd src;\
20 | git submodule update --init --recursive;\
21 | cd ..;\
22 | fi
23 |
24 |
25 | static/bower_components/: node_modules/
26 | node_modules/.bin/bower install
27 |
28 |
29 | static/assets/css/highlight.css: node_modules/
30 | cp node_modules/highlight.js/styles/solarized_dark.css static/assets/css/highlight.css
31 |
32 |
33 | node_modules/: package.json
34 | yarn install
35 |
36 |
37 | .PHONY: package
38 | package: build
39 | find build -type d -name .git -exec rm -rf {} +
40 | find build -type f -name .git\* -exec rm {} +
41 | tar cfjv ../docs.tar.bz2 build/
42 |
43 |
44 | ## Use local Node.js reading serve script from package.json
45 | .PHONY: serve
46 | serve:
47 | npm run serve
48 |
49 |
50 | ## Build a nginx 1.9+ Docker container for NGINX confiration testing
51 | .PHONY: nginx-extras
52 | nginx-extras:
53 | docker build --rm --no-cache -t nginx-extras - < config/nginx-extras/Dockerfile
54 |
55 |
56 | ## Build pages using Docker, instead of local Node.js
57 | .PHONY: docker-build
58 | docker-build: src node_modules static/bower_components
59 | docker run -it --rm -v "${PWD}":/usr/src/app -w /usr/src/app node:4 node build.js
60 |
61 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WebPlatform Docs static site generator
2 |
3 | This repository serves as a static-site generator for *docs.webplatform.org*, anything related generating HTML.
4 |
5 | No content should be stored in this repo, but only what it takes to generate the docs pages.
6 | The content itself is pulled in this workspace as git submodule so we can compile the static HTML files.
7 |
8 | To get the docs pages, refer to the following git repositories.
9 |
10 | | Directory | Submodule | Note |
11 | |---------------|------------------------------------|---------------------|
12 | | **src/** | [webplatform/docs][docs] | The main docs pages |
13 | | **src/Meta/** | [webplatform/docs-meta][docs-meta] | Archived content that needed to be moved during mass imports. We kept them there to cherry-pick and merge into the main content section. Was accessible under the URL *docs.webplatform.org/wiki/Meta:...* |
14 | | **src/WPD/** | [webplatform/docs-wpd][docs-wpd] | Community and notes section. Was accessible under the URL *docs.webplatform.org/wiki/WPD:...* |
15 |
16 |
17 | ### Expected steps
18 |
19 | What’s left to do prior to use this project to replace WebPlatform Docs MediaWiki instance.
20 |
21 | Roughly [all issues described in **webplatform/mediawiki-conversion**](https://github.com/webplatform/mediawiki-conversion/issues?q=is%3Aopen+is%3Aissue).
22 |
23 | * [x] [Convert MediaWiki history into Git source-controlled text files](https://github.com/webplatform/mediawiki-conversion/issues/4)
24 | * [x] [Pass a filter to every page to make it suitable for a static site generator](https://github.com/webplatform/mediawiki-conversion/issues/9)
25 | * [x] [Reproduce directory listing for pages without content](https://github.com/webplatform/mediawiki-conversion/issues/3)
26 | * [x] [Make sure all uploads are visible from generated site](https://github.com/webplatform/mediawiki-conversion/issues/5)
27 | * [ ] ~~[Reproduce search functionality](https://github.com/webplatform/mediawiki-conversion/issues/8)~~ (at least leave metadata to help making the feature)
28 | * [x] [Ensure ALL URLs are kept with appropriate redirects](https://github.com/webplatform/mediawiki-conversion/issues/6) (almost there! **needs testing**)
29 | * [x] [Get list of views the static site won’t be reproducing anymore so we can create appropriate "410 Gone" response #11](https://github.com/webplatform/mediawiki-conversion/issues/11)
30 |
31 |
32 |
33 | ## How was it done?
34 |
35 | To learn how the conversion was done, take a look at the [MediaWiki conversion project][mediawiki-conversion] utility and the [content converter][content-converter] library.
36 |
37 | [docs-wpd]: https://github.com/webplatform/docs-wpd
38 | [docs-meta]: https://github.com/webplatform/docs-meta
39 | [docs]: https://github.com/webplatform/docs
40 | [mediawiki-conversion]: https://github.com/webplatform/mediawiki-conversion "MediaWiki Conversion utility"
41 | [content-converter]: https://github.com/webplatform/content-converter "Content Converter abstract library"
42 |
43 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "generator-docs",
3 | "version": "2.0.0",
4 | "description": "WebPlatform Docs Static site generatora static site generator.",
5 | "homepage": "https://github.com/webplatform/generator-docs#readme",
6 | "license": "CC-BY-3.0",
7 | "authors": [
8 | "Renoir Boulanger "
9 | ],
10 | "ignore": [
11 | "build",
12 | "node_modules",
13 | "bower_components"
14 | ],
15 | "dependencies": {
16 | "jquery": "~1.11",
17 | "vue": "~0.12",
18 | "ie7-js": "*"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/build.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Build static HTML files using Metalsmith
4 | */
5 |
6 | var metalsmith = require("metalsmith")
7 | , changed = require("metalsmith-changed")
8 | , ignore = require("metalsmith-ignore")
9 | , layouts = require("metalsmith-layouts")
10 | , assets = require("metalsmith-assets")
11 | , remarkable = require("metalsmith-markdown-remarkable")
12 | , remarkableHighlighter = require("./lib/remarkable/highlighter")
13 | , remarkableExtender = require("./lib/remarkable")
14 | , handlebarsExtender = require("./lib/handlebars")()
15 | , pkg = require("./package.json");
16 |
17 | metalsmith(__dirname)
18 | .clean(false)
19 | .use(changed())
20 | .use(ignore([
21 | ".git"
22 | ]))
23 | .source("./src")
24 | .destination("./build")
25 | //.concurrency(2024)
26 | .use(remarkable("full", {
27 | html: true
28 | ,breaks: true
29 | ,typographer: true
30 | ,langPrefix: ""
31 | ,highlight: remarkableHighlighter
32 | }).use(remarkableExtender))
33 | .use(layouts({
34 | engine: "handlebars"
35 | ,default: "default.hbs"
36 | ,partials: "partials"
37 | }))
38 | .use(assets({
39 | source: "./static"
40 | ,destination: "./"
41 | }))
42 | .build(function (err) {
43 | if (err) {
44 | console.log(err);
45 | } else {
46 | console.log("Site build complete!");
47 | }
48 | });
49 |
--------------------------------------------------------------------------------
/circle.yml:
--------------------------------------------------------------------------------
1 | machine:
2 | node:
3 | version: 4.2.2
4 |
5 | dependencies:
6 | override:
7 | - npm install yarn bower -g
8 |
9 | test:
10 | override:
11 | - make
12 | post:
13 | - 'find build -type d -name .git -exec rm -rf {} +'
14 | - 'find build -type f -name .\* -exec rm {} +'
15 | - mv build docs
16 | - tar cfj $CIRCLE_ARTIFACTS/docs.tar.bz2 docs/
17 |
18 | notify:
19 | webhooks:
20 | - url: $HOOK_ENDPOINT/generator-docs?HOOK_SHARED_TOKEN=$HOOK_SHARED_TOKEN
21 |
--------------------------------------------------------------------------------
/config/nginx-extras/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM debian:jessie
2 |
3 | ## TODO: Make this a shell script or run those inside a blank Debian Jessie VM
4 | ## https://wiki.debian.org/DebianExperimental
5 | ## https://packages.debian.org/experimental/nginx-extras
6 | RUN echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list \
7 | && apt-get update \
8 | && apt-get upgrade -y \
9 | && apt-get install -t jessie-backports -y nginx-extras \
10 | && rm -rf /var/lib/apt/lists/* \
11 | && ln -sf /dev/stdout /var/log/nginx/access.log \
12 | && ln -sf /dev/stderr /var/log/nginx/error.log
13 |
14 | EXPOSE 80 443
15 |
16 | CMD ["nginx", "-g", "daemon off;"]
17 |
--------------------------------------------------------------------------------
/config/nginx/maps/main.map:
--------------------------------------------------------------------------------
1 | #
2 | # This File attempts to fix original MediaWiki links to redirect to static files
3 | #
4 | # Any document created after the migration MUST be valid URL that can be stored without potential problems
5 | # on a file system (i.e. consistent casing, no spaces, nor any special characters ?&!()[]:).
6 | #
7 | # This map was originally generated using webplatform/mediawiki-conversion[1] project on GitHub and written into
8 | # reports/nginx_redirects.map
9 | #
10 | # This file was generated against namespace 0 and 108 from app1.production.wpdn on 2015-07-
11 | #
12 | # # From the MediaWiki installation;
13 | # php maintenance/dumpBackup.php --full --filter=namespace:0,108 > /home/renoirb/main_full.xml
14 | #
15 | # # From a MediaWiki Converter clone;
16 | # app/console mediawiki:summary
17 | #
18 | # Once generated, it has been manually edited to remove duplicates and had attempts to fix redirect loops.
19 | #
20 | # [1]: https://github.com/webplatform/mediawiki-conversion
21 | #
22 | # @author Renoir Boulanger
23 | #
24 |
25 | location / {
26 | fancyindex on;
27 | fancyindex_exact_size off;
28 | fancyindex_footer /_internal/footer.html;
29 | fancyindex_header /_internal/header.html;
30 | }
31 |
32 | rewrite ^/wiki/(.*)$ /$1 permanent; # MUST be the first
33 | rewrite ^/$ /Main_Page permanent;
34 |
35 | rewrite ^/WPD/Community$ /Community permanent;
36 | rewrite ^/WPD/Contributors_Guide$ /CONTRIBUTING.html permanent;
37 | rewrite ^/WPD/Contributing$ /CONTRIBUTING.html permanent;
38 | rewrite (?i)^/Contribut(e|ing)$ /CONTRIBUTING.html permanent;
39 | rewrite ^/WPD/Contribute$ /CONTRIBUTING.html permanent;
40 |
41 | rewrite /Meta\:(.*)$ /Meta/$1 permanent;
42 | rewrite /WPD\:(.*)$ /WPD/$1 permanent;
43 |
44 | ## Images hardcoded in wiki source before we migrated to DreamObjects
45 | rewrite ^/w/images/(.*)$ /assets/$1;
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | # Replace MediaWiki specific. Not meta. Not main content.
56 | rewrite (?i)^/MediaWiki\:Site-terms-of-service /Contributor_Agreement permanent;
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | # Redirect loops
67 | rewrite (?i)^/after$ /css/selectors/pseudo-elements/after permanent;
68 | rewrite (?i)^/tutorials/What(\ |_)is(\ |_)CSS(\?|)$ /tutorials/learning_what_css_is permanent;
69 | rewrite (?i)^/tutorials/learning\ what\ css\ is$ /tutorials/learning_what_css_is permanent;
70 | rewrite (?i)^/html/attributes/type(\ |_)type(\ |_)\(a,(\ |_)link,(\ |_)embed\)$ /html/attributes/type permanent;
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | # Potential casing mess
81 | rewrite (?i)^/concepts/Detecting_device_and_browser$ /concepts/Detecting_device_and_browser break;
82 | rewrite (?i)^/concepts/IA$ /concepts/IA break;
83 | rewrite (?i)^/concepts/Internet_and_Web$ /concepts/Internet_and_Web break;
84 | rewrite (?i)^/concepts/IntrotoArt$ /concepts/IntrotoArt break;
85 | rewrite (?i)^/concepts/Pointer_Events$ /concepts/Pointer_Events break;
86 | rewrite (?i)^/concepts/VTT_Captioning$ /concepts/VTT_Captioning break;
87 | rewrite (?i)^/concepts/accessibility$ /concepts/accessibility break;
88 | rewrite (?i)^/concepts/an_introduction_to_web_design$ /concepts/an_introduction_to_web_design break;
89 | rewrite (?i)^/concepts/color_theory$ /concepts/color_theory break;
90 | rewrite (?i)^/concepts/creating_prototypes$ /concepts/creating_prototypes break;
91 | rewrite (?i)^/concepts/cross_browser_techniques$ /concepts/cross_browser_techniques break;
92 | rewrite (?i)^/concepts/design_theory$ /concepts/design_theory break;
93 | rewrite (?i)^/concepts/domain_names$ /concepts/domain_names break;
94 | rewrite (?i)^/concepts/experimental_features$ /concepts/experimental_features break;
95 | rewrite (?i)^/concepts/general_programming$ /concepts/general_programming break;
96 | rewrite (?i)^/concepts/graceful_degradation$ /concepts/graceful_degradation break;
97 | rewrite (?i)^/concepts/ia_and_usability$ /concepts/ia_and_usability break;
98 | rewrite (?i)^/concepts/information_architecture$ /concepts/information_architecture break;
99 | rewrite (?i)^/concepts/internationalization$ /concepts/internationalization break;
100 | rewrite (?i)^/concepts/internet_web$ /concepts/internet_web break;
101 | rewrite (?i)^/concepts/javascript$ /concepts/javascript break;
102 | rewrite (?i)^/concepts/mobile_web$ /concepts/mobile_web break;
103 | rewrite (?i)^/concepts/network_architecture$ /concepts/network_architecture break;
104 | rewrite (?i)^/concepts/one_web$ /concepts/one_web break;
105 | rewrite (?i)^/concepts/performance$ /concepts/performance break;
106 | rewrite (?i)^/concepts/polyfill$ /concepts/polyfill break;
107 | rewrite (?i)^/concepts/programming$ /concepts/programming break;
108 | rewrite (?i)^/concepts/progressive_enhancement$ /concepts/progressive_enhancement break;
109 | rewrite (?i)^/concepts/proprietary_internet_explorer_techniques$ /concepts/proprietary_internet_explorer_techniques break;
110 | rewrite (?i)^/concepts/protocols$ /concepts/protocols break;
111 | rewrite (?i)^/concepts/redirect_no_javascript$ /concepts/redirect_no_javascript break;
112 | rewrite (?i)^/concepts/responsive$ /concepts/responsive break;
113 | rewrite (?i)^/concepts/security$ /concepts/security break;
114 | rewrite (?i)^/concepts/ux$ /concepts/ux break;
115 | rewrite (?i)^/concepts/web_design$ /concepts/web_design break;
116 | rewrite (?i)^/concepts/web_typography$ /concepts/web_typography break;
117 | rewrite (?i)^/concepts/wireframing_a_site$ /concepts/wireframing_a_site break;
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | # 1_nginx.map
128 | rewrite (?i)^/css/atrules/@charset$ /css/atrules/charset break;
129 | rewrite (?i)^/css/atrules/@font-face$ /css/atrules/font-face break;
130 | rewrite (?i)^/css/atrules/@import$ /css/atrules/import break;
131 | rewrite (?i)^/css/atrules/@keyframes$ /css/atrules/keyframes break;
132 | rewrite (?i)^/css/atrules/@media$ /css/atrules/media break;
133 | rewrite (?i)^/css/atrules/@namespace$ /css/atrules/namespace break;
134 | rewrite (?i)^/css/atrules/@page$ /css/atrules/page break;
135 | rewrite (?i)^/css/atrules/@region$ /css/atrules/region break;
136 | rewrite (?i)^/css/atrules/@supports$ /css/atrules/supports break;
137 | rewrite (?i)^/css/atrules/@viewport$ /css/atrules/viewport break;
138 | rewrite (?i)^/css/functions/matrix\(\)$ /css/functions/matrix break;
139 | rewrite (?i)^/css/functions/rotate\(\)$ /css/functions/rotate break;
140 | rewrite (?i)^/css/functions/rotate3d\(\)$ /css/functions/rotate3d break;
141 | rewrite (?i)^/css/functions/rotateX\(\)$ /css/functions/rotateX break;
142 | rewrite (?i)^/css/functions/rotateY\(\)$ /css/functions/rotateY break;
143 | rewrite (?i)^/css/functions/rotateZ\(\)$ /css/functions/rotateZ break;
144 | rewrite (?i)^/css/functions/scale\(\)$ /css/functions/scale break;
145 | rewrite (?i)^/css/functions/scale3d\(\)$ /css/functions/scale3d break;
146 | rewrite (?i)^/css/functions/scaleX\(\)$ /css/functions/scaleX break;
147 | rewrite (?i)^/css/functions/scaleY\(\)$ /css/functions/scaleY break;
148 | rewrite (?i)^/css/functions/scaleZ\(\)$ /css/functions/scaleZ break;
149 | rewrite (?i)^/css/functions/skew\(\)$ /css/functions/skew break;
150 | rewrite (?i)^/css/functions/skewX\(\)$ /css/functions/skewX break;
151 | rewrite (?i)^/css/functions/skewY\(\)$ /css/functions/skewY break;
152 | rewrite (?i)^/css/functions/translate\(\)$ /css/functions/translate break;
153 | rewrite (?i)^/css/functions/translate3d\(\)$ /css/functions/translate3d break;
154 | rewrite (?i)^/css/functions/translateX\(\)$ /css/functions/translateX break;
155 | rewrite (?i)^/css/functions/translateY\(\)$ /css/functions/translateY break;
156 | rewrite (?i)^/css/functions/translateZ\(\)$ /css/functions/translateZ break;
157 | rewrite (?i)^/css/functions/url\(\)$ /css/functions/url break;
158 | rewrite (?i)^/css/selectors/pseudo-classes/\:-ms-input-placeholder$ /css/selectors/pseudo-classes/-ms-input-placeholder break;
159 | rewrite (?i)^/css/selectors/pseudo-classes/\:active$ /css/selectors/pseudo-classes/active break;
160 | rewrite (?i)^/css/selectors/pseudo-classes/\:checked$ /css/selectors/pseudo-classes/checked break;
161 | rewrite (?i)^/css/selectors/pseudo-classes/\:disabled$ /css/selectors/pseudo-classes/disabled break;
162 | rewrite (?i)^/css/selectors/pseudo-classes/\:empty$ /css/selectors/pseudo-classes/empty break;
163 | rewrite (?i)^/css/selectors/pseudo-classes/\:enabled$ /css/selectors/pseudo-classes/enabled break;
164 | rewrite (?i)^/css/selectors/pseudo-classes/\:first-child$ /css/selectors/pseudo-classes/first-child break;
165 | rewrite (?i)^/css/selectors/pseudo-classes/\:first-of-type$ /css/selectors/pseudo-classes/first-of-type break;
166 | rewrite (?i)^/css/selectors/pseudo-classes/\:focus$ /css/selectors/pseudo-classes/focus break;
167 | rewrite (?i)^/css/selectors/pseudo-classes/\:hover$ /css/selectors/pseudo-classes/hover break;
168 | rewrite (?i)^/css/selectors/pseudo-classes/\:in-range$ /css/selectors/pseudo-classes/in-range break;
169 | rewrite (?i)^/css/selectors/pseudo-classes/\:indeterminate$ /css/selectors/pseudo-classes/indeterminate break;
170 | rewrite (?i)^/css/selectors/pseudo-classes/\:invalid$ /css/selectors/pseudo-classes/invalid break;
171 | rewrite (?i)^/css/selectors/pseudo-classes/\:lang\(c\)$ /css/selectors/pseudo-classes/lang break;
172 | rewrite (?i)^/css/selectors/pseudo-classes/\:last-child$ /css/selectors/pseudo-classes/last-child break;
173 | rewrite (?i)^/css/selectors/pseudo-classes/\:last-of-type$ /css/selectors/pseudo-classes/last-of-type break;
174 | rewrite (?i)^/css/selectors/pseudo-classes/\:link$ /css/selectors/pseudo-classes/link break;
175 | rewrite (?i)^/css/selectors/pseudo-classes/\:not$ /css/selectors/pseudo-classes/not break;
176 | rewrite (?i)^/css/selectors/pseudo-classes/\:nth-child\(n\)$ /css/selectors/pseudo-classes/nth-child break;
177 | rewrite (?i)^/css/selectors/pseudo-classes/\:nth-last-child\(n\)$ /css/selectors/pseudo-classes/nth-last-child break;
178 | rewrite (?i)^/css/selectors/pseudo-classes/\:nth-last-of-type\(n\)$ /css/selectors/pseudo-classes/nth-last-of-type break;
179 | rewrite (?i)^/css/selectors/pseudo-classes/\:nth-of-type\(n\)$ /css/selectors/pseudo-classes/nth-of-type break;
180 | rewrite (?i)^/css/selectors/pseudo-classes/\:only-child$ /css/selectors/pseudo-classes/only-child break;
181 | rewrite (?i)^/css/selectors/pseudo-classes/\:only-of-type$ /css/selectors/pseudo-classes/only-of-type break;
182 | rewrite (?i)^/css/selectors/pseudo-classes/\:optional$ /css/selectors/pseudo-classes/optional break;
183 | rewrite (?i)^/css/selectors/pseudo-classes/\:required$ /css/selectors/pseudo-classes/required break;
184 | rewrite (?i)^/css/selectors/pseudo-classes/\:root$ /css/selectors/pseudo-classes/root break;
185 | rewrite (?i)^/css/selectors/pseudo-classes/\:target$ /css/selectors/pseudo-classes/target break;
186 | rewrite (?i)^/css/selectors/pseudo-classes/\:valid$ /css/selectors/pseudo-classes/valid break;
187 | rewrite (?i)^/css/selectors/pseudo-classes/\:visited$ /css/selectors/pseudo-classes/visited break;
188 | rewrite (?i)^/css/selectors/pseudo-elements/\:\:after$ /css/selectors/pseudo-elements/after break;
189 | rewrite (?i)^/css/selectors/pseudo-elements/\:\:before$ /css/selectors/pseudo-elements/before break;
190 | rewrite (?i)^/css/selectors/pseudo-elements/\:\:first-letter$ /css/selectors/pseudo-elements/first-letter break;
191 | rewrite (?i)^/css/selectors/pseudo-elements/\:\:first-line$ /css/selectors/pseudo-elements/first-line break;
192 | rewrite (?i)^/css/selectors/pseudo-elements/\:\:region$ /css/selectors/pseudo-elements/region break;
193 | rewrite (?i)^/css/selectors/pseudo-elements/\:\:selection$ /css/selectors/pseudo-elements/selection break;
194 | rewrite (?i)^/css/syntax/!important$ /css/syntax/important break;
195 | rewrite (?i)^/html/attributes/max\(HTMLProgressElement\)$ /html/attributes/maxHTMLProgressElement break;
196 | rewrite (?i)^/html/elements/!DOCTYPE$ /html/elements/DOCTYPE break;
197 | rewrite (?i)^/html/elements/!DOCTYPE/ja$ /html/elements/DOCTYPE/ja break;
198 | rewrite (?i)^/Accept$ /http/headers/Accept break;
199 | rewrite (?i)^/apis/css-regions/NamedFlow/regionlayoutupdate$ /apis/css-regions/NamedFlow/regionfragmentchange break;
200 | rewrite (?i)^/apis/indexeddb/IDBCuror/update$ /apis/indexeddb/IDBCursor/update break;
201 | rewrite (?i)^/apis/pointerevents/PointerEvent$ /dom/objects/PointerEvent break;
202 | rewrite (?i)^/apis/timing/methods/requestAnimationFrame$ /dom/Window/requestAnimationFrame break;
203 | rewrite (?i)^/apis/timing/properties/domContentLoadedEventEnd$ /apis/navigation_timing/PerformanceTiming/domContentLoadedEventEnd break;
204 | rewrite (?i)^/apis/webrtc/objects/MediaStream/properties/videoTracks$ /apis/webrtc/MediaStream/videoTracks break;
205 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack$ /apis/webrtc/MediaStreamTrack break;
206 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/events/ended$ /apis/webrtc/MediaStreamTrack/ended break;
207 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/events/muted$ /apis/webrtc/MediaStreamTrack/muted break;
208 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/events/unmuted$ /apis/webrtc/MediaStreamTrack/unmuted break;
209 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/properties/enabled$ /apis/webrtc/MediaStreamTrack/enabled break;
210 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/properties/kind$ /apis/webrtc/MediaStreamTrack/kind break;
211 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/properties/label$ /apis/webrtc/MediaStreamTrack/label break;
212 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/properties/onended$ /apis/webrtc/MediaStreamTrack/onended break;
213 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/properties/onmute$ /apis/webrtc/MediaStreamTrack/onmute break;
214 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrack/properties/readyState$ /apis/webrtc/MediaStreamTrack/readyState break;
215 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList$ /apis/webrtc/MediaStreamTrackList break;
216 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/events/addtrack$ /apis/webrtc/MediaStreamTrackList/addtrack break;
217 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/events/removetrack$ /apis/webrtc/MediaStreamTrackList/removetrack break;
218 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/methods/add$ /apis/webrtc/MediaStreamTrackList/add break;
219 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/methods/item$ /apis/webrtc/MediaStreamTrackList/item break;
220 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/methods/remove$ /apis/webrtc/MediaStreamTrackList/remove break;
221 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/properties/length$ /apis/webrtc/MediaStreamTrackList/length break;
222 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/properties/onaddtrack$ /apis/webrtc/MediaStreamTrackList/onaddtrack break;
223 | rewrite (?i)^/apis/webrtc/objects/MediaStreamTrackList/properties/onremovetrack$ /apis/webrtc/MediaStreamTrackList/onremovetrack break;
224 | rewrite (?i)^/apis/websockets/CloseEvent$ /apis/websocket/CloseEvent break;
225 | rewrite (?i)^/apis/websockets/CloseEvent/code$ /apis/websocket/CloseEvent/code break;
226 | rewrite (?i)^/apis/websockets/CloseEvent/reason$ /apis/websocket/CloseEvent/reason break;
227 | rewrite (?i)^/apis/websockets/CloseEvent/wasClean$ /apis/websocket/CloseEvent/wasClean break;
228 | rewrite (?i)^/apis/websockets/MessageEvent$ /apis/websocket/MessageEvent break;
229 | rewrite (?i)^/apis/websockets/MessageEvent/data$ /apis/websocket/MessageEvent/data break;
230 | rewrite (?i)^/A(\ |_)Quick(\ |_)Start(\ |_)to(\ |_)getting(\ |_)started(\ |_)contributing(\ |_)to(\ |_)Web(\ |_)Platform.org$ /WPD/Quick_Start break;
231 | rewrite (?i)^/bdi$ /html/elements/bdi break;
232 | rewrite (?i)^/border-image$ /css/properties/border-image break;
233 | rewrite (?i)^/canvas$ /html/elements/canvas break;
234 | rewrite (?i)^/concepts/localisation$ /concepts/internationalization break;
235 | rewrite (?i)^/concepts/PointerEvents$ /concepts/Pointer_Events break;
236 | rewrite (?i)^/concepts/proprietary-ie-techniques$ /concepts/proprietary_internet_explorer_techniques break;
237 | rewrite (?i)^/cross-fade$ /css/functions/cross-fade break;
238 | rewrite (?i)^/css/atrules/-ms-viewport$ /css/atrules/viewport break;
239 | rewrite (?i)^/css/cross-fade$ /css/functions/cross-fade break;
240 | rewrite (?i)^/css/cssom/CSSRegionStyleRule$ /OLDcss/cssom/CSSRegionStyleRule break;
241 | rewrite (?i)^/css/cssom/CSSRule/CSSRule$ /css/cssom/CSSRule break;
242 | rewrite (?i)^/css/cssom/methods/removeImport$ /css/cssom/styleSheet/removeImport break;
243 | rewrite (?i)^/css/cssom/methods/removeProperty$ /css/cssom/CSSStyleDeclaration/removeProperty break;
244 | rewrite (?i)^/css/cssom/methods/removeRule$ /css/cssom/styleSheet/removeRule break;
245 | rewrite (?i)^/css/cssom/methods/setProperty$ /css/cssom/CSSStyleDeclaration/setProperty break;
246 | rewrite (?i)^/css/cssom/NamedFlow$ /apis/css-regions/NamedFlow break;
247 | rewrite (?i)^/css/cssom/NamedFlow/firstEmptyRegionIndex$ /apis/css-regions/NamedFlow/firstEmptyRegionIndex break;
248 | rewrite (?i)^/css/cssom/NamedFlow/getContent$ /apis/css-regions/NamedFlow/getContent break;
249 | rewrite (?i)^/css/cssom/NamedFlow/getNamedFlows$ /apis/css-regions/NamedFlow/getNamedFlows break;
250 | rewrite (?i)^/css/cssom/NamedFlow/getRegions$ /apis/css-regions/NamedFlow/getRegions break;
251 | rewrite (?i)^/css/cssom/NamedFlow/getRegionsByContent$ /apis/css-regions/NamedFlow/getRegionsByContent break;
252 | rewrite (?i)^/css/cssom/NamedFlow/name$ /apis/css-regions/NamedFlow/name break;
253 | rewrite (?i)^/css/cssom/NamedFlow/overset$ /apis/css-regions/NamedFlow/overset break;
254 | rewrite (?i)^/css/cssom/NamedFlow/regionlayoutupdate$ /apis/css-regions/NamedFlow/regionlayoutupdate break;
255 | rewrite (?i)^/css/cssom/Region$ /apis/css-regions/Region break;
256 | rewrite (?i)^/css/cssom/Region/getComputedRegionStyle$ /apis/css-regions/Region/getComputedRegionStyle break;
257 | rewrite (?i)^/css/cssom/Region/getRegionFlowRanges$ /apis/css-regions/Region/getRegionFlowRanges break;
258 | rewrite (?i)^/css/cssom/Region/regionOverset$ /apis/css-regions/Region/regionOverset break;
259 | rewrite (?i)^/css/flexbox$ /css/properties/flex break;
260 | rewrite (?i)^/css/functions/transition-timing-function$ /css/properties/transition-timing-function break;
261 | rewrite (?i)^/css/linear-gradient$ /css/functions/linear-gradient break;
262 | rewrite (?i)^/css/properties/-ms-block-progression$ /css/properties/block-progression break;
263 | rewrite (?i)^/css/properties/-ms-box-align$ /css/properties/box-align break;
264 | rewrite (?i)^/css/properties/-ms-box-direction$ /css/properties/box-direction break;
265 | rewrite (?i)^/css/properties/-ms-box-flex$ /css/properties/box-flex break;
266 | rewrite (?i)^/css/properties/-ms-box-line-progression$ /css/properties/box-line-progression break;
267 | rewrite (?i)^/css/properties/-ms-box-lines$ /css/properties/box-lines break;
268 | rewrite (?i)^/css/properties/-ms-box-ordinal-group$ /css/properties/box-ordinal-group break;
269 | rewrite (?i)^/css/properties/-ms-box-pack$ /css/properties/box-pack break;
270 | rewrite (?i)^/css/properties/-ms-content-zoom-factor$ /css/properties/msContentZoomFactor break;
271 | rewrite (?i)^/css/properties/-ms-flex-align$ /css/properties/flex-align break;
272 | rewrite (?i)^/css/properties/-ms-flex-item-align$ /css/properties/flex-item-align break;
273 | rewrite (?i)^/css/properties/-ms-flex-line-pack$ /css/properties/flex-line-pack break;
274 | rewrite (?i)^/css/properties/-ms-flex-order$ /css/properties/flex-order break;
275 | rewrite (?i)^/css/properties/-ms-flex-pack$ /css/properties/justify-content break;
276 | rewrite (?i)^/css/properties/-ms-linear-gradient$ /css/functions/linear-gradient break;
277 | rewrite (?i)^/css/properties/animation/animation$ /css/properties/animation break;
278 | rewrite (?i)^/css/properties/box-align$ /css/properties/align-items break;
279 | rewrite (?i)^/css/properties/flex-align$ /css/properties/align-items break;
280 | rewrite (?i)^/css/properties/flex-item-align$ /css/properties/align-self break;
281 | rewrite (?i)^/css/properties/flex-line-pack$ /css/properties/align-content break;
282 | rewrite (?i)^/css/properties/flex-order$ /css/properties/order break;
283 | rewrite (?i)^/css/properties/flex-pack$ /css/properties/justify-content break;
284 | rewrite (?i)^/css/properties/foo$ /css/properties/grid-row break;
285 | rewrite (?i)^/css/properties/mask-border-image$ /css/properties/mask-border break;
286 | rewrite (?i)^/css/properties/mask-box-image$ /css/properties/mask-border-image break;
287 | rewrite (?i)^/css/properties/mask-box-image-outset$ /css/properties/mask-border-outset break;
288 | rewrite (?i)^/css/properties/mask-box-image-repeat$ /css/properties/mask-border-repeat break;
289 | rewrite (?i)^/css/properties/mask-box-image-slice$ /css/properties/mask-border-slice break;
290 | rewrite (?i)^/css/properties/mask-box-image-source$ /css/properties/mask-border-source break;
291 | rewrite (?i)^/css/properties/mask-box-image-width$ /css/properties/mask-border-width break;
292 | rewrite (?i)^/css/properties/mask-source-type$ /css/properties/mask-mode break;
293 | rewrite (?i)^/css/properties/ms-block-progression$ /css/properties/-ms-block-progression break;
294 | rewrite (?i)^/css/properties/ms-box-align$ /css/properties/-ms-box-align break;
295 | rewrite (?i)^/css/properties/ms-box-direction$ /css/properties/-ms-box-direction break;
296 | rewrite (?i)^/css/properties/ms-box-flex$ /css/properties/-ms-box-flex break;
297 | rewrite (?i)^/css/properties/ms-box-line-progression$ /css/properties/-ms-box-line-progression break;
298 | rewrite (?i)^/css/properties/ms-box-lines$ /css/properties/-ms-box-lines break;
299 | rewrite (?i)^/css/properties/ms-box-ordinal-group$ /css/properties/-ms-box-ordinal-group break;
300 | rewrite (?i)^/css/properties/ms-box-orient$ /css/properties/-ms-box-orient break;
301 | rewrite (?i)^/css/properties/ms-box-pack$ /css/properties/-ms-box-pack break;
302 | rewrite (?i)^/css/properties/ms-content-zoom-chaining$ /css/properties/-ms-content-zoom-chaining break;
303 | rewrite (?i)^/css/properties/ms-content-zoom-factor$ /css/properties/msContentZoomFactor break;
304 | rewrite (?i)^/css/properties/ms-content-zoom-limit$ /css/properties/-ms-content-zoom-limit break;
305 | rewrite (?i)^/css/properties/ms-content-zoom-limit-max$ /css/properties/-ms-content-zoom-limit-max break;
306 | rewrite (?i)^/css/properties/ms-content-zoom-limit-min$ /css/properties/-ms-content-zoom-limit-min break;
307 | rewrite (?i)^/css/properties/ms-content-zoom-snap$ /css/properties/-ms-content-zoom-snap break;
308 | rewrite (?i)^/css/properties/ms-content-zoom-snap-points$ /css/properties/-ms-content-zoom-snap-points break;
309 | rewrite (?i)^/css/properties/ms-content-zoom-snap-type$ /css/properties/-ms-content-zoom-snap-type break;
310 | rewrite (?i)^/css/properties/ms-content-zooming$ /css/properties/-ms-content-zooming break;
311 | rewrite (?i)^/css/properties/ms-flex$ /css/properties/-ms-flex break;
312 | rewrite (?i)^/css/properties/ms-flex-align$ /css/properties/-ms-flex-align break;
313 | rewrite (?i)^/css/properties/ms-flex-direction$ /css/properties/-ms-flex-direction break;
314 | rewrite (?i)^/css/properties/ms-flex-flow$ /css/properties/-ms-flex-flow break;
315 | rewrite (?i)^/css/properties/ms-flex-item-align$ /css/properties/-ms-flex-item-align break;
316 | rewrite (?i)^/css/properties/ms-flex-line-pack$ /css/properties/-ms-flex-line-pack break;
317 | rewrite (?i)^/css/properties/ms-flex-order$ /css/properties/-ms-flex-order break;
318 | rewrite (?i)^/css/properties/ms-flex-pack$ /css/properties/-ms-flex-pack break;
319 | rewrite (?i)^/css/properties/ms-flex-wrap$ /css/properties/-ms-flex-wrap break;
320 | rewrite (?i)^/css/properties/ms-grid-column$ /css/properties/grid-column break;
321 | rewrite (?i)^/css/properties/ms-grid-column-span$ /css/properties/grid-column-span break;
322 | rewrite (?i)^/css/properties/ms-hyphenate-limit-lines$ /css/properties/hyphenate-limit-lines break;
323 | rewrite (?i)^/css/properties/ms-hyphens$ /css/properties/hyphens break;
324 | rewrite (?i)^/css/properties/ms-touch-action$ /css/properties/-ms-touch-action break;
325 | rewrite (?i)^/css/properties/region-break-after$ /css/properties/break-after break;
326 | rewrite (?i)^/css/properties/region-break-before$ /css/properties/break-before break;
327 | rewrite (?i)^/css/properties/region-break-inside$ /css/properties/break-inside break;
328 | rewrite (?i)^/css/properties/region-overflow$ /css/properties/region-fragment break;
329 | rewrite (?i)^/css/properties/region-verflow$ /css/properties/region-overflow break;
330 | rewrite (?i)^/css/radial-gradient$ /css/functions/radial-gradient break;
331 | rewrite (?i)^/css/repeating-linear-gradient$ /css/functions/repeating-linear-gradient break;
332 | rewrite (?i)^/css/repeating-radial-gradient$ /css/functions/repeating-radial-gradient break;
333 | rewrite (?i)^/css/selectors/-ms-scrollbar-shadow-color$ /css/properties/-ms-scrollbar-shadow-color break;
334 | rewrite (?i)^/css/selectors/border-image$ /css/properties/border-image break;
335 | rewrite (?i)^/css/selectors/cursor$ /css/properties/cursor break;
336 | rewrite (?i)^/css/selectors/outline$ /css/properties/outline break;
337 | rewrite (?i)^/css/selectors/outline-color$ /css/properties/outline-color break;
338 | rewrite (?i)^/css/selectors/outline-style$ /css/properties/outline-style break;
339 | rewrite (?i)^/css/selectors/outline-width$ /css/properties/outline-width break;
340 | rewrite (?i)^/css/selectors/user-select$ /css/properties/user-select break;
341 | rewrite (?i)^/css/selectors/zoom$ /css/properties/zoom break;
342 | rewrite (?i)^/css/text/word-spacing/word-spacing$ /css/properties/word-spacing break;
343 | rewrite (?i)^/css/Training$ /css/tutorials break;
344 | rewrite (?i)^/css/transforms$ /css/properties/transform break;
345 | rewrite (?i)^/css/transforms/transform$ /css/properties/transform break;
346 | rewrite (?i)^/css/tutorials/css-regions$ /tutorials/css-regions break;
347 | rewrite (?i)^/css/units/color$ /css/data_types/color break;
348 | rewrite (?i)^/css/units/text$ /css/data_types/text break;
349 | rewrite (?i)^/data$ /html/elements/data break;
350 | rewrite (?i)^/dom/events/DOMContentLoaded$ /dom/Event/DOMContentLoaded break;
351 | rewrite (?i)^/dom/events/load$ /dom/Element/load break;
352 | rewrite (?i)^/dom/images$ /dom/Image break;
353 | rewrite (?i)^/dom/object/PointerEvent/pointercancel$ /dom/objects/PointerEvent/pointercancel break;
354 | rewrite (?i)^/html/elements/applets$ /html/elements/applet break;
355 | rewrite (?i)^/html/elements/comment$ /html/elements/html_comment_data-type break;
356 | rewrite (?i)^/html/elements/dl-test$ /html/elements/dl break;
357 | rewrite (?i)^/http$ /concepts/protocols/http break;
358 | rewrite (?i)^/ImageCapture$ /apis/image_capture/ImageCapture break;
359 | rewrite (?i)^/js/objects/parseFloat$ /javascript/functions/parseFloat break;
360 | rewrite (?i)^/js/objects/parseInt$ /javascript/functions/parseInt break;
361 | rewrite (?i)^/keygen$ /html/elements/keygen break;
362 | rewrite (?i)^/mask-composite$ /css/properties/mask-composite break;
363 | rewrite (?i)^/rb$ /html/elements/rb break;
364 | rewrite (?i)^/rp$ /html/elements/rp break;
365 | rewrite (?i)^/rtc$ /html/elements/rtc break;
366 | rewrite (?i)^/svg/elements/feColorMix$ /svg/elements/feColorMatrix break;
367 | rewrite (?i)^/svg/elements/feFuncGelement$ /svg/elements/feFuncG break;
368 | rewrite (?i)^/svg/elements/patterrn$ /svg/elements/pattern break;
369 | rewrite (?i)^/tutorial/JavaScript-Statements$ /tutorials/javascript_statements break;
370 | rewrite (?i)^/tutorials/google-chrome-frame$ /tutorials/google_chrome_frame break;
371 | rewrite (?i)^/tutorials/JavaScript-About$ /tutorials/javascript_about break;
372 | rewrite (?i)^/tutorials/Mobile$ /tutorials/mobile_optimization_best_practices break;
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 | # 2_nginx_almost_same_casing
383 | rewrite (?i)^/apis/indexedDB$ /apis/indexeddb break;
384 | rewrite (?i)^/beginners$ /Beginners break;
385 | rewrite (?i)^/beginners/advanced$ /Beginners/advanced break;
386 | rewrite (?i)^/beginners/css$ /Beginners/css break;
387 | rewrite (?i)^/beginners/es$ /Beginners/es break;
388 | rewrite (?i)^/beginners/glossary$ /Beginners/glossary break;
389 | rewrite (?i)^/beginners/html$ /Beginners/html break;
390 | rewrite (?i)^/beginners/ja$ /Beginners/ja break;
391 | rewrite (?i)^/beginners/javascript$ /Beginners/javascript break;
392 | rewrite (?i)^/beginners/ko$ /Beginners/ko break;
393 | rewrite (?i)^/beginners/planning$ /Beginners/planning break;
394 | rewrite (?i)^/beginners/programming$ /Beginners/programming break;
395 | rewrite (?i)^/beginners/pt-br$ /Beginners/pt-br break;
396 | rewrite (?i)^/beginners/tr$ /Beginners/tr break;
397 | rewrite (?i)^/beginners/zh$ /Beginners/zh break;
398 | rewrite (?i)^/concepts/accessibility/POUR$ /concepts/accessibility/pour break;
399 | rewrite (?i)^/concepts/internet(\ |_)and(\ |_)web/About(\ |_)proxy(\ |_)based(\ |_)browsers$ /concepts/Internet_and_Web/About_proxy_based_browsers break;
400 | rewrite (?i)^/concepts/programming/javascript/LiveConnect$ /concepts/programming/javascript/liveconnect break;
401 | rewrite (?i)^/css/Mediaqueries$ /css/mediaqueries break;
402 | rewrite (?i)^/css/Namespaces$ /css/namespaces break;
403 | rewrite (?i)^/css/Properties/color$ /css/properties/color break;
404 | rewrite (?i)^/css/Properties/opacity$ /css/properties/opacity break;
405 | rewrite (?i)^/css/selectors/Type$ /css/selectors/type break;
406 | rewrite (?i)^/html/attributes/dateTime$ /html/attributes/datetime break;
407 | rewrite (?i)^/html/attributes/longDesc$ /html/attributes/longdesc break;
408 | rewrite (?i)^/html/attributes/readOnly$ /html/attributes/readonly break;
409 | rewrite (?i)^/tutorials/Closures$ /tutorials/closures break;
410 | rewrite (?i)^/tutorials/Forms$ /tutorials/forms break;
411 | rewrite (?i)^/tutorials/Location$ /tutorials/location break;
412 | rewrite (?i)^/tutorials/Offline$ /tutorials/offline break;
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 | # 3_nginx_almost_same 1
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 | # 3_nginx_almost_same 2
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 | # 4_nginx_redirects_spaces
443 | rewrite (?i)^/apis/xhr/methods/open(\ |_)\(XDomainRequest\)$ /apis/xhr/methods/open_XDomainRequest break;
444 | rewrite (?i)^/apis/xhr/methods/send(\ |_)\(XDomainRequest\)$ /apis/xhr/methods/send_XDomainRequest break;
445 | rewrite (?i)^/canvas/properties/height(\ |_)\(canvas\)$ /canvas/properties/height_canvas break;
446 | rewrite (?i)^/html/attributes/align(\ |_)\(Table,(\ |_)iframe(\ |_)elements\)$ /html/attributes/align_Table_iframe_elements break;
447 | rewrite (?i)^/html/attributes/align(\ |_)\(Table(\ |_)caption,(\ |_)legend(\ |_)element\)$ /html/attributes/align_Table_caption_legend_element break;
448 | rewrite (?i)^/html/attributes/autocomplete(\ |_)\(input,(\ |_)form(\ |_)elements\)$ /html/attributes/autocomplete_input_form_elements break;
449 | rewrite (?i)^/html/attributes/background(\ |_)\(Body(\ |_)element\)$ /html/attributes/background_Body_element break;
450 | rewrite (?i)^/html/attributes/background(\ |_)\(Table,(\ |_)table(\ |_)cell,(\ |_)td,(\ |_)th(\ |_)elements\)$ /html/attributes/background_Table_table_cell_td_th_elements break;
451 | rewrite (?i)^/html/attributes/border(\ |_)\(frameSet,(\ |_)iframe\)$ /html/attributes/border_frameSet_iframe break;
452 | rewrite (?i)^/html/attributes/cols(\ |_)\(frameSet\)$ /html/attributes/cols_frameSet break;
453 | rewrite (?i)^/html/attributes/cols(\ |_)\(TextArea(\ |_)element\)$ /html/attributes/cols_TextArea_element break;
454 | rewrite (?i)^/html/attributes/href(\ |_)\(base\)$ /html/attributes/href_base break;
455 | rewrite (?i)^/html/attributes/label(\ |_)\(optGroup\)$ /html/attributes/label_optGroup break;
456 | rewrite (?i)^/html/attributes/max(\ |_)\(HTMLInputElement\)$ /html/attributes/max_HTMLInputElement break;
457 | rewrite (?i)^/html/attributes/name(\ |_)\(frames\)$ /html/attributes/name_frames break;
458 | rewrite (?i)^/html/attributes/name(\ |_)\(meta(\ |_)object\)$ /html/attributes/name_meta_object break;
459 | rewrite (?i)^/html/attributes/name(\ |_)\(window\)$ /html/attributes/name_window break;
460 | rewrite (?i)^/html/attributes/name(\ |_)param(\ |_)element\)$ /html/attributes/name_param_element break;
461 | rewrite (?i)^/html/attributes/size(\ |_)\(control\)$ /html/attributes/size_control break;
462 | rewrite (?i)^/html/attributes/size(\ |_)\(hr\)$ /html/attributes/size_hr break;
463 | rewrite (?i)^/html/attributes/src(\ |_)\(iframe,(\ |_)embed,(\ |_)xml\)$ /html/attributes/src_iframe_embed_xml break;
464 | rewrite (?i)^/html/attributes/src(\ |_)\(input,(\ |_)img\)$ /html/attributes/src_input_img break;
465 | rewrite (?i)^/html/attributes/src(\ |_)\(script\)$ /html/attributes/src_script break;
466 | rewrite (?i)^/html/attributes/start(\ |_)\(ol\)$ /html/attributes/start_ol break;
467 | rewrite (?i)^/html/attributes/type(\ |_)\(button(\ |_)element\)$ /html/attributes/type_button_element break;
468 | rewrite (?i)^/html/attributes/type(\ |_)\(param(\ |_)element\)$ /html/attributes/type_param_element break;
469 | rewrite (?i)^/html/attributes/type(\ |_)\(script(\ |_)element\)$ /html/attributes/type_script_element break;
470 | rewrite (?i)^/html/attributes/type(\ |_)\(select(\ |_)element\)$ /html/attributes/type_select_element break;
471 | rewrite (?i)^/html/attributes/type(\ |_)\(textarea(\ |_)element\)$ /html/attributes/type_textarea_element break;
472 | rewrite (?i)^/html/attributes/type(\ |_)\(ul,li,ol(\ |_)elements\)$ /html/attributes/type_ulliol_elements break;
473 | rewrite (?i)^/html/attributes/vAlign(\ |_)\(table(\ |_)caption\)$ /html/attributes/vAlign_table_caption break;
474 | rewrite (?i)^/html/attributes/value(\ |_)\(button(\ |_)element\)$ /html/attributes/value_button_element break;
475 | rewrite (?i)^/html/attributes/value(\ |_)\(HTMLProgressElement\)$ /html/attributes/value_HTMLProgressElement break;
476 | rewrite (?i)^/html/attributes/value(\ |_)\(input(\ |_)elements\)$ /html/attributes/value_input_elements break;
477 | rewrite (?i)^/html/attributes/value(\ |_)\(li(\ |_)element\)$ /html/attributes/value_li_element break;
478 | rewrite (?i)^/html/attributes/value(\ |_)\(param(\ |_)element\)$ /html/attributes/value_param_element break;
479 | rewrite (?i)^/html/attributes/value(\ |_)\(select,(\ |_)option(\ |_)element\)$ /html/attributes/value_select_option_element break;
480 | rewrite (?i)^/html/attributes/value(\ |_)\(textarea(\ |_)element\)$ /html/attributes/value_textarea_element break;
481 | rewrite (?i)^/html/attributes/version(\ |_)\(dom/version$ /html/attributes/version_dom/version break;
482 | rewrite (?i)^/html/attributes/width(\ |_)\(img,(\ |_)input(\ |_)elements\)$ /html/attributes/width_img_input_elements break;
483 | rewrite (?i)^/html/attributes/width(\ |_)\(merge(\ |_)candidate\)$ /html/attributes/width_merge_candidate break;
484 | rewrite (?i)^/Notes\:The(\ |_)future(\ |_)of(\ |_)the(\ |_)open(\ |_)web$ /NotesThe_future_of_the_open_web break;
485 | rewrite (?i)^/svg/elements(\ |_)\(alphabetical(\ |_)order\)$ /svg/elements_alphabetical_order break;
486 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedAngle\)$ /svg/properties/animVal_SVGAnimatedAngle break;
487 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedBoolean\)$ /svg/properties/animVal_SVGAnimatedBoolean break;
488 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedEnumeration\)$ /svg/properties/animVal_SVGAnimatedEnumeration break;
489 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedInteger\)$ /svg/properties/animVal_SVGAnimatedInteger break;
490 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedLength\)$ /svg/properties/animVal_SVGAnimatedLength break;
491 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedLengthList\)$ /svg/properties/animVal_SVGAnimatedLengthList break;
492 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedNumber\)$ /svg/properties/animVal_SVGAnimatedNumber break;
493 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedNumberList\)$ /svg/properties/animVal_SVGAnimatedNumberList break;
494 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedPreserveAspectRatio\)$ /svg/properties/animVal_SVGAnimatedPreserveAspectRatio break;
495 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedRect\)$ /svg/properties/animVal_SVGAnimatedRect break;
496 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedString\)$ /svg/properties/animVal_SVGAnimatedString break;
497 | rewrite (?i)^/svg/properties/animVal(\ |_)\(SVGAnimatedTransformList\)$ /svg/properties/animVal_SVGAnimatedTransformList break;
498 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedAngle\)$ /svg/properties/baseVal_SVGAnimatedAngle break;
499 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedBoolean\)$ /svg/properties/baseVal_SVGAnimatedBoolean break;
500 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedEnumeration\)$ /svg/properties/baseVal_SVGAnimatedEnumeration break;
501 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedInteger\)$ /svg/properties/baseVal_SVGAnimatedInteger break;
502 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedLength\)$ /svg/properties/baseVal_SVGAnimatedLength break;
503 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedLengthList\)$ /svg/properties/baseVal_SVGAnimatedLengthList break;
504 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedNumber\)$ /svg/properties/baseVal_SVGAnimatedNumber break;
505 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedNumberList\)$ /svg/properties/baseVal_SVGAnimatedNumberList break;
506 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedPreserveAspectRatio\)$ /svg/properties/baseVal_SVGAnimatedPreserveAspectRatio break;
507 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedRect\)$ /svg/properties/baseVal_SVGAnimatedRect break;
508 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedString\)$ /svg/properties/baseVal_SVGAnimatedString break;
509 | rewrite (?i)^/svg/properties/baseVal(\ |_)\(SVGAnimatedTransformList\)$ /svg/properties/baseVal_SVGAnimatedTransformList break;
510 | rewrite (?i)^/svg/properties/cx(\ |_)\(SVGRadialGradientElement\)$ /svg/properties/cx_SVGRadialGradientElement break;
511 | rewrite (?i)^/svg/properties/cy(\ |_)\(SVGRadialGradientElement\)$ /svg/properties/cy_SVGRadialGradientElement break;
512 | rewrite (?i)^/svg/properties/r(\ |_)\(SVGRadialGradientElement\)$ /svg/properties/r_SVGRadialGradientElement break;
513 | rewrite (?i)^/svg/properties/rx(\ |_)\(SVGEllipseElement\)$ /svg/properties/rx_SVGEllipseElement break;
514 | rewrite (?i)^/svg/properties/rx(\ |_)\(SVGRectElement\)$ /svg/properties/rx_SVGRectElement break;
515 | rewrite (?i)^/svg/properties/ry(\ |_)\(SVGEllipseElement\)$ /svg/properties/ry_SVGEllipseElement break;
516 | rewrite (?i)^/svg/properties/ry(\ |_)\(SVGRectElement\)$ /svg/properties/ry_SVGRectElement break;
517 | rewrite (?i)^/svg/properties/type(\ |_)\(SVGComponentTransferFunctionElement\)$ /svg/properties/type_SVGComponentTransferFunctionElement break;
518 | rewrite (?i)^/svg/properties/type(\ |_)\(SVGFEColorMatrixElement\)$ /svg/properties/type_SVGFEColorMatrixElement break;
519 | rewrite (?i)^/svg/properties/type(\ |_)\(SVGFETurbulenceElement\)$ /svg/properties/type_SVGFETurbulenceElement break;
520 | rewrite (?i)^/svg/properties/type(\ |_)\(SVGScriptElement\)$ /svg/properties/type_SVGScriptElement break;
521 | rewrite (?i)^/svg/properties/type(\ |_)\(SVGStyleElement\)$ /svg/properties/type_SVGStyleElement break;
522 | rewrite (?i)^/svg/properties/type(\ |_)\(SVGTransform\)$ /svg/properties/type_SVGTransform break;
523 | rewrite (?i)^/svg/properties/unitType(\ |_)\(SVGLength\)$ /svg/properties/unitType_SVGLength break;
524 | rewrite (?i)^/svg/properties/x1(\ |_)\(SVGLinearGradientElement\)$ /svg/properties/x1_SVGLinearGradientElement break;
525 | rewrite (?i)^/svg/properties/x1(\ |_)\(SVGLineElement\)$ /svg/properties/x1_SVGLineElement break;
526 | rewrite (?i)^/svg/properties/x2(\ |_)\(SVGLinearGradientElement\)$ /svg/properties/x2_SVGLinearGradientElement break;
527 | rewrite (?i)^/svg/properties/x2(\ |_)\(SVGLineElement\)$ /svg/properties/x2_SVGLineElement break;
528 | rewrite (?i)^/svg/properties/y1(\ |_)\(SVGLinearGradientElement\)$ /svg/properties/y1_SVGLinearGradientElement break;
529 | rewrite (?i)^/svg/properties/y1(\ |_)\(SVGLineElement\)$ /svg/properties/y1_SVGLineElement break;
530 | rewrite (?i)^/svg/properties/y2(\ |_)\(SVGLinearGradientElement\)$ /svg/properties/y2_SVGLinearGradientElement break;
531 | rewrite (?i)^/svg/properties/y2(\ |_)\(SVGLineElement\)$ /svg/properties/y2_SVGLineElement break;
532 | rewrite (?i)^/tutorials/Raw(\ |_)WebGL(\ |_)101(\ |_)—(\ |_)Part(\ |_)4\:(\ |_)Textures$ /tutorials/Raw_WebGL_101_-_Part_4_Textures break;
533 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial$ /tutorials/canvas/Canvas_tutorial break;
534 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Applying(\ |_)styles(\ |_)and(\ |_)colors$ /tutorials/canvas/Canvas_tutorial/Applying_styles_and_colors break;
535 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Basic(\ |_)animations$ /tutorials/canvas/Canvas_tutorial/Basic_animations break;
536 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Basic(\ |_)usage$ /tutorials/canvas/Canvas_tutorial/Basic_usage break;
537 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Compositing$ /tutorials/canvas/Canvas_tutorial/Compositing break;
538 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Drawing(\ |_)shapes$ /tutorials/canvas/Canvas_tutorial/Drawing_shapes break;
539 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Transformations$ /tutorials/canvas/Canvas_tutorial/Transformations break;
540 | rewrite (?i)^/canvas/tutorial/Canvas(\ |_)tutorial/Using(\ |_)images$ /tutorials/canvas/Canvas_tutorial/Using_images break;
541 | rewrite (?i)^/ConceptMarking(\ |_)up(\ |_)textual(\ |_)content(\ |_)in(\ |_)HTML$ /Marking_up_textual_content_in_HTML break;
542 | rewrite (?i)^/concepts/About(\ |_)mobile(\ |_)web$ /concepts/mobile_web/mobile_web break;
543 | rewrite (?i)^/concepts/an(\ |_)introduction(\ |_)to(\ |_)digital(\ |_)design$ /concepts/an_introduction_to_web_design break;
544 | rewrite (?i)^/concepts/at(\ |_)tools$ /concepts/accessibility/at_tools break;
545 | rewrite (?i)^/concepts/bringing(\ |_)accessibility(\ |_)into(\ |_)your(\ |_)organization$ /concepts/accessibility/bringing_accessibility_into_your_organization break;
546 | rewrite (?i)^/concepts/color(\ |_)schemes(\ |_)and(\ |_)mockups$ /concepts/color_theory/color_schemes_and_mockups break;
547 | rewrite (?i)^/concepts/IA/planning(\ |_)a(\ |_)website$ /concepts/information_architecture/planning_a_website break;
548 | rewrite (?i)^/concepts/Internet(\ |_)and(\ |_)Web/About(\ |_)HTML5(\ |_)hybrid(\ |_)applications$ /concepts/Internet_and_Web/html5_hybrid_applications break;
549 | rewrite (?i)^/concepts/internet(\ |_)web/mime(\ |_)types$ /concepts/Internet_and_Web/mime_types break;
550 | rewrite (?i)^/concepts/mobile(\ |_)web/About(\ |_)mobile(\ |_)friendly(\ |_)web(\ |_)design(\ |_)and(\ |_)development(\ |_)overview$ /concepts/mobile_web/mobile_friendly_web_dev_overview break;
551 | rewrite (?i)^/concepts/mobile(\ |_)web/About(\ |_)mobile(\ |_)JavaScript(\ |_)best(\ |_)practices$ /concepts/mobile_web/mobile_javascript_best_practices break;
552 | rewrite (?i)^/concepts/mobile(\ |_)web/About(\ |_)mobile(\ |_)web$ /concepts/mobile_web/mobile_web break;
553 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox$ /PointerEvents break;
554 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/documentation$ /PointerEvents/documentation break;
555 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/experimental$ /PointerEvents/experimental break;
556 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/learn$ /PointerEvents/learn break;
557 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/prototypes$ /PointerEvents/prototypes break;
558 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/specifications$ /PointerEvents/specifications break;
559 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/test$ /PointerEvents/test break;
560 | rewrite (?i)^/concepts/Pointer(\ |_)Events(\ |_)sandbox/try$ /PointerEvents/try break;
561 | rewrite (?i)^/concepts/programming/programming(\ |_)basics/ja$ /concepts/programming/programming_basics/langja break;
562 | rewrite (?i)^/concepts/programming/programming(\ |_)basics/langja$ /ja/concepts/programming/programming_basics break;
563 | rewrite (?i)^/concepts/user(\ |_)experience(\ |_)design$ /concepts/ux/user_experience_design break;
564 | rewrite (?i)^/concepts/ux/user(\ |_)experience(\ |_)design(\ |_)techniques$ /concepts/ux/techniques/stakeholder_mapping break;
565 | rewrite (?i)^/concepts/what(\ |_)does(\ |_)a(\ |_)good(\ |_)web(\ |_)page(\ |_)need$ /concepts/ux/What_does_a_good_web_page_need break;
566 | rewrite (?i)^/css/color/color(\ |_)table$ /css/color/ break;
567 | rewrite (?i)^/css/data(\ |_)types/uri$ /css/data_types/url break;
568 | rewrite (?i)^/css/media(\ |_)queries/behavior$ /css/properties/behavior break;
569 | rewrite (?i)^/css/selectors/pseudo-classes/Dynamic(\ |_)pseudo-classes$ /css/selectors/pseudo-classes break;
570 | rewrite (?i)^/guides/css(\ |_)shorthand(\ |_)reference$ /guides/css_shorthand break;
571 | rewrite (?i)^/guides/html5(\ |_)form(\ |_)features$ /tutorials/html5_form_features break;
572 | rewrite (?i)^/html/attributes/BGCOLOR(\ |_)html(\ |_)attribute$ /html/attributes/BGCOLOR break;
573 | rewrite (?i)^/html/attributes/STYLE(\ |_)html(\ |_)attribute$ /html/attributes/style break;
574 | rewrite (?i)^/html/attributes/type(\ |_)type(\ |_)a(\ |_)link(\ |_)embed$ /html/attributes/type break;
575 | rewrite (?i)^/html(\ |_)text/es$ /guides/html_text/es break;
576 | rewrite (?i)^/javascript/regular(\ |_)expression/compile$ /javascript/RegExp/compile break;
577 | rewrite (?i)^/javascript/regular(\ |_)expression/exec$ /javascript/RegExp/exec break;
578 | rewrite (?i)^/javascript/regular(\ |_)expression/global$ /javascript/RegExp/global break;
579 | rewrite (?i)^/javascript/regular(\ |_)expression/ignoreCase$ /javascript/RegExp/ignoreCase break;
580 | rewrite (?i)^/javascript/regular(\ |_)expression/multiline$ /javascript/RegExp/multiline break;
581 | rewrite (?i)^/javascript/regular(\ |_)expression/source$ /javascript/RegExp/source break;
582 | rewrite (?i)^/javascript/regular(\ |_)expression/sticky$ /javascript/RegExp/sticky break;
583 | rewrite (?i)^/javascript/regular(\ |_)expression/test$ /javascript/RegExp/test break;
584 | rewrite (?i)^/javascript/regular(\ |_)expression/unicode$ /javascript/RegExp/unicode break;
585 | rewrite (?i)^/JavaScript(\ |_)animation$ /tutorials/animation_in_javascript_2 break;
586 | rewrite (?i)^/Proposalstest/css(\ |_)properties(\ |_)display$ /WPD/Proposals/CSS_Property_Milestone/css_prop_enhancements/test/css_properties_display break;
587 | rewrite (?i)^/Styling(\ |_)lists(\ |_)and(\ |_)links$ /guides/Styling_lists_and_links break;
588 | rewrite (?i)^/svg/tutorials/smarter(\ |_)svg(\ |_)basics$ /svg/tutorials/smarter_svg_shapes break;
589 | rewrite (?i)^/svg/tutorials/smarter(\ |_)svg(\ |_)filter$ /svg/tutorials/smarter_svg_filters break;
590 | rewrite (?i)^/svg/tutorials/smarter(\ |_)svg(\ |_)interaction$ /Meta/svg/tutorials/smarter_svg_interaction break;
591 | rewrite (?i)^/svg/tutorials/smarter(\ |_)svg(\ |_)scope$ /svg/tutorials/smarter_svg_overview break;
592 | rewrite (?i)^/svg/tutorials/smarter(\ |_)svg(\ |_)script$ /svg/tutorials/smarter_svg_interaction break;
593 | rewrite (?i)^/sxsw(\ |_)talk(\ |_)proposal$ /WPD/sxsw_talk_proposal break;
594 | rewrite (?i)^/tutorial/html(\ |_)links$ /guides/html_lists break;
595 | rewrite (?i)^/tutorials/advanced(\ |_)selectors$ /guides/advanced_selectors_guide break;
596 | rewrite (?i)^/tutorials/anim(\ |_)animations$ /Meta/anim_animations break;
597 | rewrite (?i)^/tutorials/anim(\ |_)transforms$ /Meta/anim_transforms break;
598 | rewrite (?i)^/tutorials/Background(\ |_)images$ /tutorials/using_css_background_images break;
599 | rewrite (?i)^/tutorials/basic(\ |_)shapes$ /tutorials/basic_svg_shapes break;
600 | rewrite (?i)^/tutorials/Color(\ |_)in(\ |_)CSS$ /tutorials/setting_color_in_css break;
601 | rewrite (?i)^/tutorials/creating(\ |_)prototypes$ /concepts/creating_prototypes break;
602 | rewrite (?i)^/tutorials/CSS3(\ |_)animations$ /tutorials/css_animations break;
603 | rewrite (?i)^/tutorials/CSS3(\ |_)transforms$ /tutorials/css_transforms break;
604 | rewrite (?i)^/tutorials/CSS3(\ |_)transitions$ /tutorials/css_transitions break;
605 | rewrite (?i)^/tutorials/CSS(\ |_)border-image$ /tutorials/css_border_image break;
606 | rewrite (?i)^/tutorials/CSS(\ |_)box-shadow$ /tutorials/css_box_shadow break;
607 | rewrite (?i)^/tutorials/CSS(\ |_)gradients$ /tutorials/creating_gradients_in_css break;
608 | rewrite (?i)^/tutorials/CSS(\ |_)text(\ |_)styling(\ |_)advanced$ /guides/advanced_css_text_styling break;
609 | rewrite (?i)^/tutorials/css(\ |_)text(\ |_)styling(\ |_)fundamentals$ /guides/css_text_styling_fundamentals break;
610 | rewrite (?i)^/tutorials/custom(\ |_)filters$ /Meta/tutorials/custom_filters break;
611 | rewrite (?i)^/tutorials/doctypes(\ |_)and(\ |_)markup(\ |_)styles$ /guides/doctypes_and_markup_styles break;
612 | rewrite (?i)^/tutorials/getting(\ |_)started(\ |_)with(\ |_)css$ /guides/getting_started_with_css break;
613 | rewrite (?i)^/tutorials/how(\ |_)browsers(\ |_)work$ /concepts/Internet_and_Web/how_browsers_work break;
614 | rewrite (?i)^/tutorials/html(\ |_)forms(\ |_)basics$ /guides/html_forms_basics break;
615 | rewrite (?i)^/tutorials/html(\ |_)links$ /guides/html_links break;
616 | rewrite (?i)^/tutorials/html(\ |_)lists$ /guides/html_lists break;
617 | rewrite (?i)^/tutorials/html(\ |_)structural(\ |_)elements$ /guides/html_structural_elements break;
618 | rewrite (?i)^/tutorials/html(\ |_)tables$ /guides/html_tables break;
619 | rewrite (?i)^/tutorials/html(\ |_)text$ /guides/html_text break;
620 | rewrite (?i)^/tutorials/html(\ |_)validation$ /guides/html_validation break;
621 | rewrite (?i)^/tutorials/images(\ |_)in(\ |_)html$ /guides/images_in_html break;
622 | rewrite (?i)^/tutorials/Information(\ |_)Architecture(\ |_)-(\ |_)planning(\ |_)out(\ |_)a(\ |_)web(\ |_)site$ /tutorials/information_architecture/Planning_out_a_website break;
623 | rewrite (?i)^/tutorials/intro(\ |_)web(\ |_)audio(\ |_)api(\ |_)1$ /tutorials/audio/intro_web_audio_api_1 break;
624 | rewrite (?i)^/tutorials/intro(\ |_)web(\ |_)audio(\ |_)api(\ |_)2$ /tutorials/audio/intro_web_audio_api_2 break;
625 | rewrite (?i)^/tutorials/lesser-known(\ |_)semantic(\ |_)elements$ /guides/lesser-known_semantic_elements break;
626 | rewrite (?i)^/tutorials/List(\ |_)basics$ /tutorials/using_specific_list_styles break;
627 | rewrite (?i)^/tutorials/Manipulating(\ |_)replaced(\ |_)element(\ |_)content(\ |_)with(\ |_)object-fit$ /tutorials/object_fit break;
628 | rewrite (?i)^/tutorials/more(\ |_)about(\ |_)the(\ |_)html(\ |_)head$ /guides/more_about_the_html_head break;
629 | rewrite (?i)^/tutorials/Programming(\ |_)-(\ |_)the(\ |_)real(\ |_)basics$ /concepts/programming/programming_basics break;
630 | rewrite (?i)^/tutorials/selectors(\ |_)fundamentals$ /tutorials/using_selectors break;
631 | rewrite (?i)^/tutorials/Styling(\ |_)forms$ /guides/styling_forms_guide break;
632 | rewrite (?i)^/tutorials/Styling(\ |_)tables$ /guides/styling_tables break;
633 | rewrite (?i)^/tutorials/Styling(\ |_)XML(\ |_)data(\ |_)with(\ |_)CSS$ /tutorials/styling_xml_with_css break;
634 | rewrite (?i)^/tutorials/Targetting(\ |_)CSS(\ |_)at(\ |_)different(\ |_)media(\ |_)types$ /tutorials/targetting_css_at_different_media break;
635 | rewrite (?i)^/tutorials/the(\ |_)html(\ |_)head$ /guides/the_html_head break;
636 | rewrite (?i)^/tutorials/using(\ |_)web(\ |_)audio(\ |_)api(\ |_)pt1$ /tutorials/intro_web_audio_api_1 break;
637 | rewrite (?i)^/tutorials/why(\ |_)use(\ |_)css$ /tutorials/learning_why_we_use_css break;
638 |
--------------------------------------------------------------------------------
/config/nginx/maps/meta.map:
--------------------------------------------------------------------------------
1 | #
2 | # This File attempts to fix original MediaWiki links to redirect to static file
3 | #
4 | # This map was originally generated against namespace 0 and 108 from app1.production.wpdn on 2015-07-25
5 | #
6 | # # From the MediaWiki installation;
7 | # php maintenance/dumpBackup.php --current --filter=namespace:3020 > /home/renoirb/meta.xml
8 | #
9 | # # From a MediaWiki Converter clone
10 | # app/console mediawiki:summary --source-xml=dumps/meta.xml --namespace-prefix=Meta
11 | #
12 | # See comments in docs.main.map for more details
13 | #
14 | # @author Renoir Boulanger
15 | #
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | # Redirect loops
26 | rewrite (?i)^/Meta/web(\ |_)platform(\ |_)wednesday$ /Meta/web_platform_wednesday break;
27 | rewrite (?i)^/Meta/?$ /Meta/Index break;
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | # 1_nginx
38 | rewrite (?i)^/Meta/api$ /WPD/API break;
39 | rewrite (?i)^/Meta/apis/css-regions/CSSRegionStyleRule$ /apis/css-regions/CSSRegionStyleRule break;
40 | rewrite (?i)^/Meta/css/atrules/region$ /css/atrules/region break;
41 | rewrite (?i)^/Meta/Deployment$ /WPD/Infrastructure/Deployment break;
42 | rewrite (?i)^/Meta/HTML/Elements/a$ /html/elements/a break;
43 | rewrite (?i)^/Meta/HTML/Elements/abbr$ /html/elements/abbr break;
44 | rewrite (?i)^/Meta/HTML/Elements/acronym$ /html/elements/acronym break;
45 | rewrite (?i)^/Meta/HTML/Elements/address$ /html/elements/address break;
46 | rewrite (?i)^/Meta/HTML/Elements/applet$ /html/elements/applet break;
47 | rewrite (?i)^/Meta/HTML/Elements/area$ /html/elements/area break;
48 | rewrite (?i)^/Meta/HTML/Elements/article$ /html/elements/article break;
49 | rewrite (?i)^/Meta/HTML/Elements/aside$ /html/elements/aside break;
50 | rewrite (?i)^/Meta/HTML/Elements/b$ /html/elements/b break;
51 | rewrite (?i)^/Meta/HTML/Elements/base$ /html/elements/base break;
52 | rewrite (?i)^/Meta/HTML/Elements/basefont$ /html/elements/basefont break;
53 | rewrite (?i)^/Meta/HTML/Elements/bdo$ /html/elements/bdo break;
54 | rewrite (?i)^/Meta/HTML/Elements/bgsound$ /html/elements/bgsound break;
55 | rewrite (?i)^/Meta/HTML/Elements/big$ /html/elements/big break;
56 | rewrite (?i)^/Meta/HTML/Elements/blink$ /html/elements/blink break;
57 | rewrite (?i)^/Meta/HTML/Elements/blockquote$ /html/elements/blockquote break;
58 | rewrite (?i)^/Meta/HTML/Elements/body$ /html/elements/body break;
59 | rewrite (?i)^/Meta/HTML/Elements/br$ /html/elements/br break;
60 | rewrite (?i)^/Meta/HTML/Elements/button$ /html/elements/button break;
61 | rewrite (?i)^/Meta/HTML/Elements/canvas$ /html/elements/canvas break;
62 | rewrite (?i)^/Meta/HTML/Elements/caption$ /html/elements/caption break;
63 | rewrite (?i)^/Meta/HTML/Elements/center$ /html/elements/center break;
64 | rewrite (?i)^/Meta/HTML/Elements/cite$ /html/elements/cite break;
65 | rewrite (?i)^/Meta/HTML/Elements/code$ /html/elements/code break;
66 | rewrite (?i)^/Meta/HTML/Elements/col$ /html/elements/col break;
67 | rewrite (?i)^/Meta/HTML/Elements/colgroup$ /html/elements/colgroup break;
68 | rewrite (?i)^/Meta/HTML/Elements/datalist$ /html/elements/datalist break;
69 | rewrite (?i)^/Meta/HTML/Elements/dd$ /html/elements/dd break;
70 | rewrite (?i)^/Meta/HTML/Elements/del$ /html/elements/del break;
71 | rewrite (?i)^/Meta/HTML/Elements/details$ /html/elements/details break;
72 | rewrite (?i)^/Meta/HTML/Elements/dfn$ /html/elements/dfn break;
73 | rewrite (?i)^/Meta/HTML/Elements/div$ /html/elements/div break;
74 | rewrite (?i)^/Meta/HTML/Elements/dl$ /html/elements/dl break;
75 | rewrite (?i)^/Meta/HTML/Elements/dt$ /html/elements/dt break;
76 | rewrite (?i)^/Meta/HTML/Elements/em$ /html/elements/em break;
77 | rewrite (?i)^/Meta/HTML/Elements/embed$ /html/elements/embed break;
78 | rewrite (?i)^/Meta/HTML/Elements/fieldset$ /html/elements/fieldset break;
79 | rewrite (?i)^/Meta/HTML/Elements/figcaption$ /html/elements/figcaption break;
80 | rewrite (?i)^/Meta/HTML/Elements/figure$ /html/elements/figure break;
81 | rewrite (?i)^/Meta/HTML/Elements/font$ /html/elements/font break;
82 | rewrite (?i)^/Meta/HTML/Elements/footer$ /html/elements/footer break;
83 | rewrite (?i)^/Meta/HTML/Elements/form$ /html/elements/form break;
84 | rewrite (?i)^/Meta/HTML/Elements/frame$ /html/elements/frame break;
85 | rewrite (?i)^/Meta/HTML/Elements/frameset$ /html/elements/frameSet break;
86 | rewrite (?i)^/Meta/HTML/Elements/head$ /html/elements/head break;
87 | rewrite (?i)^/Meta/HTML/Elements/header$ /html/elements/header break;
88 | rewrite (?i)^/Meta/HTML/Elements/hgroup$ /html/elements/hgroup break;
89 | rewrite (?i)^/Meta/HTML/Elements/hr$ /html/elements/hr break;
90 | rewrite (?i)^/Meta/HTML/Elements/html$ /html/elements/html break;
91 | rewrite (?i)^/Meta/HTML/Elements/i$ /html/elements/i break;
92 | rewrite (?i)^/Meta/HTML/Elements/iframe$ /html/elements/iframe break;
93 | rewrite (?i)^/Meta/HTML/Elements/img$ /html/elements/img break;
94 | rewrite (?i)^/Meta/HTML/Elements/ins$ /html/elements/ins break;
95 | rewrite (?i)^/Meta/HTML/Elements/isindex$ /html/elements/isIndex break;
96 | rewrite (?i)^/Meta/HTML/Elements/kbd$ /html/elements/kbd break;
97 | rewrite (?i)^/Meta/HTML/Elements/keygen$ /html/elements/keygen break;
98 | rewrite (?i)^/Meta/HTML/Elements/label$ /html/elements/label break;
99 | rewrite (?i)^/Meta/HTML/Elements/legend$ /html/elements/legend break;
100 | rewrite (?i)^/Meta/HTML/Elements/li$ /html/elements/li break;
101 | rewrite (?i)^/Meta/HTML/Elements/link$ /html/elements/link break;
102 | rewrite (?i)^/Meta/HTML/Elements/listing$ /html/elements/listing break;
103 | rewrite (?i)^/Meta/HTML/Elements/map$ /html/elements/map break;
104 | rewrite (?i)^/Meta/HTML/Elements/mark$ /html/elements/mark break;
105 | rewrite (?i)^/Meta/HTML/Elements/marquee$ /html/elements/marquee break;
106 | rewrite (?i)^/Meta/HTML/Elements/math$ /mathml/elements/math break;
107 | rewrite (?i)^/Meta/HTML/Elements/meta$ /html/elements/meta break;
108 | rewrite (?i)^/Meta/HTML/Elements/nav$ /html/elements/nav break;
109 | rewrite (?i)^/Meta/HTML/Elements/nextid$ /html/elements/nextID break;
110 | rewrite (?i)^/Meta/HTML/Elements/nobr$ /html/elements/noBR break;
111 | rewrite (?i)^/Meta/HTML/Elements/noframes$ /html/elements/noFrames break;
112 | rewrite (?i)^/Meta/HTML/Elements/noscript$ /html/elements/noscript break;
113 | rewrite (?i)^/Meta/HTML/Elements/object$ /html/elements/object break;
114 | rewrite (?i)^/Meta/HTML/Elements/option$ /html/elements/option break;
115 | rewrite (?i)^/Meta/HTML/Elements/output$ /html/elements/output break;
116 | rewrite (?i)^/Meta/HTML/Elements/p$ /html/elements/p break;
117 | rewrite (?i)^/Meta/HTML/Elements/param$ /html/elements/param break;
118 | rewrite (?i)^/Meta/HTML/Elements/plaintext$ /html/elements/plainText break;
119 | rewrite (?i)^/Meta/HTML/Elements/pre$ /html/elements/pre break;
120 | rewrite (?i)^/Meta/HTML/Elements/progress$ /html/elements/progress break;
121 | rewrite (?i)^/Meta/HTML/Elements/q$ /html/elements/q break;
122 | rewrite (?i)^/Meta/HTML/Elements/rp$ /html/elements/rp break;
123 | rewrite (?i)^/Meta/HTML/Elements/rt$ /html/elements/rt break;
124 | rewrite (?i)^/Meta/HTML/Elements/ruby$ /html/elements/ruby break;
125 | rewrite (?i)^/Meta/HTML/Elements/s$ /html/elements/s break;
126 | rewrite (?i)^/Meta/HTML/Elements/samp$ /html/elements/samp break;
127 | rewrite (?i)^/Meta/HTML/Elements/script$ /html/elements/script break;
128 | rewrite (?i)^/Meta/HTML/Elements/section$ /html/elements/section break;
129 | rewrite (?i)^/Meta/HTML/Elements/select$ /html/elements/select break;
130 | rewrite (?i)^/Meta/HTML/Elements/small$ /html/elements/small break;
131 | rewrite (?i)^/Meta/HTML/Elements/source$ /html/elements/source break;
132 | rewrite (?i)^/Meta/HTML/Elements/span$ /html/elements/span break;
133 | rewrite (?i)^/Meta/HTML/Elements/strike$ /html/elements/strike break;
134 | rewrite (?i)^/Meta/HTML/Elements/strong$ /html/elements/strong break;
135 | rewrite (?i)^/Meta/HTML/Elements/sub$ /html/elements/sub break;
136 | rewrite (?i)^/Meta/HTML/Elements/sup$ /html/elements/sup break;
137 | rewrite (?i)^/Meta/HTML/Elements/svg$ /svg/elements/svg break;
138 | rewrite (?i)^/Meta/HTML/Elements/tbody$ /html/elements/tbody break;
139 | rewrite (?i)^/Meta/HTML/Elements/td$ /html/elements/td break;
140 | rewrite (?i)^/Meta/HTML/Elements/textarea$ /html/elements/textarea break;
141 | rewrite (?i)^/Meta/HTML/Elements/tfoot$ /html/elements/tfoot break;
142 | rewrite (?i)^/Meta/HTML/Elements/th$ /html/elements/th break;
143 | rewrite (?i)^/Meta/HTML/Elements/thead$ /html/elements/thead break;
144 | rewrite (?i)^/Meta/HTML/Elements/time$ /html/elements/time break;
145 | rewrite (?i)^/Meta/HTML/Elements/title$ /html/elements/title break;
146 | rewrite (?i)^/Meta/HTML/Elements/tr$ /html/elements/tr break;
147 | rewrite (?i)^/Meta/HTML/Elements/tt$ /html/elements/tt break;
148 | rewrite (?i)^/Meta/HTML/Elements/u$ /html/elements/u break;
149 | rewrite (?i)^/Meta/HTML/Elements/ul$ /html/elements/ul break;
150 | rewrite (?i)^/Meta/HTML/Elements/video$ /html/elements/video break;
151 | rewrite (?i)^/Meta/HTML/Elements/wbr$ /html/elements/wbr break;
152 | rewrite (?i)^/Meta/HTML/Elements/xmp$ /html/elements/xmp break;
153 | rewrite (?i)^/Meta/Infrastructure/Deployment$ /WPD/Infrastructure/Deployment break;
154 | rewrite (?i)^/Meta/javascript/functions$ /concepts/programming/javascript/functions break;
155 | rewrite (?i)^/Meta/javascript/libraries$ /concepts/programming/javascript/libraries break;
156 | rewrite (?i)^/Meta/Marketing$ /WPD/Marketing break;
157 | rewrite (?i)^/Meta/Marketing/Swag$ /WPD/Marketing/Swag break;
158 | rewrite (?i)^/Meta/Marketing/Videos$ /WPD/Marketing/Videos break;
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 | # 2_nginx_almost_same_casing
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 | # 3_nginx_almost_same 1
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 | # 3_nginx_almost_same 2
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 | # 4_nginx_redirects_spaces
196 | rewrite (?i)^/Meta/delete(\ |_)position$ /css/data_types/position break;
197 | rewrite (?i)^/Meta/HTML/Elements/h1(\ |_)h2(\ |_)h3(\ |_)h4(\ |_)h5(\ |_)and(\ |_)h6$ /html/elements/hn break;
198 | rewrite (?i)^/Meta/javascript/feature(\ |_)detection$ /concepts/programming/feature_detection break;
199 | rewrite (?i)^/Meta/svg/tutorials/smarter(\ |_)svg(\ |_)animation$ /svg/tutorials/smarter_svg_animation break;
200 | rewrite (?i)^/Meta/svg/tutorials/smarter(\ |_)svg(\ |_)filters$ /svg/tutorials/smarter_svg_filters break;
201 | rewrite (?i)^/Meta/svg/tutorials/smarter(\ |_)svg(\ |_)interaction$ /svg/tutorials/smarter_svg_interact break;
202 | rewrite (?i)^/Meta/svg/tutorials/smarter(\ |_)svg(\ |_)text$ /svg/tutorials/smarter_svg_text break;
203 | rewrite (?i)^/Meta/svg/tutorials/smarter(\ |_)svg(\ |_)text(\ |_)outline$ /svg/tutorials/smarter_svg_text break;
204 | rewrite (?i)^/Meta/tutorials/custom(\ |_)filters$ /tutorials/svg_filters break;
205 |
--------------------------------------------------------------------------------
/config/nginx/maps/wpd.map:
--------------------------------------------------------------------------------
1 | #
2 | # This File attempts to fix original MediaWiki links to redirect to static file
3 | #
4 | # This map was originally generated against namespace 0 and 108 from app1.production.wpdn on 2015-07-25
5 | #
6 | # # From the MediaWiki installation;
7 | # php maintenance/dumpBackup.php --full --filter=namespace:3000 > /home/renoirb/wpd_full.xml
8 | #
9 | # # From a MediaWiki Converter clone;
10 | # app/console mediawiki:summary --source-xml=dumps/wpd.xml --namespace-prefix=WPD
11 | #
12 | # See comments in docs.main.map for more details
13 | #
14 | # @author Renoir Boulanger
15 | #
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | # Redirect loops
26 | rewrite (?i)^/WPD/?$ /WPD/Index break;
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | # 1_nginx
37 | rewrite (?i)^/WPD/Analytics$ /WPD/Community/Meetings/Analytics break;
38 | rewrite (?i)^/WPD/Infrastructure/Components/WebPlatformDocsExtensionBundle$ /WPD/Infrastructure/Components/WebPlatformMediaWikiExtensionBundle break;
39 | rewrite (?i)^/WPD/Infrastructure/Deployment$ /WPD/WPD/Infrastructure/procedures/Deploying_code_changes break;
40 | rewrite (?i)^/WPD/Infrastructure/Extensions/CompaTables$ /WPD/Infrastructure/Components/CompaTables break;
41 | rewrite (?i)^/WPD/Infrastructure/MaintenanceWorkflow$ /WPD/Infrastructure/proposals/Maintenance_and_migration_workflows break;
42 | rewrite (?i)^/WPD/Infrastructure/Tasks$ /WPD/Infrastructure/proposals/Initial_infrastructure break;
43 | rewrite (?i)^/WPD/Management$ /WPD/Policy/Management break;
44 | rewrite (?i)^/WPD/Pillars$ /WPD/Policy/Pillars break;
45 | rewrite (?i)^/WPD/Proposals$ /WPD/Projects break;
46 | rewrite (?i)^/WPD/Proposals/accessibility$ /WPD/Projects/accessibility break;
47 | rewrite (?i)^/WPD/Proposals/translations$ /WPD/Projects/Translations break;
48 | rewrite (?i)^/WPD/Topics$ /WPD/Architecture/Topics break;
49 | rewrite (?i)^/WPD/WPD/Community/Meetings/Content$ /WPD/Community/Meetings/Content break;
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | # 2_nginx_almost_same_casing
59 | rewrite (?i)^/WPD/Volunteer(\ |_)moderators$ /WPD/Volunteer_Moderators break;
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | # 3_nginx_almost_same 1
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | # 3_nginx_almost_same 2
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 | # 4_nginx_redirects_spaces
87 | rewrite (?i)^/WPD/Q&A(\ |_)FAQ$ /WPD/QA_FAQ break;
88 | rewrite (?i)^/WPD/Q&A(\ |_)Moderation(\ |_)Guide$ /WPD/QA_Moderation_Guide break;
89 | rewrite (?i)^/WPD/Beta(\ |_)Requirements$ /WPD/Proposals/Beta_Requirements break;
90 | rewrite (?i)^/WPD/Community/Task(\ |_)Force/Community$ /WPD/Community/Task_Force/Community_Development break;
91 | rewrite (?i)^/WPD/Community/Task(\ |_)Force/Template(\ |_)Corps$ /WPD/Community/Task_Force/Templates break;
92 | rewrite (?i)^/WPD/Community/Task(\ |_)Force/Templates$ /WPD/Templates break;
93 | rewrite (?i)^/WPD/Community(\ |_)Engagement(\ |_)Plan$ /WPD/Community/Community_Engagement_Plan break;
94 | rewrite (?i)^/WPD/Content/ContentList/Batch(\ |_)1$ /WPD/Content/Content_List/Batch_1 break;
95 | rewrite (?i)^/WPD/Content/Content(\ |_)List/Topic(\ |_)Pages$ /WPD/Content/Topic_Pages break;
96 | rewrite (?i)^/WPD/Content/Topic(\ |_)Hierarchy$ /WPD/Editors_Guide/Topic_Hierarchy break;
97 | rewrite (?i)^/WPD/Content(\ |_)Categories$ /WPD/Content/Content_Categories break;
98 | rewrite (?i)^/WPD/Content(\ |_)List/Topic(\ |_)Pages$ /WPD/Content/Topic_Pages break;
99 | rewrite (?i)^/WPD/Content(\ |_)Meetings$ /WPD/WPD/Community/Meetings/Content break;
100 | rewrite (?i)^/WPD/Content(\ |_)Requirements$ /WPD/Content/Content_List break;
101 | rewrite (?i)^/WPD/Content(\ |_)Requirements/Batch(\ |_)9$ /WPD/Content/Content_List/Batch_9 break;
102 | rewrite (?i)^/WPD/Content(\ |_)Requirements/Batch(\ |_)11$ /WPD/Content/Content_List/Batch_11 break;
103 | rewrite (?i)^/WPD/Content(\ |_)Requirements/Batch(\ |_)12$ /WPD/Content/Content_List/Batch_12 break;
104 | rewrite (?i)^/WPD/Content(\ |_)Requirements/Batch(\ |_)13$ /WPD/Content/Content_List/Batch_13 break;
105 | rewrite (?i)^/WPD/Content(\ |_)Requirements/Batch(\ |_)Example$ /WPD/Content/Content_List/Batch_Example break;
106 | rewrite (?i)^/WPD/Creating(\ |_)Pages$ /WPD/Creating_API_pages break;
107 | rewrite (?i)^/WPD/CSS(\ |_)Example(\ |_)Article$ /WPD/Example_Pages/CSS break;
108 | rewrite (?i)^/WPD/Design/Logo(\ |_)Branding(\ |_)Guidelines$ /WPD/Logo break;
109 | rewrite (?i)^/WPD/Design(\ |_)changes(\ |_)guide$ /WPD/Infrastructure/procedures/Design_changes_guide break;
110 | rewrite (?i)^/WPD/Editors(\ |_)Guide$ /WPD/Contributors_Guide break;
111 | rewrite (?i)^/WPD/Importing(\ |_)data$ /WPD/Infrastructure/Importing_data break;
112 | rewrite (?i)^/WPD/Infrastructure/Code(\ |_)Viewer$ /WPD/Infrastructure/Components/Code_Viewer break;
113 | rewrite (?i)^/WPD/Infrastructure/Git(\ |_)Examples$ /WPD/Infrastructure/proposals/Git_Examples break;
114 | rewrite (?i)^/WPD/Infrastructure/Importing(\ |_)data$ /WPD/WPD/Infrastructure/procedures/Importing_data_into_MediaWiki break;
115 | rewrite (?i)^/WPD/Infrastructure/Installing(\ |_)Vagrant(\ |_)with(\ |_)Salt(\ |_)stack$ /WPD/WPD/Infrastructure/procedures/Creating_local_multiple_Virtual_Machine_state_development_environment_using_Vagrant_and_Salt_stack break;
116 | rewrite (?i)^/WPD/Infrastructure/Logging(\ |_)aggregation(\ |_)and(\ |_)analytics$ /WPD/Infrastructure/proposals/Logging_aggregation_and_analytics break;
117 | rewrite (?i)^/WPD/Infrastructure/Piwik(\ |_)Tracking(\ |_)code(\ |_)installation$ /WPD/Infrastructure/procedures/Piwik_Tracking_code_installation break;
118 | rewrite (?i)^/WPD/Infrastructure/proposals/Content(\ |_)commenting(\ |_)system$ /WPD/Requirements/Content_commenting_system break;
119 | rewrite (?i)^/WPD/Infrastructure/proposals/Git(\ |_)Examples$ /WPD/Infrastructure/proposals/Content_commenting_system break;
120 | rewrite (?i)^/WPD/Infrastructure/proposals/Maintenance(\ |_)and(\ |_)migration(\ |_)workflows$ /WPD/Infrastructure/proposals/Maintenance_workflows break;
121 | rewrite (?i)^/WPD/Infrastructure/Site(\ |_)Map$ /WPD/Infrastructure/proposals/Site_Map break;
122 | rewrite (?i)^/WPD/Infrastructure/Site(\ |_)status(\ |_)problem(\ |_)notification(\ |_)messages$ /WPD/Infrastructure/proposals/Site_status_problem_notification_messages break;
123 | rewrite (?i)^/WPD/Infrastructure/Testing(\ |_)service(\ |_)availability$ /WPD/Infrastructure/procedures/Testing_service_availability break;
124 | rewrite (?i)^/WPD/Infrastructure/Things(\ |_)to(\ |_)ensure(\ |_)is(\ |_)not(\ |_)changed$ /WPD/Infrastructure/analysis/Things_to_ensure_is_not_changed break;
125 | rewrite (?i)^/WPD/Manual(\ |_)Of(\ |_)Style$ /WPD/Style_Guide break;
126 | rewrite (?i)^/WPD/Manual(\ |_)Of(\ |_)Style/Gotchas$ /WPD/Style_Guide/Gotchas break;
127 | rewrite (?i)^/WPD/Manual(\ |_)Of(\ |_)Style/Sample(\ |_)best(\ |_)practices$ /WPD/Manual_Of_Style/Code_sample_best_practices break;
128 | rewrite (?i)^/WPD/Manual(\ |_)Of(\ |_)Style/Tables$ /WPD/Style_Manual/Tables break;
129 | rewrite (?i)^/WPD/Projects/css(\ |_)prop(\ |_)enhancements$ /WPD/Proposals/CSS_Property_Milestone/css_prop_enhancements break;
130 | rewrite (?i)^/WPD/Projects/June2014(\ |_)QA(\ |_)Sprint$ /WPD/Projects/QASprints/2014-june break;
131 | rewrite (?i)^/WPD/Proposals/api(\ |_)docs$ /WPD/Projects/api_docs break;
132 | rewrite (?i)^/WPD/Proposals/Beta(\ |_)Requirements$ /WPD/Projects/Beta_Requirements break;
133 | rewrite (?i)^/WPD/Proposals/css(\ |_)prop(\ |_)enhancements$ /WPD/Projects/css_prop_enhancements break;
134 | rewrite (?i)^/WPD/Proposals/CSS(\ |_)Property(\ |_)Milestone$ /WPD/Projects/CSS_Property_Milestone break;
135 | rewrite (?i)^/WPD/Proposals/CSS(\ |_)Property(\ |_)Milestone/css(\ |_)prop(\ |_)enhancements$ /WPD/Projects/CSS_Property_Milestone/css_prop_enhancements break;
136 | rewrite (?i)^/WPD/Proposals/CSS(\ |_)Property(\ |_)Milestone/css(\ |_)prop(\ |_)enhancements/test/css(\ |_)properties(\ |_)display$ /WPD/Projects/CSS_Property_Milestone/css_prop_enhancements/test/css_properties_display break;
137 | rewrite (?i)^/WPD/Proposals/DOM(\ |_)API(\ |_)docs$ /WPD/Projects/DOM_API_docs break;
138 | rewrite (?i)^/WPD/Proposals/editors(\ |_)guide$ /WPD/Projects/editors_guide break;
139 | rewrite (?i)^/WPD/Proposals/editors(\ |_)guide/template(\ |_)test$ /WPD/Projects/editors_guide/template_test break;
140 | rewrite (?i)^/WPD/Proposals/Organizing(\ |_)projects$ /WPD/Projects/Organizing_projects break;
141 | rewrite (?i)^/WPD/Proposals/spec(\ |_)status(\ |_)representation$ /WPD/Projects/spec_status_representation break;
142 | rewrite (?i)^/WPD/Site(\ |_)Features$ /WPD/Tasks break;
143 | rewrite (?i)^/WPD/Site(\ |_)Map$ /WPD/Infrastructure/Site_Map break;
144 | rewrite (?i)^/WPD/Site(\ |_)Wishlist$ /WPD/Site/Wishlist break;
145 | rewrite (?i)^/WPD/Style(\ |_)Manual$ /WPD/Style_Guide break;
146 | rewrite (?i)^/WPD/Style(\ |_)Manual/Tables$ /WPD/Style_Guide/Tables break;
147 | rewrite (?i)^/WPD/sxsw(\ |_)talk(\ |_)proposal$ /WPD/Projects/SXSW_2012_Talk_proposal break;
148 | rewrite (?i)^/WPD/Tasks/CSS(\ |_)Property(\ |_)Milestone$ /WPD/Proposals/CSS_Property_Milestone break;
149 | rewrite (?i)^/WPD/Technical(\ |_)Requirements$ /WPD/Site/Technical_Requirements break;
150 | rewrite (?i)^/WPD/Template(\ |_)Corps$ /WPD/Community/Task_Force/Template_Corps break;
151 | rewrite (?i)^/WPD/Templates/Readiness(\ |_)Markers$ /WPD/Content/Readiness_Markers break;
152 | rewrite (?i)^/WPD/To-Do(\ |_)List$ /WPD/Most_Wanted_Tasks break;
153 | rewrite (?i)^/WPD/WPD/Infrastructure/procedures/Creating(\ |_)local(\ |_)multiple(\ |_)Virtual(\ |_)Machine(\ |_)state(\ |_)development(\ |_)environment(\ |_)using(\ |_)Vagrant(\ |_)and(\ |_)Salt(\ |_)stack$ /WPD/Infrastructure/procedures/Creating_local_multiple_Virtual_Machine_state_development_environment_using_Vagrant_and_Salt_stack break;
154 | rewrite (?i)^/WPD/WPD/Infrastructure/procedures/Deploying(\ |_)code(\ |_)changes$ /WPD/Infrastructure/procedures/Deploying_code_changes break;
155 | rewrite (?i)^/WPD/WPD/Infrastructure/procedures/Importing(\ |_)data(\ |_)into(\ |_)MediaWiki$ /WPD/Infrastructure/procedures/Importing_data_into_MediaWiki break;
156 | rewrite (?i)^/WPD/WPD/Infrastructure/procedures/Typical(\ |_)wiki(\ |_)maintenance(\ |_)tasks$ /WPD/Infrastructure/procedures/Typical_wiki_maintenance_tasks break;
157 |
--------------------------------------------------------------------------------
/config/nginx/sites-enabled/docs.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80 default_server;
3 | server_name localhost docs.webplatform.org;
4 |
5 | index index.html index.htm;
6 | rewrite_log on;
7 | #error_log /var/log/nginx/error.log notice;
8 | error_log /var/log/nginx/error.log;
9 |
10 | root /usr/share/nginx/html;
11 |
12 | try_files $uri $uri/ $uri.html =404;
13 | merge_slashes on;
14 |
15 | location ~* \.(gif|jpg|png|css|js)$ {
16 | expires 1d;
17 | }
18 |
19 | ## Ref:
20 | ## - https://www.nginx.com/resources/admin-guide/nginx-web-server/
21 |
22 | rewrite ^/$ /Main_Page/index.html permanent;
23 | rewrite ^/wiki/(.*)$ /$1 permanent; # MUST be the first
24 | rewrite /Meta\:(.*)$ /Meta/$1 permanent;
25 | rewrite /WPD\:(.*)$ /WPD/$1 permanent;
26 |
27 | rewrite ^/WPD/Community$ /community permanent;
28 | rewrite ^/WPD/Contributors_Guide$ /contribute permanent;
29 |
30 | ## Images hardcoded in wiki source before we migrated to DreamObjects
31 | rewrite ^/w/images/(.*)$ /assets/$1;
32 |
33 | rewrite ^/((Special|Template|Property|Form|Concept|UserWiki|User_profile).*)$ /disabled?r=$1 permanent;
34 | rewrite ^/w/(.*)$ /disabled?r=$1 permanent;
35 |
36 | include maps/main.map;
37 | include maps/meta.map;
38 | include maps/wpd.map;
39 | }
40 |
41 | # vim: ai tabstop=4 softtabstop=4 shiftwidth=4
42 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2"
2 |
3 | ## To use this Docker image, you can use
4 | ## make nginx-extras from Makefile in this repository
5 | ## then execute this using docker-compose
6 | ##
7 | ## ```
8 | ## make nginx-extras
9 | ## dc up -d
10 | ## ```
11 | ##
12 | ## Then you can tail the logs from inside the container
13 | ##
14 | ## ```
15 | ## tail -f logs/error.log logs/access.log
16 | ## ```
17 | services:
18 | nginx:
19 | image: nginx-extras
20 | ports:
21 | - "80:80"
22 | environment:
23 | - NGINX_HOST=webplatform.org
24 | - NGINX_PORT=80
25 | volumes:
26 | - "./build:/usr/share/nginx/html:ro"
27 | - "./config/nginx/sites-enabled:/etc/nginx/sites-enabled:ro"
28 | - "./config/nginx/maps:/etc/nginx/maps:ro"
29 | - "./logs:/var/log/nginx"
30 |
--------------------------------------------------------------------------------
/layouts/default.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{title}} · WebPlatform Docs
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{>metadata}}
15 |
16 |
17 |
18 |
19 | {{#readiness_marker}}{{readiness}}{{/readiness_marker}}
20 |
27 |
28 |
36 |
37 |
38 | {{>notice}}
39 |
40 |
41 |
42 |
43 |
62 |
63 |
64 |
65 |
66 |
{{title}}
67 | {{{ contents }}}
68 | {{>attributions}}
69 |
70 |
82 |
83 |
84 |
85 |
86 |
87 |
100 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/lib/handlebars/index.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Handlebars helpers registry
4 | */
5 |
6 | var Remarkable = require('remarkable')
7 | , Handlebars = require('handlebars');
8 |
9 | module.exports = function () {
10 | 'use strict';
11 | var md = new Remarkable();
12 |
13 | Handlebars.registerHelper('markdown', function markdownRendererHelper (options) {
14 | var text = md.render(options.fn(this));
15 | return new Handlebars.SafeString(text);
16 | });
17 |
18 | Handlebars.registerHelper('history_urlencode', function urlencodeHelper (options) {
19 | var urlArg = options.fn(this) + '/'
20 | , out = urlArg.replace(/\s+/g, '_').replace(/[\(\)]/g,'');
21 | return new Handlebars.SafeString(encodeURI(out));
22 | });
23 |
24 | Handlebars.registerHelper('breadcrumbize', function breadcrumbizeHelper (options) {
25 | var fragments = options.fn(this).split('/')
26 | , subpath = '/'
27 | , out = '';
28 |
29 | fragments.forEach(function(str, index, full){
30 | subpath += `${str}/`.replace(' ', '_');
31 | out += `${str} `;
32 | });
33 |
34 | return new Handlebars.SafeString(out);
35 | });
36 |
37 | Handlebars.registerHelper('readiness_marker', function readinessHelper (options) {
38 | var label = options.fn(this)
39 | , className = label.replace(/\s/g, '_')
40 | , template = ``;
41 |
42 | if (label.length > 1) {
43 | return new Handlebars.SafeString(template);
44 | }
45 | });
46 |
47 | };
48 |
--------------------------------------------------------------------------------
/lib/remarkable/highlighter.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Syntax highlighter as a Remarkable Markdown renderer plugin.
4 | *
5 | * https://github.com/jonschlinkert/remarkable
6 | * https://www.npmjs.com/package/remarkable#options
7 | */
8 |
9 | var hljs = require('highlight.js');
10 |
11 | /**
12 | * Process code blocks
13 | *
14 | * Roughly an adaptation of the syntax highlight
15 | * example function provided in Remarkable documentation.
16 | */
17 | module.exports = function (str, lang) {
18 | 'use strict';
19 |
20 | if (lang && hljs.getLanguage(lang)) {
21 | try {
22 | return hljs.highlight(lang, str).value;
23 | } catch (err) {}
24 | }
25 |
26 | try {
27 | return hljs.highlightAuto(str).value;
28 | } catch (err) {}
29 |
30 | return '';
31 | };
32 |
--------------------------------------------------------------------------------
/lib/remarkable/index.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Remarkable parser configuration.
4 | */
5 |
6 | module.exports = function (instance, options) {
7 | 'use strict';
8 |
9 | instance.block.ruler.enable([
10 | 'deflist'
11 | ]);
12 |
13 | };
14 |
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "generator-docs",
3 | "version": "2.0.0",
4 | "description": "WebPlatform Docs Static site generator",
5 | "homepage": "https://github.com/webplatform/generator-docs#readme",
6 | "license": "CC-BY-3.0",
7 | "authors": [
8 | "Renoir Boulanger "
9 | ],
10 | "bugs": {
11 | "url": "https://github.com/webplatform/generator-docs/issues"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/webplatform/generator-docs.git"
16 | },
17 | "main": "build.js",
18 | "engines": {
19 | "node": ">=4"
20 | },
21 | "scripts": {
22 | "serve": "node serve",
23 | "build": "node build",
24 | "start": "node build"
25 | },
26 | "devDependencies": {
27 | "bower": "*",
28 | "express": "^4.13.3",
29 | "handlebars": "^2.0",
30 | "remarkable": "^1.6.0",
31 | "highlight.js": "^8.8.0",
32 | "metalsmith": "~2",
33 | "metalsmith-assets": "^0.1.0",
34 | "metalsmith-changed": "~0.2",
35 | "metalsmith-layouts": "~1.4",
36 | "metalsmith-ignore": "~0.1",
37 | "metalsmith-markdown-remarkable": "^0.1.1"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/partials/attributions.hbs:
--------------------------------------------------------------------------------
1 | {{#if attributions}}
2 | Attributions
3 |
4 | {{#attributions}}
5 | {{#markdown}}{{.}}{{/markdown}}
6 | {{/attributions}}
7 |
8 | {{else}}
9 |
10 | {{/if}}
11 |
--------------------------------------------------------------------------------
/partials/breadcrumb.hbs:
--------------------------------------------------------------------------------
1 |
2 | DOCS
3 | {{#if uri}}
4 | {{#breadcrumbize}}{{uri}}{{/breadcrumbize}}
5 | {{/if}}
6 |
7 |
--------------------------------------------------------------------------------
/partials/metadata.hbs:
--------------------------------------------------------------------------------
1 | {{#readiness}} {{/readiness}}
2 | {{#standardization_status}} {{/standardization_status}}
3 | {{#summary}} {{/summary}}
4 |
--------------------------------------------------------------------------------
/partials/notice.hbs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Notice: The WebPlatform project has been
discontinued when the
Stewards partnership agreement ended in
September 2015 . This site has been frozen, and the assets we have created will remain.
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/serve.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * A minimal webserver for local development
4 | *
5 | * Use with `make serve`.
6 | *
7 | * To serve site for production, refer to notes
8 | * in README.md
9 | */
10 |
11 | var express = require('express');
12 | var app = express();
13 |
14 | app.use(express.static('build'));
15 |
16 | app.get('/', function matchRoot (req, res) {
17 | res.redirect('/Main_Page');
18 | });
19 |
20 | app.get(/(?!\.html$)/, function matchNonHtml (req, res) {
21 | req.url += ".html";
22 | res.redirect(req.url);
23 | });
24 |
25 | var server = app.listen(process.env.PORT || 4000, function() {
26 | console.log('Listening on port %d', server.address().port);
27 | });
28 |
--------------------------------------------------------------------------------
/static/_internal/fancy.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * WebPlatform Docs
3 | *
4 | * Stylesheet dump coming from MediaWiki asset manager
5 | *
6 | * To regenerate:
7 | * $ wget 'http://docs.webplatform.org/w/load.php?debug=false&lang=en&modules=mediawiki.legacy.commonPrint%2Cshared%7Cskins.webplatform&only=styles&skin=webplatform&*'
8 | *
9 | * @date 2013-09-18
10 | **/
11 | @media print{div.floatleft p,div.floatright p{font-style:italic}div.center,div.thumbinner{text-align:center}#colophon,#filetoc,#footer-places,#siteNotice,.editsection,.mw-hidden-catlinks,.mw-jump,.noprint,.tochidden,.toctoggle,div#column-one,div#f-copyrightico,div#f-poweredbyico,div#jump-to-nav,div.magnify,div.top,li#about,li#disclaimer,li#mobileview,li#privacy,li#viewcount,span.mw-filepage-other-resolutions,tr.mw-metadata-show-hide-extended{display:none}.diffchange,.mw_metadata caption,h1,h2,h3,h4,h5,h6,li.gallerycaption,table.wikitable>caption{font-weight:700}#toc{border:1px solid #aaa;background-color:#f9f9f9;padding:5px}div.thumbinner,html .thumbcaption{padding:3px!important;font-size:94%}div.floatright{float:right;clear:right;position:relative;margin:.5em 0 .8em 1.4em}div.floatleft{float:left;clear:left;position:relative;margin:.5em 1.4em .8em 0}div.thumb{border:none;width:auto;margin-top:.5em;margin-bottom:.8em;background-color:transparent}#footer,.mw-code,body,pre{background:#fff;color:#000}div.thumbinner,html .thumbimage{border:1px solid #ccc}div.thumbinner{background-color:#fff;overflow:hidden}html .thumbcaption{border:none;text-align:left;line-height:1.4em}div.tright{float:right;clear:right;margin:.5em 0 .8em 1.4em}div.tleft{float:left;clear:left;margin:.5em 1.4em .8em 0}img.thumbborder{border:1px solid #ddd}table.rimage{float:right;width:1pt;position:relative;margin-left:1em;margin-bottom:1em;text-align:center}body{margin:0;padding:0}ul{list-style-type:square}#content{border:none!important;padding:0!important;margin:0!important;direction:ltr}#footer{margin-top:1em;border-top:1px solid #AAA;direction:ltr}p{margin:1em 0;line-height:1.2em;widows:3;orphans:3}.mw-code,pre{border:1pt dashed #000;white-space:pre;font-size:8pt;overflow:auto;padding:1em 0}table.listing,table.listing td{border:1pt solid #000;border-collapse:collapse}a{background:0 0!important;padding:0!important}a:link,a:visited{color:#520;background:0 0;text-decoration:underline}#content,table.diff,td.diff-ntitle,td.diff-otitle{background:#fff}#content a.external.autonumber:after,#content a.external.text:after{content:" (" attr(href) ") "}#globalWrapper{width:100%!important;min-width:0!important}#content{color:#000}#column-content{margin:0!important}#column-content #content{padding:1em;margin:0!important}a,a.external,a.new,a.stub{color:inherit!important;text-decoration:inherit!important}img{border:none;vertical-align:middle}span.texhtml{font-family:serif}li.gallerybox{vertical-align:top;display:-moz-inline-box;display:inline-block}li.gallerybox,ul.gallery{zoom:1}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;margin:2px}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word}td.diff-addedline{background:#cfc;font-size:smaller;border:2px solid #000}td.diff-deletedline{background:#ffa;font-size:smaller;border:2px dotted #000}td.diff-context{background:#eee;font-size:smaller}.diffchange{color:silver;text-decoration:underline}table.mw_metadata,table.wikitable{margin:1em 0;border:1px solid #aaa;background:#fff;border-collapse:collapse}.mw_metadata td,.mw_metadata th,table.wikitable>*>tr>td,table.wikitable>*>tr>th,table.wikitable>tr>td,table.wikitable>tr>th{border:1px solid #aaa;padding:.2em}.mw_metadata th,table.wikitable>*>tr>th,table.wikitable>tr>th{text-align:center;background:#fff;font-weight:700}a.sortheader{margin:0 .3em}.thumb,.wikitable,img{page-break-inside:avoid}h2,h3,h4,h5,h6,h7{page-break-after:avoid}.catlinks ul{display:inline;margin:0;padding:0;list-style:none;vertical-align:middle !ie}.catlinks li{line-height:1.15em;padding:0 .4em;border-left:1px solid #AAA;margin:.1em 0;zoom:1;display:inline !ie}.catlinks li:first-child{padding-left:.2em;border-left:none}}@media screen{#wikiPreview.ontop,input#wpSummary{margin-bottom:1em}#shared-image-conflict,#shared-image-dup,.allpagesredirect,.redirect-in-category,.watchlistredir,span.comment{font-style:italic}#editform,#toolbar,#wpTextbox1,h2#filehistory{clear:both}.imagelist td,.imagelist th,.os-suggest-result,.os-suggest-result-hl,table.filehistory td.mw-imagepage-filesize,table.filehistory th.mw-imagepage-filesize,td.mw-submit{white-space:nowrap}.mw-datatable,table.mw_metadata,table.os-suggest-results{border-collapse:collapse}#pagehistory span.minor,.botedit,.minoredit,.newpage,.unpatrolled,table.filehistory td.filehistory-selected,table.mw_metadata caption,table.wikitable>caption{font-weight:700}.mw-content-ltr{direction:ltr}.mw-content-rtl{direction:rtl}.sitedir-ltr input,.sitedir-ltr textarea{direction:ltr}.sitedir-rtl input,.sitedir-rtl textarea,input[dir=rtl],textarea[dir=rtl]{direction:rtl}mark{background-color:#ff0;color:#000}input[dir=ltr],input[type=submit],input[type=button],input[type=reset],input[type=file],textarea[dir=ltr]{direction:ltr}.explain,abbr,acronym{border-bottom:1px dotted;cursor:help}.mw-plusminus-pos{color:#006400}.mw-plusminus-neg{color:#8b0000}.mw-plusminus-null{color:#aaa}span.changedby{font-size:95%}.texvc{direction:ltr;unicode-bidi:embed}img.tex{vertical-align:middle}table.filehistory td,table.filehistory th,td.mw-label{vertical-align:top}span.texhtml{font-family:serif}#toolbar img{cursor:pointer}.mw-content-ltr .editsection,.mw-content-rtl .mw-content-ltr .editsection{float:right;margin-left:5px}.mw-content-ltr .mw-content-rtl .editsection,.mw-content-rtl .editsection{float:left;margin-right:5px}div.mw-filepage-resolutioninfo{font-size:smaller}table.filehistory th{text-align:left}#file img:hover,.filehistory a img{background:url(http://docs.webplatform.org/w/skins/common/images/Checker-16x16.png?2013-06-05T19:36:40Z) #fff}li span.deleted,span.history-deleted{text-decoration:line-through;color:#888;font-style:italic}.not-patrolled{background-color:#ffa}.unpatrolled{color:red}div.patrollink{font-size:75%;text-align:right}td.mw-label{text-align:right}td.mw-input,td.mw-submit{text-align:left}.prefsection td.mw-label{width:20%}.prefsection table{width:100%}table.mw-htmlform-nolabel td.mw-label{width:1px}tr.mw-htmlform-vertical-label td.mw-label{text-align:left!important}.mw-htmlform-invalid-input td.mw-input input{border-color:red}.mw-htmlform-flatlist div.mw-htmlform-flatlist-item{display:inline;margin-right:1em;white-space:nowrap}input#wpSummary{width:80%}#catlinks{text-align:left}.catlinks ul{display:inline;margin:0;padding:0;list-style:none;vertical-align:middle !ie}.catlinks li{line-height:1.25em;border-left:1px solid #AAA;margin:.125em 0;padding:0 .5em;zoom:1;display:inline !ie}.catlinks-allhidden,.mw-hidden-cats-hidden,table.collapsed tr.collapsable{display:none}.catlinks li:first-child{padding-left:.25em;border-left:none}p.mw-delete-editreasons,p.mw-filedelete-editreasons,p.mw-ipb-conveniencelinks,p.mw-protect-editreasons,p.mw-revdel-editreasons{font-size:90%;text-align:right}.os-suggest{overflow:auto;overflow-x:hidden;position:absolute;top:0;left:0;width:0;background-color:#fff;border-style:solid;border-color:#AAA;border-width:1px;z-index:99;font-size:95%}table.os-suggest-results{font-size:95%;cursor:pointer;border:0;width:100%}.os-suggest-result,.os-suggest-result-hl{background-color:#fff;color:#000;padding:2px}.os-suggest-result-hl,.os-suggest-result-hl-webkit{background-color:#4C59A6;color:#fff}.os-suggest-toggle{position:relative;left:1ex;font-size:65%}.os-suggest-toggle-def{position:absolute;top:0;left:0;font-size:65%;visibility:hidden}.autocomment{color:gray}#pagehistory .history-user{margin-left:.4em;margin-right:.2em}#pagehistory li{border:1px solid #fff}#pagehistory li.selected{background-color:#f9f9f9;border:1px dashed #aaa}#mw-fileduplicatesearch-icon,.mw-history-revisiondelete-button{float:right}div.mw-warning-with-logexcerpt{padding:3px;margin-bottom:3px;border:2px solid #2F6FAB;clear:both}div.mw-warning-with-logexcerpt ul li,span.mw-revdelundel-link,strong.mw-revdelundel-link{font-size:90%}.error,.success,.warning{font-size:larger}input.mw-revdelundel-hidden,span.mw-revdelundel-hidden{visibility:hidden}td.mw-revdel-checkbox,th.mw-revdel-checkbox{padding-right:10px;text-align:center}a.new{color:#BA0000}a.feedlink{background:url(http://docs.webplatform.org/w/skins/common/images/feed-icon.png?2013-06-05T19:36:40Z) center left;padding-left:16px}.plainlinks a{background:0 0!important;padding:0!important}.mw-ajax-loader,.mw-small-spinner{background-position:center center}.mw-ajax-loader,.mw-help-field-hint,.mw-small-spinner{background-repeat:no-repeat}.rtl a.external.autonumber,.rtl a.external.free{direction:ltr;unicode-bidi:embed}table.wikitable{margin:1em 0}.success{color:green}.warning{color:orange}.error{color:red}.errorbox,.successbox,.warningbox{font-size:larger;border:2px solid;padding:.5em 1em;float:left;margin-bottom:2em;color:#000}.errorbox{border-color:red;background-color:#fff2f2}.warningbox{border-color:#FF8C00;background-color:#FFFFC0}.successbox{border-color:green;background-color:#dfd}.errorbox h2,.successbox h2,.warningbox h2{font-size:1em;font-weight:700;display:inline;margin:0 .5em 0 0;border:none}.mw-infobox{border:2px solid #ff7f00;margin:.5em;clear:left;overflow:hidden}.mw-infobox-left{margin:7px;float:left;width:35px}.mw-infobox-right{margin:.5em .5em .5em 49px}.previewnote{color:#c00;margin-bottom:1em}.previewnote p{text-indent:3em;margin:.8em 0}.visualClear{clear:both}#mw_trackbacks{border:1px solid #bbf;background-color:#eef;padding:.2em}.mw-datatable,.mw-datatable td,.mw-datatable th{border:1px solid #aaa;padding:0 .15em}.mw-datatable th{background-color:#ddf}.mw-datatable td{background-color:#fff}.imagelist .TablePager_col_links,.mw-datatable tr:hover td{background-color:#eef}.TablePager{min-width:80%}.TablePager_nav{margin:0 auto}.TablePager_nav td{padding:3px;text-align:center}.TablePager_nav a{text-decoration:none}.imagelist .TablePager_col_img_description{white-space:normal}.imagelist th.TablePager_sort{background-color:#ccf}ul#filetoc{text-align:center;border:1px solid #aaa;background-color:#f9f9f9;padding:5px;font-size:95%;margin-bottom:.5em;margin-left:0;margin-right:0}#filetoc li{display:inline;list-style-type:none;padding-right:2em}table.mw_metadata{font-size:.8em;margin-left:.5em;margin-bottom:.5em;width:400px;border:none}table.mw_metadata th{font-weight:400;background-color:#f9f9f9}table.mw_metadata td{padding:.1em;background-color:#fcfcfc}table.mw_metadata td,table.mw_metadata th{text-align:center;border:1px solid #aaa;padding-left:5px;padding-right:5px}table.mw_metadata ul.metadata-langlist{list-style-type:none;list-style-image:none;padding-right:5px;padding-left:5px;margin:0}.mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ul{margin:.3em 0 0 1.6em;padding:0}.mw-content-ltr .mw-content-rtl ul,.mw-content-rtl ul{margin:.3em 1.6em 0 0;padding:0}.mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ol{margin:.3em 0 0 3.2em;padding:0}.mw-content-ltr .mw-content-rtl ol,.mw-content-rtl ol{margin:.3em 3.2em 0 0;padding:0}.mw-content-ltr dd,.mw-content-rtl .mw-content-ltr dd{margin-left:1.6em;margin-right:0}.mw-content-ltr .mw-content-rtl dd,.mw-content-rtl dd{margin-right:1.6em;margin-left:0}li.gallerybox{vertical-align:top;display:-moz-inline-box;display:inline-block}li.gallerybox,ul.gallery{zoom:1}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:700;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;background-color:#f9f9f9;margin:2px}.mw-help-field-data,.tipsy-inner{background-color:#d6f3ff;border:1px solid #5dc9f4}li.gallerybox div.thumb img{display:block;margin:0 auto}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word}.mw-ajax-loader{background-image:url(data:image/gif;base64,R0lGODlhIAAgAOMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBP///////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAPACwAAAAAIAAgAAAE5/DJSWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBk+EDskxTBDPZwuAkkqIfxIQyhBQBFvHwSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5g/qXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQFCgAPACwAAAAAGAAXAAAEcvDJSesiNetplqlDsYnUYlIGw2jGV55SoS5sq0wmLS3qoBWtAw42mG0ehxYp90CoGKRNy8U8qFzNweCGwlJkgolCq0VIEAbMkUIghxLrDcLti2/Gg7D9qN774wkKBIOEfw+ChIV/gYmDho+QkZKTR3p7EQAh+QQFCgAPACwBAAAAHQAOAAAEcvDJSScxNev9jjkZwU2IUhkodSzLKA2DOKGYRLD1CA/InEoGlkui2PlyuKGkADM9aI8EayGbJDYI4zM1YIEmAwajkCAoehNmTNNaLsQMHmGuuEYHgpHAAGfUBHNzeUp9VBQJCoFOLmFxWHNoQweRWEocEQAh+QQFCgAPACwHAAAAGQARAAAEavDJ+cQQNOtdRsnf9iRINpyZYYgEgU3nQKnr1hIJjEqHGmqIlkInexRUB5FE0So9YhKaUpK4SaAPlWaxIFAETQ3B4BxzF2Kn8nBeJKebdm3SgksKXDt8kNP7/xoMgoMLP36DiAyAD4kMhREAIfkEBQoADwAsDgAAABIAGAAABGUQFfSqvZiUghXF1cZZxTCA4WYh5omKVqugD/woLV2rT/u9KoJpFDIYaIJBwnIwGogoivOoq0wPs6r1qe16v5WFeEzVjc+LKnphIIC9g193wGC4uvX6Aoo05BllVQULeXdadAxuEQAh+QQFCgAPACwOAAAAEgAeAAAEgDCp9Kq9WBGFBb5ECBbFV4XERaYmahGk14qPQJbm4z53foq2AquiGAwQJsQQYTRyfIlCc4DzTY8+i8CZxQy74KxhTD58P+S0Qaw+hN8WyruwWMDrdcM5ecAv3CYDDDIEBngmBwwMaxeGJgmKDFVdggx2bwuKA28EkXAGinJhVCYRACH5BAUKAA8ALA8AAQARAB8AAAR88Mn5UKIYC0KyT5ziZQqHjBQSohRHXGzFCSkHU/eTlCa7uTSUi6DIeVSEU0yiXDo9g6i0EIRKr6hrlPrsOgkGQ8EZDh+eZcOosKAcymPKYLE4TwphCWMvoS86HnsME3RqgXwSBnQjghR+h4MTB4sZjRiAGAsMbU4FDHFLEQAh+QQFCgAPACwIAA4AGAASAAAEbPDJSesjOKtk+8yg4nkgto1oihIqKgyD2FpwjcxUUtRDMROG2wPBkz0EjEHHYKgoYMKHgcE4PBZYCbM5KlAZHOxCUmBaPQuq8pqVHJg+GnUsEVO2nTQjzqZPmB1UXHVtE3wVOxUGC4M4H34qEQAh+QQFCgAPACwCABIAHQAOAAAEePDJSat96FJ0tEUEkV0DwwwepYSEklDEYpopJbCEIBkzY+geweD1SKxCiJJpUZAgmBbCYNCcIFaJggk1OSwWKINYMh2MLMRJ7LsbPxTl2sTAbhsmhalC/vje7VZxNXQLBHNuEnlcKV8dh38TCmcehhUHBo58cpA1EQAh+QQFCgAPACwAAA8AGQARAAAEZ7AsRuu7OOtbO9tgJnlfaJ7omQwpuixFCxrvK2dHvRwoQmw1w+8i3PgIggzBpjEYLoPohUBNoJzPR5T1OCpOB2dMK70oqIhQwcmDlh8J6nCDzWwzAmrIqblnEFZqGgUDYzcaAgNJGxEAIfkEBQoADwAsAQAIABEAGAAABFyQMDaevfiOyVbJ4GNwjCGEWLGQaLZRbYZUcW3feK7vaGEYNsXh96sRgYiW73e4JAYn0O9zKQwGhAdhi5pdLdts6DpQgLkgBfkSHl+TZ7ELi2mDEHKLgmC+JRQJEQAh+QQFCgAPACwAAAIADgAdAAAEcvDJ+cqgeDJmMt4M4U3DtozTsl1oASJpRxnbkS6LIT4Cw0oHHO4A8xAMwhPqgSssH4nnknAwWK+Zq1ZGoW650vAOpRgMBCOEee2xrAtRTNlcQEsI8Yd6oKAICARFHgmAYx4KgIIZCIB9ZIB5RgR2KAmKEQA7);background-image:url(http://docs.webplatform.org/w/skins/common/images/ajax-loader.gif?2013-06-05T19:36:40Z) !ie;padding:16px;position:relative;top:-16px}.tipsy,.tipsy-arrow,.xdebug-error{position:absolute}.mw-small-spinner{padding:10px!important;margin-right:.6em;background-image:url(data:image/gif;base64,R0lGODlhFAAUAIQQAAYJBRkbGCYnJTI0MT9APk5QTVhZV2ZoZXR2c4SGg5CSj52fnKyuq7m7uMfJxtPV0v///////////////////////////////////////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCgABACwAAAAAFAAUAAAFc2AgjuNQkCipHCMAiI6TjoWAiG7gNM08CgTca+cbGWyBXEMm6okMJxGBNWLuGo8ngWBY+HgxlIFwm4VnimKKkWgn1Dzwwv0uxpfqfJWZ2p1hV0VXTA9gMCRETXxOOj08jXxfMo+NcHiUgT5nlAFZejqRKCEAIfkECQoADAAsAAAAABQAFAAABXYgI45jcZAouSSjIIjDkI4HwTJBIALvLBIFUY4xAPhoA1ZAcAjIRI2RQlFCkIIMR6PxEC0UiYXDt3WMSdOFz0w+prTb6DHeMNPd9LN7n9WjtGwjdnIzcGeGIn5aI3WMglFbWY14kHKLR4AMkZKEb2ebDF18fUchACH5BAkKAAEALAAAAAAUABQAAAV6YCCO44GQKOkw40CIxZuKi9KIwyAK8hwkCpyOIPCNFglWTjEojAgJkeMmUixIhiABADhIGw3HwycACLyqsI+ATo2NqCmY6puH5WC43QHvjxx8M3KBUnJGgyIPYIGEAVMjaiJ0j3lTjTN5eQGadWqainQpgJJ0b36jPiEAIfkECQoAAQAsAAAAABQAFAAABXVgII7jwpAo+TxjkoiGkY5OwwauSBTz2DSinIHQozUcuISCIIMpRDUfcoRYBAwCwQH6c9xSBAEBgapNUwfy7Fs0/oBFgBwwqL3bcwCvzYeey10qdkV2Uw+BAX9RIkc+RgE/iY1tkZGSlI2Wgz0OU5YBbG2dRSEAIfkECQoACAAsAAAAABQAFAAABXcgIo4j05Ao+TjjsohuOjoNi8RIoshjDb+KBG/mczUUL9EhSevZYKwDgSBE0GoPXmFgqBKfqIMXlR2iro3TMCBgF9BqXpt9MKPGJAeYRAhw81dDAwAAAyIPaTZgTSIChiJxTWlWPmaTk5SWPpiBPHqQcWV2VnskIQAh+QQJCgABACwAAAAAFAAUAAAFemAgjqPjkCj5nGLTiAyTlg3rios8t/bLLDvayeXIjRYsx4tHcjwCi0RCp6w9Z4qEQifcxXbXYNN1Cw7Og0O1vEMTEGKUYmfaGQaEQ7O6WxQEAwUiD0QiLCIEAiMEBCNLAUoBNwcAA3E3ZQIAYoVllI10PSMHCXGGhykhACH5BAkKAAEALAAAAAAUABQAAAV3YCCOo+OQKPmcYtOIZlo2T/sGDSvjrBs4t90vh6MRYbXh6Igc0mAuRzIV1UGtpJhsKpy5grKEOLEAfrvjBKOLUuy0KQTBkMiadwsDYS56RGEkBwQjBQZLMwEAAAEIAoZdPooiBAKQRJKMAgVCWpgBB25sAQUDQiEAIfkECQoAEAAsAAAAABQAFAAABXsgJI6j45Ao+Zxi04hmWjZP+0INK+OsCzm33S+HoxFhteHoiBzSYC5HMhXVQa2kmGwqnLmCsm8O+O2KseadNrVQKBhZsnqRSChEj6iIQEIURm5LIwMBCAIBEAkDB10QAAIQAYgQBnxChyKYiQSMOwKQEJ8jCQuNIgd/OyEAIfkECQoAHwAsAAAAABQAFAAABXzgJ46j45Ao+Zxi04hmWjZP+34NK+Os+zm33S+HoxFhteHoiBzSYC5HMhXVQa2kmGwqnLmCsm8O+O2KsV0u6UDYAbWigwAg2K2iIgMAMPgsDCQMCkssCW0iBQMKA30MCQtdHwNtjCILCV0EfZKbDY9CBAUimiMMaDIIgDshACH5BAkKAB8ALAAAAAAUABQAAAV44CeOo+OQKPmcYtOIZlo2T/t+DSvjrPs5t90vh6MRYbXh6Igc0mAuRzIV1UGtpJhsKhwVAGBA1xUdhMVCMrMr4pIQhx1QK0IQBITdKio6CAQFHwsIWUFHCoEiBgQKCQlDWCkEgY5QXQV5H5WQQgWJmx8PbjsMC0IhACH5BAkKAB8ALAAAAAAUABQAAAV14CeOo+OQKPmcYtO0bwo/cC3b7pffotOcrsevRPsMBKMh8eNrFAcBwEBxczlRUMLNdEvwUgWAGPC1/gZjMs9c/I7aqMRh62KJEoZB4bay3gkEcw4LJD5JMQtzIgsKfj52XVQ7OzcKVDoxQjEyCoSYb3A8XDchACH5BAEKAB8ALAAAAAAUABQAAAV64CeOo+OQKJkcY9OIZjoSAPu5Ii6LgJC/jtdONKjdGo/GCfYQEQYjAYHkaAaVosJgUFjsXDHS07ALpxTDFOK5TbvAh217+MamSU0Zg1FWLkUMCgloMg9XSwwJCV6GVEI3Sw5eMEg4QX9fJzo6X0I6SZgoYZwPeXdmKSEAOw==);background-image:url(http://docs.webplatform.org/w/skins/common/images/spinner.gif?2013-06-05T19:36:40Z) !ie}h1:lang(as),h1:lang(bh),h1:lang(bho),h1:lang(bn),h1:lang(gu),h1:lang(hi),h1:lang(kn),h1:lang(ml),h1:lang(mr),h1:lang(my),h1:lang(or),h1:lang(pa),h1:lang(sa),h1:lang(ta),h1:lang(te){line-height:1.6em!important}h2:lang(as),h2:lang(bh),h2:lang(bho),h2:lang(bn),h2:lang(gu),h2:lang(hi),h2:lang(kn),h2:lang(ml),h2:lang(mr),h2:lang(my),h2:lang(or),h2:lang(pa),h2:lang(sa),h2:lang(ta),h2:lang(te),h3:lang(as),h3:lang(bh),h3:lang(bho),h3:lang(bn),h3:lang(gu),h3:lang(hi),h3:lang(kn),h3:lang(ml),h3:lang(mr),h3:lang(my),h3:lang(or),h3:lang(pa),h3:lang(sa),h3:lang(ta),h3:lang(te),h4:lang(as),h4:lang(bh),h4:lang(bho),h4:lang(bn),h4:lang(gu),h4:lang(hi),h4:lang(kn),h4:lang(ml),h4:lang(mr),h4:lang(my),h4:lang(or),h4:lang(pa),h4:lang(sa),h4:lang(ta),h4:lang(te),h5:lang(as),h5:lang(bh),h5:lang(bho),h5:lang(bn),h5:lang(gu),h5:lang(hi),h5:lang(kn),h5:lang(ml),h5:lang(mr),h5:lang(my),h5:lang(or),h5:lang(pa),h5:lang(sa),h5:lang(ta),h5:lang(te),h6:lang(as),h6:lang(bh),h6:lang(bho),h6:lang(bn),h6:lang(gu),h6:lang(hi),h6:lang(kn),h6:lang(ml),h6:lang(mr),h6:lang(my),h6:lang(or),h6:lang(pa),h6:lang(sa),h6:lang(ta),h6:lang(te){line-height:1.2em}ol:lang(bcc) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(mzn) li{list-style-type:persian}ol:lang(ckb) li{list-style-type:arabic-indic}ol:lang(hi) li,ol:lang(mr) li{list-style-type:devanagari}ol:lang(as) li,ol:lang(bn) li{list-style-type:bengali}ol:lang(or) li{list-style-type:oriya}#toc ul,.toc ul{margin:.3em 0}.mw-content-ltr #toc ul,.mw-content-ltr .toc ul,.mw-content-rtl .mw-content-ltr #toc ul,.mw-content-rtl .mw-content-ltr .toc ul{text-align:left}.mw-content-ltr .mw-content-rtl #toc ul,.mw-content-ltr .mw-content-rtl .toc ul,.mw-content-rtl #toc ul,.mw-content-rtl .toc ul{text-align:right}.mw-content-ltr #toc ul ul,.mw-content-ltr .toc ul ul,.mw-content-rtl .mw-content-ltr #toc ul ul,.mw-content-rtl .mw-content-ltr .toc ul ul{margin:0 0 0 2em}.mw-content-ltr .mw-content-rtl #toc ul ul,.mw-content-ltr .mw-content-rtl .toc ul ul,.mw-content-rtl #toc ul ul,.mw-content-rtl .toc ul ul{margin:0 2em 0 0}#toc #toctitle,#toc .toctitle,.toc #toctitle,.toc .toctitle{direction:ltr}.mw-help-field-hint{display:none;margin-left:2px;margin-bottom:-8px;padding:0 0 0 15px;background-image:url(data:image/gif;base64,R0lGODlhCwALALMAAP///01NTZOTk1lZWefn57i4uJSUlPPz82VlZdDQ0HFxcaysrNvb28TExAAAAAAAACH5BAAAAAAALAAAAAALAAsAAAQrUIRJqQQ455nNNBgHJANBDAwgZsVwqIG2IEQYYwXy2lq/Kg3NqqeSVCqCCAA7);background-image:url(http://docs.webplatform.org/w/skins/common/images/help-question.gif?2013-06-05T19:36:40Z) !ie;background-position:left center;cursor:pointer;font-size:.8em;text-decoration:underline;color:#0645ad}.mw-help-field-hint:hover{background-image:url(data:image/gif;base64,R0lGODlhCwALALMAAAtop+7z+GCWwpW51oStz8rb6yZzrafF3bnR5Nzn8QBcoD91oABQmf///wAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE5NkQ0QUQzRjI0NzRCNUQwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBN0FFQTQwQjlGQzExREY5RDlBQTRBODQyMkJCMkFDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBN0FFQTNGQjlGQzExREY5RDlBQTRBODQyMkJCMkFDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkM3RjExNzQwNzIwNjgxMTk1RkVBQ0ZBOEQxNTU5MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDI4MDExNzQwNzIwNjgxMTk2RDRBRDNGMjQ3NEI1RDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAACwALAAAEK3CxSalsOOeZxRQY1yBKkihFI2aDEqiMRgBJGGMD8NpavxoHzaqnklQqiwgAOw==);background-image:url(http://docs.webplatform.org/w/skins/common/images/help-question-hover.gif?2013-06-05T19:36:40Z) !ie}.mw-help-field-data{display:block;padding:5px 8px 4px;margin-left:20px}.tipsy{padding:5px 5px 10px;font-size:12px;z-index:100000;overflow:visible}.tipsy-inner{padding:5px 8px 4px;color:#000;max-width:300px;text-align:left}.tipsy-arrow{background:url(http://docs.webplatform.org/w/skins/common/images/tipsy-arrow.gif?2013-06-05T19:36:40Z) top no-repeat;width:13px;height:13px}.tipsy-se .tipsy-arrow{bottom:-2px;right:10px;background-position:0 100%}#mw-clearyourcache,#mw-sitecsspreview,#mw-sitejspreview,#mw-usercsspreview,#mw-userjspreview,.diff,.diff-currentversion-title{direction:ltr;unicode-bidi:embed}.diff-contentalign-right td{direction:rtl;unicode-bidi:embed}.diff-contentalign-left td{direction:ltr;unicode-bidi:embed}.diff-lineno,.diff-ntitle,.diff-otitle{direction:ltr!important;unicode-bidi:embed}#mw-revision-info,#mw-revision-info-current,#mw-revision-nav{direction:ltr;display:inline}#mw-credits a{unicode-bidi:embed}#jump-to-nav,.mw-jump{overflow:hidden;height:0;zoom:1}.printfooter{display:none}.xdebug-error{z-index:99}.editsection,.toctoggle{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}}code,dt,h1,h2,h3,h4,h5,strong{font-weight:700}.comment-count,.dropdown>ul>li,.prefix,.standardization_status,.toolbar .button,label.checkboxLabel{white-space:nowrap}#p-search,.container,div.floatleft,div.floatright,table.floatleft,table.floatright{position:relative}code,code.block,pre{font-family:Consolas,Monaco,'Andale Mono',monospace}@font-face{font-family:Gudea;font-weight:400;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-regular-webfont.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-regular-webfont.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-regular-webfont.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-regular-webfont.ttf) format('truetype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-regular-webfont.svg#GudeaRegular) format('svg')}@font-face{font-family:Gudea;font-weight:700;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-bold-webfont.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-bold-webfont.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-bold-webfont.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-bold-webfont.ttf) format('truetype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-bold-webfont.svg#GudeaRegular) format('svg')}@font-face{font-family:Gudea;font-weight:400;font-style:italic;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-italic-webfont.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-italic-webfont.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-italic-webfont.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-italic-webfont.ttf) format('truetype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/gudea-italic-webfont.svg#GudeaRegular) format('svg')}@font-face{font-family:Bitter;font-weight:400;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-regular-webfont.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-regular-webfont.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-regular-webfont.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-regular-webfont.ttf) format('truetype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-regular-webfont.svg#BitterRegular) format('svg')}@font-face{font-family:Bitter;font-weight:700;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-bold-webfont.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-bold-webfont.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-bold-webfont.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-bold-webfont.ttf) format('truetype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-bold-webfont.svg#BitterBold) format('svg')}@font-face{font-family:Bitter;font-weight:400;font-style:italic;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-italic-webfont.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-italic-webfont.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-italic-webfont.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-italic-webfont.ttf) format('truetype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/bitter-italic-webfont.svg#BitterBold) format('svg')}@font-face{font-family:WPSymbols;src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/WPSymbols.eot);src:url(http://docs.webplatform.org/w/skins/webplatform/fonts/WPSymbols.eot?#iefix) format('embedded-opentype'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/WPSymbols.svg#WPSymbols) format('svg'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/WPSymbols.woff) format('woff'),url(http://docs.webplatform.org/w/skins/webplatform/fonts/WPSymbols.ttf) format('truetype')}footer,header{display:block}body{color:#3C3C3C;font-family:Gudea,Arial,sans-serif;font-size:14px;margin:0;padding:0;background:url(http://docs.webplatform.org/w/skins/webplatform/images/bg-pattern.png) #ece5d7;widows:2;orphans:2}h1,h2,h3,h4,h5{color:#58595b;margin:0 0 14px;font-family:Bitter,Cambria,Georgia,serif}h2,h3{font-weight:400}#firstHeading,h1{line-height:40px}#firstHeading{border-bottom:2px solid #ffc621}h2{font-size:20px;border-bottom:1px solid #e2e3e4}h2 .editsection{font-size:14px}dt,h3{font-size:16px}h3{color:#6d685b;border-bottom:1px solid #eae3d3}h2,h3,h4{padding-top:14px}header h5,span.subpages{display:none}#mw-content-text h5{display:inline}strong{font-style:normal}dt{padding-bottom:7px;color:#000}dd{padding-bottom:15px}blockquote{padding:1em;border-left:.5em solid #F99D1C;border-left-color:hsla(35,94%,54%,.4);margin:1em 0 1em 3em;background:hsla(35,94%,54%,.16);color:#945804;font-style:italic}blockquote>p:first-child{margin-top:0}blockquote.testimonial{margin-right:310px}blockquote.testimonial address{text-align:right;font-style:normal}blockquote.testimonial address:before{content:'—'}blockquote::before{content:'❝';float:left;margin:-.3em 0 0 -1.2em;color:#F99D1C;color:hsla(35,94%,54%,.6);font-size:400%;line-height:1;font-family:'Zapf Dingbats',serif;font-style:normal}code.block,pre{display:block;padding:10px!important;background-color:#fff;border:1px dotted #9b9689!important;overflow-x:auto}p:empty:not([id]):not([class]){display:none}em code,i code{font-weight:inherit}fieldset{border:none;padding:0}fieldset fieldset>legend,fieldset>legend{width:100%;border-bottom:1px solid #e2e3e4;color:#58595b;font-family:Bitter,Cambria,Georgia,serif;font-weight:400}fieldset>legend{margin:0 0 12px;padding-top:14px;font-size:20px}fieldset fieldset>legend{margin:0 0 8px;padding-top:20px;font-size:14px}a{color:#256a84;text-decoration:none;-webkit-transition:color .2s}[id=mw-content-text] a{text-decoration:underline}#mw-head a,#p-namespaces a,#p-namespaces a:visited,#sidebar a,#sitenav a,.tool-area a,.toolbar .button,a:hover{text-decoration:none}a:hover{color:#2dafbc}a.new,a.new:hover{color:#BA0000}a.external{padding-right:15px;margin-right:5px;background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/link-external.png);background-repeat:no-repeat;background-position:right 3px}a.external:hover{background-position:right -17px}code a.external,pre a.external{background:0 0;padding-right:0;margin-right:0}a.new:hover{font-weight:700}a img{border:none}input,textarea{padding:.3em .5em;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #d4c6a9;border-radius:.3em;background:#fcfbf9;font:inherit;box-shadow:1px 2px 2px rgba(0,0,0,.15) inset}.articleFeedback-title,.thumbcaption{font-family:Bitter,Cambria,Georgia,serif}input:focus,textarea:focus{background:#fff}.mw-body .button,.mw-body button,.mw-body input[type=submit],.mw-body input[type=button]{display:inline-block;position:relative;padding:.5em .8em;border:1px solid #cfc6b0;border-radius:.4em;background-color:#F0EBDD;background-repeat:no-repeat;background-image:-webkit-linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));background-image:-moz-linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));background-image:-o-linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));background-image:linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));box-shadow:0 2px 2px -1px rgba(0,0,0,.1);color:#74663e;text-shadow:0 1px 1px #fff;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap;font-size:85%;line-height:1;-webkit-transition:.3s box-shadow;transition:.3s box-shadow}.mw-body button:focus,.mw-body button:hover,.mw-body input[type=submit]:focus,.mw-body input[type=submit]:hover,.mw-body input[type=button]:focus,.mw-body input[type=button]:hover{color:#000;box-shadow:0 0 0 .4em #694D9F,0 2px 2px -1px rgba(0,0,0,.1);outline:0}.mw-body button:active,.mw-body input[type=submit]:active,.mw-body input[type=button]:active{top:1px;left:1px;box-shadow:0 0 0 999px rgba(0,0,0,.03) inset,1px 1px 5px rgba(0,0,0,.3) inset}.mw-body button[type=submit],.mw-body input[type=submit]{background-color:#B4E1E4;border-color:#79ccd2;color:#144d51}.thumb{padding:10px 10px 8px;border:1px solid #eae3d3;margin-bottom:10px;background:#fff;color:#58595b;transition:.4s .2s}.thumb:hover{-webkit-transform:translate(-2px,-3px) rotate(-1deg);transform:translate(-2px,-3px) rotate(-1deg);box-shadow:2px 2px 4px rgba(0,0,0,.2)}.thumb.tright:hover{-webkit-transform:translate(2px,-3px) rotate(1deg);transform:translate(2px,-3px) rotate(1deg)}div.floatright,div.tright,table.floatright{clear:right;float:right;margin-left:25px}div.floatleft,div.tleft,table.floatleft{float:left;clear:left;margin-right:25px}#bodyContent img{height:auto;max-width:100%}.thumbcaption{margin-top:5px;font-style:italic}.mw-content-ltr .thumbcaption{text-align:left}#mw-head,.mw-content-rtl .thumbcaption{text-align:right}.mw-content-ltr .magnify{float:right}.mw-content-rtl .magnify{float:left}.articleFeedback-rating{width:120px!important}.articleFeedback-submit{margin:0!important}.printfooter{padding-top:20px}.profile-info textarea{width:400px}.editors-only{padding:.2em .3em;border:1px solid #a1b1dd;border-radius:.3em;background:#e1e6f4;color:#548faf;font-weight:400;font-size:smaller}.note,.warning{padding:.8em 1em;margin:0 0 1em;border:2px solid;text-shadow:0 1px 1px #fff;font:italic 100%/1.5 Bitter,Cambria,Georgia,serif}.note{border-color:#ffc621;background:#fff5d9;color:#de6525}.warning{border-color:#d02e27;background:#fff;color:#d02e27}.container{width:950px;margin:auto}.right{float:right}#hierarchy-menu,.left{float:left}.clear{clear:both}.profile-info{background:0 0!important}#editform,#toolbar,#wpTextbox1{clear:none}.visualClear{clear:left}.clearfixboth,.languages{clear:both}#p-search{display:inline-block}@media print{#p-personal,#p-search{display:none}}#search input:not([type]),#search input[type=text],#search input[type=search]{padding:3px 20px 3px 5px;background:#fff;border:1px solid #333;box-shadow:1px 1px 1px #5b5b5d;color:#000;font-size:14px;font-family:Gudea,Arial,sans-serif;line-height:11px;-webkit-appearance:none;width:11em}#search input::-webkit-input-placeholder{line-height:1.3em}#search>input[type=submit]{position:absolute;top:7px;right:7px;width:14px;height:14px;border:none;cursor:pointer;font-family:Gudea,Arial,sans-serif;background:url(http://docs.webplatform.org/w/skins/webplatform/images/btn-search.svg);background-repeat:no-repeat}input:focus{outline:0}#mw-head{padding:3px 0;height:30px;color:#fff;background:#4e4e50;background-image:-webkit-linear-gradient(bottom,#454547 40%,#4e4f50 70%);background-image:-o-linear-gradient(bottom,#454547 40%,#4e4f50 70%);background-image:-moz-linear-gradient(bottom,#454547 40%,#4e4f50 70%);background-image:linear-gradient(bottom,#454547 40%,#4e4f50 70%);border-bottom:2px solid #606062;box-shadow:0 1px 5px rgba(0,0,0,.75)}#mw-head .container{padding-right:18px;max-width:932px}#mw-head a{color:#fff}#p-personal{vertical-align:middle;text-transform:uppercase;z-index:100}#p-personal a{text-shadow:0 -1px 2px #000}#p-personal>a{display:block;border-color:transparent;background:0 0;line-height:1;border-radius:.3em .3em 0 0}#p-personal.focus>a,#p-personal:hover>a,#p-personal>a:focus{background:#333;border-color:#000 #000 transparent}#p-personal>a:before{content:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-head.svg);margin-right:.3em}#p-personal>a:after{content:"\25BE";padding-left:.5em}#p-personal>ul{text-align:left;font-size:90%;background:#333;background:linear-gradient(#333,rgba(0,0,0,.8));border-color:#000;box-shadow:1px 4px 15px rgba(0,0,0,.5);color:inherit;text-shadow:inherit}#p-personal>ul>li+li{border-top-color:#555;border-top-color:hsla(0,0%,100%,.1)}#p-personal>ul>li:not(:last-child){border-bottom-color:#000}#p-personal>ul a:focus,#p-personal>ul a:hover{background:#2EB3C4;box-shadow:0 0 0 2px #2EB3C4}#p-logo{position:absolute;top:-5px}#p-logo a{display:block;width:100px;height:100px;border-radius:0 0 7px 7px;border:1px solid #fff;border-top:none;box-shadow:1px 1px 1px #cbc6ba}#sitenav{background-color:#ece5d7;background-position:bottom;background-repeat:repeat-x;padding:30px 0 35px}@media print{#sitenav{display:none}}.mediawiki ul li{margin-bottom:10px;list-style-image:url(http://docs.webplatform.org/w/skins/webplatform/images/bullet.svg)}ul.links{margin:0;padding:0;list-style:none}#sitenav .links{padding-left:150px;text-transform:uppercase}.mw-content-ltr ol,.mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ul{margin:.3em 0 0 1.6em;padding:0}.links>li{display:inline-block;margin:0!important}#preftoc{margin:0 0 0 10px;padding:0;list-style:none}#preftoc li{display:inline-block;margin-right:5px;padding:5px;border-radius:2px 2px 0 0;border:1px solid #EFECE2;border-bottom:none;background:#EFECE2}#preftoc li.selected{background:#fff}#sitenav a{padding-right:20px;font-family:Bitter;font-weight:700;font-size:16px;-webkit-transition:all .2s;transition:all .2s;color:#58595b;text-shadow:1px 1px 1px #dad5c8}#sitenav a:hover{color:#2dafbc;text-shadow:1px 1px 1px #fff}.page-WPD_Editors_Guide #sitenav a[href$="WPD:Editors_Guide"],body:not(.page-WPD_Editors_Guide) #sitenav a.active{color:#d37e00;text-shadow:1px 1px 1px #fff}#page-top{background:#efece2;border-radius:5px 5px 0 0}#p-namespaces a,#p-namespaces a:visited{display:block;padding:15px;font-size:12px;color:#256a84;border-radius:5px 5px 0 0}#p-namespaces .selected a{background:#f9f7f3;color:#58595b}#page-top>.right{padding:9px}ol.breadcrumbs{margin:0 0 0 -1.1em;padding:0;height:1em;text-transform:uppercase;float:left}ol.breadcrumbs:only-child{float:none}ol.breadcrumbs li{list-style:none}ol.breadcrumbs>li{float:left;position:relative;margin:0}ol.breadcrumbs>li:first-child{margin-left:1em;border-left:solid 2px #ded8c9}ol.breadcrumbs>li:not(:last-child)>a::before,ol.breadcrumbs>li>a{border:1px solid #ded8c9;border-width:1px 0;background-color:#F0EBDD}ol.breadcrumbs>li>a{padding:.6em 1.5em .6em .4em;margin-left:-1px;box-shadow:0 1px hsla(0,0%,100%,.5) inset,0 -1px hsla(0,0%,100%,.8) inset}ol.breadcrumbs>li:last-child>a,ol.breadcrumbs>li:not(:last-child)>a::before{border-radius:0 1.2em 1.2em 0;box-shadow:0 1px hsla(0,0%,100%,.5) inset,0 -1px hsla(0,0%,100%,.8) inset,-1px 0 hsla(0,0%,100%,.8) inset}ol.breadcrumbs>li:not(:last-child)>a::before{content:'';position:absolute;right:2px;top:0;bottom:0;z-index:3;padding:1em .6em;border:inherit;border-right-width:1px}ol.breadcrumbs>li:last-child>a,ol.breadcrumbs>li:last-child>ul{background-color:#f9f7f3}ol.breadcrumbs>li:last-child>a{border-right-width:1px;box-shadow:0 1px hsla(0,0%,100%,.5) inset,0 -1px hsla(0,0%,100%,.8) inset,-1px 0 #fff inset}ol.breadcrumbs>li.focus:not(:nth-last-child(2))>a:not(:last-child),ol.breadcrumbs>li:hover:not(:nth-last-child(2))>a:not(:last-child){background-image:none}ol.breadcrumbs>li:nth-last-child(2)>a{background-image:-webkit-linear-gradient(right,#f9f7f3 100%,transparent);background-image:linear-gradient(to left,#f9f7f3 100%,transparent);background-repeat:no-repeat;background-size:1em 100%;background-position:right}ol.breadcrumbs>li:first-child>a{box-shadow:0 1px #f7f1e0 inset,0 -1px #f7f1e0 inset,1px 0 #f7f1e0 inset;padding-left:1em}ol.breadcrumbs>li.focus>a:not(:last-child),ol.breadcrumbs>li.focus>a:not(:last-child):before,ol.breadcrumbs>li:hover>a:not(:last-child),ol.breadcrumbs>li:hover>a:not(:last-child):before{border-bottom-right-radius:0;border-bottom-color:transparent}ol.breadcrumbs>li:not(:last-child).focus>a:not(:last-child),ol.breadcrumbs>li:not(:last-child):hover>a:not(:last-child){box-shadow:0 1px hsla(0,0%,100%,.5) inset}ol.breadcrumbs>li:not(:last-child).focus>a:not(:last-child):before,ol.breadcrumbs>li:not(:last-child):hover>a:not(:last-child):before{box-shadow:0 1px hsla(0,0%,100%,.5) inset,-1px 0 hsla(0,0%,100%,.8) inset}ol.breadcrumbs>li:last-child.focus>a:not(:last-child),ol.breadcrumbs>li:last-child:hover>a:not(:last-child){box-shadow:0 1px hsla(0,0%,100%,.5) inset,-1px 0 #fff inset}ol.breadcrumbs>li.focus>a:not(:last-child):after,ol.breadcrumbs>li:hover>a:not(:last-child):after{content:'';position:absolute;left:-.8em;bottom:-1px;width:1.2em;height:2px;background-color:inherit}ol.breadcrumbs li a{display:block}ol.breadcrumbs>li>ul{margin:-1px 0 0 -1.2em;border-color:#ded8c9}ol.breadcrumbs>li.focus>ul,ol.breadcrumbs>li:hover>ul{z-index:-1}ol.breadcrumbs .dropdown>ul{overflow-y:auto}.tool-area{padding:10px 0}@media print{.tool-area{display:none}}.tool-area a{color:#74663e;font-size:85%}.tool-area:after{content:'';display:block;clear:both}.dropdown,.toolbar .button{position:relative;display:inline-block}.toolbar{float:right}.toolbar .button{min-width:7em;box-shadow:0 2px 2px -1px rgba(0,0,0,.1);text-align:center;text-transform:uppercase;background-image:-webkit-linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));background-image:-moz-linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));background-image:-o-linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0));background-image:linear-gradient(hsla(0,0%,100%,.5),hsla(0,0%,100%,0))}.toolbar .button:focus,.toolbar .button:hover{color:#000}.toolbar .button:active{box-shadow:0 0 0 999px rgba(0,0,0,.03) inset,1px 1px 5px rgba(0,0,0,.3) inset;padding-top:.7em;padding-bottom:.5em}.dropdown>a,.dropdown>ul,.toolbar .button{border:1px solid #cfc6b0;color:#74663e;text-shadow:0 1px 1px #fff}.dropdown>a,.toolbar .button{padding:.6em .8em}.dropdown>a img,.dropdown>ul>li img,.toolbar .button img{vertical-align:-.3em;margin-right:.3em}.dropdown>ul,.toolbar .button{background-color:#F0EBDD;background-repeat:no-repeat;border-radius:.5em}.toolbar>div{float:right;margin-left:.3em}.dropdown{margin-left:.3em;z-index:1}.dropdown.focus,.dropdown:hover{z-index:101}.dropdown>a.button{min-width:4.4em;padding-right:2.7em}.dropdown>a{position:relative;z-index:2}.toolbar .dropdown>a:after{content:'▾';position:absolute;right:0;top:.6em;bottom:.6em;padding:.4em 1em .4em .8em;box-shadow:1px 0 0 rgba(0,0,0,.2) inset,2px 0 0 #fff inset;font:80%/1.05 serif}.dropdown>a,.dropdown>ul{background-color:#F0EBDD}.dropdown>ul{position:absolute;z-index:1;min-width:0;max-width:0;max-height:0;padding:0;margin:-1px 0 0;border-width:0;border-radius:0 .5em .5em;overflow:hidden;box-shadow:0 2px 2px -1px rgba(0,0,0,.1);list-style:none;text-transform:uppercase;-webkit-transition:.2s;-moz-transition:.2s;-o-transition:.2s;transition:.2s}.dropdown>ul>li{margin:0;list-style:none;border-width:1px 0;border-style:solid;border-color:hsla(0,0%,100%,.5) transparent rgba(0,0,0,.1)}.dropdown>ul>li:first-child{border-top:0}.dropdown>ul>li:last-child{border-bottom:0}.dropdown li>a{display:block;padding:.5em;overflow:hidden;text-overflow:ellipsis;-webkit-transition:0s;-moz-transition:0s;-o-transition:0s;transition:0s}.dropdown ul>li>a:focus,.dropdown ul>li>a:hover{position:relative;background:#4e408a;color:#fff;text-shadow:0 -1px 2px #000;border-radius:.2em;box-shadow:0 0 0 2px #4e408a}#sidebar a,#sidebar ul{text-shadow:1px 1px 1px #cffcff}.dropdown.focus>ul,.dropdown:hover>ul,.dropdown>a:focus+ul{min-width:100%;max-width:25em;max-height:30em;padding:.6em;border-width:1px}.dropdown.focus>a.button,.dropdown:hover>a.button,.dropdown>a.button:focus{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown.focus>a.button:not(:active),.dropdown:hover>a.button:not(:active){box-shadow:none}.highlighted.button,.highlighted.button+ul{background-color:#B4E1E4;border-color:#79ccd2}.highlighted.button,.highlighted.button+ul a{color:#144d51}.button.tools:before,.button.watch:before,.edit.button:before{margin-right:.5em;font:100% WPSymbols,serif;opacity:.6}.dropdown>.highlighted.button:after{box-shadow:1px 0 0 #79ccd2 inset,2px 0 0 hsla(0,0%,100%,.6) inset}.edit.button:before{content:"\270e"}.watch.button:before{content:"\1f440"}.tools.button:before{content:"\2699"}.down-arrow{position:absolute;top:50%;right:10px;margin-top:-2px;width:5px;height:5px;background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/arrow-down.svg);background-repeat:no-repeat;background-position:right center}#page{background:#f9f7f3;border-radius:5px;box-shadow:0 0 1px #a7a9ac;margin-bottom:20px}#page-content{position:relative;z-index:0;padding:18px}body:not(.mediawiki) #sidebar+#main-content{padding-right:230px}#main-content{line-height:1.5}#sidebar{position:absolute;left:100%;top:0;padding:14px;margin:0 0 0 10px;width:182px;background-color:#B4E1E4;box-shadow:inset 0 0 5px #81c7e1;border-radius:6px;-webkit-transition:.5s top;-moz-transition:.5s top;-o-transition:.5s top;transition:.5s top}#sidebar a{font-family:Bitter;font-weight:700;color:#226077;-webkit-transition:color .2s}.comment-count,.languages a,span.editsection a{text-decoration:none!important}#sidebar a:hover{color:#2dafbc}#sidebar ul{margin:0;color:#256a84;font-size:13px}#sidebar hr{border-top:1px solid #7bccd1;border-bottom:1px solid #bcebee;border-left:none;margin:20px 0}#sidebar-title{border-bottom:2px solid #7BCCD1;font-family:Gudea,Arial,sans-serif;font-size:14px;font-weight:400;margin-top:14px;margin-bottom:0;padding:6px 0;text-align:center;text-transform:uppercase}#sidebar:before{content:"•";display:block;position:absolute;top:-11px;left:50%;width:22px;height:22px;border-radius:50%;margin-left:-11px;background:url(http://docs.webplatform.org/w/skins/webplatform/images/bg-pattern.png) #B4E1E4;box-shadow:0 3px 7px -3px #81c7e1;color:#7BCCD1;text-align:center;font-size:32px;line-height:25px;font-family:Arial,sans-serif}html.with-doc #main-content{padding-right:0}@media screen and (max-width:1400px){html.with-toc #main-content{padding-right:220px}#sidebar{left:auto;right:18px;margin-top:18px;border-radius:0}#sidebar:before{background:#f9f7f3}}@media screen and (max-width:700px){html.with-toc #main-content{padding-right:0}#sidebar{position:relative;width:100%;-moz-box-sizing:border-box;box-sizing:border-box;margin-top:0}}@media screen and (max-width:700px) and (min-width:500px){#sidebar>ol{-moz-column-count:2;-webkit-column-count:2;column-count:2}}@media print{#sidebar{display:none}}.custom-toc>ol{margin:0;padding-left:0}.custom-toc>ol ol{padding-left:1.2em;font-size:95%}.custom-toc>ol>li{padding:.6em 0;margin-bottom:0;list-style:none;border-top:1px solid hsla(0,0%,100%,.5);border-bottom:1px solid #7accd0;color:#256a83}.custom-toc>ol>li:first-child{border-top:0}.custom-toc>ol>li:last-child{border-bottom:0}.custom-toc>ol>li li{list-style:disc;margin-bottom:0;padding:.3em 0}.custom-toc>ol>li li:last-child{padding-bottom:.2em}.mw-prefs-buttons{padding-top:20px}#pt-login a,#pt-userpage a{padding-left:20px;background-position:left center;background-repeat:no-repeat;background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-head.svg)}#ca-protect .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-protect.svg)}#ca-delete .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-delete.svg)}#ca-move .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-move.svg)}#ca-edit .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-edit.svg)}#ca-view .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-view.svg)}#ca-history .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-history.svg)}#ca-watch .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-watch.svg)}#ca-unwatch .icon{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-unwatch.svg)}#ca-unwatch>span#watch_label,#ca-watch>span#watch_label{background-color:#F9F7F3;border-radius:5px;box-shadow:0 0 1px #A7A9AC;display:none;margin-left:-.5em;margin-top:-2em;padding:.25em;position:absolute}#ca-unwatch:hover>span#watch_label,#ca-watch:hover>span#watch_label{display:block}span.editsection a{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/icon-edit.svg);display:inline-block;width:17px;height:22px}.standardization_status{position:relative;float:right;width:13px;height:13px;padding:15px;background:url(http://docs.webplatform.org/w/skins/webplatform/images/standardization-status.svg) #eae3d5;background-size:100% 700%;margin:13px 0 15px 10px;border-radius:50%;font-size:0;color:transparent;box-shadow:0 -1px 2px 1px hsla(40,34%,30%,.2) inset,0 1px #fff,0 0 0 10px #f9f7f3}.standardization_status[title="W3C Working Draft"]{background-position:0 -100%}.standardization_status[title="W3C Last Call Working Draft"]{background-position:0 -200%}.standardization_status[title="W3C Candidate Recommendation"]{background-position:0 -300%}.standardization_status[title="W3C Proposed Recommendation"]{background-position:0 -400%}.standardization_status[title="W3C Recommendation"]{background-image:none;box-shadow:0 -1px 2px 1px hsla(40,34%,30%,.2) inset,0 0 0 7px #005A9C inset,0 1px #fff,0 0 0 10px #f9f7f3}.standardization_status[title=Mixed]{background-position:0 -500%}.standardization_status[title=Deprecated]{background-position:0 -600%}.standardization_status[title=Non-Standard]{background-image:none;box-shadow:0 -1px 2px 1px hsla(40,34%,30%,.2) inset,0 0 0 7px #e00 inset,0 1px #fff,0 0 0 10px #f9f7f3}.standardization_status[title="De Facto Standard"]{background-image:none;box-shadow:0 -1px 2px 1px hsla(40,34%,30%,.2) inset,0 0 0 7px #1f9374 inset,0 1px #fff,0 0 0 10px #f9f7f3}.standardization_status:before{content:url(http://docs.webplatform.org/w/skins/webplatform/images/w3c-small.svg);position:absolute;top:13px;left:10px;text-align:center;width:24px}@media screen{.standardization_status[title^="W3C Last Call Working Draft"]:after,.standardization_status[title^="W3C Recommendation"]:after{content:'';position:absolute;left:50%;width:7px;height:7px;margin-left:-6.5px;background:#fff;border:3px solid #005A9C;border-radius:50%}.standardization_status[title^="W3C Last Call Working Draft"]:after{bottom:-3px}.standardization_status[title^="W3C Recommendation"]:after{top:-3px}.standardization_status[title^=Non-Standard]:after,.standardization_status[title^="De Facto Standard"]:after,.standardization_status[title^=Experimental]:after{content:'';position:absolute;top:50%;right:8px;left:8px;border-top:4px hsla(0,100%,40%,.8) solid;margin-top:-3px}}@media print{.standardization_status:after{content:attr(title);text-transform:uppercase}}#flags{position:relative;margin-top:20px;left:-18px;width:100%;padding:0 7px 5px;background:#ffdedb}#flags li,#flags ul,#flags:empty{margin:0;padding:0}#flags:not(:empty):before{content:'';position:absolute;left:-.55em;top:1.3em;width:0;height:0;border:.5em solid transparent;border-left-width:0;border-right-color:#7a271e}#flags *{display:inline}#flags>div>p,p>br:only-child{display:none}#flags a{display:inline-block;padding:0 1.5em;margin:.4em 0;background:no-repeat #e2887a;background-image:-webkit-linear-gradient(210deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-webkit-linear-gradient(30deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-webkit-linear-gradient(330deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-webkit-linear-gradient(150deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em);background-image:-moz-linear-gradient(210deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-moz-linear-gradient(30deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-moz-linear-gradient(330deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-moz-linear-gradient(150deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em);background-image:-o-linear-gradient(210deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-o-linear-gradient(30deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-o-linear-gradient(330deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),-o-linear-gradient(150deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em);background-image:linear-gradient(240deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),linear-gradient(60deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),linear-gradient(120deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em),linear-gradient(300deg,#FFDEDB .5em,hsla(5,100%,93%,0) .6em);background-position:top right,top left,bottom left,bottom right;background-size:1.2em 53%;color:#fff;text-shadow:0 -.1em .1em rgba(0,0,0,.3);font:700 90%/1.5 Bitter,Cambria,Georgia,serif}#flag-label,.prefix{color:#fff;font-size:12px}#flags a:hover{background-color:#973a2c}#flag-label{display:block;position:relative;left:-15px;top:-5px;width:101%;padding:.3em 1em;margin:0;font-weight:700;font-family:Bitter;background-color:#ce4a3a}.wikiEditor-ui{clear:left!important}.prefix{display:inline-block;padding:2px 4px;text-align:center;font-family:Gudea,Arial,sans-serif;font-weight:400;text-shadow:0 1px #000;border:1px solid;box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:3px}.prefix.webkit{border-color:#fff;background:#46b7e4;background:-moz-linear-gradient(rgba(70,183,228,1) 0,rgba(74,125,186,1) 100%);background:-webkit-linear-gradient(rgba(70,183,228,1) 0,rgba(74,125,186,1) 100%);background:-o-linear-gradient(rgba(70,183,228,1) 0,rgba(74,125,186,1) 100%);background:linear-gradient(rgba(70,183,228,1) 0,rgba(74,125,186,1) 100%)}.prefix.moz{border-color:#fff;background:#e1780b;background:-moz-linear-gradient(rgba(225,120,11,1) 0,rgba(212,82,13,1) 100%);background:-webkit-linear-gradient(rgba(225,120,11,1) 0,rgba(212,82,13,1) 100%);background:-o-linear-gradient(rgba(225,120,11,1) 0,rgba(212,82,13,1) 100%);background:linear-gradient(rgba(225,120,11,1) 0,rgba(212,82,13,1) 100%)}.prefix.ms{border-color:#f9ec71;background:#82cee7;background:-moz-linear-gradient(rgba(130,206,231,1) 0,rgba(47,147,212,1) 100%);background:-webkit-linear-gradient(rgba(130,206,231,1) 0,rgba(47,147,212,1) 100%);background:-o-linear-gradient(rgba(130,206,231,1) 0,rgba(47,147,212,1) 100%);background:linear-gradient(rgba(130,206,231,1) 0,rgba(47,147,212,1) 100%)}.prefix.o{border-color:#fff;background:#ea393a;background:-moz-linear-gradient(rgba(234,57,58,1) 0,rgba(155,10,10,1) 100%);background:-webkit-linear-gradient(rgba(234,57,58,1) 0,rgba(155,10,10,1) 100%);background:-o-linear-gradient(rgba(234,57,58,1) 0,rgba(155,10,10,1) 100%);background:linear-gradient(rgba(234,57,58,1) 0,rgba(155,10,10,1) 100%)}.language{position:absolute;top:1px;right:1px;color:#6d685b;font-family:Bitter;font-weight:700;text-shadow:0 1px 0 #fff;padding:5px 15px;background:#d6c8b4;background:-moz-linear-gradient(rgba(214,200,180,1) 0,rgba(200,185,156,1) 100%);background:-webkit-linear-gradient(rgba(214,200,180,1) 0,rgba(200,185,156,1) 100%);background:-o-linear-gradient(rgba(214,200,180,1) 0,rgba(200,185,156,1) 100%);background:linear-gradient(rgba(214,200,180,1) 0,rgba(200,185,156,1) 100%)}.css-property{border-bottom:1px solid #E2E3E4}table,table.wikitable{max-width:100%}td,th{border:0}.action-view table:not([class]),.compat-table,.wikitable{position:relative;border-collapse:separate;border-spacing:0;box-shadow:0 -1px 0 #eae8e5;border-radius:6px 6px 0 0;border:1px solid #ddd3c2;font-family:Bitter;table-layout:fixed}.action-view table:not([class]) tr,.compat-table tr,.wikitable tr{background:#e1dccf}.action-view table:not([class]) tr:nth-child(even),.compat-table tr:nth-child(even),.wikitable tr:nth-child(even){background:#fbf7ef}.action-view table:not([class]) tbody:first-child tr:first-child th:first-child,.action-view table:not([class]) thead th:first-child,.compat-table tbody:first-child tr:first-child th:first-child,.compat-table thead th:first-child,.wikitable tbody:first-child tr:first-child th:first-child,.wikitable thead th:first-child{border-top-left-radius:5px;border-left:none}.action-view table:not([class]) tr:first-child td:last-child,.action-view table:not([class]) tr:first-child th:last-child,.compat-table tr:first-child td:last-child,.compat-table tr:first-child th:last-child,.wikitable tr:first-child td:last-child,.wikitable tr:first-child th:last-child{border-top-right-radius:5px;border-right:none}.action-view table:not([class]) tr td:last-child,.compat-table tr td:last-child,.wikitable tr td:last-child{border-right:none}.action-view table:not([class]) tr:nth-child(n+2) td,.compat-table tr:nth-child(n+2) td,.wikitable tr:nth-child(n+2) td{border-bottom:none}.action-view table:not([class]) tbody th:first-child,.action-view table:not([class]) td:first-child,.compat-table tbody th:first-child,.compat-table td:first-child,.wikitable tbody th:first-child,.wikitable td:first-child{border-top:1px solid #fff;border-left:none;color:#fff;background:#6c6657;font-weight:400}.action-view table:not([class]) tbody th:first-child a:hover,.action-view table:not([class]) td:first-child a:hover,.compat-table tbody th:first-child a:hover,.compat-table td:first-child a:hover,.wikitable tbody th:first-child a:hover,.wikitable td:first-child a:hover{color:#F89C20}#mw-footer a,.action-view table:not([class]) a,.compat-table a,.wikitable a{color:inherit}.action-view table:not([class]) tbody:first-child>tr:first-child>th:not(:only-of-type),.action-view table:not([class]) thead th,.compat-table tbody:first-child>tr:first-child>th:not(:only-of-type),.compat-table thead th,.wikitable tbody:first-child>tr:first-child>th:not(:only-of-type),.wikitable thead th{font-weight:400;padding:10px;border:1px solid #fff;border-bottom-color:#b8af98;border-left:none;background:#e1d9c6;background:-moz-linear-gradient(#e6e2d8,#e1d9c6);background:-webkit-linear-gradient(#e6e2d8,#e1d9c6);background:-o-linear-gradient(#e6e2d8,#e1d9c6);background:linear-gradient(#e6e2d8,#e1d9c6);color:inherit}.action-view table:not([class]) tbody:first-child>tr:first-child>th:not(:only-of-type):last-child,.action-view table:not([class]) thead th:last-child,.compat-table tbody:first-child>tr:first-child>th:not(:only-of-type):last-child,.compat-table thead th:last-child,.wikitable tbody:first-child>tr:first-child>th:not(:only-of-type):last-child,.wikitable thead th:last-child{border-right:none}.action-view table:not([class]) td,.compat-table td,.wikitable td{padding:5px 15px;border:1px solid #fff;border-left:none}.action-view table:not([class]) th,.compat-table th,.wikitable th{padding:10px 15px;font-family:Bitter;text-align:left}.compat-table td{font-weight:700}#mw-footer{padding:40px 0;border-top:1px solid #f1eddf;background-color:#efeadd}#footer-wordmark>a.license{display:block;margin-bottom:1em}#footer-wordmark>a.license>img{width:120px;height:42px;opacity:.4}#footer-title{display:block;font:700 24px Bitter,serif}#footer-title-light{color:#9f9c97}footer ul.stewards{padding:0;margin:0}footer ul.stewards>li{display:inline;list-style:none}footer ul.stewards>li>a{display:inline-block;vertical-align:middle;width:124px;height:60px;background:url(http://docs.webplatform.org/w/skins/webplatform/images/footer-images.png) no-repeat;text-indent:200px;overflow:hidden;color:gray;color:rgba(0,0,0,.4);text-align:center;font:700 140%/2.5 Bitter,Cambria,Georgia,serif}footer ul.stewards>li.steward-adobe>a{background-position:-124px 0}footer ul.stewards>li.steward-intel>a{background-position:-248px 0}footer ul.stewards>li.steward-facebook>a{background-position:-372px 0}footer ul.stewards>li.steward-google>a{background-position:-496px 0}footer ul.stewards>li.steward-hp>a{background-position:0 -60px}footer ul.stewards>li.steward-microsoft>a{background-position:-124px -60px}footer ul.stewards>li.steward-nokia>a{background-position:-248px -60px}footer ul.stewards>li.steward-mozilla>a{background-position:-372px -60px}footer ul.stewards>li.steward-opera>a{background-position:-496px -60px}@media (min-width:880px){#footer-wordmark,footer ul.stewards{display:table-cell;vertical-align:top}footer ul.stewards{max-width:650px;padding-left:100px}}@media (max-width:880px){footer ul.stewards{margin-top:1em}}.comment-count{position:relative;float:right;height:1.5em;padding:.15em .4em 0;margin-top:-4em;border-radius:.3em;background:#30B4C5;color:#fff;text-shadow:0 -.1em .1em rgba(0,0,0,.3);text-align:center;font:700 120%/1.5 Bitter,Cambria,Georgia,serif}.comment-count>span{display:inline-block;max-width:0;overflow:hidden;margin-left:-.3em;vertical-align:top;-webkit-transition:.4s max-width,.05s .4s margin-left;-moz-transition:.4s max-width,.05s .4s margin-left;-o-transition:.4s max-width,.05s .4s margin-left;transition:.4s max-width,.05s .4s margin-left}.comment-count:hover>span{max-width:15em;margin-left:0;-webkit-transition:.05s margin-left,.4s .05s max-width;-moz-transition:.05s margin-left,.4s .05s max-width;-o-transition:.05s margin-left,.4s .05s max-width;transition:.05s margin-left,.4s .05s max-width}.comment-count:after{content:'';position:absolute;bottom:-.3em;left:50%;width:0;height:0;margin-left:-.15em;border:.3em solid transparent;border-left-color:#30B4C5;border-right:0}.comment-count:hover{background:#4e408a;color:#fff!important}.comment-count:hover:after{border-left-color:#4e408a}#primary .comment-count:after{border-top:0}#mw-content-text .comment-count{position:absolute;right:100%;margin:.1em -6px 0 0;border:1px solid transparent;box-shadow:0 1px hsla(0,0%,100%,.5) inset,0 .2em .3em -.2em rgba(0,0,0,.5);font-size:70%}#mw-content-text .comment-count:after{top:50%;bottom:auto;left:100%;margin-top:-.3em;margin-left:0}.comment-count.comments-hidden:before{content:'+';line-height:.9;font-size:140%}#mw-content-text .comment-count:not(:hover){background:#d1bc93}#mw-content-text .comment-count:not(:hover):after{border-left-color:#d1bc93}code[class*=language-]{color:#000;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;font-weight:400;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f3efe6}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e7d4c}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.number,.token.property,.token.tag{color:#248a97}.token.attr-name,.token.selector,.token.string{color:#694D9F}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#c57506}.token.important,.token.regex{color:#e90}.token.important{color:#E54E27;font-weight:700}.token.entity{cursor:help}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:-moz-linear-gradient(left,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));background:-webkit-linear-gradient(left,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));background:-o-linear-gradient(left,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));background:linear-gradient(left,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:700 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.topics-nav{position:relative;margin:3em -26px 0;box-shadow:0 5px 12px -5px hsla(43,24%,20%,.8)}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}.topics-nav{display:none}}.topics-nav>ul{display:table;width:100%;padding:0;margin:0}.topics-nav>ul>li{display:table-cell;width:12.5%;margin:0;list-style:none;text-align:center}.topics-nav>ul>li>a{display:block;padding:.9em .5em .5em;border:1px solid transparent;border-left-color:hsla(0,0%,100%,.6);border-right-color:hsla(0,0%,0%,.15);border-bottom-color:#bbaf90;box-shadow:0 1px hsla(0,0%,100%,.4) inset,0 .5em #c4baa0 inset;background:#DED8C9;color:#756c56;text-shadow:0 .1em .05em #fff;font:120% Bitter,serif;-webkit-transition-property:background,box-shadow;-moz-transition-property:background,box-shadow;-o-transition-property:background,box-shadow;transition-property:background,box-shadow}.topics-nav>ul>li:first-child>a:before,.topics-nav>ul>li:last-child>a:before{content:'';position:absolute;width:0;height:0;top:-8px;border:8px solid transparent;border-bottom:0}.topics-nav>ul>li:first-child>a:before{left:0;border-right-color:#9e8c60;border-left:0}.topics-nav>ul>li:last-child>a:before{right:0;border-left-color:#9e8c60;border-right:0}.topics-nav>ul>li:first-child>a:focus:before,.topics-nav>ul>li:first-child>a:hover:before{border-right-color:#1d717c}.topics-nav>ul>li:last-child>a{border-right-color:hsla(0,0%,0%,.1)}.topics-nav>ul>li>a:focus,.topics-nav>ul>li>a:hover{border-bottom-color:rgba(0,0,0,.2);background:#30B4C5;box-shadow:0 1px hsla(0,0%,100%,.4) inset,0 .5em hsla(0,0%,0%,.1) inset;color:#fff;text-shadow:0 -.1em .1em rgba(0,0,0,.5)}.topics-nav>ul>li>a:focus:before,.topics-nav>ul>li>a:hover:before{border-left-color:#1d717c}.topics-nav>ul>li:nth-child(5n)>a:focus,.topics-nav>ul>li:nth-child(5n)>a:hover{background:#694D9F}.topics-nav>ul>li:nth-child(5n)>a:focus:before,.topics-nav>ul>li:nth-child(5n)>a:hover:before{border-left-color:#433167}.topics-nav>ul>li:nth-child(5n+2)>a:focus,.topics-nav>ul>li:nth-child(5n+2)>a:hover{background:#E54E27}.topics-nav>ul>li:nth-child(5n+2)>a:focus:before,.topics-nav>ul>li:nth-child(5n+2)>a:hover:before{border-left-color:#892810}.topics-nav>ul>li:nth-child(5n+3)>a:focus,.topics-nav>ul>li:nth-child(5n+3)>a:hover{background:#D02E27}.topics-nav>ul>li:nth-child(5n+3)>a:focus:before,.topics-nav>ul>li:nth-child(5n+3)>a:hover:before{border-left-color:#811b17}.topics-nav>ul>li:nth-child(5n+4)>a:focus,.topics-nav>ul>li:nth-child(5n+4)>a:hover{background:#F99D1C}.topics-nav>ul>li:nth-child(5n+4)>a:focus:before,.topics-nav>ul>li:nth-child(5n+4)>a:hover:before{border-left-color:#ad6705}@media (max-width:660px){.topics-nav>ul{display:block}.topics-nav>ul>li{display:block;width:auto}}dl.compat-list{position:relative;margin:0;font-size:16px;font-size:1rem;line-height:1}:not(dd)>dl.compat-list{float:right;margin-top:-8px}@-webkit-keyframes show{from{-webkit-transform:scale(0);opacity:0}}@-moz-keyframes show{from{-moz-transform:scale(0);opacity:0}}@-o-keyframes show{from{-o-transform:scale(0);opacity:0}}@keyframes show{from{transform:scale(0);opacity:0}}dl.compat-list dd>dl.compat-list{display:none;position:absolute;z-index:2;background:#fff;width:98px;padding:10px 7px 10px 15px;border-radius:10px;margin:-35px 0 0 15px;box-shadow:2px 2px 5px rgba(0,0,0,.2);-webkit-transform-origin:0 1em;-moz-transform-origin:0 1em;-o-transform-origin:0 1em;transform-origin:0 1em}dl.compat-list dd:focus>dl.compat-list,dl.compat-list dd:hover>dl.compat-list,dl.compat-list dt:focus+dd>dl.compat-list,dl.compat-list dt:hover+dd>dl.compat-list,dl.compat-list>dt:hover>span{display:block;-webkit-animation:show .3s cubic-bezier(.2,1.2,.7,1.2);-moz-animation:show .3s cubic-bezier(.2,1.2,.7,1.2);-o-animation:show .3s cubic-bezier(.2,1.2,.7,1.2);animation:show .3s cubic-bezier(.2,1.2,.7,1.2)}dl.compat-list dd>dl.compat-list:before,dl.compat-list dt+dd>dl.compat-list:before{content:'';position:absolute;left:-10px;top:20px;width:0;height:0;border:10px solid transparent;border-right-color:#fff;border-left:0}dl.compat-list dt{position:relative;display:inline-block;width:36px;height:36px;background:url(http://docs.webplatform.org/w/skins/webplatform/images/cloud.svg) center no-repeat;margin:0}dl.compat-list>dt>span{display:none;position:absolute;top:35px;left:0;z-index:3;padding:.3em .5em;border-radius:.3em;margin-left:.2em;background:#694D9F;box-shadow:1px 1px 5px rgba(0,0,0,.3);color:#fff;white-space:pre;font-weight:700;line-height:1.3;pointer-events:none;-webkit-transform-origin:.5em 0;-moz-transform-origin:.5em 0;-o-transform-origin:.5em 0;transform-origin:.5em 0}dl.compat-list>dt>span:before{content:'';position:absolute;top:-.3em;left:.4em;width:0;height:0;border:.5em solid transparent;border-bottom-color:#694D9F;border-top:0}dl.compat-list>dt>span:after{font-weight:400;font-size:smaller}dl.compat-list>dt.Supported>span:after{content:'\ASupported'}dl.compat-list>dt.Unsupported>span:after{content:'\AUnsupported'}dl.compat-list>dt.Partial>span:after{content:'\APartial support'}dl.compat-list>dt.Unknown>span:after{content:'\AUnknown'}dl.compat-list dt:before{content:'';position:absolute;top:0;right:0;bottom:0;left:0;background:center no-repeat}dl.compat-list dt.and_chr:before,dl.compat-list dt.chrome:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/chrome.png)}dl.compat-list dt.and_ff:before,dl.compat-list dt.firefox:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/firefox.png)}dl.compat-list dt.ie:before,dl.compat-list dt.ie_mob:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/ie.png);background-position:40% 50%}dl.compat-list dt.op_mini:before,dl.compat-list dt.op_mob:before,dl.compat-list dt.opera:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/opera.png)}dl.compat-list dt.ios_saf:before,dl.compat-list dt.safari:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/safari.png)}dl.compat-list dt.mobiles:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/mobile.png)}dl.compat-list dt.android:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/android.png)}dl.compat-list dt.bb:before{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/browsers/blackberry.png)}dl.compat-list dd{display:inline-block;position:relative;top:-16px;width:13px;height:13px;padding:0;margin:0 0 0 -11px;border-radius:50%;box-shadow:1px 1px 3px rgba(0,0,0,.3),0 1px 1px #fff inset;background:url(http://docs.webplatform.org/w/skins/webplatform/images/questionmark.svg) center no-repeat #f9f7f3;background-size:8px auto;font-size:0;line-height:0;color:transparent}dl.compat-list dl.compat-list dd{margin-right:10px}dl.compat-list dd.Unsupported{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/x.svg)}dl.compat-list dd.Partial{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/warning.svg)}dl.compat-list dd.Supported{background-image:url(http://docs.webplatform.org/w/skins/webplatform/images/checkmark.svg)}.ui-sortable .multipleTemplateInstance{border-radius:.5em;background:#ece6d9;border-color:#ddd1ba;box-shadow:0 1px #fff inset}.mw-editsection{display:none}.languages{display:inline-block;border-radius:.5em;border-spacing:0;margin:.5em 0;padding:.6em 0;background:#DED8C9;text-shadow:0 1px hsla(0,0%,100%,.6);font-size:90%;line-height:1;color:rgba(0,0,0,.5)}#content,#content p{line-height:1.5}.languages .mbox-image{white-space:nowrap;padding:0 1em;border-right:1px solid rgba(0,0,0,.1)}.languages .mbox-text{padding:.4em 1em;border-left:1px solid hsla(0,0%,100%,.6)}.languages .mbox-text b{color:#000}.topic-container>.long-topic,.topic-container>.short-topic{padding:0 5px}@media (min-width:870px){.topic-container>.long-topic,.topic-container>.short-topic{float:left;width:290px}.topic-container>.long-topic{height:170px}.topic-container>.short-topic{height:100px}.topic-container .image+.inner{float:right;width:240px}.topic-container.editors .inner{min-height:150px}}@media (max-width:870px){.topic-container>.long-topic{margin:10px 0}}.topic-container.editors .inner{border:1px solid #fff;padding:5px 5px 5px 10px;border-radius:.5em;box-shadow:-1px -1px rgba(0,0,0,.1),-1px -1px rgba(0,0,0,.1) inset}.topic-container .inner h3{padding:0;margin:0;border-bottom:none}.topic-container.editors .inner h3 a{color:#d75f1e}.topic-container .image{width:32px;height:32px;float:left;margin:4px 8px 8px 0}.icon-accessibility{background:url(http://docs.webplatform.org/w/images/7/7b/WPD-Accessibility-32px.png)}.icon-beginners{background:url(http://docs.webplatform.org/w/images/8/8a/WPD-Beginners-32px.png)}.icon-concept{background:url(http://docs.webplatform.org/w/images/8/83/WPD-Concepts-32px.png)}.icon-css{background:url(http://docs.webplatform.org/w/images/7/74/WPD-CSS-32px.png)}.icon-dom{background:url(http://docs.webplatform.org/w/images/a/ae/WPD-DOM-32px.png)}.icon-html{background:url(http://docs.webplatform.org/w/images/d/d1/WPD-HTML-B-32px.png)}.icon-html5{background:url(http://docs.webplatform.org/w/images/2/26/WPD-HTML5-32px.png)}.icon-js{background:url(http://docs.webplatform.org/w/images/4/4c/WPD-JS-32px.png)}.icon-svg{background:url(http://docs.webplatform.org/w/images/d/db/WPD-SVG-32px.png)}.icon-api{background:url(http://docs.webplatform.org/w/images/d/d3/WPD-API-32px.png)}@media print{@media print{.tool-area,nav#sitenav,ul.stewards{display:none!important}}}@media screen and (max-width:950px){.container{padding:0 10px;width:auto}}@media screen and (max-width:705px){#page-top>.right{display:none}#main-content{padding-right:0}}@media screen and (max-width:520px){#mw-head,#sitenav .links{padding:0}#p-logo{position:static}#p-logo a{width:auto;margin-bottom:10px}#p-personal,#p-search{display:none}#sitenav{padding-top:80px}nav{padding:10px 0}nav li{display:block!important;padding:10px;margin:5px;text-align:center}nav a{display:block}}@font-face{font-family:WPSymbols;src:url(//www.webplatform.org/assets/fonts/WPSymbols.eot);src:url(//www.webplatform.org/assets/fonts/WPSymbols.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/WPSymbols.svg#WPSymbols) format('svg'),url(//www.webplatform.org/assets/fonts/WPSymbols.woff) format('woff'),url(//www.webplatform.org/assets/fonts/WPSymbols.ttf) format('truetype')}@font-face{font-family:Gudea;font-weight:400;src:url(//www.webplatform.org/assets/fonts/gudea-regular-webfont.eot);src:url(//www.webplatform.org/assets/fonts/gudea-regular-webfont.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/gudea-regular-webfont.woff) format('woff'),url(//www.webplatform.org/assets/fonts/gudea-regular-webfont.ttf) format('truetype'),url(//www.webplatform.org/assets/fonts/gudea-regular-webfont.svg#GudeaRegular) format('svg')}@font-face{font-family:Gudea;font-weight:700;src:url(//www.webplatform.org/assets/fonts/gudea-bold-webfont.eot);src:url(//www.webplatform.org/assets/fonts/gudea-bold-webfont.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/gudea-bold-webfont.woff) format('woff'),url(//www.webplatform.org/assets/fonts/gudea-bold-webfont.ttf) format('truetype'),url(//www.webplatform.org/assets/fonts/gudea-bold-webfont.svg#GudeaRegular) format('svg')}@font-face{font-family:Gudea;font-weight:400;font-style:italic;src:url(//www.webplatform.org/assets/fonts/gudea-italic-webfont.eot);src:url(//www.webplatform.org/assets/fonts/gudea-italic-webfont.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/gudea-italic-webfont.woff) format('woff'),url(//www.webplatform.org/assets/fonts/gudea-italic-webfont.ttf) format('truetype'),url(//www.webplatform.org/assets/fonts/gudea-italic-webfont.svg#GudeaRegular) format('svg')}@font-face{font-family:Bitter;font-weight:400;src:url(//www.webplatform.org/assets/fonts/bitter-regular-webfont.eot);src:url(//www.webplatform.org/assets/fonts/bitter-regular-webfont.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/bitter-regular-webfont.woff) format('woff'),url(//www.webplatform.org/assets/fonts/bitter-regular-webfont.ttf) format('truetype'),url(//www.webplatform.org/assets/fonts/bitter-regular-webfont.svg#BitterRegular) format('svg')}@font-face{font-family:Bitter;font-weight:700;src:url(//www.webplatform.org/assets/fonts/bitter-bold-webfont.eot);src:url(//www.webplatform.org/assets/fonts/bitter-bold-webfont.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/bitter-bold-webfont.woff) format('woff'),url(//www.webplatform.org/assets/fonts/bitter-bold-webfont.ttf) format('truetype'),url(//www.webplatform.org/assets/fonts/bitter-bold-webfont.svg#BitterBold) format('svg')}@font-face{font-family:Bitter;font-weight:400;font-style:italic;src:url(//www.webplatform.org/assets/fonts/bitter-italic-webfont.eot);src:url(//www.webplatform.org/assets/fonts/bitter-italic-webfont.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/bitter-italic-webfont.woff) format('woff'),url(//www.webplatform.org/assets/fonts/bitter-italic-webfont.ttf) format('truetype'),url(//www.webplatform.org/assets/fonts/bitter-italic-webfont.svg#BitterBold) format('svg')}@font-face{font-family:WPSymbols;src:url(//www.webplatform.org/assets/fonts/WPSymbols.eot);src:url(//www.webplatform.org/assets/fonts/WPSymbols.eot?#iefix) format('embedded-opentype'),url(//www.webplatform.org/assets/fonts/WPSymbols.svg#WPSymbols) format('svg'),url(//www.webplatform.org/assets/fonts/WPSymbols.woff) format('woff'),url(//www.webplatform.org/assets/fonts/WPSymbols.ttf) format('truetype')}#jump-to-nav,.mw-jump{display:none}body.sitedir-ltr{background-image:url(//www.webplatform.org/assets/bg-pattern.png)!important}#search>input[type=submit]{background-image:url(//www.webplatform.org/assets/btn-search.svg)!important}#p-logo a{background:url(//www.webplatform.org/assets/logo.svg) #f7f5f1;background-repeat:no-repeat;background-position:center}#sitenav{background-image:url(//www.webplatform.org/assets/nav-bg.png)}footer ul.stewards>li>a{background-image:url(//www.webplatform.org/assets/footer-images.png)!important}@media screen and (max-width:950px){blockquote.testimonial{margin-right:0}hgroup h1 img{margin-bottom:.2em}}hgroup{text-align:center}hgroup h1{font-size:800%;font-weight:700;letter-spacing:-.1em}hgroup h1 img{height:1.5em}hgroup h2{font-size:300%}hgroup+p{font-size:140%}#content{margin-top:1em;font-size:110%}
12 |
13 | html{background-color:transparent!important}
14 |
--------------------------------------------------------------------------------
/static/_internal/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
21 |
22 |
30 |
31 |
32 |
33 |
34 |
Notice: The WebPlatform project has been
discontinued when the
Stewards partnership agreement ended in
September 2015 . This site has been frozen, and the assets we have created will remain.
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
Sub pages of
45 |
--------------------------------------------------------------------------------
/static/assets/js/docs.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * WebPlatform Docs
3 | */
4 |
5 | /**
6 | * WebPlatform Docs JavaScript
7 | *
8 | * Notice that functions that starts by "mw." were originally
9 | * managed by MediaWiki ("MW"), but this project doesn't use MW at all.
10 | *
11 | * If you refactor, please ensure we remove any requirement for them.
12 | *
13 | * In the meantime, the following will let any MW code to work
14 | * without breaking.
15 | *
16 | * ```js
17 | * var mw = {loader:{state:function getState(){console.log('mw loader state',arguments);return null;}},config:{get:function getConfig(){console.log('mw config get',arguments); return {};}}};
18 | * ``
19 | *
20 | * The following scripts were extracted from MW with the following requests
21 | *
22 | * - https://docs.webplatform.org/w/load.php?debug=true&lang=en&modules=jquery&only=scripts&skin=webplatform&version=20150623T190654Z
23 | * - https://docs.webplatform.org/w/load.php?debug=false&lang=en&modules=skins.webplatform&only=scripts&skin=webplatform&*
24 | */
25 |
26 | /*
27 | * Add Hypothes.is sidebar
28 | */
29 | function annotatorLoader() {
30 | var ssl = !!document.location.protocol.match(/^https:/),
31 | embedUrl = '//notes.webplatform.org/embed.js',
32 | mwContentNamespaces = mw.config.get('wgContentNamespaces'),
33 | showAnnotator = false;
34 | if (showAnnotator === true) {
35 | if (ssl && embedUrl.match(
36 | /^https:/)) {
37 | var msg = ('Sorry, but the annotator sidebar is currently unavailable ' + 'on pages that are served through HTTPS.');
38 | mw.notify(msg, {
39 | title: "Cannot load annotation sidebar"
40 | });
41 | } else {
42 | var embed = document.createElement('script');
43 | embed.setAttribute('src', embedUrl);
44 | document.body.appendChild(embed);
45 | }
46 | }
47 | }
48 |
49 |
50 |
51 |
52 | /*
53 | * Generate Table of Contents on any page
54 | */
55 | function mainToc () {
56 | var readinessBlock = document.querySelectorAll('#main-content .readiness-state')[0] || {};
57 | if(!!readinessBlock.tagName && readinessBlock.tagName.toLowerCase() === 'div') {
58 | document.body.appendChild(readinessBlock);
59 | }
60 |
61 | var mainContent = document.getElementById('main-content');
62 | if (mainContent === null) {
63 | return;
64 | }
65 | var headings = Array.prototype.slice.apply(mainContent.querySelectorAll('h2, h3, h4, h5, h6'));
66 | if (headings.length < 2) {
67 | return;
68 | }
69 | document.body.classList.add('with-toc');
70 | var ol = document.createElement('ol'),
71 | li, rootOl = ol;
72 | for (var i = 0, h; h = headings[i++];) {
73 | var level = hLevel(h);
74 | if (level > previousLevel) {
75 | ol = li.appendChild(document.createElement('ol'));
76 | } else if (level < previousLevel) {
77 | ol = ol.
78 | parentNode.parentNode;
79 | }
80 | li = tocItem(h);
81 | if (li) {
82 | ol.appendChild(li);
83 | }
84 | var previousLevel = level;
85 | }
86 |
87 | function tocItem(h) {
88 | var li = document.createElement('li'),
89 | a = document.createElement('a');
90 | var id, text;
91 | var headline = h.querySelector('.mw-headline[id]');
92 | if (headline) {
93 | id = headline.id;
94 | text = headline.textContent;
95 | } else {
96 | id = h.id;
97 | text = h.firstChild.textContent || h.textContent;
98 | if (!id) {
99 | id = text.replace(/\s+/g, '-');
100 | if (document.getElementById(id)) {
101 | id += '-2';
102 | }
103 | h.id = id;
104 | }
105 | }
106 | a.textContent = text;
107 | a.href = '#' + id;
108 | li.appendChild(a);
109 | return li;
110 | }
111 |
112 | function hLevel(h) {
113 | return +h.nodeName.match(/h(\d)/i)[1];
114 | }
115 | var toc = document.createElement('aside');
116 | toc.id = 'sidebar';
117 | toc.className = 'custom-toc';
118 | var tocH = document.createElement('h2');
119 | tocH.id = 'sidebar-title';
120 | tocH.innerHTML = 'Contents';
121 | toc.appendChild(tocH);
122 | toc.appendChild(rootOl);
123 | mainContent.parentNode.insertBefore(toc, mainContent);
124 |
125 | console.log('mainToc loaded');
126 | }
127 |
128 |
129 |
130 |
131 | /*
132 | * Handle Edit button to send to GitHub.
133 | *
134 | * initialized through mainInit
135 | */
136 | function mainEditButton(){
137 | 'use strict';
138 |
139 | var title = document.querySelectorAll('h1 .mw-headline')[0] || {},
140 | editBtn = document.querySelectorAll('.toolbar a.edit')[0] || {},
141 | baseSourceRepo = "https://github.com/webplatform/docs{0}/blob/manual-edits",
142 | namespaceTests = [[/^\/Meta/, '-meta'], [/^\/WPD/, '-wpd']],
143 | urlObj = new URL(window.location.href),
144 | pathName = urlObj.pathname.replace('.html', ''),
145 | sourceFile = baseSourceRepo + pathName,
146 | namespaceTestsIdx,
147 | namespacePrefixOutcome = '',
148 | editHref;
149 |
150 | if(typeof editBtn === 'object' && typeof editBtn.text === 'string') {
151 | for(namespaceTestsIdx = 0; namespaceTestsIdx <= namespaceTests.length - 1; namespaceTestsIdx ++) {
152 | if(namespaceTests[namespaceTestsIdx][0].test(pathName)){
153 | namespacePrefixOutcome = namespaceTests[namespaceTestsIdx][1];
154 | }
155 | }
156 | sourceFile = sourceFile.format(namespacePrefixOutcome).replace(/manual-edits\/(Meta|WPD)\//, 'master/');
157 | editHref = sourceFile + ((/\/$/.test(pathName))?'index.md':'.md');
158 | editBtn.setAttribute('href', editHref);
159 | }
160 |
161 | if(typeof title === 'object' && typeof title.textContent === 'string'){
162 | document.title = title.textContent + ' - ' + document.title;
163 | }
164 |
165 | console.log('mainEditButton loaded');
166 | }
167 |
168 |
169 |
170 |
171 |
172 | /*
173 | * Strig.format polyfill
174 | */
175 | if (!String.prototype.format) {
176 | String.prototype.format = function() {
177 | var args = arguments;
178 | return this.replace(/{(\d+)}/g, function(match, number) {
179 | return typeof args[number] != 'undefined'
180 | ? args[number]
181 | : match
182 | ;
183 | });
184 | };
185 | }
186 |
187 |
188 |
189 |
190 |
191 | /*
192 | * Bootstrap it all
193 | */
194 | (function init () {
195 | if (document.querySelectorAll && !!document.body.addEventListener) {
196 | var dropdowns = document.querySelectorAll('.dropdown');
197 | for (var i = 0, dropdown; dropdown = dropdowns[i++];) {
198 | dropdown.addEventListener('focus', function() {
199 | this.className += ' focus';
200 | }, true);
201 | dropdown.addEventListener('blur', function() {
202 | this.className = this.className.replace(/\s+focus\b/, ' ');
203 | }, true);
204 | }
205 |
206 | mainEditButton();
207 | mainToc();
208 | }
209 | }());
210 |
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/webplatform/generator-docs/48fa65f1bad67fa2673d6db4ca92f70ae7107969/static/favicon.ico
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 | absolute@0.0.1:
4 | version "0.0.1"
5 | resolved "https://registry.yarnpkg.com/absolute/-/absolute-0.0.1.tgz#c22822f87e1c939f579887504d9c109c4173829d"
6 |
7 | accepts@~1.3.3:
8 | version "1.3.3"
9 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
10 | dependencies:
11 | mime-types "~2.1.11"
12 | negotiator "0.6.1"
13 |
14 | amdefine@>=0.0.4:
15 | version "1.0.0"
16 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.0.tgz#fd17474700cb5cc9c2b709f0be9d23ce3c198c33"
17 |
18 | ansi-red@^0.1.1:
19 | version "0.1.1"
20 | resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c"
21 | dependencies:
22 | ansi-wrap "0.1.0"
23 |
24 | ansi-regex@^2.0.0:
25 | version "2.0.0"
26 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107"
27 |
28 | ansi-styles@^2.2.1:
29 | version "2.2.1"
30 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
31 |
32 | ansi-wrap@0.1.0:
33 | version "0.1.0"
34 | resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
35 |
36 | argparse@^1.0.7:
37 | version "1.0.9"
38 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
39 | dependencies:
40 | sprintf-js "~1.0.2"
41 |
42 | argparse@~0.1.15:
43 | version "0.1.16"
44 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
45 | dependencies:
46 | underscore "~1.7.0"
47 | underscore.string "~2.4.0"
48 |
49 | arr-diff@^2.0.0:
50 | version "2.0.0"
51 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
52 | dependencies:
53 | arr-flatten "^1.0.1"
54 |
55 | arr-flatten@^1.0.1:
56 | version "1.0.1"
57 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b"
58 |
59 | array-differ@^1.0.0:
60 | version "1.0.0"
61 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
62 |
63 | array-flatten@1.1.1:
64 | version "1.1.1"
65 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
66 |
67 | array-union@^1.0.1:
68 | version "1.0.2"
69 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
70 | dependencies:
71 | array-uniq "^1.0.1"
72 |
73 | array-uniq@^1.0.1:
74 | version "1.0.3"
75 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
76 |
77 | array-unique@^0.2.1:
78 | version "0.2.1"
79 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
80 |
81 | arrify@^1.0.0:
82 | version "1.0.1"
83 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
84 |
85 | async@^0.7.0:
86 | version "0.7.0"
87 | resolved "https://registry.yarnpkg.com/async/-/async-0.7.0.tgz#4429e0e62f5de0a54f37458c49f0b897eb52ada5"
88 |
89 | async@^1.3.0:
90 | version "1.5.2"
91 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
92 |
93 | async@~0.2.6:
94 | version "0.2.10"
95 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
96 |
97 | autolinker@~0.15.0:
98 | version "0.15.3"
99 | resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832"
100 |
101 | balanced-match@^0.4.1:
102 | version "0.4.2"
103 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
104 |
105 | bluebird@^3.1.1:
106 | version "3.4.6"
107 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.6.tgz#01da8d821d87813d158967e743d5fe6c62cf8c0f"
108 |
109 | bower@*:
110 | version "1.7.9"
111 | resolved "https://registry.yarnpkg.com/bower/-/bower-1.7.9.tgz#b7296c2393e0d75edaa6ca39648132dd255812b0"
112 |
113 | brace-expansion@^1.0.0:
114 | version "1.1.6"
115 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
116 | dependencies:
117 | balanced-match "^0.4.1"
118 | concat-map "0.0.1"
119 |
120 | braces@^1.8.2:
121 | version "1.8.5"
122 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
123 | dependencies:
124 | expand-range "^1.8.1"
125 | preserve "^0.2.0"
126 | repeat-element "^1.1.2"
127 |
128 | chalk@^1.1.3:
129 | version "1.1.3"
130 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
131 | dependencies:
132 | ansi-styles "^2.2.1"
133 | escape-string-regexp "^1.0.2"
134 | has-ansi "^2.0.0"
135 | strip-ansi "^3.0.0"
136 | supports-color "^2.0.0"
137 |
138 | clone@^1.0.2:
139 | version "1.0.2"
140 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
141 |
142 | co-from-stream@~0.0.0:
143 | version "0.0.0"
144 | resolved "https://registry.yarnpkg.com/co-from-stream/-/co-from-stream-0.0.0.tgz#1a5cd8ced77263946094fa39f2499a63297bcaf9"
145 | dependencies:
146 | co-read "0.0.1"
147 |
148 | co-fs-extra@^1.2.1:
149 | version "1.2.1"
150 | resolved "https://registry.yarnpkg.com/co-fs-extra/-/co-fs-extra-1.2.1.tgz#3b6ad77cf2614530f677b1cf62664f5ba756b722"
151 | dependencies:
152 | co-from-stream "~0.0.0"
153 | fs-extra "~0.26.5"
154 | thunkify-wrap "~1.0.4"
155 |
156 | co-read@0.0.1:
157 | version "0.0.1"
158 | resolved "https://registry.yarnpkg.com/co-read/-/co-read-0.0.1.tgz#f81b3eb8a86675fec51e3d883a7f564e873c9389"
159 |
160 | co@~3.1.0, co@3.1.0:
161 | version "3.1.0"
162 | resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78"
163 |
164 | commander@^2.6.0:
165 | version "2.9.0"
166 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
167 | dependencies:
168 | graceful-readlink ">= 1.0.0"
169 |
170 | concat-map@0.0.1:
171 | version "0.0.1"
172 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
173 |
174 | consolidate@^0.14.0:
175 | version "0.14.1"
176 | resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.1.tgz#506d529ef7e211624d2e4a5f337df8be136ef727"
177 | dependencies:
178 | bluebird "^3.1.1"
179 |
180 | content-disposition@0.5.1:
181 | version "0.5.1"
182 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b"
183 |
184 | content-type@~1.0.2:
185 | version "1.0.2"
186 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
187 |
188 | cookie-signature@1.0.6:
189 | version "1.0.6"
190 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
191 |
192 | cookie@0.3.1:
193 | version "0.3.1"
194 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
195 |
196 | debug@^0.8.1:
197 | version "0.8.1"
198 | resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130"
199 |
200 | debug@^2.1.3, debug@^2.2.0, debug@~2.2.0:
201 | version "2.2.0"
202 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
203 | dependencies:
204 | ms "0.7.1"
205 |
206 | depd@~1.1.0:
207 | version "1.1.0"
208 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
209 |
210 | destroy@~1.0.4:
211 | version "1.0.4"
212 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
213 |
214 | ee-first@1.1.1:
215 | version "1.1.1"
216 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
217 |
218 | enable@1:
219 | version "1.3.2"
220 | resolved "https://registry.yarnpkg.com/enable/-/enable-1.3.2.tgz#9eba6837d16d0982b59f87d889bf754443d52931"
221 |
222 | encodeurl@~1.0.1:
223 | version "1.0.1"
224 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
225 |
226 | escape-html@~1.0.3:
227 | version "1.0.3"
228 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
229 |
230 | escape-string-regexp@^1.0.2:
231 | version "1.0.5"
232 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
233 |
234 | esprima@^2.6.0:
235 | version "2.7.3"
236 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
237 |
238 | etag@~1.7.0:
239 | version "1.7.0"
240 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8"
241 |
242 | expand-brackets@^0.1.4:
243 | version "0.1.5"
244 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
245 | dependencies:
246 | is-posix-bracket "^0.1.0"
247 |
248 | expand-range@^1.8.1:
249 | version "1.8.2"
250 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
251 | dependencies:
252 | fill-range "^2.1.0"
253 |
254 | express@^4.13.3:
255 | version "4.14.0"
256 | resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66"
257 | dependencies:
258 | accepts "~1.3.3"
259 | array-flatten "1.1.1"
260 | content-disposition "0.5.1"
261 | content-type "~1.0.2"
262 | cookie "0.3.1"
263 | cookie-signature "1.0.6"
264 | debug "~2.2.0"
265 | depd "~1.1.0"
266 | encodeurl "~1.0.1"
267 | escape-html "~1.0.3"
268 | etag "~1.7.0"
269 | finalhandler "0.5.0"
270 | fresh "0.3.0"
271 | merge-descriptors "1.0.1"
272 | methods "~1.1.2"
273 | on-finished "~2.3.0"
274 | parseurl "~1.3.1"
275 | path-to-regexp "0.1.7"
276 | proxy-addr "~1.1.2"
277 | qs "6.2.0"
278 | range-parser "~1.2.0"
279 | send "0.14.1"
280 | serve-static "~1.11.1"
281 | type-is "~1.6.13"
282 | utils-merge "1.0.0"
283 | vary "~1.1.0"
284 |
285 | extend-shallow@^2.0.1:
286 | version "2.0.1"
287 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
288 | dependencies:
289 | is-extendable "^0.1.0"
290 |
291 | extend@^3.0.0:
292 | version "3.0.0"
293 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
294 |
295 | extglob@^0.3.1:
296 | version "0.3.2"
297 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
298 | dependencies:
299 | is-extglob "^1.0.0"
300 |
301 | filename-regex@^2.0.0:
302 | version "2.0.0"
303 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
304 |
305 | fill-range@^2.1.0:
306 | version "2.2.3"
307 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
308 | dependencies:
309 | is-number "^2.1.0"
310 | isobject "^2.0.0"
311 | randomatic "^1.1.3"
312 | repeat-element "^1.1.2"
313 | repeat-string "^1.5.2"
314 |
315 | finalhandler@0.5.0:
316 | version "0.5.0"
317 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7"
318 | dependencies:
319 | debug "~2.2.0"
320 | escape-html "~1.0.3"
321 | on-finished "~2.3.0"
322 | statuses "~1.3.0"
323 | unpipe "~1.0.0"
324 |
325 | for-in@^0.1.5:
326 | version "0.1.6"
327 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
328 |
329 | for-own@^0.1.4:
330 | version "0.1.4"
331 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072"
332 | dependencies:
333 | for-in "^0.1.5"
334 |
335 | forwarded@~0.1.0:
336 | version "0.1.0"
337 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363"
338 |
339 | fresh@0.3.0:
340 | version "0.3.0"
341 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
342 |
343 | fs-extra@~0.26.5:
344 | version "0.26.7"
345 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9"
346 | dependencies:
347 | graceful-fs "^4.1.2"
348 | jsonfile "^2.1.0"
349 | klaw "^1.0.0"
350 | path-is-absolute "^1.0.0"
351 | rimraf "^2.2.8"
352 |
353 | fs-readdir-recursive@^1.0.0:
354 | version "1.0.0"
355 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
356 |
357 | fs.realpath@^1.0.0:
358 | version "1.0.0"
359 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
360 |
361 | glob-base@^0.3.0:
362 | version "0.3.0"
363 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
364 | dependencies:
365 | glob-parent "^2.0.0"
366 | is-glob "^2.0.0"
367 |
368 | glob-parent@^2.0.0:
369 | version "2.0.0"
370 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
371 | dependencies:
372 | is-glob "^2.0.0"
373 |
374 | glob@^7.0.5:
375 | version "7.1.1"
376 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
377 | dependencies:
378 | fs.realpath "^1.0.0"
379 | inflight "^1.0.4"
380 | inherits "2"
381 | minimatch "^3.0.2"
382 | once "^1.3.0"
383 | path-is-absolute "^1.0.0"
384 |
385 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
386 | version "4.1.9"
387 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.9.tgz#baacba37d19d11f9d146d3578bc99958c3787e29"
388 |
389 | "graceful-readlink@>= 1.0.0":
390 | version "1.0.1"
391 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
392 |
393 | gray-matter@^2.0.0:
394 | version "2.1.0"
395 | resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-2.1.0.tgz#df14c28793a9219720482c3996d12f548200ff75"
396 | dependencies:
397 | ansi-red "^0.1.1"
398 | extend-shallow "^2.0.1"
399 | js-yaml "^3.4.3"
400 |
401 | handlebars@^2.0:
402 | version "2.0.0"
403 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-2.0.0.tgz#6e9d7f8514a3467fa5e9f82cc158ecfc1d5ac76f"
404 | dependencies:
405 | optimist "~0.3"
406 | optionalDependencies:
407 | uglify-js "~2.3"
408 |
409 | has-ansi@^2.0.0:
410 | version "2.0.0"
411 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
412 | dependencies:
413 | ansi-regex "^2.0.0"
414 |
415 | has-generators@^1.0.1:
416 | version "1.0.1"
417 | resolved "https://registry.yarnpkg.com/has-generators/-/has-generators-1.0.1.tgz#a6a2e55486011940482e13e2c93791c449acf449"
418 |
419 | highlight.js@^8.8.0:
420 | version "8.9.1"
421 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-8.9.1.tgz#b8a9c5493212a9392f0222b649c9611497ebfb88"
422 |
423 | http-errors@~1.5.0:
424 | version "1.5.0"
425 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211"
426 | dependencies:
427 | inherits "2.0.1"
428 | setprototypeof "1.0.1"
429 | statuses ">= 1.3.0 < 2"
430 |
431 | inflight@^1.0.4:
432 | version "1.0.6"
433 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
434 | dependencies:
435 | once "^1.3.0"
436 | wrappy "1"
437 |
438 | inherits@2:
439 | version "2.0.3"
440 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
441 |
442 | inherits@2.0.1:
443 | version "2.0.1"
444 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
445 |
446 | ipaddr.js@1.1.1:
447 | version "1.1.1"
448 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230"
449 |
450 | is-buffer@^1.0.2:
451 | version "1.1.4"
452 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
453 |
454 | is-dotfile@^1.0.0:
455 | version "1.0.2"
456 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
457 |
458 | is-equal-shallow@^0.1.3:
459 | version "0.1.3"
460 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
461 | dependencies:
462 | is-primitive "^2.0.0"
463 |
464 | is-extendable@^0.1.0, is-extendable@^0.1.1:
465 | version "0.1.1"
466 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
467 |
468 | is-extglob@^1.0.0:
469 | version "1.0.0"
470 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
471 |
472 | is-glob@^2.0.0, is-glob@^2.0.1:
473 | version "2.0.1"
474 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
475 | dependencies:
476 | is-extglob "^1.0.0"
477 |
478 | is-number@^2.0.2, is-number@^2.1.0:
479 | version "2.1.0"
480 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
481 | dependencies:
482 | kind-of "^3.0.2"
483 |
484 | is-posix-bracket@^0.1.0:
485 | version "0.1.1"
486 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
487 |
488 | is-primitive@^2.0.0:
489 | version "2.0.0"
490 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
491 |
492 | is-utf8@^0.2.0, is-utf8@~0.2.0:
493 | version "0.2.1"
494 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
495 |
496 | is@^3.1.0:
497 | version "3.2.0"
498 | resolved "https://registry.yarnpkg.com/is/-/is-3.2.0.tgz#a362e3daf7df3fd8b7114115d624c5b7e1cb90f7"
499 |
500 | isarray@1.0.0:
501 | version "1.0.0"
502 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
503 |
504 | isobject@^2.0.0:
505 | version "2.1.0"
506 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
507 | dependencies:
508 | isarray "1.0.0"
509 |
510 | js-yaml@^3.4.3:
511 | version "3.6.1"
512 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
513 | dependencies:
514 | argparse "^1.0.7"
515 | esprima "^2.6.0"
516 |
517 | jsonfile@^2.1.0:
518 | version "2.4.0"
519 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
520 | optionalDependencies:
521 | graceful-fs "^4.1.6"
522 |
523 | kind-of@^3.0.2:
524 | version "3.0.4"
525 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74"
526 | dependencies:
527 | is-buffer "^1.0.2"
528 |
529 | klaw@^1.0.0:
530 | version "1.3.1"
531 | resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
532 | optionalDependencies:
533 | graceful-fs "^4.1.9"
534 |
535 | lodash.omit@^4.0.2:
536 | version "4.5.0"
537 | resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
538 |
539 | lodash@~2.4.1:
540 | version "2.4.2"
541 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
542 |
543 | lru-cache@2:
544 | version "2.7.3"
545 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
546 |
547 | media-typer@0.3.0:
548 | version "0.3.0"
549 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
550 |
551 | merge-descriptors@1.0.1:
552 | version "1.0.1"
553 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
554 |
555 | merge@^1.1.3:
556 | version "1.2.0"
557 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
558 |
559 | metalsmith-assets@^0.1.0:
560 | version "0.1.0"
561 | resolved "https://registry.yarnpkg.com/metalsmith-assets/-/metalsmith-assets-0.1.0.tgz#c838d483f09723ede8387449c6bfda9b3da3cc40"
562 | dependencies:
563 | async "^0.7.0"
564 | debug "^0.8.1"
565 | merge "^1.1.3"
566 | recursive-readdir "^1.0.0"
567 | stat-mode "^0.2.0"
568 |
569 | metalsmith-changed@~0.2:
570 | version "0.2.0"
571 | resolved "https://registry.yarnpkg.com/metalsmith-changed/-/metalsmith-changed-0.2.0.tgz#b6802e93559ca9529844383b7a4e16de96f2a39b"
572 | dependencies:
573 | debug "^2.2.0"
574 | micromatch "^2.1.6"
575 |
576 | metalsmith-ignore@~0.1:
577 | version "0.1.2"
578 | resolved "https://registry.yarnpkg.com/metalsmith-ignore/-/metalsmith-ignore-0.1.2.tgz#6ae6c694ba62a41585e8b481a11e2928c5ac4028"
579 | dependencies:
580 | multimatch "^0.1.0"
581 |
582 | metalsmith-layouts@~1.4:
583 | version "1.4.4"
584 | resolved "https://registry.yarnpkg.com/metalsmith-layouts/-/metalsmith-layouts-1.4.4.tgz#986c0952f0d3303e0dc035afba4852ae9b1674f8"
585 | dependencies:
586 | async "^1.3.0"
587 | consolidate "^0.14.0"
588 | debug "^2.2.0"
589 | extend "^3.0.0"
590 | fs-readdir-recursive "^1.0.0"
591 | is-utf8 "^0.2.0"
592 | lodash.omit "^4.0.2"
593 | multimatch "^2.0.0"
594 |
595 | metalsmith-markdown-remarkable@^0.1.1:
596 | version "0.1.1"
597 | resolved "https://registry.yarnpkg.com/metalsmith-markdown-remarkable/-/metalsmith-markdown-remarkable-0.1.1.tgz#bbfcff4f1590ae62b40fa0f3fd35779c09abbd8e"
598 | dependencies:
599 | debug "^2.1.3"
600 | remarkable "^1.6.0"
601 |
602 | metalsmith@~2:
603 | version "2.3.0"
604 | resolved "https://registry.yarnpkg.com/metalsmith/-/metalsmith-2.3.0.tgz#833afbb5a2a6385e2d9ae3d935e39e33eaea5231"
605 | dependencies:
606 | absolute "0.0.1"
607 | chalk "^1.1.3"
608 | clone "^1.0.2"
609 | co-fs-extra "^1.2.1"
610 | commander "^2.6.0"
611 | gray-matter "^2.0.0"
612 | has-generators "^1.0.1"
613 | is "^3.1.0"
614 | is-utf8 "~0.2.0"
615 | recursive-readdir "^2.1.0"
616 | rimraf "^2.2.8"
617 | stat-mode "^0.2.0"
618 | thunkify "^2.1.2"
619 | unyield "0.0.1"
620 | ware "^1.2.0"
621 | win-fork "^1.1.1"
622 |
623 | methods@~1.1.2:
624 | version "1.1.2"
625 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
626 |
627 | micromatch@^2.1.6:
628 | version "2.3.11"
629 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
630 | dependencies:
631 | arr-diff "^2.0.0"
632 | array-unique "^0.2.1"
633 | braces "^1.8.2"
634 | expand-brackets "^0.1.4"
635 | extglob "^0.3.1"
636 | filename-regex "^2.0.0"
637 | is-extglob "^1.0.0"
638 | is-glob "^2.0.1"
639 | kind-of "^3.0.2"
640 | normalize-path "^2.0.1"
641 | object.omit "^2.0.0"
642 | parse-glob "^3.0.4"
643 | regex-cache "^0.4.2"
644 |
645 | mime-db@~1.24.0:
646 | version "1.24.0"
647 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c"
648 |
649 | mime-types@~2.1.11:
650 | version "2.1.12"
651 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729"
652 | dependencies:
653 | mime-db "~1.24.0"
654 |
655 | mime@1.3.4:
656 | version "1.3.4"
657 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
658 |
659 | minimatch@^3.0.0, minimatch@^3.0.2:
660 | version "3.0.3"
661 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
662 | dependencies:
663 | brace-expansion "^1.0.0"
664 |
665 | minimatch@~0.2.14:
666 | version "0.2.14"
667 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
668 | dependencies:
669 | lru-cache "2"
670 | sigmund "~1.0.0"
671 |
672 | minimatch@0.3.0:
673 | version "0.3.0"
674 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
675 | dependencies:
676 | lru-cache "2"
677 | sigmund "~1.0.0"
678 |
679 | minimatch@3.0.2:
680 | version "3.0.2"
681 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.2.tgz#0f398a7300ea441e9c348c83d98ab8c9dbf9c40a"
682 | dependencies:
683 | brace-expansion "^1.0.0"
684 |
685 | ms@0.7.1:
686 | version "0.7.1"
687 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
688 |
689 | multimatch@^0.1.0:
690 | version "0.1.0"
691 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-0.1.0.tgz#099d9f8f8463ac36cfbfa27360bc16cee87ded64"
692 | dependencies:
693 | lodash "~2.4.1"
694 | minimatch "~0.2.14"
695 |
696 | multimatch@^2.0.0:
697 | version "2.1.0"
698 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
699 | dependencies:
700 | array-differ "^1.0.0"
701 | array-union "^1.0.1"
702 | arrify "^1.0.0"
703 | minimatch "^3.0.0"
704 |
705 | negotiator@0.6.1:
706 | version "0.6.1"
707 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
708 |
709 | normalize-path@^2.0.1:
710 | version "2.0.1"
711 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
712 |
713 | object.omit@^2.0.0:
714 | version "2.0.1"
715 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
716 | dependencies:
717 | for-own "^0.1.4"
718 | is-extendable "^0.1.1"
719 |
720 | on-finished@~2.3.0:
721 | version "2.3.0"
722 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
723 | dependencies:
724 | ee-first "1.1.1"
725 |
726 | once@^1.3.0:
727 | version "1.4.0"
728 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
729 | dependencies:
730 | wrappy "1"
731 |
732 | optimist@~0.3, optimist@~0.3.5:
733 | version "0.3.7"
734 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9"
735 | dependencies:
736 | wordwrap "~0.0.2"
737 |
738 | parse-glob@^3.0.4:
739 | version "3.0.4"
740 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
741 | dependencies:
742 | glob-base "^0.3.0"
743 | is-dotfile "^1.0.0"
744 | is-extglob "^1.0.0"
745 | is-glob "^2.0.0"
746 |
747 | parseurl@~1.3.1:
748 | version "1.3.1"
749 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
750 |
751 | path-is-absolute@^1.0.0:
752 | version "1.0.1"
753 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
754 |
755 | path-to-regexp@0.1.7:
756 | version "0.1.7"
757 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
758 |
759 | preserve@^0.2.0:
760 | version "0.2.0"
761 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
762 |
763 | proxy-addr@~1.1.2:
764 | version "1.1.2"
765 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37"
766 | dependencies:
767 | forwarded "~0.1.0"
768 | ipaddr.js "1.1.1"
769 |
770 | qs@6.2.0:
771 | version "6.2.0"
772 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b"
773 |
774 | randomatic@^1.1.3:
775 | version "1.1.5"
776 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b"
777 | dependencies:
778 | is-number "^2.0.2"
779 | kind-of "^3.0.2"
780 |
781 | range-parser@~1.2.0:
782 | version "1.2.0"
783 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
784 |
785 | recursive-readdir@^1.0.0:
786 | version "1.3.0"
787 | resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-1.3.0.tgz#c6e66c9ae473f4928f8e6c67a05d80e7a56528ef"
788 | dependencies:
789 | minimatch "0.3.0"
790 |
791 | recursive-readdir@^2.1.0:
792 | version "2.1.0"
793 | resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.1.0.tgz#78b7bfd79582d3d7596b8ff1bd29fbd50229f6aa"
794 | dependencies:
795 | minimatch "3.0.2"
796 |
797 | regex-cache@^0.4.2:
798 | version "0.4.3"
799 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
800 | dependencies:
801 | is-equal-shallow "^0.1.3"
802 | is-primitive "^2.0.0"
803 |
804 | remarkable@^1.6.0:
805 | version "1.7.1"
806 | resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6"
807 | dependencies:
808 | argparse "~0.1.15"
809 | autolinker "~0.15.0"
810 |
811 | repeat-element@^1.1.2:
812 | version "1.1.2"
813 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
814 |
815 | repeat-string@^1.5.2:
816 | version "1.6.1"
817 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
818 |
819 | rimraf@^2.2.8:
820 | version "2.5.4"
821 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
822 | dependencies:
823 | glob "^7.0.5"
824 |
825 | send@0.14.1:
826 | version "0.14.1"
827 | resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a"
828 | dependencies:
829 | debug "~2.2.0"
830 | depd "~1.1.0"
831 | destroy "~1.0.4"
832 | encodeurl "~1.0.1"
833 | escape-html "~1.0.3"
834 | etag "~1.7.0"
835 | fresh "0.3.0"
836 | http-errors "~1.5.0"
837 | mime "1.3.4"
838 | ms "0.7.1"
839 | on-finished "~2.3.0"
840 | range-parser "~1.2.0"
841 | statuses "~1.3.0"
842 |
843 | serve-static@~1.11.1:
844 | version "1.11.1"
845 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805"
846 | dependencies:
847 | encodeurl "~1.0.1"
848 | escape-html "~1.0.3"
849 | parseurl "~1.3.1"
850 | send "0.14.1"
851 |
852 | setprototypeof@1.0.1:
853 | version "1.0.1"
854 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e"
855 |
856 | sigmund@~1.0.0:
857 | version "1.0.1"
858 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
859 |
860 | source-map@~0.1.7:
861 | version "0.1.43"
862 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
863 | dependencies:
864 | amdefine ">=0.0.4"
865 |
866 | sprintf-js@~1.0.2:
867 | version "1.0.3"
868 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
869 |
870 | stat-mode@^0.2.0:
871 | version "0.2.2"
872 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
873 |
874 | "statuses@>= 1.3.0 < 2", statuses@~1.3.0:
875 | version "1.3.0"
876 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.0.tgz#8e55758cb20e7682c1f4fce8dcab30bf01d1e07a"
877 |
878 | strip-ansi@^3.0.0:
879 | version "3.0.1"
880 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
881 | dependencies:
882 | ansi-regex "^2.0.0"
883 |
884 | supports-color@^2.0.0:
885 | version "2.0.0"
886 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
887 |
888 | thunkify-wrap@~1.0.4:
889 | version "1.0.4"
890 | resolved "https://registry.yarnpkg.com/thunkify-wrap/-/thunkify-wrap-1.0.4.tgz#b52be548ddfefda20e00b58c6096762b43dd6880"
891 | dependencies:
892 | enable "1"
893 |
894 | thunkify@^2.1.2:
895 | version "2.1.2"
896 | resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
897 |
898 | type-is@~1.6.13:
899 | version "1.6.13"
900 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08"
901 | dependencies:
902 | media-typer "0.3.0"
903 | mime-types "~2.1.11"
904 |
905 | uglify-js@~2.3:
906 | version "2.3.6"
907 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a"
908 | dependencies:
909 | async "~0.2.6"
910 | optimist "~0.3.5"
911 | source-map "~0.1.7"
912 |
913 | underscore.string@~2.4.0:
914 | version "2.4.0"
915 | resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
916 |
917 | underscore@~1.7.0:
918 | version "1.7.0"
919 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
920 |
921 | unpipe@~1.0.0:
922 | version "1.0.0"
923 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
924 |
925 | unyield@0.0.1:
926 | version "0.0.1"
927 | resolved "https://registry.yarnpkg.com/unyield/-/unyield-0.0.1.tgz#150e65da42bf7742445b958a64eb9b85d1d2b180"
928 | dependencies:
929 | co "~3.1.0"
930 |
931 | utils-merge@1.0.0:
932 | version "1.0.0"
933 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
934 |
935 | vary@~1.1.0:
936 | version "1.1.0"
937 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140"
938 |
939 | ware@^1.2.0:
940 | version "1.3.0"
941 | resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4"
942 | dependencies:
943 | wrap-fn "^0.1.0"
944 |
945 | win-fork@^1.1.1:
946 | version "1.1.1"
947 | resolved "https://registry.yarnpkg.com/win-fork/-/win-fork-1.1.1.tgz#8f58e0656fca00adc8c86a2b89e3cd2d6a2d5e5e"
948 |
949 | wordwrap@~0.0.2:
950 | version "0.0.3"
951 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
952 |
953 | wrap-fn@^0.1.0:
954 | version "0.1.5"
955 | resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845"
956 | dependencies:
957 | co "3.1.0"
958 |
959 | wrappy@1:
960 | version "1.0.2"
961 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
962 |
963 |
--------------------------------------------------------------------------------
8 |
9 |
--------------------------------------------------------------------------------
/static/_internal/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |