Build book from commit e715eebba8

This commit is contained in:
Automatic build 2017-09-14 14:40:31 +00:00
parent c22817f686
commit c21cfeedf5
12 changed files with 225 additions and 391 deletions

View file

@ -373,7 +373,7 @@
Expects a :coercion of type `reitit.coercion.protocol/Coercion`
and :responses from route meta, otherwise does not mount.&quot;</span>
(<span class="hljs-name">middleware/create</span>
{<span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:coerce-response</span>
{<span class="hljs-symbol">:name</span> <span class="hljs-symbol">::coerce-response</span>
<span class="hljs-symbol">:gen</span> (<span class="hljs-name"><span class="hljs-builtin-name">fn</span></span> [{<span class="hljs-symbol">:keys</span> [responses coercion opts]} _]
(<span class="hljs-name"><span class="hljs-builtin-name">if</span></span> (<span class="hljs-name"><span class="hljs-builtin-name">and</span></span> coercion responses)
(<span class="hljs-name"><span class="hljs-builtin-name">let</span></span> [coercers (<span class="hljs-name">response-coercers</span> coercion responses opts)]
@ -428,7 +428,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Compiling middleware","level":"1.5","depth":1,"next":{"title":"Validating route-trees","level":"1.6","depth":1,"path":"validating.md","ref":"validating.md","articles":[]},"previous":{"title":"Parameter coercion","level":"1.4","depth":1,"path":"parameter_coercion.md","ref":"parameter_coercion.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"compiling_middleware.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Compiling middleware","level":"1.5","depth":1,"next":{"title":"Validating route-trees","level":"1.6","depth":1,"path":"validating.md","ref":"validating.md","articles":[]},"previous":{"title":"Parameter coercion","level":"1.4","depth":1,"path":"parameter_coercion.md","ref":"parameter_coercion.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"compiling_middleware.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View file

@ -403,7 +403,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Configuring routers","level":"1.7","depth":1,"next":{"title":"TODO: Merging route-trees","level":"1.8","depth":1,"ref":"","articles":[]},"previous":{"title":"Validating route-trees","level":"1.6","depth":1,"path":"validating.md","ref":"validating.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"configuring_routers.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Configuring routers","level":"1.7","depth":1,"next":{"title":"TODO: Merging route-trees","level":"1.8","depth":1,"ref":"","articles":[]},"previous":{"title":"Validating route-trees","level":"1.6","depth":1,"path":"validating.md","ref":"validating.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"configuring_routers.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View file

@ -1,135 +1,96 @@
pre,
code {
/* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow.css */
/* http://jmblog.github.io/color-themes-for-highlightjs */
/* Tomorrow Comment */
/* Tomorrow Red */
/* Tomorrow Orange */
/* Tomorrow Yellow */
/* Tomorrow Green */
/* Tomorrow Aqua */
/* Tomorrow Blue */
/* Tomorrow Purple */
}
pre .hljs-comment,
code .hljs-comment,
pre .hljs-title,
code .hljs-title {
pre .hljs-quote,
code .hljs-quote {
color: #8e908c;
}
pre .hljs-variable,
code .hljs-variable,
pre .hljs-attribute,
code .hljs-attribute,
pre .hljs-template-variable,
code .hljs-template-variable,
pre .hljs-tag,
code .hljs-tag,
pre .hljs-name,
code .hljs-name,
pre .hljs-selector-id,
code .hljs-selector-id,
pre .hljs-selector-class,
code .hljs-selector-class,
pre .hljs-regexp,
code .hljs-regexp,
pre .hljs-deletion,
code .hljs-deletion,
pre .ruby .hljs-constant,
code .ruby .hljs-constant,
pre .xml .hljs-tag .hljs-title,
code .xml .hljs-tag .hljs-title,
pre .xml .hljs-pi,
code .xml .hljs-pi,
pre .xml .hljs-doctype,
code .xml .hljs-doctype,
pre .html .hljs-doctype,
code .html .hljs-doctype,
pre .css .hljs-id,
code .css .hljs-id,
pre .css .hljs-class,
code .css .hljs-class,
pre .css .hljs-pseudo,
code .css .hljs-pseudo {
code .hljs-deletion {
color: #c82829;
}
pre .hljs-number,
code .hljs-number,
pre .hljs-preprocessor,
code .hljs-preprocessor,
pre .hljs-pragma,
code .hljs-pragma,
pre .hljs-built_in,
code .hljs-built_in,
pre .hljs-builtin-name,
code .hljs-builtin-name,
pre .hljs-literal,
code .hljs-literal,
pre .hljs-type,
code .hljs-type,
pre .hljs-params,
code .hljs-params,
pre .hljs-constant,
code .hljs-constant {
pre .hljs-meta,
code .hljs-meta,
pre .hljs-link,
code .hljs-link {
color: #f5871f;
}
pre .ruby .hljs-class .hljs-title,
code .ruby .hljs-class .hljs-title,
pre .css .hljs-rules .hljs-attribute,
code .css .hljs-rules .hljs-attribute {
pre .hljs-attribute,
code .hljs-attribute {
color: #eab700;
}
pre .hljs-string,
code .hljs-string,
pre .hljs-value,
code .hljs-value,
pre .hljs-inheritance,
code .hljs-inheritance,
pre .hljs-header,
code .hljs-header,
pre .hljs-symbol,
code .hljs-symbol,
pre .hljs-bullet,
code .hljs-bullet,
pre .hljs-addition,
code .hljs-addition,
pre .ruby .hljs-symbol,
code .ruby .hljs-symbol,
pre .xml .hljs-cdata,
code .xml .hljs-cdata {
code .hljs-addition {
color: #718c00;
}
pre .css .hljs-hexcolor,
code .css .hljs-hexcolor {
color: #3e999f;
}
pre .hljs-function,
code .hljs-function,
pre .python .hljs-decorator,
code .python .hljs-decorator,
pre .python .hljs-title,
code .python .hljs-title,
pre .ruby .hljs-function .hljs-title,
code .ruby .hljs-function .hljs-title,
pre .ruby .hljs-title .hljs-keyword,
code .ruby .hljs-title .hljs-keyword,
pre .perl .hljs-sub,
code .perl .hljs-sub,
pre .javascript .hljs-title,
code .javascript .hljs-title,
pre .coffeescript .hljs-title,
code .coffeescript .hljs-title {
pre .hljs-title,
code .hljs-title,
pre .hljs-section,
code .hljs-section {
color: #4271ae;
}
pre .hljs-keyword,
code .hljs-keyword,
pre .javascript .hljs-function,
code .javascript .hljs-function {
pre .hljs-selector-tag,
code .hljs-selector-tag {
color: #8959a8;
}
pre .hljs,
code .hljs {
display: block;
overflow-x: auto;
background: white;
color: #4d4d4c;
padding: 0.5em;
}
pre .coffeescript .javascript,
code .coffeescript .javascript,
pre .javascript .xml,
code .javascript .xml,
pre .tex .hljs-formula,
code .tex .hljs-formula,
pre .xml .javascript,
code .xml .javascript,
pre .xml .vbscript,
code .xml .vbscript,
pre .xml .css,
code .xml .css,
pre .xml .hljs-cdata,
code .xml .hljs-cdata {
opacity: 0.5;
pre .hljs-emphasis,
code .hljs-emphasis {
font-style: italic;
}
pre .hljs-strong,
code .hljs-strong {
font-weight: bold;
}

View file

@ -1,140 +1,102 @@
.book .book-body .page-wrapper .page-inner section.normal pre,
.book .book-body .page-wrapper .page-inner section.normal code {
/* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow.css */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Tomorrow Comment */
/* Tomorrow Red */
/* Tomorrow Orange */
/* Tomorrow Yellow */
/* Tomorrow Green */
/* Tomorrow Aqua */
/* Tomorrow Blue */
/* Tomorrow Purple */
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-title {
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-quote,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-quote {
color: #8e908c;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-name,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-name,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion {
color: #c82829;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-builtin-name,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-builtin-name,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-type,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-type,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-params,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-link,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-link {
color: #f5871f;
}
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute {
color: #eab700;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-value,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-header,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-bullet,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition {
color: #718c00;
}
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
color: #3e999f;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-function,
.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
.book .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-section,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-section {
color: #4271ae;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag {
color: #8959a8;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book .book-body .page-wrapper .page-inner section.normal code .hljs {
display: block;
overflow-x: auto;
background: white;
color: #4d4d4c;
padding: 0.5em;
}
.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
.book .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
.book .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
.book .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
.book .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .css,
.book .book-body .page-wrapper .page-inner section.normal code .xml .css,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
opacity: 0.5;
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis {
font-style: italic;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-strong,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-strong {
font-weight: bold;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
/* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/solarized-light.css */
/*
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
@ -146,157 +108,108 @@ Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmai
/* Solarized Yellow */
/* Solarized Orange */
/* Solarized Red */
/* Solarized Violet */
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #fdf6e3;
color: #657b83;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template_comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template_comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-header,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-header,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctype,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctype,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pi,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pi,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-javadoc,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-javadoc {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-quote {
color: #93a1a1;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-winutils,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-winutils,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .method,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .method,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-request,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-request,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-status,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-status,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .nginx .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .nginx .hljs-title {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition {
color: #859900;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-command,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-command,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-rules .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-rules .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-phpdoc,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-phpdoc,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-meta-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-meta-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-hexcolor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-hexcolor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_url,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_url {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp {
color: #2aa198;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-localvars,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-localvars,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-chunk,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-chunk,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-decorator,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-decorator,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-identifier,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-identifier,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .vhdl .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .vhdl .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-function,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-function {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-section,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-section,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-name,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-name,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class {
color: #268bd2;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-body,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-body,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .smalltalk .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .smalltalk .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-constant,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-parent,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-parent,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .haskell .hljs-type,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .haskell .hljs-type,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_reference,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_reference {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-type,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-type {
color: #b58900;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-shebang,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-shebang,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-change,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-change,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-special,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-special,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr_selector,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr_selector,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-cdata,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-cdata,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .clojure .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .clojure .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-header {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link {
color: #cb4b16;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-important,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-important {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion {
color: #dc322f;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_label,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_label {
color: #6c71c4;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula {
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-formula {
background: #eee8d5;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis {
font-style: italic;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-strong {
font-weight: bold;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
/* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow-night-bright.css */
/* Tomorrow Night Bright Theme */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
@ -305,130 +218,90 @@ Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmai
/* Tomorrow Orange */
/* Tomorrow Yellow */
/* Tomorrow Green */
/* Tomorrow Aqua */
/* Tomorrow Blue */
/* Tomorrow Purple */
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-quote {
color: #969896;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion {
color: #d54e53;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-builtin-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-builtin-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-type,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-type,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-meta,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-link,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-link {
color: #e78c45;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute {
color: #e7c547;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-value,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-header,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition {
color: #b9ca4a;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
color: #70c0b1;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-function,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-section,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-section {
color: #7aa6da;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag {
color: #c397d8;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs {
display: block;
overflow-x: auto;
background: black;
color: #eaeaea;
padding: 0.5em;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .css,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .css,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
opacity: 0.5;
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis {
font-style: italic;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-strong {
font-weight: bold;
}

View file

@ -367,7 +367,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Routing","level":"1.2","depth":1,"ref":"","articles":[{"title":"Route syntax","level":"1.2.1","depth":2,"path":"routing/route_syntax.md","ref":"routing/route_syntax.md","articles":[]},{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"README.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Routing","level":"1.2","depth":1,"ref":"","articles":[{"title":"Route syntax","level":"1.2.1","depth":2,"path":"routing/route_syntax.md","ref":"routing/route_syntax.md","articles":[]},{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"README.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View file

@ -373,18 +373,18 @@
(<span class="hljs-name">require</span> &apos;[clojure.spec.alpha <span class="hljs-symbol">:as</span> s])
(<span class="hljs-name">require</span> &apos;[spec-tools.core <span class="hljs-symbol">:as</span> st])
(<span class="hljs-name">s/def</span> :<span class="hljs-symbol">:x</span> (<span class="hljs-name">st/spec</span> int?))
(<span class="hljs-name">s/def</span> :<span class="hljs-symbol">:y</span> (<span class="hljs-name">st/spec</span> int?))
(<span class="hljs-name">s/def</span> :<span class="hljs-symbol">:total</span> int?)
(<span class="hljs-name">s/def</span> :<span class="hljs-symbol">:request</span> (<span class="hljs-name">s/keys</span> <span class="hljs-symbol">:req-un</span> [:<span class="hljs-symbol">:x</span> :<span class="hljs-symbol">:y</span>]))
(<span class="hljs-name">s/def</span> :<span class="hljs-symbol">:response</span> (<span class="hljs-name">s/keys</span> <span class="hljs-symbol">:req-un</span> [:<span class="hljs-symbol">:total</span>]))
(<span class="hljs-name">s/def</span> <span class="hljs-symbol">::x</span> (<span class="hljs-name">st/spec</span> int?))
(<span class="hljs-name">s/def</span> <span class="hljs-symbol">::y</span> (<span class="hljs-name">st/spec</span> int?))
(<span class="hljs-name">s/def</span> <span class="hljs-symbol">::total</span> int?)
(<span class="hljs-name">s/def</span> <span class="hljs-symbol">::request</span> (<span class="hljs-name">s/keys</span> <span class="hljs-symbol">:req-un</span> [<span class="hljs-symbol">::x</span> <span class="hljs-symbol">::y</span>]))
(<span class="hljs-name">s/def</span> <span class="hljs-symbol">::response</span> (<span class="hljs-name">s/keys</span> <span class="hljs-symbol">:req-un</span> [<span class="hljs-symbol">::total</span>]))
(<span class="hljs-name"><span class="hljs-builtin-name">def</span></span> app
(<span class="hljs-name">ring/ring-handler</span>
(<span class="hljs-name">ring/router</span>
[<span class="hljs-string">&quot;/api&quot;</span>
[<span class="hljs-string">&quot;/ping&quot;</span> {<span class="hljs-symbol">:parameters</span> {<span class="hljs-symbol">:body</span> :<span class="hljs-symbol">:request</span>}
<span class="hljs-symbol">:responses</span> {<span class="hljs-number">200</span> {<span class="hljs-symbol">:schema</span> :<span class="hljs-symbol">:response</span>}}
[<span class="hljs-string">&quot;/ping&quot;</span> {<span class="hljs-symbol">:parameters</span> {<span class="hljs-symbol">:body</span> <span class="hljs-symbol">::request</span>}
<span class="hljs-symbol">:responses</span> {<span class="hljs-number">200</span> {<span class="hljs-symbol">:schema</span> <span class="hljs-symbol">::response</span>}}
<span class="hljs-symbol">:get</span> {<span class="hljs-symbol">:handler</span> (<span class="hljs-name"><span class="hljs-builtin-name">fn</span></span> [{{{<span class="hljs-symbol">:keys</span> [x y]} <span class="hljs-symbol">:body</span>} <span class="hljs-symbol">:parameters</span>}]
{<span class="hljs-symbol">:status</span> <span class="hljs-number">200</span>
<span class="hljs-symbol">:body</span> {<span class="hljs-symbol">:total</span> (<span class="hljs-name"><span class="hljs-builtin-name">+</span></span> x y)}})}}]]
@ -441,7 +441,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Parameter coercion","level":"1.4","depth":1,"next":{"title":"Compiling middleware","level":"1.5","depth":1,"path":"compiling_middleware.md","ref":"compiling_middleware.md","articles":[]},"previous":{"title":"Ring support","level":"1.3","depth":1,"path":"ring.md","ref":"ring.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"parameter_coercion.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Parameter coercion","level":"1.4","depth":1,"next":{"title":"Compiling middleware","level":"1.5","depth":1,"path":"compiling_middleware.md","ref":"compiling_middleware.md","articles":[]},"previous":{"title":"Ring support","level":"1.3","depth":1,"path":"ring.md","ref":"ring.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"parameter_coercion.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View file

@ -356,7 +356,7 @@
<pre><code class="lang-clj">(<span class="hljs-name"><span class="hljs-builtin-name">def</span></span> app
(<span class="hljs-name">ring/ring-handler</span>
(<span class="hljs-name">ring/router</span>
[<span class="hljs-string">&quot;/ping&quot;</span> {<span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:ping</span>
[<span class="hljs-string">&quot;/ping&quot;</span> {<span class="hljs-symbol">:name</span> <span class="hljs-symbol">::ping</span>
<span class="hljs-symbol">:get</span> handler
<span class="hljs-symbol">:post</span> handler}])))
@ -369,7 +369,7 @@
<p>Reverse routing:</p>
<pre><code class="lang-clj">(<span class="hljs-name"><span class="hljs-builtin-name">-&gt;</span></span> app
(<span class="hljs-name">ring/get-router</span>)
(<span class="hljs-name">reitit/match-by-name</span> :<span class="hljs-symbol">:ping</span>)
(<span class="hljs-name">reitit/match-by-name</span> <span class="hljs-symbol">::ping</span>)
<span class="hljs-symbol">:path</span>)
<span class="hljs-comment">; &quot;/ping&quot;</span>
</code></pre>
@ -382,9 +382,9 @@
<p>A middleware and a handler:</p>
<pre><code class="lang-clj">(<span class="hljs-name"><span class="hljs-builtin-name">defn</span></span> wrap [handler id]
(<span class="hljs-name"><span class="hljs-builtin-name">fn</span></span> [request]
(<span class="hljs-name">handler</span> (<span class="hljs-name">update</span> request :<span class="hljs-symbol">:acc</span> (<span class="hljs-name">fnil</span> conj []) id))))
(<span class="hljs-name">handler</span> (<span class="hljs-name">update</span> request <span class="hljs-symbol">::acc</span> (<span class="hljs-name">fnil</span> conj []) id))))
(<span class="hljs-name"><span class="hljs-builtin-name">defn</span></span> handler [{<span class="hljs-symbol">:keys</span> [:<span class="hljs-symbol">:acc</span>]}]
(<span class="hljs-name"><span class="hljs-builtin-name">defn</span></span> handler [{<span class="hljs-symbol">:keys</span> [<span class="hljs-symbol">::acc</span>]}]
{<span class="hljs-symbol">:status</span> <span class="hljs-number">200</span>, <span class="hljs-symbol">:body</span> (<span class="hljs-name"><span class="hljs-builtin-name">conj</span></span> acc <span class="hljs-symbol">:handler</span>)})
</code></pre>
<p>App with nested middleware:</p>
@ -435,14 +435,14 @@
(<span class="hljs-name"><span class="hljs-builtin-name">def</span></span> wrap2
(<span class="hljs-name">middleware/create</span>
{<span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:wrap2</span>
{<span class="hljs-symbol">:name</span> <span class="hljs-symbol">::wrap2</span>
<span class="hljs-symbol">:description</span> <span class="hljs-string">&quot;a nice little mw, takes 1 arg.&quot;</span>
<span class="hljs-symbol">:wrap</span> wrap}))
</code></pre>
<p>As plain map:</p>
<pre><code class="lang-clj"><span class="hljs-comment">;; plain map</span>
(<span class="hljs-name"><span class="hljs-builtin-name">def</span></span> wrap3
{<span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:wrap3</span>
{<span class="hljs-symbol">:name</span> <span class="hljs-symbol">::wrap3</span>
<span class="hljs-symbol">:description</span> <span class="hljs-string">&quot;a nice little mw, :api as arg&quot;</span>
<span class="hljs-symbol">:wrap</span> (<span class="hljs-name"><span class="hljs-builtin-name">fn</span></span> [handler]
(<span class="hljs-name">wrap</span> handler <span class="hljs-symbol">:api</span>))})
@ -455,8 +455,8 @@
<pre><code class="lang-clj">(<span class="hljs-name">require</span> &apos;[clojure.set <span class="hljs-symbol">:as</span> set])
(<span class="hljs-name"><span class="hljs-builtin-name">defn</span></span> wrap-enforce-roles [handler]
(<span class="hljs-name"><span class="hljs-builtin-name">fn</span></span> [{<span class="hljs-symbol">:keys</span> [:<span class="hljs-symbol">:roles</span>] <span class="hljs-symbol">:as</span> request}]
(<span class="hljs-name"><span class="hljs-builtin-name">let</span></span> [required (<span class="hljs-name">some-&gt;</span> request (<span class="hljs-name">ring/get-match</span>) <span class="hljs-symbol">:meta</span> :<span class="hljs-symbol">:roles</span>)]
(<span class="hljs-name"><span class="hljs-builtin-name">fn</span></span> [{<span class="hljs-symbol">:keys</span> [<span class="hljs-symbol">::roles</span>] <span class="hljs-symbol">:as</span> request}]
(<span class="hljs-name"><span class="hljs-builtin-name">let</span></span> [required (<span class="hljs-name">some-&gt;</span> request (<span class="hljs-name">ring/get-match</span>) <span class="hljs-symbol">:meta</span> <span class="hljs-symbol">::roles</span>)]
(<span class="hljs-name"><span class="hljs-builtin-name">if</span></span> (<span class="hljs-name"><span class="hljs-builtin-name">and</span></span> (<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> required) (<span class="hljs-name"><span class="hljs-builtin-name">not</span></span> (<span class="hljs-name">set/intersection</span> required roles)))
{<span class="hljs-symbol">:status</span> <span class="hljs-number">403</span>, <span class="hljs-symbol">:body</span> <span class="hljs-string">&quot;forbidden&quot;</span>}
(<span class="hljs-name">handler</span> request)))))
@ -469,7 +469,7 @@
(<span class="hljs-name">ring/router</span>
[[<span class="hljs-string">&quot;/api&quot;</span>
[<span class="hljs-string">&quot;/ping&quot;</span> handler]
[<span class="hljs-string">&quot;/admin&quot;</span> {:<span class="hljs-symbol">:roles</span> #{<span class="hljs-symbol">:admin</span>}}
[<span class="hljs-string">&quot;/admin&quot;</span> {<span class="hljs-symbol">::roles</span> #{<span class="hljs-symbol">:admin</span>}}
[<span class="hljs-string">&quot;/ping&quot;</span> handler]]]]
{<span class="hljs-symbol">:meta</span> {<span class="hljs-symbol">:middleware</span> [wrap-enforce-roles]}})))
</code></pre>
@ -482,7 +482,7 @@
<span class="hljs-comment">; {:status 403, :body &quot;forbidden&quot;}</span>
</code></pre>
<p>Authorized access to guarded route:</p>
<pre><code class="lang-clj">(<span class="hljs-name">app</span> {<span class="hljs-symbol">:request-method</span> <span class="hljs-symbol">:get</span>, <span class="hljs-symbol">:uri</span> <span class="hljs-string">&quot;/api/admin/ping&quot;</span>, :<span class="hljs-symbol">:roles</span> #{<span class="hljs-symbol">:admin</span>}})
<pre><code class="lang-clj">(<span class="hljs-name">app</span> {<span class="hljs-symbol">:request-method</span> <span class="hljs-symbol">:get</span>, <span class="hljs-symbol">:uri</span> <span class="hljs-string">&quot;/api/admin/ping&quot;</span>, <span class="hljs-symbol">::roles</span> #{<span class="hljs-symbol">:admin</span>}})
<span class="hljs-comment">; {:status 200, :body &quot;ok&quot;}</span>
</code></pre>
@ -528,7 +528,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Ring support","level":"1.3","depth":1,"next":{"title":"Parameter coercion","level":"1.4","depth":1,"path":"parameter_coercion.md","ref":"parameter_coercion.md","articles":[]},"previous":{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"ring.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Ring support","level":"1.3","depth":1,"next":{"title":"Parameter coercion","level":"1.4","depth":1,"path":"parameter_coercion.md","ref":"parameter_coercion.md","articles":[]},"previous":{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"ring.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View file

@ -386,7 +386,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Route conflicts","level":"1.2.4","depth":2,"next":{"title":"Ring support","level":"1.3","depth":1,"path":"ring.md","ref":"ring.md","articles":[]},"previous":{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/route_conflicts.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Route conflicts","level":"1.2.4","depth":2,"next":{"title":"Ring support","level":"1.3","depth":1,"path":"ring.md","ref":"ring.md","articles":[]},"previous":{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/route_conflicts.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View file

@ -327,15 +327,15 @@
<p>A router based on nested route tree:</p>
<pre><code class="lang-clj">(<span class="hljs-name"><span class="hljs-builtin-name">def</span></span> router
(<span class="hljs-name">reitit/router</span>
[<span class="hljs-string">&quot;/api&quot;</span> {<span class="hljs-symbol">:interceptors</span> [:<span class="hljs-symbol">:api</span>]}
[<span class="hljs-string">&quot;/ping&quot;</span> :<span class="hljs-symbol">:ping</span>]
[<span class="hljs-string">&quot;/api&quot;</span> {<span class="hljs-symbol">:interceptors</span> [<span class="hljs-symbol">::api</span>]}
[<span class="hljs-string">&quot;/ping&quot;</span> <span class="hljs-symbol">::ping</span>]
[<span class="hljs-string">&quot;/admin&quot;</span> {<span class="hljs-symbol">:roles</span> #{<span class="hljs-symbol">:admin</span>}}
[<span class="hljs-string">&quot;/users&quot;</span> :<span class="hljs-symbol">:users</span>]
[<span class="hljs-string">&quot;/db&quot;</span> {<span class="hljs-symbol">:interceptors</span> [:<span class="hljs-symbol">:db</span>]
[<span class="hljs-string">&quot;/users&quot;</span> <span class="hljs-symbol">::users</span>]
[<span class="hljs-string">&quot;/db&quot;</span> {<span class="hljs-symbol">:interceptors</span> [<span class="hljs-symbol">::db</span>]
<span class="hljs-symbol">:roles</span> ^<span class="hljs-symbol">:replace</span> #{<span class="hljs-symbol">:db-admin</span>}}
[<span class="hljs-string">&quot;/:db&quot;</span> {<span class="hljs-symbol">:parameters</span> {<span class="hljs-symbol">:db</span> String}}
[<span class="hljs-string">&quot;/drop&quot;</span> :<span class="hljs-symbol">:drop-db</span>]
[<span class="hljs-string">&quot;/stats&quot;</span> :<span class="hljs-symbol">:db-stats</span>]]]]]))
[<span class="hljs-string">&quot;/drop&quot;</span> <span class="hljs-symbol">::drop-db</span>]
[<span class="hljs-string">&quot;/stats&quot;</span> <span class="hljs-symbol">::db-stats</span>]]]]]))
</code></pre>
<p>Resolved route tree:</p>
<pre><code class="lang-clj">(<span class="hljs-name">reitit/routes</span> router)
@ -408,7 +408,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Route metadata","level":"1.2.3","depth":2,"next":{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]},"previous":{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/route_metadata.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Route metadata","level":"1.2.3","depth":2,"next":{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]},"previous":{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/route_metadata.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View file

@ -330,8 +330,8 @@
[<span class="hljs-string">&quot;/pong&quot;</span>]]
</code></pre>
<p>Routes with meta-data:</p>
<pre><code class="lang-clj">[[<span class="hljs-string">&quot;/ping&quot;</span> :<span class="hljs-symbol">:ping</span>]
[<span class="hljs-string">&quot;/pong&quot;</span> {<span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:pong</span>}]]
<pre><code class="lang-clj">[[<span class="hljs-string">&quot;/ping&quot;</span> <span class="hljs-symbol">::ping</span>]
[<span class="hljs-string">&quot;/pong&quot;</span> {<span class="hljs-symbol">:name</span> <span class="hljs-symbol">::pong</span>}]]
</code></pre>
<p>Routes with path and catch-all parameters:</p>
<pre><code class="lang-clj">[[<span class="hljs-string">&quot;/users/:user-id&quot;</span>]
@ -339,15 +339,15 @@
</code></pre>
<p>Nested routes with meta-data:</p>
<pre><code class="lang-clj">[<span class="hljs-string">&quot;/api&quot;</span>
[<span class="hljs-string">&quot;/admin&quot;</span> {<span class="hljs-symbol">:middleware</span> [:<span class="hljs-symbol">:admin</span>]}
[<span class="hljs-string">&quot;/user&quot;</span> :<span class="hljs-symbol">:user</span>]
[<span class="hljs-string">&quot;/db&quot;</span> :<span class="hljs-symbol">:db</span>]
[<span class="hljs-string">&quot;/ping&quot;</span> :<span class="hljs-symbol">:ping</span>]]
[<span class="hljs-string">&quot;/admin&quot;</span> {<span class="hljs-symbol">:middleware</span> [<span class="hljs-symbol">::admin</span>]}
[<span class="hljs-string">&quot;/user&quot;</span> <span class="hljs-symbol">::user</span>]
[<span class="hljs-string">&quot;/db&quot;</span> <span class="hljs-symbol">::db</span>]
[<span class="hljs-string">&quot;/ping&quot;</span> <span class="hljs-symbol">::ping</span>]]
</code></pre>
<p>Same routes flattened:</p>
<pre><code class="lang-clj">[[<span class="hljs-string">&quot;/api/admin/user&quot;</span> {<span class="hljs-symbol">:middleware</span> [:<span class="hljs-symbol">:admin</span>], <span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:user</span>}
[<span class="hljs-string">&quot;/api/admin/db&quot;</span> {<span class="hljs-symbol">:middleware</span> [:<span class="hljs-symbol">:admin</span>], <span class="hljs-symbol">:name</span> :<span class="hljs-symbol">:db</span>}
[<span class="hljs-string">&quot;/api/ping&quot;</span> :<span class="hljs-symbol">:ping</span>]]
<pre><code class="lang-clj">[[<span class="hljs-string">&quot;/api/admin/user&quot;</span> {<span class="hljs-symbol">:middleware</span> [<span class="hljs-symbol">::admin</span>], <span class="hljs-symbol">:name</span> <span class="hljs-symbol">::user</span>}
[<span class="hljs-string">&quot;/api/admin/db&quot;</span> {<span class="hljs-symbol">:middleware</span> [<span class="hljs-symbol">::admin</span>], <span class="hljs-symbol">:name</span> <span class="hljs-symbol">::db</span>}
[<span class="hljs-string">&quot;/api/ping&quot;</span> <span class="hljs-symbol">::ping</span>]]
</code></pre>
@ -388,7 +388,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Route syntax","level":"1.2.1","depth":2,"next":{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},"previous":{"title":"Routing","level":"1.2","depth":1,"ref":"","articles":[{"title":"Route syntax","level":"1.2.1","depth":2,"path":"routing/route_syntax.md","ref":"routing/route_syntax.md","articles":[]},{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/route_syntax.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Route syntax","level":"1.2.1","depth":2,"next":{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},"previous":{"title":"Routing","level":"1.2","depth":1,"ref":"","articles":[{"title":"Route syntax","level":"1.2.1","depth":2,"path":"routing/route_syntax.md","ref":"routing/route_syntax.md","articles":[]},{"title":"Routers","level":"1.2.2","depth":2,"path":"routing/routers.md","ref":"routing/routers.md","articles":[]},{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},{"title":"Route conflicts","level":"1.2.4","depth":2,"path":"routing/route_conflicts.md","ref":"routing/route_conflicts.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/route_syntax.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View file

@ -331,8 +331,8 @@
(<span class="hljs-name"><span class="hljs-builtin-name">def</span></span> router
(<span class="hljs-name">reitit/router</span>
[[<span class="hljs-string">&quot;/api&quot;</span>
[<span class="hljs-string">&quot;/ping&quot;</span> :<span class="hljs-symbol">:ping</span>]
[<span class="hljs-string">&quot;/user/:id&quot;</span> :<span class="hljs-symbol">:user</span>]]]))
[<span class="hljs-string">&quot;/ping&quot;</span> <span class="hljs-symbol">::ping</span>]
[<span class="hljs-string">&quot;/user/:id&quot;</span> <span class="hljs-symbol">::user</span>]]]))
</code></pre>
<p><code>:mixed-router</code> is created (both static &amp; wild routes are found):</p>
<pre><code class="lang-clj">(<span class="hljs-name">reitit/router-name</span> router)
@ -359,18 +359,18 @@
<span class="hljs-comment">; :params {:id &quot;1&quot;}}</span>
</code></pre>
<h3 id="name-based-reverse-routing">Name-based (reverse) routing</h3>
<pre><code class="lang-clj">(<span class="hljs-name">reitit/match-by-name</span> router :<span class="hljs-symbol">:user</span>)
<pre><code class="lang-clj">(<span class="hljs-name">reitit/match-by-name</span> router <span class="hljs-symbol">::user</span>)
<span class="hljs-comment">; #PartialMatch{:template &quot;/api/user/:id&quot;,</span>
<span class="hljs-comment">; :meta {:name :user/user},</span>
<span class="hljs-comment">; :result nil,</span>
<span class="hljs-comment">; :params nil,</span>
<span class="hljs-comment">; :required #{:id}}</span>
(<span class="hljs-name">reitit/partial-match?</span> (<span class="hljs-name">reitit/match-by-name</span> router :<span class="hljs-symbol">:user</span>))
(<span class="hljs-name">reitit/partial-match?</span> (<span class="hljs-name">reitit/match-by-name</span> router <span class="hljs-symbol">::user</span>))
<span class="hljs-comment">; true</span>
</code></pre>
<p>Only a partial match. Let&apos;s provide the path-parameters:</p>
<pre><code class="lang-clj">(<span class="hljs-name">reitit/match-by-name</span> router :<span class="hljs-symbol">:user</span> {<span class="hljs-symbol">:id</span> <span class="hljs-string">&quot;1&quot;</span>})
<pre><code class="lang-clj">(<span class="hljs-name">reitit/match-by-name</span> router <span class="hljs-symbol">::user</span> {<span class="hljs-symbol">:id</span> <span class="hljs-string">&quot;1&quot;</span>})
<span class="hljs-comment">; #Match{:template &quot;/api/user/:id&quot;</span>
<span class="hljs-comment">; :meta {:name :user/user}</span>
<span class="hljs-comment">; :path &quot;/api/user/1&quot;</span>
@ -378,7 +378,7 @@
<span class="hljs-comment">; :params {:id &quot;1&quot;}}</span>
</code></pre>
<p>There is also a exception throwing version:</p>
<pre><code class="lang-clj">(<span class="hljs-name">reitit/match-by-name!</span> router :<span class="hljs-symbol">:user</span>)
<pre><code class="lang-clj">(<span class="hljs-name">reitit/match-by-name!</span> router <span class="hljs-symbol">::user</span>)
<span class="hljs-comment">; ExceptionInfo missing path-params for route /api/user/:id: #{:id}</span>
</code></pre>
@ -424,7 +424,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Routers","level":"1.2.2","depth":2,"next":{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},"previous":{"title":"Route syntax","level":"1.2.1","depth":2,"path":"routing/route_syntax.md","ref":"routing/route_syntax.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/routers.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Routers","level":"1.2.2","depth":2,"next":{"title":"Route metadata","level":"1.2.3","depth":2,"path":"routing/route_metadata.md","ref":"routing/route_metadata.md","articles":[]},"previous":{"title":"Route syntax","level":"1.2.1","depth":2,"path":"routing/route_syntax.md","ref":"routing/route_syntax.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"routing/routers.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View file

@ -451,7 +451,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Validating route-trees","level":"1.6","depth":1,"next":{"title":"Configuring routers","level":"1.7","depth":1,"path":"configuring_routers.md","ref":"configuring_routers.md","articles":[]},"previous":{"title":"Compiling middleware","level":"1.5","depth":1,"path":"compiling_middleware.md","ref":"compiling_middleware.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"validating.md","mtime":"2017-09-14T14:20:32.192Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:21:05.600Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Validating route-trees","level":"1.6","depth":1,"next":{"title":"Configuring routers","level":"1.7","depth":1,"path":"configuring_routers.md","ref":"configuring_routers.md","articles":[]},"previous":{"title":"Compiling middleware","level":"1.5","depth":1,"path":"compiling_middleware.md","ref":"compiling_middleware.md","articles":[]},"dir":"ltr"},"config":{"plugins":["editlink","github","highlight"],"root":"doc","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"editlink":{"label":"Edit This Page","multilingual":false,"base":"https://github.com/metosin/reitit/tree/master/doc"},"github":{"url":"https://github.com/metosin/reitit"},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"gitbook":"*"},"file":{"path":"validating.md","mtime":"2017-09-14T14:39:52.093Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2017-09-14T14:40:29.150Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>