Merge "Add branding to generate different look and feel for Rackspace API site"

This commit is contained in:
Jenkins
2014-03-21 15:43:30 +00:00
committed by Gerrit Code Review
10 changed files with 1535 additions and 178 deletions

View File

@@ -66,6 +66,12 @@ public abstract class ApiRefMojo extends AbstractHtmlMojo {
* default-value=""
*/
private String security;
/**
* Specifies the branding to use on the page
*
* @parameter expression="${generate-html.branding}" default-value="openstack"
*/
private String branding;
protected TransformerBuilder createTransformerBuilder(URIResolver resolver) {
return super.createTransformerBuilder (new DocBookResolver (resolver, getType()));
@@ -103,6 +109,7 @@ public abstract class ApiRefMojo extends AbstractHtmlMojo {
Map<String, Object> map = new HashMap<String, Object>();
map.put("security", security);
map.put("branding", branding);
map.put("canonicalUrlBase", canonicalUrlBase);
map.put("failOnValidationError", failOnValidationError);
map.put("project.build.directory", this.projectBuildDirectory);

View File

@@ -0,0 +1,72 @@
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 200;
src: local('Source Sans Pro ExtraLight'), local('SourceSansPro-ExtraLight'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGC-IiwWNzQT_LXAtr-Ee9Pw.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 300;
src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGMVNtom4QlEDNJaqqqzqdSs.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/ODelI1aHBYDBqgeIAH2zlNHq-FFgoDNV3GTKpHwuvtI.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 600;
src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGCmgpmuQqK2I-L2S9cF65Ek.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 700;
src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGIqjGYJUyOXcBwUQbRaNH6c.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 900;
src: local('Source Sans Pro Black'), local('SourceSansPro-Black'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGC7eGk4PJkA83J1AXCmgUfc.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 200;
src: local('Source Sans Pro ExtraLight Italic'), local('SourceSansPro-ExtraLightIt'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/fpTVHK8qsXbIeTHTrnQH6OE3EfhCMemg4BxrY2mmJD_3rGVtsTkPsbDajuO5ueQw.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 300;
src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/fpTVHK8qsXbIeTHTrnQH6H7XMO6S-yJpg1torQFmnv33rGVtsTkPsbDajuO5ueQw.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 400;
src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/M2Jd71oPJhLKp0zdtTvoM_bce-VcyLJMRR1FC9qWbU8.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 600;
src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/fpTVHK8qsXbIeTHTrnQH6J4LxuTxC3JbLqy8IUt0K1T3rGVtsTkPsbDajuO5ueQw.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 700;
src: local('Source Sans Pro Bold Italic'), local('SourceSansPro-BoldIt'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/fpTVHK8qsXbIeTHTrnQH6PgYMAt3u4NmhhzLLLPJ5qH3rGVtsTkPsbDajuO5ueQw.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 900;
src: local('Source Sans Pro Black Italic'), local('SourceSansPro-BlackIt'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/fpTVHK8qsXbIeTHTrnQH6MJvEBP8Mx4XcuTrPnlPwTr3rGVtsTkPsbDajuO5ueQw.woff) format('woff');
}

View File

@@ -0,0 +1,274 @@
/* @override
http://openstack.dev/themes/openstack/css/main.css
http://localhost:8888/themes/openstack/css/main.css
http://staging.openstack.org/themes/openstack/css/main.css
*/
#rightColumn {
float:left;
position: relative;
width: 1em;
}
.highlight {
background-color: #FFAA66;
}
body {
background: no-repeat scroll 0px 0px;
color: #535353;
font-family: "Source Sans Pro";
font-weight: 400;
font-size: 150%;
}
.navbar-brand {
display: block;
margin-top: 8px;
text-indent: -1000em;
background: url(../images/rackspace-logo.png) no-repeat left center;
height: 54px;
width: 177px;
color: black;
}
.container {
width: 1210px;
margin-right: auto;
margin-left: auto;
}
.navbar-default {
background-color: black;
border: none;
}
.subhead {
border-bottom: 1px dotted;
padding-bottom: 5px;
border-color: #c5e2ea;
margin-bottom: 20px;
}
.subhead h1 {
font-size: 24px;
font-weight: normal;
}
.subhead h2 {
color: #0eafcd;
font-size: 22px;
font-weight: bold;
}
.subhead h3 {
font-size: 18px;
color: black;
font-weight: normal;
}
a.headerlink {
color: #999;
position: absolute;
visibility: hidden;
top: 0;
left: 0;
}
.subhead h2,
.subhead h3
{
position: relative;
margin-left: -20px;
padding-left: 20px;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
.nobody {
margin-top: 20px;
}
/*
* Side navigation
*
* Scrollspy and affixed enhanced navigation to highlight sections and secondary
* sections of docs content.
*
* Informed by bootstrap 3.0 site
*/
/* By default it's not affixed in mobile views, so undo that */
.api-sidebar.affix {
position: static;
}
/* First level of nav */
.api-sidenav {
margin-top: 20px;
margin-left: -10px;
margin-bottom: 30px;
width: auto;
padding-top: 10px;
padding-bottom: 10px;
text-shadow: 0 1px 0 #fff;
background-color: #f5f5f5;
border-radius: 5px;
}
/* All levels of nav */
.api-sidebar .nav > li > a {
display: block;
width: auto;
color: #716b7a;
padding: 5px 20px;
font-size: 14px;
}
.api-sidebar .nav > li > a:hover,
.api-sidebar .nav > li > a:focus {
text-decoration: none;
background-color: #E0E4E6;
}
.api-sidebar .nav > .active > a,
.api-sidebar .nav > .active:hover > a,
.api-sidebar .nav > .active:focus > a {
font-weight: bold;
color: #C50022;
background-color: transparent;
border-right: 2px solid #C50022;
}
/* Nav: second level (shown on .active) */
.api-sidebar .nav .nav {
margin-bottom: 8px;
}
.api-sidebar .nav .nav > li > a {
padding-top: 3px;
padding-bottom: 3px;
padding-left: 30px;
font-size: 90%;
}
/* Show and affix the side nav when space allows it */
@media (min-width: 992px) {
.api-sidebar .nav > .active > ul {
display: block;
}
/* Widen the fixed sidebar */
.api-sidebar.affix,
.api-sidebar.affix-bottom {
width: 213px;
}
.api-sidebar.affix {
position: fixed; /* Undo the static from mobile first approach */
top: 20px;
}
.api-sidebar.affix-bottom {
position: absolute; /* Undo the static from mobile first approach */
}
.api-sidebar.affix-bottom .api-sidenav,
.api-sidebar.affix .api-sidenav {
margin-top: 0;
margin-bottom: 15px;
}
}
.nav > li.divider {
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #0EAFCD;
}
@media (min-width: 1200px) {
/* Widen the fixed sidebar again */
.api-sidebar.affix-bottom,
.api-sidebar.affix {
width: 263px;
}
}
/* @end */
/* handle making the rows visible in mobile */
.doc-entry > .row {
background-color: #eee;
margin-bottom: 10px;
padding: 10px 0;
}
@media (min-width: 992px) {
.doc-entry > .row {
background-color: transparent;
margin-bottom: inherit;
padding: inherit;
}
}
@media (min-width: 992px) {
.navbar-default {
margin-top: 25px;
}
}
@media (min-width: 768px) {
.navbar-default .navbar-nav {
margin-top: 15px;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
color: red;
border-bottom: 2px solid #C50022;
padding-right: 0;
background-color: transparent;
}
.navbar-nav > li > a {
padding: 5px 20px 5px 0;
color: #5BC0DE;
}
}
#footer {
border-top: 1px solid #eee;
padding-top: 20px;
}
.navbar-default .navbar-nav > li > a {
color: #5BC0DE;
}
.label-success {
background-color: white;
border-color: white;
color: #0EAFCD;
font-size: 100%;
}
.btn-info {
background-color: #0EAFCD;
border-color: #0EAFCD;
}
.rowtop {
margin-top: 75px;
}

View File

@@ -1,10 +1,9 @@
/* @override
/* @override
http://openstack.dev/themes/openstack/css/main.css
http://localhost:8888/themes/openstack/css/main.css
http://staging.openstack.org/themes/openstack/css/main.css
*/
#rightColumn {
float:left;
position: relative;
@@ -35,7 +34,6 @@ body {
border: none;
}
.subhead {
border-bottom: 1px dotted;
padding-bottom: 5px;

View File

@@ -0,0 +1,124 @@
/*
HTML5 Reset :: style.css
----------------------------------------------------------
We have learned much from/been inspired by/taken code where offered from:
Eric Meyer :: http://meyerweb.com
HTML5 Doctor :: http://html5doctor.com
and the HTML5 Boilerplate :: http://html5boilerplate.com
-------------------------------------------------------------------------------*/
/* Let's default this puppy out
-------------------------------------------------------------------------------*/
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
/* consider resetting the default cursor: https://gist.github.com/murtaugh/5247154 */
/* Apply a natural box layout model to all elements: http://paulirish.com/2012/box-sizing-border-box-ftw/ */
*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
article, aside, figure, footer, header, nav, section, details, summary {display: block;}
/* Responsive images and other embedded objects
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
If this default setting for images is causing issues, you might want to replace it with a .responsive class instead. */
img,
object,
embed {max-width: 100%;}
/* force a vertical scrollbar to prevent a jumpy page */
html {overflow-y: scroll;}
/* we use a lot of ULs that aren't bulleted.
don't forget to restore the bullets within content. */
ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote:before,
blockquote:after,
q:before,
q:after {content: ''; content: none;}
a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}
del {text-decoration: line-through;}
abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}
/* tables still need cellspacing="0" in the markup */
table {border-collapse: collapse; border-spacing: 0;}
th {font-weight: bold; vertical-align: bottom;}
td {font-weight: normal; vertical-align: top;}
hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}
input, select {vertical-align: middle;}
pre {
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
word-wrap: break-word; /* IE */
}
input[type="radio"] {vertical-align: text-bottom;}
input[type="checkbox"] {vertical-align: bottom;}
.ie7 input[type="checkbox"] {vertical-align: baseline;}
.ie6 input {vertical-align: text-bottom;}
select, input, textarea {font: 99% sans-serif;}
table {font-size: inherit; font: 100%;}
small {font-size: 85%;}
strong {font-weight: bold;}
td, td img {vertical-align: top;}
/* Make sure sup and sub don't screw with your line-heights
gist.github.com/413930 */
sub, sup {font-size: 75%; line-height: 0; position: relative;}
sup {top: -0.5em;}
sub {bottom: -0.25em;}
/* standardize any monospaced elements */
pre, code, kbd, samp {font-family: monospace, sans-serif;}
/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
input[type=file],
button {cursor: pointer;}
/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {margin: 0;}
/* make buttons play nice in IE */
button,
input[type=button] {width: auto; overflow: visible;}
/* scale images in IE7 more attractively */
.ie7 img {-ms-interpolation-mode: bicubic;}
/* prevent BG image flicker upon hover
(commented out as usage is rare, and the filter syntax messes with some pre-processors)
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
*/
/* let's clear some floats */
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }

View File

@@ -0,0 +1,657 @@
.valigned {
position: relative;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
}
.smallcapped {
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
}
.valigned {
position: relative;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
}
.smallcapped {
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
}
.twocol-layout {
padding-top: 80px;
}
.twocol-layout .content {
width: 650px;
float: left;
}
.twocol-layout .content h1 {
font-size: 4em;
letter-spacing: -5px;
color: #333;
}
.twocol-layout .content h1 .highlight-blue {
color: #0eafcd;
}
.twocol-layout .content .page-subtitle {
color: #999;
font-size: 1.6em;
font-style: italic;
}
.twocol-layout .sidebar {
width: 250px;
float: right;
}
.twocol-layout .sidebar .block {
padding: 20px;
background: #eee;
margin-bottom: 20px;
border-radius: 20px;
}
.blog-entries .entry {
margin-top: 40px;
padding-top: 40px;
border-top: 1px solid #ccc;
}
.blog-entries .entry.single {
margin: 0;
padding: 0;
border: none;
}
.blog-entries .entry h1.title {
line-height: 1em;
}
.blog-entries .entry h2.title {
display: block;
font-size: 2.6em;
line-height: 1em;
font-weight: 600;
letter-spacing: -1px;
}
.blog-entries .entry h2.title a {
text-decoration: none;
color: #1c4455;
}
.blog-entries .entry .byline {
display: block;
margin-top: 10px;
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
color: #0eafcd;
}
.blog-entries .entry .entry-content {
display: block;
}
.blog-entries .entry .entry-content p {
margin-top: 1em;
line-height: 1.4em;
}
.blog-entries .entry .entry-content h2 {
font-size: 1.6em;
font-weight: 600;
margin-top: 1em;
letter-spacing: -1px;
color: #0eafcd;
border-top: 1px dashed #d9d9d9;
padding-top: 1em;
}
.blog-entries .entry .entry-content h4 {
margin-top: 2em;
font-size: 1em;
color: #0eafcd;
font-weight: 600;
}
.blog-entries .entry .entry-content pre {
background: #1c4455;
padding: 20px;
margin: 1em 0;
border-radius: 10px;
line-height: 1.45em;
font-size: 10pt;
color: #eee;
overflow: auto;
font-family: monospace, serif;
_font-family: 'courier new', monospace;
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
.blog-entries .entry .entry-content ul {
list-style: disc;
}
.blog-entries .entry .entry-content ul li {
margin-left: 20px;
}
.blog-entries .entry .readmore {
display: inline-block;
margin-top: 20px;
background: #49c4d7;
padding: 10px 20px;
color: white;
text-decoration: none;
border-radius: 100px;
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
}
.blog-entries .entry .readmore:hover {
background: #0eafcd;
}
.blog-entries .pagination-container {
margin-top: 40px;
padding-top: 40px;
border-top: 1px solid #ccc;
}
.blog-entries .pagination-container .pagination .page {
display: inline-block;
margin-right: 5px;
}
.blog-entries .pagination-container .pagination .page a {
background: #eee;
color: #666;
padding: 5px 10px;
border-radius: 100px;
text-decoration: none;
}
.blog-entries .pagination-container .pagination .page a:hover {
color: white;
background: #0eafcd;
}
.blog-entries .pagination-container .pagination .page.current a {
background: #0eafcd;
color: white;
}
.blog-entries .pagination-container .pagination .page.current a:hover {
color: white;
background: #1c4455;
}
.blog-entries .relatedentries {
margin-top: 40px;
padding-top: 40px;
border-top: 1px solid #ccc;
}
.blog-entries .relatedentries ul li {
margin-bottom: 1em;
width: 45%;
}
.blog-entries .relatedentries ul li .related-pretitle {
display: block;
color: black;
text-transform: uppercase;
font-size: .8em;
font-weight: 700;
letter-spacing: 1px;
text-decoration: none;
color: #999;
}
.blog-entries .relatedentries ul li .related-title {
display: block;
font-size: 1.2em;
line-height: 1em;
font-weight: 600;
letter-spacing: -1px;
}
.blog-entries .relatedentries ul li .related-title a {
text-decoration: none;
color: #0eafcd;
}
.blog-entries .relatedentries ul li.previous {
text-align: left;
float: left;
}
.blog-entries .relatedentries ul li.next {
text-align: right;
float: right;
}
.valigned {
position: relative;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
}
.smallcapped {
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
}
.hero-slider {
color: white;
}
.hero-slider ul.slides li {
display: block;
width: 100%;
background: black;
background-repeat: no-repeat;
background-position: 66% 30px;
background-size: auto;
}
.hero-slider ul.slides li .bg {
background: url(../img/hero-bottom-bg.svg) no-repeat;
background-size: 111%;
background-position: bottom center;
}
.hero-slider ul.slides li .inner {
width: 940px;
margin: auto;
padding: 110px 70px 120px 70px;
text-align: center;
text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.2);
}
.hero-slider ul.slides li .inner .topline {
display: block;
opacity: .7;
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
font-weight: 600;
letter-spacing: 2px;
}
.hero-slider ul.slides li .inner .headline {
display: block;
margin-top: 15px;
font-size: 6em;
font-weight: 600;
letter-spacing: -4px;
line-height: .9em;
}
.hero-slider ul.slides li .inner .descriptive {
display: block;
margin-top: 20px;
font-size: 1.5em;
line-height: 1.5em;
opacity: .9;
}
.hero-slider ul.slides li .inner .ctabtn {
display: inline-block;
margin-top: 30px;
color: black;
padding: 15px 30px;
border-radius: 100px;
background: white;
opacity: .9;
text-decoration: none;
text-shadow: none;
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
letter-spacing: 2px;
}
.hero-slider ul.slides li .inner .ctabtn:hover {
opacity: 1;
}
.hero-slider ul.slides li.hero-devtrial {
background-color: #0eafcd;
background-image: url(../img/slide4.svg);
}
.hero-slider ul.slides li.hero-devtrial .ctabtn {
color: #0eafcd;
}
.hero-slider ul.slides li.hero-sdks {
background-color: #1f9b48;
background-image: url(../img/slide2.svg);
}
.hero-slider ul.slides li.hero-services {
background-color: #df2134;
background-image: url(../img/slide3.svg);
}
.hero-slider ul.slides li.hero-osshosting {
background-color: #fdba22;
background-image: url(../img/slide3.svg);
}
.hero-slider ul.slides li.hero-sponsorship {
background-color: #824199;
background-image: url(../img/slide3.svg);
}
.bodyitem.shieldboxes {
margin: -40px auto 30px auto;
}
.bodyitem.shieldboxes ul {
margin-left: -20px;
}
.bodyitem.shieldboxes ul li {
display: block;
width: 300px;
padding: 20px 40px 80px;
background: url(../img/shieldbox.svg) no-repeat bottom center;
float: left;
margin-left: 20px;
text-align: center;
}
.bodyitem.shieldboxes ul li img {
margin: 20px auto;
display: block;
max-height: 80px;
opacity: .15;
}
.bodyitem.shieldboxes ul li .title {
display: block;
font-size: 2.2em;
font-weight: 700;
letter-spacing: -1px;
margin-bottom: 10px;
}
.bodyitem.shieldboxes ul li .description {
font-size: 1.2em;
line-height: 1.5em;
display: block;
}
.bodyitem.shieldboxes ul li .cta {
display: inline-block;
padding: 8px 0;
width: 75%;
font-weight: 600;
text-decoration: none;
color: white;
margin-top: 20px;
border-radius: 30px;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
}
.bodyitem.shieldboxes ul li.shield1 .description {
margin-bottom: 21px;
}
.bodyitem.shieldboxes ul li.shield1 .description .fineprint {
line-height: 1em;
font-size: .7em;
color: #999;
margin-top: 0px;
display: block;
}
.bodyitem.shieldboxes ul li.shield1 a {
color: #666;
}
.bodyitem.shieldboxes ul li.shield1 .cta {
background: #fdba22;
margin-top: 0;
color: white;
}
.bodyitem.shieldboxes ul li.shield1 .cta:hover {
background: #ef9923;
}
.bodyitem.shieldboxes ul li.shield2 .cta {
background: #1f9b48;
}
.bodyitem.shieldboxes ul li.shield2 .cta:hover {
background: #106745;
}
.bodyitem.shieldboxes ul li.shield3 .cta {
background: #df2134;
}
.bodyitem.shieldboxes ul li.shield3 .cta:hover {
background: #ab1d37;
}
.bodyitem.secondaryboxes {
margin-bottom: 60px;
}
.bodyitem.secondaryboxes ul {
margin-left: -20px;
}
.bodyitem.secondaryboxes ul li {
display: block;
width: 220px;
padding: 10px;
float: left;
margin-left: 20px;
text-align: center;
}
.bodyitem.secondaryboxes ul li img {
margin: 20px auto;
display: block;
max-height: 60px;
opacity: .15;
}
.bodyitem.secondaryboxes ul li .title {
display: block;
font-size: 1.4em;
line-height: 1em;
font-weight: 700;
letter-spacing: -1px;
margin-bottom: 10px;
}
.bodyitem.secondaryboxes ul li .description {
font-size: 1em;
display: block;
margin-bottom: 20px;
}
.bodyitem.secondaryboxes ul li .cta {
display: inline-block;
padding: 8px 0;
width: 66%;
background: #0eafcd;
font-weight: 600;
text-decoration: none;
color: white;
border-radius: 30px;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
}
.bodyitem.secondaryboxes ul li .cta:hover {
background: #1c4455;
}
.bodyitem.fromtheblog {
padding-top: 60px;
text-align: center;
color: #1c4455;
border-top: 1px solid #ccc;
}
.bodyitem.fromtheblog h2 {
font-size: 2.2em;
letter-spacing: -1px;
}
.bodyitem.fromtheblog h2 a {
color: #0eafcd;
text-decoration: none;
}
.bodyitem.fromtheblog h2 a:hover {
text-decoration: underline;
}
.bodyitem.fromtheblog ul {
margin: 20px 0 0 -20px;
}
.bodyitem.fromtheblog ul li {
display: block;
width: 300px;
padding: 20px;
float: left;
margin-left: 20px;
}
.bodyitem.fromtheblog ul li .title a {
font-size: 1.4em;
font-weight: 600;
display: block;
line-height: 1.1em;
color: #1c4455;
text-decoration: none;
}
.bodyitem.fromtheblog ul li .title a:hover {
color: #0eafcd;
}
.bodyitem.fromtheblog ul li .byline {
font-weight: 600;
display: block;
opacity: .8;
margin-top: 5px;
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
}
.valigned {
position: relative;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
}
.smallcapped {
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
}
.bodyitem.shieldboxes.sixup ul li {
width: 140px;
padding: 40px;
margin-bottom: 5px;
}
.bodyitem.shieldboxes.sixup ul li a {
text-decoration: none;
}
.bodyitem.shieldboxes.sixup ul li a .imgwrap {
display: block;
height: 80px;
margin: 0 auto;
padding: 0;
}
.bodyitem.shieldboxes.sixup ul li a img {
max-height: 60px;
display: block;
margin: 0 auto;
opacity: .5;
padding: 0;
position: relative;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
}
.bodyitem.shieldboxes.sixup ul li a .title {
font-size: 1.4em;
color: #333;
}
.bodyitem.shieldboxes.sixup ul li:hover {
padding-bottom: 45px;
margin-bottom: 0;
}
.bodyitem.sdktable {
margin-bottom: 80px;
}
.bodyitem.sdktable a {
color: #1f9b48;
}
.bodyitem.sdktable .lang {
border-top: 1px solid #ccc;
padding-top: 40px;
margin: 40px 0 0 -20px;
}
.bodyitem.sdktable .lang .col {
width: 220px;
float: left;
margin-left: 20px;
}
.bodyitem.sdktable .lang .col h2 {
display: block;
font-size: 2.6em;
margin-bottom: 10px;
font-weight: 700;
letter-spacing: -3px;
}
.bodyitem.sdktable .lang .col .cta {
padding: 10px 20px;
background: #1f9b48;
color: white;
display: inline-block;
border-radius: 100px;
text-decoration: none;
}
.bodyitem.sdktable .lang .col .cta:hover {
background: #106745;
}
.bodyitem.sdktable .lang .col .colheader {
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
display: block;
}
.bodyitem.sdktable .lang .col p {
margin-top: 1em;
}
body.devtrial-page .fromtheblog {
border-top: none;
}
.bodyitem.shieldpage {
background: #eee;
padding: 60px 80px 80px 80px;
margin-top: -40px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
border: 1px solid #ddd;
}
.bodyitem.shieldpage p {
margin-top: 1em;
}
.bodyitem.shieldpage .bigpara {
font-size: 1.3em;
line-height: 1.2em;
font-style: italic;
}
body {
background: white;
font-family: "Source Sans Pro";
font-weight: 400;
}
a {
color: #0eafcd;
}
.bodyitem {
width: 940px;
margin: auto;
}
.header {
position: fixed;
width: 100%;
z-index: 100;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
opacity: .85;
background: black;
color: white;
}
.header:hover {
opacity: 1;
}
.header .inner {
width: 940px;
margin: auto;
padding: 10px;
}
.header .inner .title {
display: block;
line-height: 20px;
color: white;
float: left;
text-decoration: none;
font-weight: 700;
text-transform: uppercase;
font-size: .8em;
font-size: .9em;
font-weight: 600;
padding-left: 23px;
background: url(../img/rs-logo.svg) no-repeat left center;
background-size: contain;
}
.header .inner ul {
float: right;
}
.header .inner ul li {
display: inline-block;
margin-left: 25px;
}
.header .inner ul li a {
color: #d9d9d9;
text-decoration: none;
font-size: .9em;
line-height: 20px;
}
.header .inner ul li a:hover,
.header .inner ul li a.selected {
color: white;
text-decoration: underline;
}
.footer {
text-align: center;
padding: 100px;
background: #1a1a1a;
color: #666;
margin-top: 80px;
}

View File

@@ -0,0 +1,60 @@
.highlight { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */

480
src/main/resources/cloud/apipage/apipage-main.xsl Normal file → Executable file
View File

@@ -1,143 +1,319 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:wadl="http://wadl.dev.java.net/2009/02"
xmlns:rax="http://docs.rackspace.com/api"
xmlns:d="http://docbook.org/ns/docbook"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml xsdxt rax d" version="2.0">
<xsl:character-map name="comment">
<xsl:output-character character="«" string="&lt;"/>
<xsl:output-character character="»" string="&gt;"/>
<xsl:output-character character="§" string='"'/>
</xsl:character-map>
<xsl:output
method="xhtml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
use-character-maps="comment"
indent="no"/>
<xsl:param name="wadl.norequest.msg"><p class="nobody">This operation does not require a request body.</p></xsl:param>
<xsl:param name="wadl.noresponse.msg"><p class="nobody">This operation does not return a response body.</p></xsl:param>
<xsl:param name="wadl.noreqresp.msg"><p class="nobody">This operation does not require a request body and does not return a response body.</p></xsl:param>
<xsl:param name="googleAnalyticsId"/>
<xsl:param name="googleAnalyticsDomain"/>
<xsl:param name="enableGoogleAnalytics">0</xsl:param>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:wadl="http://wadl.dev.java.net/2009/02"
xmlns:rax="http://docs.rackspace.com/api"
xmlns:d="http://docbook.org/ns/docbook"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml xsdxt rax d" version="2.0">
<xsl:character-map name="comment">
<xsl:output-character character="«" string="&lt;"/>
<xsl:output-character character="»" string="&gt;"/>
<xsl:output-character character="§" string="&quot;"/>
</xsl:character-map>
<xsl:output method="xhtml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
use-character-maps="comment" indent="no"/>
<xsl:param name="wadl.norequest.msg">
<p class="nobody">This operation does not require a request
body.</p>
</xsl:param>
<xsl:param name="wadl.noresponse.msg">
<p class="nobody">This operation does not return a response
body.</p>
</xsl:param>
<xsl:param name="wadl.noreqresp.msg">
<p class="nobody">This operation does not require a request
body and does not return a response body.</p>
</xsl:param>
<xsl:param name="googleAnalyticsId"/>
<xsl:param name="googleAnalyticsDomain"/>
<xsl:param name="enableGoogleAnalytics">0</xsl:param>
<xsl:param name="branding">openstack</xsl:param>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="d:book">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>OpenStack API Documentation</title>
<link rel="stylesheet" href="apiref/css/bootstrap.min.css"/>
<!-- OpenStack Specific CSS -->
<link rel="stylesheet" href="apiref/css/main.css" type="text/css" />
</head>
<body>
<div class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Open Stack</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="http://www.openstack.org" title="Go to the Home page">Home</a></li>
<li><a href="http://www.openstack.org/projects" title="Go to the OpenStack Projects page">Projects</a></li>
<li><a href="http://www.openstack.org/user-stories" title="Go to the OpenStack user stories page">User Stories</a></li>
<li><a href="http://www.openstack.org/community" title="Go to the Community page">Community</a></li>
<li><a href="http://www.openstack.org/blog" title="Go to the OpenStack Blog">Blog</a></li>
<li><a href="http://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
<li class="active"><a href="http://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
</ul>
</div>
</div>
<!-- /.navbar-collapse -->
</div>
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="api-sidebar" data-spy="affix" data-offset-top="80" data-offset-bottom="0">
<ul class="nav api-sidenav">
<xsl:apply-templates select="d:chapter" mode="toc"/>
<!-- header -->
<xsl:choose>
<xsl:when test="$branding = 'rackspace'">
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"/>
<title>Rackspace API Documentation</title>
<link href="apiref/css/css.css" rel="stylesheet"
type="text/css"/>
<!-- compiled from the less files -->
<link rel="stylesheet" href="apiref/css/reset.css"/>
<link rel="stylesheet" href="apiref/css/style.css"/>
<!-- syntax highlighting CSS -->
<link rel="stylesheet" href="apiref/css/syntax.css"/>
<link href="apiref/css/main-rackspace.css"
rel="stylesheet" type="text/css"/>
<link href="apiref/css/bootstrap.min.css" rel="stylesheet"
/>
</head>
</xsl:when>
<xsl:otherwise>
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8"/>
<meta name="viewport"
content="width=device-width, initial-scale=1.0"/>
<title>OpenStack API Documentation</title>
<link rel="stylesheet" href="apiref/css/bootstrap.min.css"/>
<!-- OpenStack Specific CSS -->
<link rel="stylesheet" href="apiref/css/main.css"
type="text/css"/>
<link href="apiref/css/main.css" rel="stylesheet"
type="text/css"/>
<link href="apiref/css/bootstrap.min.css" rel="stylesheet"
/>
</head>
</xsl:otherwise>
</xsl:choose>
<!-- body -->
<body>
<xsl:choose>
<xsl:when test="$branding = 'rackspace'">
<div class="header">
<div class="inner clearfix">
<a class="title" href="http://162.242.151.184/index.html">Rackspace Developer Portal</a>
<ul>
<li>
<!-- API ref page TOC -->
<xsl:apply-templates select="//d:preface//d:title" mode="menu-toc"/>
<ul class="nav active">
<!-- add list of all services to the sidebar menu -->
<xsl:apply-templates
select="//d:book//d:itemizedlist[@xml:id='service-list']/d:listitem/d:para/d:link"
mode="menu-toc"/>
</ul>
<a href="http://162.242.151.184/main-sdks.html">SDKs</a>
</li>
<li>
<a href="http://162.242.151.184/main-services.html"
>Services</a>
</li>
<li>
<a href="http://162.242.151.184/docs">Docs</a>
</li>
<li>
<a href="http://162.242.151.184/blog-list.html">Developer
Blog</a>
</li>
<li>
<a href="#">Sign Up</a>
</li>
<li>
<form>
<input name="" id="" placeholder="Search our docs"
type="search"/>
<input name="" value="Search" type="submit"/>
</form>
</li>
</ul>
<div class="row">
<div class="col-md-7">
<label class="sr-only" for="search-box">Search on this page</label>
<input type="text" class="form-control" id="search-box" placeholder="Search this page"></input>
</div>
<div class="col-md-5">
<button id="search-btn" class="btn btn-default">Search</button>
</div>
</div>
</xsl:when>
<xsl:otherwise>
<div class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle"
data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"/>
<span class="icon-bar"/>
<span class="icon-bar"/>
</button>
<a class="navbar-brand" href="/">Open Stack</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a href="http://www.openstack.org"
title="Go to the Home page">Home</a>
</li>
<li>
<a href="http://www.openstack.org/projects"
title="Go to the OpenStack Projects page"
>Projects</a>
</li>
<li>
<a href="http://www.openstack.org/user-stories"
title="Go to the OpenStack user stories page"
>User Stories</a>
</li>
<li>
<a href="http://www.openstack.org/community"
title="Go to the Community page">Community</a>
</li>
<li>
<a href="http://www.openstack.org/blog"
title="Go to the OpenStack Blog">Blog</a>
</li>
<li>
<a href="http://wiki.openstack.org/"
title="Go to the OpenStack Wiki">Wiki</a>
</li>
<li class="active">
<a href="http://docs.openstack.org/"
title="Go to OpenStack Documentation"
>Documentation</a>
</li>
</ul>
</div>
</div>
<!-- /.navbar-collapse -->
</div>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$branding = 'rackspace'">
<div class="container">
<div class="rowtop">
<div class="col-md-3">
<div class="api-sidebar affix-top" data-spy="affix"
data-offset-top="1000" data-offset-bottom="0">
<ul class="nav api-sidenav">
<li><a class="smallcapped" href="index.html">Technical documentation</a></li>
<li class="divider"></li>
<xsl:apply-templates select="d:chapter"
mode="toc"/>
<li>
<!-- API ref page TOC -->
<xsl:apply-templates
select="//d:preface//d:title"
mode="menu-toc"/>
<ul class="nav active">
<!-- add list of all services to the sidebar menu -->
<xsl:apply-templates
select="//d:book//d:itemizedlist[@xml:id='service-list']/d:listitem/d:para/d:link"
mode="menu-toc"/>
</ul>
</li>
</ul>
<div class="row">
<div class="col-md-7">
<label class="sr-only"
for="search-box">Search on this
page</label>
<input type="text"
class="form-control"
id="search-box"
placeholder="Search this page"/>
</div>
<div class="col-md-5">
<button id="search-btn"
class="btn btn-default"
>Search</button>
</div>
</div>
</div>
</div>
<div class="col-md-9 api-documentation">
<xsl:apply-templates/>
</div>
</div>
<div class="row">
<div class="col-md-3"/>
<div class="col-md-9" id="footer">
<xsl:choose>
<xsl:when test="$branding = 'rackspace'">
<div class="legal">
<a href="index.html"> Legal notices </a>
</div>
</xsl:when>
<xsl:otherwise>
<p>The OpenStack project is provided under the Apache 2.0
license.</p>
</xsl:otherwise>
</xsl:choose>
</div>
</div>
</div>
<div class="col-md-9 api-documentation">
<xsl:apply-templates/>
</xsl:when>
<xsl:otherwise>
<div class="container">
<div class="row">
<div class="col-md-3">
<div class="api-sidebar" data-spy="affix"
data-offset-top="80" data-offset-bottom="0">
<ul class="nav api-sidenav">
<xsl:apply-templates select="d:chapter"
mode="toc"/>
<li>
<!-- API ref page TOC -->
<xsl:apply-templates
select="//d:preface//d:title"
mode="menu-toc"/>
<ul class="nav active">
<!-- add list of all services to the sidebar menu -->
<xsl:apply-templates
select="//d:book//d:itemizedlist[@xml:id='service-list']/d:listitem/d:para/d:link"
mode="menu-toc"/>
</ul>
</li>
</ul>
<div class="row">
<div class="col-md-7">
<label class="sr-only"
for="search-box">Search on this
page</label>
<input type="text"
class="form-control"
id="search-box"
placeholder="Search this page"/>
</div>
<div class="col-md-5">
<button id="search-btn"
class="btn btn-default"
>Search</button>
</div>
</div>
</div>
</div>
<div class="col-md-9 api-documentation">
<xsl:apply-templates/>
</div>
</div>
<div class="row">
<div class="col-md-3"/>
<div class="col-md-9" id="footer">
<p>The OpenStack project is provided under the
Apache 2.0 license.</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9" id="footer">
<p>The OpenStack project is provided under the Apache 2.0 license.</p>
</div>
</div>
</div>
</xsl:otherwise>
</xsl:choose>
<script type="text/javascript" src="apiref/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="apiref/js/bootstrap.min.js"></script>
<script type="text/javascript" src="apiref/js/api-site.js"></script>
<xsl:if test="$enableGoogleAnalytics != '0'">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '<xsl:value-of select="$googleAnalyticsId"/>']);
_gaq.push(['_setDomainName', '<xsl:value-of select="$googleAnalyticsDomain"/>']);
_gaq.push(['_trackPageview']);
(function () {
<xsl:if test="$enableGoogleAnalytics != '0'">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '<xsl:value-of select="$googleAnalyticsId"/>']);
_gaq.push(['_setDomainName', '<xsl:value-of select="$googleAnalyticsDomain"/>']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);\
})();
</script>
</xsl:if>
})();
</script>
</xsl:if>
</body>
</html>
</xsl:template>
<xsl:template match="d:preface|d:chapter">
<div id="{@xml:id}">
<div class="subhead">
@@ -150,17 +326,14 @@
<xsl:apply-templates select="node()[not(self::d:title)]"/>
</div>
</xsl:template>
<xsl:template match="d:section" mode="toc">
<li><a href="#{@xml:id}"><xsl:value-of select="d:title"/></a></li>
</xsl:template>
<xsl:template match="//d:preface//d:title" mode="menu-toc">
<li>
<a href="api-ref.html"><xsl:value-of select="."/></a>
</li>
</xsl:template>
<xsl:template match="d:link" mode="menu-toc">
<li>
<a href="{@xlink:href}">
@@ -183,31 +356,54 @@
<xsl:apply-templates select=".//wadl:method"/>
</div>
</xsl:template>
<!-- toc mode -->
<xsl:template match="d:preface|d:chapter" mode="toc">
<li><a href="#{@xml:id}"><xsl:value-of select="translate(d:title,' ','&#160;')"/></a></li>
<li class="divider"></li>
</xsl:template>
<xsl:template match="@*|node()" mode="toc">
<xsl:apply-templates mode="toc"/>
</xsl:template>
<!-- end toc mode -->
<xsl:template match="wadl:method">
<xsl:variable name="id"><xsl:value-of select="generate-id()"/></xsl:variable>
<xsl:variable name="skipNoRequestTextN">0</xsl:variable>
<xsl:variable name="skipNoRequestText" select="boolean(number($skipNoRequestTextN))"/>
<xsl:variable name="skipNoResponseTextN">0</xsl:variable>
<xsl:variable name="skipNoResponseText" select="boolean(number($skipNoResponseTextN))"/>
<div class="doc-entry">
<div class="row {$id}">
<div class="col-md-1">
<span class="label label-success"><xsl:value-of select="@name"/></span>
</div>
<div class="col-md-5">
<xsl:value-of select="replace(replace(ancestor::wadl:resource/@path, '\}','}&#8203;'), '\{','&#8203;{')"/>
<!-- toc mode -->
<xsl:template match="d:preface|d:chapter" mode="toc">
<xsl:choose>
<xsl:when test="$branding = 'rackspace'">
<li>
<a class="smallcapped" href="#{@xml:id}">
<xsl:value-of select="translate(d:title,' ','&#160;')"
/>
</a>
</li>
</xsl:when>
<xsl:otherwise>
<li>
<a href="#{@xml:id}">
<xsl:value-of select="translate(d:title,' ','&#160;')"
/>
</a>
</li>
</xsl:otherwise>
</xsl:choose>
<li class="divider"></li>
</xsl:template>
<xsl:template match="@*|node()" mode="toc">
<xsl:apply-templates mode="toc"/>
</xsl:template>
<!-- end toc mode -->
<xsl:template match="wadl:method">
<xsl:variable name="id"><xsl:value-of select="generate-id()"/></xsl:variable>
<xsl:variable name="skipNoRequestTextN">0</xsl:variable>
<xsl:variable name="skipNoRequestText" select="boolean(number($skipNoRequestTextN))"/>
<xsl:variable name="skipNoResponseTextN">0</xsl:variable>
<xsl:variable name="skipNoResponseText" select="boolean(number($skipNoResponseTextN))"/>
<div class="doc-entry">
<div class="row {$id}">
<xsl:choose><xsl:when test="$branding = 'rackspace'">
<link href="apiref/css/main-rackspace.css"
rel="stylesheet" type="text/css"/>
<div class="col-md-1">
<span class="label label-success"><xsl:value-of select="@name"/></span>
</div>
</xsl:when>
<xsl:otherwise>
<link href="apiref/css/main.css"
rel="stylesheet" type="text/css"/><div class="col-md-1">
<span class="label label-success"><xsl:value-of select="@name"/></span>
</div></xsl:otherwise></xsl:choose>
<div class="col-md-5">
<xsl:value-of select="replace(replace(ancestor::wadl:resource/@path, '\}','}&#8203;'), '\{','&#8203;{')"/>
</div>
<div class="col-md-5">
<xsl:choose>
@@ -296,7 +492,6 @@
</table>
</xsl:if>
<!-- Don't output if there are no params -->
<xsl:if test="./wadl:response//wadl:param">
<b>Response parameters</b>
@@ -317,8 +512,6 @@
</tbody>
</table>
</xsl:if>
</div>
</div>
<!-- Examples -->
@@ -536,7 +729,6 @@
</xsl:if>
</xsl:template>
<xsl:template name="statusCodeList">
<xsl:param name="codes" select="'400 500 &#x2026;'"/>
<xsl:param name="separator" select="','"/>

