IMPROVE: better documentation distribution (IVY-274) - in progress
git-svn-id: https://svn.apache.org/repos/asf/incubator/ivy/trunk@484461 13f79535-47bb-0310-9956-ffa450edef68
|
|
@ -32,6 +32,7 @@ Changes:
|
|||
- NEW: adding to SPECIAL_MEANINGS in LatestRevisionStrategy (IVY-121)
|
||||
- NEW: Allow use of system properties in ivyconf.xml (IVY-228)
|
||||
|
||||
- IMPROVE: better documentation distribution (IVY-274) - in progress
|
||||
- IMPROVE: define conflict manager per organisation/module in ivyconf (IVY-270)
|
||||
- IMPROVE: transitive parameter in resolve (IVY-21)
|
||||
- IMPROVE: add syncing feature in retrieve (IVY-33)
|
||||
|
|
|
|||
|
|
@ -5,8 +5,11 @@ build.dir=${basedir}/build
|
|||
classes.build.dir=${basedir}/build/classes
|
||||
test.build.dir=${basedir}/build/test
|
||||
artifacts.build.dir=${basedir}/build/artifact
|
||||
test.report.dir=${basedir}/build/report
|
||||
javadoc.build.dir=${basedir}/build/doc/api
|
||||
doc.build.dir=${basedir}/doc/ivy
|
||||
test.report.dir=${doc.build.dir}/test-report
|
||||
javadoc.build.dir=${doc.build.dir}/api
|
||||
doc.src.dir=${basedir}/src/doc
|
||||
dxml.doc.file=${doc.src.dir}/ivy-book.xml
|
||||
|
||||
ivy.minimum.javaversion=1.4
|
||||
debug.mode=on
|
||||
|
|
|
|||
12
build.xml
|
|
@ -147,6 +147,18 @@
|
|||
</junitreport>
|
||||
</target>
|
||||
|
||||
<target name="get-dxml" description="download dxml doc file from web site">
|
||||
<get src="http://www.jayasoft.org/ivy/doc/dxml" dest="${dxml.doc.file}" verbose="true" />
|
||||
</target>
|
||||
|
||||
<target name="main-doc" description="generates doc from dxml file -- WARNING: this operation is very slow and requires ruby 1.8.2 or greater">
|
||||
<echo message="generating documentation"/>
|
||||
<echo message="this operation is very slow... be patient"/>
|
||||
<exec dir="${basedir}" executable="ruby">
|
||||
<arg line="${doc.src.dir}/dxml_to_html.rb"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="install" depends="jar" if="env.ANT_HOME">
|
||||
<copy file="${artifacts.build.dir}/ivy.jar" todir="${env.ANT_HOME}/lib"/>
|
||||
</target>
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 162 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 108 B |
|
After Width: | Height: | Size: 106 B |
|
After Width: | Height: | Size: 194 B |
|
|
@ -1,13 +1,6 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Ivy Documentation Index</title>
|
||||
<META HTTP-EQUIV="refresh" CONTENT="0;URL=ivy/doc.html">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Welcome to Ivy documentation index !</h1>
|
||||
Here is what you can find in this documentation:<br/>
|
||||
- <a href="build/main/index.html">Main documentation</a><br/>
|
||||
- <a href="build/api/index.html">Javadoc</a><br/>
|
||||
- <a href="build/report/junit/junit-noframes.html">JUnit tests report</a><br/>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
.ant thead td:first-child + td + td{
|
||||
text-align: center;
|
||||
}
|
||||
*/
|
||||
|
||||
table.ant {
|
||||
border-collapse:collapse;
|
||||
width:90%;
|
||||
margin:auto;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.ant thead {
|
||||
background-color:#DEE4CD;
|
||||
border:1px solid #7A9437;
|
||||
}
|
||||
.ant tbody {
|
||||
background-color:#FFFFFF;
|
||||
border:1px solid #7A9437;
|
||||
}
|
||||
|
||||
.ant th {
|
||||
font-family:monospace;
|
||||
border:1px solid #7A9437;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.ant td {
|
||||
border:1px dotted #7A9437;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
th.ant-att {
|
||||
width:15%;
|
||||
}
|
||||
th.ant-desc {
|
||||
width:50%;
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
div.codeblock {
|
||||
padding: 5px;
|
||||
border: 1px solid #CCC;
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
ivy color theme
|
||||
*/
|
||||
body {
|
||||
background-color: #5a7418;
|
||||
}
|
||||
|
||||
#body {
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #7a9438;
|
||||
}
|
||||
h1 {
|
||||
color: #fff;
|
||||
background-color: #7a9438;
|
||||
}
|
||||
.title {
|
||||
color: #7a9438;
|
||||
background-color: #fff;
|
||||
background: none;
|
||||
}
|
||||
a:link {
|
||||
color: #7a9438;
|
||||
}
|
||||
a:visited {
|
||||
color: #7a9438;
|
||||
}
|
||||
a:hover, a:active {
|
||||
color: #7a9438;
|
||||
}
|
||||
blockquote {
|
||||
color: #696969;
|
||||
}
|
||||
pre {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
.form-item label {
|
||||
color: #7a9438;
|
||||
}
|
||||
.item-list .title {
|
||||
color: #7a9438;
|
||||
}
|
||||
|
||||
/*
|
||||
** Page layout blocks / IDs
|
||||
*/
|
||||
#header {
|
||||
background-color: #ffffff;
|
||||
/* border: 3px solid #9ebf47; */
|
||||
}
|
||||
|
||||
#top-menu {
|
||||
background-color:#7a9438;
|
||||
border-top: 3px solid #9ebf47;
|
||||
border-bottom: 3px solid #9ebf47;
|
||||
}
|
||||
|
||||
#search .form-text, #search .form-submit {
|
||||
border: 1px solid #7a9438;
|
||||
}
|
||||
#search .form-submit {
|
||||
background-color: #9ebf47;
|
||||
}
|
||||
|
||||
.block h2 {
|
||||
color: #000;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.block .content {
|
||||
background-color: #fff;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
/*
|
||||
.block h2 {
|
||||
color: #000;
|
||||
}
|
||||
*/
|
||||
|
||||
#navcontainer {
|
||||
background-color:#7a9438;
|
||||
}
|
||||
|
||||
#nav {
|
||||
background-color:#7a9438;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
background-color:#7a9438;
|
||||
border-top: 1px solid #7a9438;
|
||||
border-right: 1px solid #7a9438;
|
||||
border-bottom: 1px solid #7a9438;
|
||||
border-left: 0.75em solid #7a9438;
|
||||
}
|
||||
|
||||
#nav li a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#nav .title {
|
||||
color: #fff;
|
||||
/*
|
||||
background: #61752c;
|
||||
*/
|
||||
background: #7a9438;
|
||||
border-top: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #7a9438;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
#nav li li a {
|
||||
background: #fff;
|
||||
color: #7a9438;
|
||||
border-top: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #7a9438;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
#nav a:hover,
|
||||
#nav a:active {
|
||||
background: #9ebf47;
|
||||
}
|
||||
|
||||
#content {
|
||||
border-top: 3px solid #9ebf47;
|
||||
}
|
||||
|
||||
#forum tr.dark {
|
||||
background: #daeddc;
|
||||
}
|
||||
|
||||
.postit {
|
||||
background-color: #FFDBA1;
|
||||
border: 1px solid #FFB643;
|
||||
color: #4E3000;
|
||||
}
|
||||
|
|
@ -0,0 +1,684 @@
|
|||
/* $Id: drupal.css,v 1.147.2.3 2006/06/30 00:13:45 unconed Exp $ */
|
||||
|
||||
/*
|
||||
** HTML elements
|
||||
*/
|
||||
fieldset {
|
||||
margin-bottom: 1em;
|
||||
padding: .5em;
|
||||
}
|
||||
form {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
hr {
|
||||
height: 1px;
|
||||
border: 1px solid gray;
|
||||
}
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
th {
|
||||
text-align: left;
|
||||
padding-right: 1em;
|
||||
border-bottom: 3px solid #ccc;
|
||||
}
|
||||
th.active img {
|
||||
display: inline;
|
||||
}
|
||||
tr.even, tr.odd {
|
||||
background-color: #eee;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
tr.even, tr.odd {
|
||||
padding: 0.1em 0.6em;
|
||||
}
|
||||
td.active {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
/*
|
||||
** Menu styles
|
||||
*/
|
||||
ul.menu {
|
||||
list-style: none;
|
||||
border: none;
|
||||
text-align:left;
|
||||
}
|
||||
ul.menu li {
|
||||
margin: 0 0 0 0.5em;
|
||||
}
|
||||
li.expanded {
|
||||
list-style-type: circle;
|
||||
list-style-image: url(../images/menu-expanded.png);
|
||||
padding: 0.2em 0.5em 0 0;
|
||||
margin: 0;
|
||||
}
|
||||
li.collapsed {
|
||||
list-style-type: disc;
|
||||
list-style-image: url(../images/menu-collapsed.png);
|
||||
padding: 0.2em 0.5em 0 0;
|
||||
margin: 0;
|
||||
}
|
||||
li.leaf {
|
||||
list-style-type: square;
|
||||
list-style-image: url(../images/menu-leaf.png);
|
||||
padding: 0.2em 0.5em 0 0;
|
||||
margin: 0;
|
||||
}
|
||||
li a.active {
|
||||
color: #000;
|
||||
}
|
||||
td.menu-disabled {
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
/*
|
||||
** Other common styles
|
||||
*/
|
||||
.breadcrumb {
|
||||
padding-bottom: .5em
|
||||
}
|
||||
.block-region {
|
||||
background-color: #ffff66;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
padding: 3px;
|
||||
}
|
||||
.block ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0.25em 1em;
|
||||
}
|
||||
br.clear {
|
||||
clear: both;
|
||||
height: 0;
|
||||
}
|
||||
.container-inline div {
|
||||
display: inline;
|
||||
}
|
||||
.error {
|
||||
color: red;
|
||||
}
|
||||
.item-list .icon {
|
||||
color: #555;
|
||||
float: right;
|
||||
padding-left: 0.25em;
|
||||
clear: right;
|
||||
}
|
||||
.item-list .icon a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
.item-list .icon a:hover {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
.item-list .title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.item-list ul {
|
||||
margin: 0 0 0.75em 0;
|
||||
padding: 0;
|
||||
}
|
||||
.item-list ul li {
|
||||
margin: 0 0 0.25em 1.5em;
|
||||
padding: 0;
|
||||
list-style: disc;
|
||||
}
|
||||
.form-item {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
tr.odd .form-item, tr.even .form-item {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.form-item input.error, .form-item textarea.error {
|
||||
border: 2px solid red;
|
||||
}
|
||||
.form-item .description {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.form-item label {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
.form-item label.option {
|
||||
display: inline;
|
||||
font-weight: normal;
|
||||
}
|
||||
.marker, .form-required {
|
||||
color: #f00;
|
||||
}
|
||||
.more-link {
|
||||
text-align: right;
|
||||
}
|
||||
.node-form .form-text {
|
||||
display: block;
|
||||
width: 95%;
|
||||
}
|
||||
.node-form .standard {
|
||||
clear: both;
|
||||
}
|
||||
.node-form textarea {
|
||||
display: block;
|
||||
width: 95%;
|
||||
}
|
||||
.node-form .attachments fieldset {
|
||||
float: none;
|
||||
display: block;
|
||||
}
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ok {
|
||||
color: #080;
|
||||
}
|
||||
#pager {
|
||||
clear: both;
|
||||
text-align: center;
|
||||
}
|
||||
#pager a, #pager strong.pager-current {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.path {
|
||||
padding-bottom: 0.7em;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
/*
|
||||
** Module specific styles
|
||||
*/
|
||||
#aggregator .feed-source .feed-title {
|
||||
margin-top: 0;
|
||||
}
|
||||
#aggregator .feed-source .feed-image img {
|
||||
margin-bottom: 0.75em;
|
||||
}
|
||||
#aggregator .feed-source .feed-icon {
|
||||
float: right;
|
||||
display: block;
|
||||
}
|
||||
#aggregator .feed-item {
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
#aggregator .feed-item-title {
|
||||
margin-bottom: 0;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
#aggregator .feed-item-meta, #aggregator .feed-item-body {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
#aggregator .feed-item-categories {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#aggregator td {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
#aggregator td.categorize-item {
|
||||
white-space: nowrap;
|
||||
}
|
||||
#aggregator .categorize-item .news-item .body {
|
||||
margin-top: 0;
|
||||
}
|
||||
#aggregator .categorize-item h3 {
|
||||
margin-bottom: 1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
.book-navigation .menu {
|
||||
border-top: 1px solid #888;
|
||||
padding: 1em 0 0 3em;
|
||||
}
|
||||
.book-navigation .page-links {
|
||||
border-top: 1px solid #888;
|
||||
border-bottom: 1px solid #888;
|
||||
text-align: center;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.book-navigation .page-previous {
|
||||
text-align: right;
|
||||
}
|
||||
.book-navigation .page-up {
|
||||
margin: 0 4em;
|
||||
}
|
||||
.book-navigation .page-next {
|
||||
text-align: left;
|
||||
}
|
||||
.node-unpublished, .comment-unpublished {
|
||||
background-color: #fff4f4;
|
||||
}
|
||||
.preview .node, .preview .comment {
|
||||
background-color: #ffffea;
|
||||
}
|
||||
.archive {
|
||||
margin: 1em 0 1em 0;
|
||||
}
|
||||
.calendar .row-week td a {
|
||||
display: block;
|
||||
}
|
||||
.calendar .row-week td a:hover {
|
||||
background-color: #888; color: #fff;
|
||||
}
|
||||
.calendar a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.calendar a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.calendar table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.calendar td, .calendar th {
|
||||
text-align: center;
|
||||
border: 1px solid #000;
|
||||
padding: 1px;
|
||||
margin: 0;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
.calendar td.day-blank {
|
||||
border: 0;
|
||||
}
|
||||
.tips {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#forum .description {
|
||||
font-size: 0.9em;
|
||||
margin: 0.5em;
|
||||
}
|
||||
#forum td.created, #forum td.posts, #forum td.topics, #forum td.last-reply, #forum td.replies, #forum td.pager {
|
||||
white-space: nowrap;
|
||||
}
|
||||
#forum td.posts, #forum td.topics, #forum td.replies, #forum td.pager {
|
||||
text-align: center;
|
||||
}
|
||||
.forum-topic-navigation {
|
||||
padding: 1em 0 0 3em;
|
||||
border-top: 1px solid #888;
|
||||
border-bottom: 1px solid #888;
|
||||
text-align: center;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.forum-topic-navigation .topic-previous {
|
||||
margin-right: 4em;
|
||||
text-align: right;
|
||||
}
|
||||
.forum-topic-navigation .topic-next {
|
||||
text-align: left;
|
||||
}
|
||||
.locale-untranslated {
|
||||
font-style: normal;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
#node-admin-filter ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
#node-admin-buttons {
|
||||
float: left;
|
||||
margin-left: 0.5em;
|
||||
clear: right;
|
||||
}
|
||||
td.revision-current {
|
||||
background: #ffc;
|
||||
}
|
||||
dl.multiselect dd.b, dl.multiselect dd.b .form-item, dl.multiselect dd.b select {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
width: 14em;
|
||||
}
|
||||
dl.multiselect dd.a, dl.multiselect dd.a .form-item {
|
||||
width: 8em;
|
||||
}
|
||||
dl.multiselect dt, dl.multiselect dd {
|
||||
float: left;
|
||||
line-height: 1.75em;
|
||||
padding: 0;
|
||||
margin: 0 1em 0 0;
|
||||
}
|
||||
dl.multiselect .form-item {
|
||||
height: 1.75em;
|
||||
margin: 0;
|
||||
}
|
||||
#permissions td.module, #blocks td.region {
|
||||
font-weight: bold;
|
||||
}
|
||||
#permissions td.permission, #blocks td.block, #taxonomy td.term, #taxonomy td.message {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
#access-rules .access-type, #access-rules .rule-type {
|
||||
margin-right: 1em;
|
||||
float: left;
|
||||
}
|
||||
#access-rules .access-type .form-item, #access-rules .rule-type .form-item {
|
||||
margin-top: 0;
|
||||
}
|
||||
#access-rules .mask {
|
||||
clear: both;
|
||||
}
|
||||
.poll .bar {
|
||||
height: 1em;
|
||||
margin: 1px 0;
|
||||
background-color: #ddd;
|
||||
}
|
||||
.poll .bar .foreground {
|
||||
background-color: #000;
|
||||
height: 1em;
|
||||
clear: left;
|
||||
float: left;
|
||||
}
|
||||
.poll .links {
|
||||
text-align: center;
|
||||
}
|
||||
.poll .percent {
|
||||
text-align: right;
|
||||
}
|
||||
.poll .total {
|
||||
text-align: center;
|
||||
}
|
||||
.poll .vote-form {
|
||||
text-align: center;
|
||||
}
|
||||
.poll .vote-form .choices {
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
display: table;
|
||||
}
|
||||
.profile {
|
||||
clear: both;
|
||||
margin: 1em 0 1em 0;
|
||||
}
|
||||
.profile .picture {
|
||||
float: right;
|
||||
margin: 0 1em 1em 0;
|
||||
}
|
||||
.profile dt {
|
||||
margin: 1em 0 0.2em 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.profile dd {
|
||||
margin:0;
|
||||
}
|
||||
.node-form .poll-form fieldset {
|
||||
display: block;
|
||||
}
|
||||
img.screenshot {
|
||||
border: 1px solid #808080;
|
||||
display: block;
|
||||
margin: 2px;
|
||||
}
|
||||
.search-form {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.search-form p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.2em;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.search-form input {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.search-results p {
|
||||
margin-top: 0;
|
||||
}
|
||||
.search-results dt {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.search-results dd {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.search-results .search-info {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.search-advanced .criterion {
|
||||
float: left;
|
||||
margin-right: 2em;
|
||||
}
|
||||
.search-advanced .action {
|
||||
float: left;
|
||||
clear: left;
|
||||
}
|
||||
#tracker td.replies {
|
||||
text-align: center;
|
||||
}
|
||||
#tracker table {
|
||||
width: 100%;
|
||||
}
|
||||
.theme-settings-left {
|
||||
float: left;
|
||||
width: 49%;
|
||||
}
|
||||
.theme-settings-right {
|
||||
float: right;
|
||||
width: 49%;
|
||||
}
|
||||
.theme-settings-bottom {
|
||||
clear: both;
|
||||
}
|
||||
#user-login-form {
|
||||
text-align: center;
|
||||
}
|
||||
.more-help-link {
|
||||
font-size: 0.85em;
|
||||
text-align: right;
|
||||
}
|
||||
table.watchdog-event th {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
tr.watchdog-user {
|
||||
background: #ffd;
|
||||
}
|
||||
tr.watchdog-user .active {
|
||||
background: #eed;
|
||||
}
|
||||
tr.watchdog-content {
|
||||
background: #ddf;
|
||||
}
|
||||
tr.watchdog-content .active {
|
||||
background: #cce;
|
||||
}
|
||||
tr.watchdog-page-not-found, tr.watchdog-access-denied {
|
||||
background: #dfd;
|
||||
}
|
||||
tr.watchdog-page-not-found .active, tr.watchdog-access-denied .active {
|
||||
background: #cec;
|
||||
}
|
||||
tr.watchdog-error {
|
||||
background: #ffc9c9;
|
||||
}
|
||||
tr.watchdog-error .active {
|
||||
background: #eeb9b9;
|
||||
}
|
||||
|
||||
/* Tab navigation */
|
||||
ul.primary {
|
||||
border-collapse: collapse;
|
||||
padding: 0 0 0 1em;
|
||||
white-space: nowrap;
|
||||
list-style: none;
|
||||
margin: 5px;
|
||||
height: auto;
|
||||
line-height: normal;
|
||||
border-bottom: 1px solid #bbb;
|
||||
}
|
||||
ul.primary li {
|
||||
display: inline;
|
||||
}
|
||||
ul.primary li a {
|
||||
background-color: #ddd;
|
||||
border-color: #bbb;
|
||||
border-width: 1px;
|
||||
border-style: solid solid none solid;
|
||||
height: auto;
|
||||
margin-right: 0.5em;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
ul.primary li.active a {
|
||||
background-color: #fff;
|
||||
border: 1px solid #bbb;
|
||||
border-bottom: #fff 1px solid;
|
||||
}
|
||||
ul.primary li a:hover {
|
||||
background-color: #eee;
|
||||
border-color: #ccc;
|
||||
border-bottom-color: #eee;
|
||||
}
|
||||
ul.secondary {
|
||||
border-bottom: 1px solid #bbb;
|
||||
padding: 0.5em 1em 0.5em 1em;
|
||||
margin: 5px;
|
||||
}
|
||||
ul.secondary li {
|
||||
display: inline;
|
||||
padding: 0 1em;
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
ul.secondary a {
|
||||
padding: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
ul.secondary a.active {
|
||||
border-bottom: 4px solid #999;
|
||||
}
|
||||
|
||||
/*
|
||||
** Help module
|
||||
*/
|
||||
.help-items {
|
||||
float: left;
|
||||
width: 22%;
|
||||
padding-right: 3%;
|
||||
}
|
||||
.help-items-last {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
** Autocomplete styles
|
||||
*/
|
||||
/* Suggestion list */
|
||||
#autocomplete {
|
||||
position: absolute;
|
||||
border: 1px solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
#autocomplete ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
#autocomplete li {
|
||||
background: #fff;
|
||||
color: #000;
|
||||
white-space: pre;
|
||||
cursor: default;
|
||||
}
|
||||
#autocomplete li.selected {
|
||||
background: #0072b9;
|
||||
color: #fff;
|
||||
}
|
||||
/* Animated throbber */
|
||||
html.js input.form-autocomplete {
|
||||
background-image: url(throbber.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100% 2px;
|
||||
}
|
||||
html.js input.throbbing {
|
||||
background-position: 100% -18px;
|
||||
}
|
||||
|
||||
/*
|
||||
** Progressbar styles
|
||||
*/
|
||||
.progress {
|
||||
font-weight: bold;
|
||||
}
|
||||
.progress .bar {
|
||||
background: #fff url(progress.gif);
|
||||
border: 1px solid #00375a;
|
||||
height: 1.5em;
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
.progress .filled {
|
||||
background: #0072b9;
|
||||
height: 1em;
|
||||
border-bottom: 0.5em solid #004a73;
|
||||
width: 0%;
|
||||
}
|
||||
.progress .percentage {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/*
|
||||
** Collapsing fieldsets
|
||||
*/
|
||||
html.js fieldset.collapsed {
|
||||
border-bottom-width: 0;
|
||||
border-left-width: 0;
|
||||
border-right-width: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
html.js fieldset.collapsed * {
|
||||
display: none;
|
||||
}
|
||||
html.js fieldset.collapsed table *,
|
||||
html.js fieldset.collapsed legend,
|
||||
html.js fieldset.collapsed legend * {
|
||||
display: inline;
|
||||
}
|
||||
html.js fieldset.collapsible legend a {
|
||||
padding-left: 15px;
|
||||
background: url(../images/menu-expanded.png) 5px 50% no-repeat;
|
||||
}
|
||||
html.js fieldset.collapsed legend a {
|
||||
background-image: url(../images/menu-collapsed.png);
|
||||
}
|
||||
/* Note: IE-only fix due to '* html' (breaks Konqueror otherwise). */
|
||||
* html.js fieldset.collapsible legend a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*
|
||||
** Resizable text areas
|
||||
*/
|
||||
.resizable-textarea {
|
||||
width: 95%;
|
||||
}
|
||||
.resizable-textarea .grippie {
|
||||
height: 14px;
|
||||
background: #eee url(../images/grippie.png) no-repeat 100% 100%;
|
||||
border: 1px solid #ddd;
|
||||
border-top-width: 0;
|
||||
cursor: s-resize;
|
||||
}
|
||||
|
||||
/*
|
||||
** Formatting for welcome page
|
||||
*/
|
||||
#first-time strong {
|
||||
display: block;
|
||||
padding: 1.5em 0 .5em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
.sticky {
|
||||
background-color: #eee;
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
.ant thead td:first-child + td + td{
|
||||
text-align: center;
|
||||
}
|
||||
*/
|
||||
|
||||
table.ivy-attributes {
|
||||
border-collapse:collapse;
|
||||
width:90%;
|
||||
margin:auto;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.ivy-attributes thead {
|
||||
background-color:#DEE4CD;
|
||||
border:1px solid #7A9437;
|
||||
}
|
||||
.ivy-attributes tbody {
|
||||
background-color:#FFFFFF;
|
||||
border:1px solid #7A9437;
|
||||
}
|
||||
|
||||
.ivy-attributes th {
|
||||
font-family:monospace;
|
||||
border:1px solid #7A9437;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.ivy-attributes td {
|
||||
border:1px dotted #7A9437;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
th.ivy-att {
|
||||
width:15%;
|
||||
}
|
||||
th.ivy-att-desc {
|
||||
width:50%;
|
||||
}
|
||||
|
||||
table.ivy-children {
|
||||
/* border:3px solid #6495ed; */
|
||||
border-collapse:collapse;
|
||||
width:90%;
|
||||
margin:auto;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.ivy-children thead {
|
||||
background-color:#DEE4CD;
|
||||
border:1px solid #7A9437;
|
||||
}
|
||||
.ivy-children tbody {
|
||||
background-color:#FFFFFF;
|
||||
border:1px solid #7A9437;
|
||||
}
|
||||
|
||||
.ivy-children th {
|
||||
font-family:monospace;
|
||||
border:1px solid #7A9437;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
.ivy-children td {
|
||||
border:1px dotted #7A9437;
|
||||
padding:5px;
|
||||
}
|
||||
|
||||
th.ivy-chld {
|
||||
width:15%;
|
||||
}
|
||||
th.ivy-chld-desc {
|
||||
width:50%;
|
||||
}
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
#navcontainer {
|
||||
width: inherit;
|
||||
margin: 0 0 0 50px;
|
||||
padding-left: 0;
|
||||
height: 1.20em;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav {
|
||||
font: bold 0.75em/100% Trebuchet MS, Arial, Helvetica, sans-serif;
|
||||
float: left;
|
||||
width: inherit;
|
||||
list-style: none;
|
||||
line-height: 1;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
font: normal 100%/140% Trebuchet MS, Arial, Helvetica, sans-serif;
|
||||
position: absolute;
|
||||
left: -999em;
|
||||
height: auto;
|
||||
width: 11.4em;
|
||||
w\idth: 12.0em;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav li {
|
||||
float: left;
|
||||
padding: 0;
|
||||
width: auto;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav ul li {
|
||||
float: left;
|
||||
padding: 0;
|
||||
width: 10em;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav li a {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0.25em 1.0em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav .title {
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
width: 11em;
|
||||
w\idth: 10em;
|
||||
margin: 0;
|
||||
padding: 0.15em 1.0em;
|
||||
}
|
||||
|
||||
#nav li li a {
|
||||
width: 11em;
|
||||
w\idth: 10em;
|
||||
margin: 0;
|
||||
padding: 0.25em 1.0em;
|
||||
}
|
||||
|
||||
#nav li ul ul {
|
||||
margin: -1.75em 0 0 11em;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav li:hover ul ul,
|
||||
#nav li:hover ul ul ul,
|
||||
#nav li.sfhover ul ul,
|
||||
#nav li.sfhover ul ul ul {
|
||||
left: -999em;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav li:hover ul,
|
||||
#nav li li:hover ul,
|
||||
#nav li li li:hover ul,
|
||||
#nav li.sfhover ul,
|
||||
#nav li li.sfhover ul,
|
||||
#nav li li li.sfhover ul {
|
||||
left: auto;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#nav li:hover,
|
||||
#nav li.sfhover {
|
||||
z-index: 100;
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
/* $Id: quote.css,v 1.4 2006/03/31 19:12:23 karthik Exp $ */
|
||||
|
||||
.quote-msg {
|
||||
margin: 1em 2em 1em 2em;
|
||||
padding: 1em;
|
||||
border: 1px solid #DDD;
|
||||
background-color: #F6F6F6;
|
||||
}
|
||||
.quote-author {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
/* the class shell is used when a copy of the content of a shell or DOS window is made */
|
||||
.shell {background-color: black; color: white; border: medium gray solid;}
|
||||
.shell pre {background-color: black; border: none; font-size: small;}
|
||||
|
|
@ -0,0 +1,248 @@
|
|||
/* $Id: style.css,v 1.8 2005/03/27 18:55:35 unconed Exp $ */
|
||||
|
||||
@import "color.css";
|
||||
@import "nav.css";
|
||||
@import "xmlverbatim.css";
|
||||
@import "ant.css";
|
||||
@import "ivy-ref.css";
|
||||
@import "shell.css";
|
||||
|
||||
/*
|
||||
** HTML elements
|
||||
*/
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#body {
|
||||
display: table;
|
||||
margin: 8px auto;
|
||||
padding: 0;
|
||||
width: 98%;
|
||||
}
|
||||
body, p, td, li, ul, ol {
|
||||
font-family: Verdana, Helvetica, Arial, sans-serif;
|
||||
font-size: small;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
|
||||
}
|
||||
h1 {
|
||||
/*
|
||||
margin-left: 15px;
|
||||
margin-right: 15px;
|
||||
*/
|
||||
padding-left: 10px;
|
||||
font-size: 1.6em;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
h4 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
tr.dark td, tr.light td {
|
||||
padding: 0.3em;
|
||||
}
|
||||
a:link {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
a:visited {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
a:hover, a:active {
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
}
|
||||
p {
|
||||
margin: 0 0 1.3em 0;
|
||||
padding: 0;
|
||||
}
|
||||
blockquote {
|
||||
padding: 0 15px 0 15px;
|
||||
margin: 15px 50px 15px 50px;
|
||||
text-align: left;
|
||||
font-size: 1.2em;
|
||||
line-height: 1.3em;
|
||||
font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
|
||||
}
|
||||
pre {
|
||||
padding: 0.75em 1.5em;
|
||||
font-size: 1em;
|
||||
}
|
||||
.form-item {
|
||||
margin-top: 1em;
|
||||
}
|
||||
.item-list .title {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.hide {
|
||||
display: none
|
||||
}
|
||||
|
||||
/*
|
||||
** Page layout blocks / IDs
|
||||
*/
|
||||
#body {
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
#home img {
|
||||
padding: 5px 20px 10px 10px;
|
||||
}
|
||||
.product img {
|
||||
padding: 5px 20px 10px 10px;
|
||||
}
|
||||
|
||||
#top-menu tr {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#top-menu td {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#search {
|
||||
padding: 0 1em 0 1em;
|
||||
margin: 0;
|
||||
}
|
||||
#search .form-text, #search .form-submit {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
#search .form-text {
|
||||
width: 8em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#sidebar-left, #sidebar-right {
|
||||
width: 200px;
|
||||
/* padding in px not ex because IE messes up 100% width tables otherwise */
|
||||
padding: 15px 5px 75px 10px;
|
||||
vertical-align: top;
|
||||
}
|
||||
#sidebar-left li, #sidebar-right li {
|
||||
font-size: 1em;
|
||||
}
|
||||
.block h2 {
|
||||
margin: 5px 0px 0px 0px;
|
||||
padding: 1px 5px 1px 30px;
|
||||
font-size: 1.2em;
|
||||
font-weight: 700;
|
||||
-moz-border-radius-topleft: 5px;
|
||||
-moz-border-radius-topright: 5px;
|
||||
}
|
||||
|
||||
.block .content {
|
||||
-moz-border-radius-bottomright: 5px;
|
||||
-moz-border-radius-bottomleft: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#main {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-bottom: 10px;
|
||||
background: transparent url(../images/background.png) center center no-repeat;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
#forum {
|
||||
margin: 15px 0 15px 0;
|
||||
}
|
||||
#forum table {
|
||||
width: 100%;
|
||||
}
|
||||
#forum table tr th {
|
||||
text-align: center;
|
||||
font-size: 0.75em;
|
||||
}
|
||||
#forum table tr th a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
#forum table tr th img {
|
||||
margin: 0;
|
||||
}
|
||||
#forum td {
|
||||
padding: 0.5em 0.5em 0.5em 0.5em;
|
||||
}
|
||||
#forum td.container a {
|
||||
padding: 20px 0 20px 35px;
|
||||
}
|
||||
#forum td.statistics, #forum td.settings, #forum td.pager {
|
||||
height: 1.5em;
|
||||
}
|
||||
#forum td .links {
|
||||
padding-top: 0.7em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.block-forum h3 {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
#footer-menu td {
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
.comparison td, .comparison th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.comment {
|
||||
-moz-border-radius: 5px;
|
||||
border: 1px solid #abc;
|
||||
padding: .5em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.comment .title {
|
||||
font-size: 1em;
|
||||
padding: 10px 0px 12px 19px;
|
||||
background: transparent url(icon-comment.png) left center no-repeat;
|
||||
}
|
||||
.comment .new {
|
||||
font-weight: bold;
|
||||
font-size: 1em;
|
||||
margin-left: 2px;
|
||||
color: red;
|
||||
}
|
||||
.comment .picture {
|
||||
border: 1px solid #fff;
|
||||
float: right;
|
||||
margin: 10px;
|
||||
}
|
||||
.submitted {
|
||||
color: #999;
|
||||
font-size: 0.79em;
|
||||
}
|
||||
.since {
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.postit {
|
||||
margin:10px;
|
||||
padding:10px;
|
||||
-moz-border-radius:10px;
|
||||
float:right;
|
||||
width:400px;
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
div.codeblock {
|
||||
padding: 5px;
|
||||
margin-bottom:10px;
|
||||
border: 1px solid #CCC;
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
.synComment { color: #0000FF }
|
||||
.synConstant { color: #0000FF }
|
||||
.synIdentifier { color: #008B8B }
|
||||
.synStatement { color: #A52A2A ; font-weight: bold }
|
||||
.synPreProc { color: #A020F0 }
|
||||
.synType { color: #2E8B57 ; font-weight: bold }
|
||||
.synSpecial { color: #6A5ACD }
|
||||
.synUnderlined { color: #000000 ; text-decoration: underline }
|
||||
.synError { color: #FFFFFF ; background: #FF0000 none }
|
||||
.synTodo { color: #0000FF ; background: #FFFF00 none }
|
||||
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
.xmlverb-default { color: #333333; background-color: #ffffff;
|
||||
font-family: monospace }
|
||||
.xmlverb-element-name { color: #990000 }
|
||||
.xmlverb-element-nsprefix { color: #666600 }
|
||||
.xmlverb-attr-name { color: #660000 }
|
||||
.xmlverb-attr-content { color: #000099; font-weight: bold }
|
||||
.xmlverb-ns-name { color: #666600 }
|
||||
.xmlverb-ns-uri { color: #330099 }
|
||||
.xmlverb-text { color: #000000; font-weight: bold }
|
||||
.xmlverb-comment { color: #006600; font-style: italic }
|
||||
.xmlverb-pi-name { color: #006600; font-style: italic }
|
||||
.xmlverb-pi-content { color: #006666; font-style: italic }
|
||||
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
#
|
||||
# Generates HTML documentation from DrupalXML (DXML) format
|
||||
#
|
||||
# This script has been written for Ivy usage, and may contain things specific to Ivy
|
||||
#
|
||||
# The performances are also very poor, I don't know if it's ruby or my fault (certainly mine, I'm still
|
||||
# a ruby newbie), but since this generation doesn't occur too often for Ivy, this is fine
|
||||
#
|
||||
# Note also that I had to modify the export_dxml module of drupal to put the node path in the xml
|
||||
# file (since we use heavily the url alias feature of drupal).
|
||||
#
|
||||
# This modification is as simple as adding the following lines in
|
||||
# book_node_visitor_dxml_pre - $Id: export_dxml.module,v 1.3 2005/11/29 19:28:10 puregin Exp $:
|
||||
# // check if we have an alias
|
||||
# $path = "node/$node->nid";
|
||||
#
|
||||
# $result = db_query("SELECT dst FROM {url_alias} WHERE src = '%s'", $path);
|
||||
# if (db_num_rows($result)) {
|
||||
# $node->path = db_result($result);
|
||||
# } else {
|
||||
# $node->path = $path;
|
||||
# }
|
||||
# $output .= " path='" . $node->path . "'";
|
||||
#
|
||||
# Note that this only work if the path module is activated (due to the use of the url_alias table
|
||||
#
|
||||
|
||||
|
||||
require 'FileUtils'
|
||||
require 'rexml/document'
|
||||
include REXML
|
||||
|
||||
class DxmlToHtml
|
||||
|
||||
##
|
||||
# initialise a dxml to html converter
|
||||
#
|
||||
# site is the web site on which relative links not part of the book should be redirected, with no trailing slash
|
||||
# template if the template file to use, look template.html for an example (tokens are of the form #{token}
|
||||
# ext is the extension to append to the generated files and links
|
||||
def initialize(site, template, ext = "html")
|
||||
@site = site
|
||||
@template = template
|
||||
@ext = ext
|
||||
end
|
||||
|
||||
private
|
||||
def process_template(tpl, fields, dest)
|
||||
ptpl = tpl.dup
|
||||
ptpl.gsub!(/#\{([^\}]+)\}/) {|s| fields[$1]}
|
||||
f = File.new(dest, 'w')
|
||||
f.puts ptpl
|
||||
f.close
|
||||
end
|
||||
|
||||
def gen_navigation(node, path = nil, pathdepth = node.elements["nodeinfo"].attributes['path'].count('/'))
|
||||
if (!path)
|
||||
path = Array.new
|
||||
while node.parent
|
||||
path.push node
|
||||
node = node.parent
|
||||
end
|
||||
end
|
||||
|
||||
content = '<ul class="menu">'
|
||||
node = path.pop
|
||||
node.each_element("./node") do |child|
|
||||
if child.elements["./node"]
|
||||
if (child == path.last)
|
||||
clss = 'expanded'
|
||||
else
|
||||
clss = 'collapsed'
|
||||
end
|
||||
else
|
||||
clss = 'leaf'
|
||||
end
|
||||
content += '<li class="'+clss+'"><a href="'+ ("../" * pathdepth + child.elements["nodeinfo"].attributes['path']+"."+@ext) +'">'+child.elements["title"].text+'</a>'
|
||||
if (child == path.last)
|
||||
content += gen_navigation(node,path,pathdepth)
|
||||
end
|
||||
content += "</li>"
|
||||
end
|
||||
content += "</ul>"
|
||||
return content
|
||||
end
|
||||
|
||||
public
|
||||
##
|
||||
# generates html files from a DXML file into the speficied directory
|
||||
# Note that if files already exist in the target directory they will be overwritten!
|
||||
#
|
||||
# A file will be created for each node in the DXML file, the name of the file being the path
|
||||
# of the node + .ext (where ext is configured in the object instanciation).
|
||||
#
|
||||
# All hyperlinks are processed so that any link to another page of the book will be automatically
|
||||
# converted to a relative link in the generated files.
|
||||
#
|
||||
# Other site relative links are prefixed with the site configured in the object instanciation,
|
||||
# external absolute links are kept as is.
|
||||
#
|
||||
# Links processing only works with absolute path on the site (/ivy/doc/conf, for instance), and not
|
||||
# with relative path, or full absolute path (like http://www.jayasoft.org/ivy).
|
||||
#
|
||||
def gen(book, todir)
|
||||
puts "reading template..."
|
||||
tpl = IO.readlines(@template).join()
|
||||
|
||||
puts "parsing dxml (#{book})..."
|
||||
doc = Document.new(File.new(book))
|
||||
root = doc.root
|
||||
|
||||
puts "starting generation..."
|
||||
root.each_element("//node") do |node|
|
||||
path = node.elements["nodeinfo"].attributes['path']
|
||||
pathdepth = path.count("/")
|
||||
node_file_path = todir+"/"+path+"."+@ext
|
||||
puts "generating #{node_file_path}"
|
||||
|
||||
FileUtils.mkdir_p(File.dirname(node_file_path))
|
||||
|
||||
|
||||
title = node.elements["title"].text
|
||||
|
||||
base = "../" * pathdepth
|
||||
|
||||
content = node.elements["content"].cdatas.to_s
|
||||
content.gsub!(/href="\/([^"]+)"/) do |s|
|
||||
if root.elements["//nodeinfo[@path='"+$1+"']"]
|
||||
'href="'+base+$1 +'.'+@ext+'"'
|
||||
else
|
||||
'href="'+@site + '/' +$1+'"'
|
||||
end
|
||||
end
|
||||
|
||||
navigation = gen_navigation(node)
|
||||
|
||||
process_template(tpl, {
|
||||
'path' => path,
|
||||
'base' => base,
|
||||
'title' => title,
|
||||
'navigation' => navigation,
|
||||
'content' => content
|
||||
}, node_file_path)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
puts "starting generator"
|
||||
g = DxmlToHtml.new("http://www.jayasoft.org", "src/doc/template.html")
|
||||
g.gen("src/doc/ivy-book.xml", "doc")
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<title>#{title} | Ivy</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<style type="text/css" media="all">@import "#{base}style/drupal.css";</style>
|
||||
<style type="text/css" media="all">@import "#{base}style/vim.css"</style>
|
||||
|
||||
<style type="text/css" media="all">@import "#{base}style/style.css";</style>
|
||||
<style type="text/css" media="all">@import "#{base}style/codefilter.css";</style>
|
||||
<style type="text/css" media="all">@import "#{base}style/quote.css";</style>
|
||||
<style type="text/css" media="all">@import "#{base}style/color.css";</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div id="body">
|
||||
<table id="header" summary="Navigation elements." border="0"
|
||||
cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td id="home" width="30%"><a href="http://www.jayasoft.org/"
|
||||
title="Home"><img src="#{base}images/jayasoft.png" alt="Jayasoft.org"
|
||||
border="0" /></a></td>
|
||||
|
||||
<td class="product" width="70%" align="right" valign="middle"><img
|
||||
src="#{base}images/logo.png" alt="ivy" border="0" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table id="top-menu" summary="Navigation elements." border="0"
|
||||
cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
<div id="navcontainer">
|
||||
<ul id="nav">
|
||||
<li><a href="#{base}index.html">Documentation</a></li>
|
||||
<li><a href="#{base}ivy/api/index.html">Javadoc</a></li>
|
||||
<li><a href="#{base}ivy/test-report/index.html">Test results</a></li>
|
||||
<li><a href="http://www.jayasoft.org/ivy">Web site</a></li>
|
||||
<li><a href="http://www.jayasoft.org/forum/ivy/core">Forum</a></li>
|
||||
<li><a href="http://www.jayasoft.org/contribute">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
|
||||
<td align="right" valign="middle">
|
||||
<form action="/" method="post" id="search_theme_form">
|
||||
<div><div id="search" class="container-inline"><div class="form-item">
|
||||
<input type="text" maxlength="128" name="edit[search_theme_form_keys]" id="edit-search_theme_form_keys" size="15" value="" title="Enter the terms you wish to search for." class="form-text" />
|
||||
</div>
|
||||
<input type="submit" name="op" value="Search" class="form-submit" />
|
||||
<input type="hidden" name="edit[form_id]" id="edit-search-theme-form" value="search_theme_form" />
|
||||
</div>
|
||||
</div></form>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<table id="content" border="0" cellpadding="0" cellspacing="0"
|
||||
width="100%">
|
||||
<tr>
|
||||
<td id="sidebar-left">
|
||||
<div class="block block-book" id="block-book-0">
|
||||
<h2>Ivy Documentation</h2>
|
||||
|
||||
<div class="content">#{navigation}</div>
|
||||
|
||||
</div>
|
||||
|
||||
</td>
|
||||
|
||||
<td valign="top">
|
||||
<div id="main">
|
||||
|
||||
<h1 class="title">#{title} <a href="http://www.jayasoft.org/#{path}"><img src="#{base}images/discovery.gif" alt="view online" title="view online"/></a></h1>
|
||||
#{content}
|
||||
</div><!-- main -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table id="footer-menu" summary="Navigation elements." border="0"
|
||||
cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<div class="primary-links">::
|
||||
<a href="#{base}index.html">Home</a> ::
|
||||
<a href="http://www.jayasoft.org/ivy">Web site</a> ::
|
||||
<a href="http://www.jayasoft.org/forum/ivy/core">Forum</a> ::
|
||||
<a href="http://www.jayasoft.org/contribute">Contribute</a> ::
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<div id="footer-message"></div>
|
||||
|
||||
|
||||
</div><!-- body -->
|
||||
</body>
|
||||
</html>
|
||||
|
||||