View File

@@ -13,6 +13,8 @@
</xsl:copy>
</xsl:template>
<xsl:template match="d:dummy"/>
<xsl:param name="compute.wadl.path.from.docbook.path">0</xsl:param>
<xsl:param name="project.build.directory"/>

View File

@@ -13,11 +13,7 @@
<p:import href="http://xmlcalabash.com/extension/steps/library-1.0.xpl"/>
<p:import href="classpath:///rackspace-library.xpl"/>
<cx:message>
<p:with-option name="message" select="'Entering xproc pipeline'"/>
</cx:message>
<l:validate-transform name="validate-pre-xinclude">
<p:input port="schema" >
<p:document href="classpath:///rng/rackbook.rng"/>
@@ -27,10 +23,6 @@
<p:add-xml-base/>
<p:xinclude fixup-xml-base="true"/>
<cx:message>
<p:with-option name="message" select="'Validating post-xinclude'"/>
</cx:message>
<l:validate-transform name="validate-post-xinclude">
<p:input port="schema" >
<p:document href="classpath:///rng/rackbook.rng"/>
@@ -51,12 +43,6 @@
</p:input>
</p:xslt>
<!-- <l:xhtml2docbook name="xhtml2docbook"/> -->
<!--
<l:programlisting-keep-together name="programlisting-keep-together"/>
-->
<p:xslt name="docbook2apipage">
<p:input port="source">
<p:pipe step="process-embedded-wadl" port="result"/>
@@ -68,20 +54,5 @@
<p:pipe step="main" port="parameters"/>
</p:input>
</p:xslt>
<!-- <p:xslt name="foo">
<p:input port="source">
<p:pipe step="process-embedded-wadl" port="result"/>
</p:input>
<p:input port="stylesheet">
<p:inline>
</p:inline>
</p:input>
</p:xslt>-->
<cx:message>
<p:with-option name="message" select="'Exiting xproc pipeline'"/>
</cx:message>
</p:declare-step>