autoproj 1.7.0.rc2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/History.txt +29 -20
  2. data/Manifest.txt +2 -29
  3. data/Rakefile +7 -28
  4. data/bin/autolocate +9 -37
  5. data/{doc/guide/src → bin}/autoproj_bootstrap +36 -0
  6. data/bin/autoproj_stress_test +40 -0
  7. data/lib/autoproj/cmdline.rb +22 -3
  8. data/lib/autoproj/manifest.rb +0 -2
  9. data/lib/autoproj/version.rb +1 -1
  10. metadata +12 -40
  11. data/doc/guide/config.yaml +0 -29
  12. data/doc/guide/ext/init.rb +0 -18
  13. data/doc/guide/ext/previous_next.rb +0 -40
  14. data/doc/guide/ext/rdoc_links.rb +0 -33
  15. data/doc/guide/src/adding_packages.page +0 -40
  16. data/doc/guide/src/customization.page +0 -230
  17. data/doc/guide/src/default.css +0 -340
  18. data/doc/guide/src/default.template +0 -74
  19. data/doc/guide/src/error_messages.page +0 -37
  20. data/doc/guide/src/htmldoc.metainfo +0 -8
  21. data/doc/guide/src/htmldoc.virtual +0 -19
  22. data/doc/guide/src/images/bodybg.png +0 -0
  23. data/doc/guide/src/images/contbg.png +0 -0
  24. data/doc/guide/src/images/footerbg.png +0 -0
  25. data/doc/guide/src/images/gradient1.png +0 -0
  26. data/doc/guide/src/images/gradient2.png +0 -0
  27. data/doc/guide/src/index.page +0 -64
  28. data/doc/guide/src/manifest.xml +0 -14
  29. data/doc/guide/src/overview.png +0 -0
  30. data/doc/guide/src/overview.svg +0 -537
  31. data/doc/guide/src/package_sets/autobuild.page +0 -239
  32. data/doc/guide/src/package_sets/importers.page +0 -165
  33. data/doc/guide/src/package_sets/index.page +0 -223
  34. data/doc/guide/src/package_sets/manifest-xml.page +0 -29
  35. data/doc/guide/src/package_sets/osdeps.page +0 -128
  36. data/doc/guide/src/quick_start.page +0 -128
  37. data/doc/guide/src/toc.page +0 -7
  38. data/doc/guide/src/writing_manifest.page +0 -146
@@ -1,29 +0,0 @@
1
- # This is the YAML configuration file for webgen used to set configuration options.
2
- #
3
- # The general syntax is:
4
- #
5
- # configuration.option.name: value
6
- #
7
- # For example, to set a different default language, you would do:
8
- #
9
- # website.lang: de
10
- #
11
- # Have a look at the documentation of the individual configuration options to see
12
- # the allowed format of the values. Since this is a YAML file, you can easily set
13
- # configuration options to strings, integers, dates, arrays, hashes and more.
14
- #
15
- # The available configuration options can be listed using the `webgen config`
16
- # command, for example: `webgen config sourcehandler` will list all options starting
17
- # with sourcehandler.
18
-
19
- default_meta_info:
20
- Webgen::SourceHandler::Page:
21
- in_menu: true
22
-
23
- tag.menu.nested: false
24
-
25
- tag.breadcrumbtrail.omit_index_path: true
26
-
27
- tag.coderay.line_numbers: false
28
- tag.coderay.lang: ruby
29
-
@@ -1,18 +0,0 @@
1
- # = webgen extensions directory
2
- #
3
- # All init.rb files anywhere under this directory get automatically loaded on a webgen run. This
4
- # allows you to add your own extensions to webgen or to modify webgen's core!
5
- #
6
- # If you don't need this feature you can savely delete this file and the directory in which it is!
7
- #
8
- # The +config+ variable below can be used to access the Webgen::Configuration object for the current
9
- # website.
10
- config = Webgen::WebsiteAccess.website.config
11
-
12
- config = Webgen::WebsiteAccess.website.config
13
- config['sourcehandler.patterns']['Webgen::SourceHandler::Copy'] << '**/autoproj_bootstrap'
14
- config['sourcehandler.patterns']['Webgen::SourceHandler::Copy'] << '**/manifest.xml'
15
-
16
- $LOAD_PATH.unshift File.expand_path('..', File.dirname(__FILE__))
17
- require 'ext/rdoc_links'
18
- require 'ext/previous_next'
@@ -1,40 +0,0 @@
1
- require 'webgen/tag'
2
- class PrevNextTag
3
- include Webgen::Tag::Base
4
-
5
- def call(tag, body, context)
6
- node = context.content_node
7
- while !node.is_file?
8
- node = node.parent
9
- end
10
-
11
- siblings = node.parent.children.sort
12
- siblings.delete_if { |n| !n.meta_info['in_menu'] }
13
- prev, _ = siblings.
14
- enum_for(:each_cons, 2).
15
- find { |prev, this| this == node }
16
- _, nxt = siblings.
17
- enum_for(:each_cons, 2).
18
- find { |this, nxt| this == node }
19
-
20
- content = if tag == "next" && nxt
21
- node.link_to(nxt)
22
- elsif tag == "previous" && prev
23
- node.link_to(prev)
24
- end
25
-
26
- if content
27
- if !body.empty?
28
- body.gsub '%', content
29
- else
30
- content
31
- end
32
- end
33
- end
34
- end
35
-
36
- config = Webgen::WebsiteAccess.website.config
37
- config['contentprocessor.tags.map']['previous'] = 'PrevNextTag'
38
- config['contentprocessor.tags.map']['next'] = 'PrevNextTag'
39
-
40
-
@@ -1,33 +0,0 @@
1
- require 'webgen/tag'
2
- class RdocLinks
3
- include Webgen::Tag::Base
4
-
5
- def call(tag, body, context)
6
- name = param('rdoclinks.name')
7
- if base_module = param('rdoclinks.base_module')
8
- name = base_module + "::" + name
9
- end
10
-
11
- if name =~ /(?:\.|#)(\w+)$/
12
- class_name = $`
13
- method_name = $1
14
- else
15
- class_name = name
16
- end
17
-
18
- path = class_name.split('::')
19
- path[-1] += ".html"
20
- url = "#{param('rdoclinks.base_url')}/#{path.join("/")}"
21
-
22
- "<a href=\"#{context.ref_node.route_to(url)}\">#{param('rdoclinks.name')}</a>"
23
- end
24
- end
25
-
26
- config = Webgen::WebsiteAccess.website.config
27
- config.rdoclinks.name "", :mandatory => 'default'
28
- config.rdoclinks.base_webgen "", :mandatory => false
29
- config.rdoclinks.base_url "", :mandatory => false
30
- config.rdoclinks.base_module nil, :mandatory => false
31
- config.rdoclinks.full_name false, :mandatory => false
32
- config['contentprocessor.tags.map']['rdoc_class'] = 'RdocLinks'
33
-
@@ -1,40 +0,0 @@
1
- ---
2
- title: Adding packages (for the impatient)
3
- sort_info: 50
4
- ---
5
-
6
- To register a package in autoproj, you need to basically do two things
7
-
8
- * declare it in an autobuild file
9
- * add VCS information for it (i.e. "where to get it")
10
-
11
- A first step
12
- ------------
13
-
14
- A quick thing that can be done to register a new package in your autoproj
15
- installation is to add it to the local package set.
16
-
17
- * [register it](package_sets/autobuild.html) in
18
- <tt>autoproj/local.autobuild</tt>
19
- * [give version control information](package_sets/importers.html) for it in
20
- <tt>autoproj/overrides.yml</tt>
21
-
22
- Alternatively to the last point, you can register it under the "type: none"
23
- importer in autoproj/overrides.yml to make autoproj not care about updating that
24
- package.
25
-
26
- Sharing package definitions with the rest of the world
27
- ------------------------------------------------------
28
-
29
- To do that, you will either have to move the package definition to a separate
30
- package set (usually one of those that are in autoproj/remotes/), or to create
31
- your own package set]
32
-
33
- For the first solution, you will have to move the package definition from
34
- autoproj/local.autobuild to an autobuild file in the package set directory (name
35
- does not matter as long as it ends with .autobuild). Moreover, you will have to
36
- move the importer definition from autoproj/overrides.yml to the package set's
37
- source.yml file.
38
-
39
- For the second solution, [read on](package_sets/index.html)
40
-
@@ -1,230 +0,0 @@
1
- ---
2
- title: Customizing the installation
3
- sort_info: 75
4
- ---
5
-
6
- Changing the installation's layout
7
- ----------------------------------
8
-
9
- The <tt>layout</tt> section of <tt>autoproj/manifest</tt> offers two things:
10
-
11
- * select which packages/package sets to build and
12
- * build packages in specific subdirectories
13
-
14
- This section lists packages or package sets that ought to be built by autoproj.
15
- For instance, in the following example, only the <tt>orocos/rtt</tt> and <tt>orocos/ocl</tt>
16
- packages of the rubim.orocos source will be built. The other will be excluded
17
- from the build.
18
-
19
- {coderay:: yaml}
20
- package_sets:
21
- - type: git
22
- url: git://github.com/doudou/rubim.orocos.git
23
-
24
- layout:
25
- - orocos/rtt
26
- - orocos/ocl
27
- {coderay}
28
-
29
- Instead of giving a package name, the name of a package set can be provided,
30
- which translates into "all the packages of that set".
31
-
32
- As we mentionned before, the layout mechanism also allows you to place packages
33
- in subdirectories of the main installation. For instance, the following snippet
34
- will build the <tt>typelib</tt>, <tt>utilmm</tt> and <tt>utilrb</tt> libraries of rubim.orocos into
35
- the <tt>lib/</tt> subdirectory and all the <tt>orocos/</tt> packages in the root.
36
-
37
- {coderay:: yaml}
38
- layout:
39
- - lib:
40
- - typelib
41
- - utilmm
42
- - utilrb
43
- - orocos/
44
- {coderay}
45
-
46
- Configuration files like <tt>autoproj/manifest</tt> are YAML file. As such, they
47
- aresensible to indentation. The snippet above should be read as: in the layout, there is first a "lib" part and second the packages whose names start with "orocos/" _(first level of indentation)_. In the "lib" part, the packages are "typelib", "utilmm"
48
- and "utilrb" _(second level of indentation)_.
49
- {: .warning}
50
-
51
- Alternatively, the example above could be written:
52
- {coderay:: yaml}
53
- layout:
54
- - lib: [typelib, utilmm, utilrb]
55
- - orocos/
56
- {coderay}
57
-
58
- Finally, names of sublayouts can be used as arguments in the autoproj command
59
- line, instead of package names:
60
-
61
- autoproj build lib
62
- {: .commandline}
63
-
64
- Removing packages from the build (<tt>exclude_packages</tt>) {#exclude_packages}
65
- --------------------------------
66
- Instead of having to list all packages that you do want to build, it is possible
67
- to list the packages that you don't want to build. Simply list them in the
68
- <tt>exclude_packages</tt> section of the manifest file. In the following example, all
69
- of the rubim.orocos package set will be built *but* the pocosim-log package.
70
-
71
- {coderay:: yaml}
72
- layout:
73
- - rubim.orocos
74
-
75
- exclude_packages:
76
- - pocosim-log
77
- {coderay}
78
-
79
- If another package, that should be built, depends on an excluded package, [an
80
- error is generated](error_messages.html#exclusions)
81
-
82
- Using packages that are already installed (<tt>ignore_packages</tt>)
83
- -----------------------------------------
84
-
85
- If some packages are already installed elsewhere, and you want to use that
86
- version instead of the one listed in the package sets, list them in the
87
- <tt>ignore_packages</tt> section of the manifest. In the following example, the
88
- <tt>orocos/rtt</tt> package will *not* be built by autoproj.
89
-
90
- {coderay:: yaml}
91
- layout:
92
- - rubim.orocos
93
-
94
- exclude_packages:
95
- - pocosim-log
96
-
97
- ignore_packages:
98
- - orocos/rtt
99
- {coderay}
100
-
101
- Unlike with <tt>exclude_packages</tt>, no error is generated for ignored
102
- packages that are depended-upon by other packages in the build. This is because
103
- ignore_packages is meant to list packages that are already installed outside of
104
- autoproj, while exclude_packages lists what you do **not** want to have at all.
105
-
106
- Local overrides of version control information
107
- ----------------------------------------------
108
-
109
- The <tt>autoproj/overrides.yml</tt> allows you to override version control information
110
- for specific packages. It has the same format than the source.yml file of
111
- package sets, so [check that page out](package_sets/importers.html) for more information.
112
-
113
- This file can in particular be used to avoid further updates to a given software
114
- package. Simply do:
115
-
116
- {coderay:: yaml}
117
- overrides:
118
- - orocos/rtt:
119
- type: none
120
- {coderay}
121
-
122
- To track a different branch that the default branch, you will have to do:
123
-
124
- {coderay:: yaml}
125
- overrides:
126
- - orocos/rtt:
127
- branch: experimental
128
- {coderay}
129
-
130
- Tuning what files autoproj looks at to determine if a package should be updated
131
- -------------------------------------------------------------------------------
132
- When a package A depends on a package B, autoproj checks if some of the files in
133
- B's directory are newer than the latest build of A. If it is the case, it will
134
- trigger the build of B and then the one of A.
135
-
136
- Autoproj has a default list of files that it should ignore. Unfortunately, it
137
- may be that you are generating some files in the source directory that autoproj
138
- interprets as new files and trigger builds.
139
-
140
- If you have the impression that autoproj does too many rebuilds, run the build
141
- once with the <tt>--list-newest-files</tt> option. For instance,
142
-
143
- autoproj --list-newest-files fast-build
144
- {: .cmdline}
145
-
146
- If you find some files that should be ignored, add them either to the package
147
- sets (i.e. autoproj/remotes/blablab/init.rb) or in autoproj/init.rb with
148
-
149
- {coderay:: ruby}
150
- ignore /a_regular_expression/
151
- {coderay}
152
-
153
- where /a_regular_expression/ is a regular expression matching your files. For
154
- instance, to eliminate all files that have an extension in ".swp", one would do
155
-
156
- {coderay:: ruby}
157
- ignore /\.swp$/
158
- {coderay}
159
-
160
- Building local packages
161
- -----------------------
162
-
163
- You can list local packages that are not in an imported package set by placing
164
- the definitions in autoproj/, in a file ending with <tt>.autobuild</tt>. See [this
165
- page](package_sets/autobuild.html) for information on how to write autobuild files.
166
-
167
- Setting up the path to specific commands (make, parallel builds)
168
- ----------------------------------------------------------------
169
-
170
- The autobuild API allows to specify what specific installed command to use for
171
- each tool needed during the build. These commands can be used in
172
- <tt>autoproj/init.rb</tt> to tune the build system. Example:
173
-
174
- {coderay:: ruby}
175
- Autobuild.commands['make'] = '/path/to/ccmake'
176
- Autobuild.parallel_build_level = 10 # build with -j10
177
- {coderay}
178
-
179
- More complex customization
180
- --------------------------
181
-
182
- More complex customization can be achieved by accessing the [Autoproj API](api/index.html) and
183
- the [Autobuild API](http://doudou.github.com/autobuild/index.html) directly in the <tt>autoproj/init.rb</tt> and
184
- <tt>autoproj/overrides.rb</tt>
185
- files. The former is loaded before all source files and the latter is loaded
186
- after all source files.
187
-
188
- Some examples:
189
-
190
- * fixing dependencies: if a dependency is not listed in a package's manifest,
191
- then you can fix it by adding the following in <tt>autoproj/overrides.rb</tt>
192
- {coderay:: ruby}
193
- a = Autobuild::Package['a_package']
194
- a.depends_on "other_package"
195
- {coderay}
196
-
197
- * changing the configuration of some cmake package:
198
- {coderay:: ruby}
199
- a = Autobuild::Package['a_package']
200
- a.define "CONFIG_VAR", "CONFIG_VALUE"
201
- {coderay}
202
-
203
- Building packages selectively on the command line
204
- -------------------------------------------------
205
-
206
- The autoproj command line accepts subdirectories defined in the layout as well
207
- as package names.
208
-
209
- For instance, with the following layout:
210
-
211
- {coderay:: yaml}
212
- layout:
213
- - typelib
214
- - asguard:
215
- - modules/base
216
- - modules/logger
217
- {coderay}
218
-
219
- If the command line is
220
-
221
- autoproj build modules/logger
222
- {: .commandline}
223
-
224
- then modules/logger and its dependencies will be built. Idem, if the command line is:
225
-
226
- autoproj build asguard
227
- {: .commandline}
228
-
229
- then all packages or asguard/ are built, including their dependencies
230
-
@@ -1,340 +0,0 @@
1
- /* andreas03 - an open source xhtml/css website layout by Andreas Viklund - http://andreasviklund.com . Free to use for any purpose as long as the proper credits are given to the original author.
2
-
3
- Version: 1.2
4
- (Nov 28, 2005)
5
-
6
- Screen layout: */
7
-
8
- body{
9
- margin:0;
10
- padding:30px 0;
11
- font:76% tahoma,verdana,sans-serif;
12
- background:#047 url(images/bodybg.png) repeat-x fixed;
13
- color:#222;
14
- }
15
-
16
- #thetop{
17
- margin:0;
18
- }
19
-
20
- #container{
21
- width:720px;
22
- margin:0 auto;
23
- padding:20px 20px 0 20px;
24
- background:#fff url(images/contbg.png) no-repeat;
25
- color:#222;
26
- }
27
-
28
- a{
29
- text-decoration:none;
30
- background-color:inherit;
31
- color:#26c;
32
- }
33
-
34
- a:hover {
35
- text-decoration:underline;
36
- }
37
-
38
- img.full {
39
- margin-left: auto;
40
- margin-right: auto;
41
- margin-top: 2em;
42
- margin-bottom: 2em;
43
- }
44
-
45
- a img{
46
- border:0;
47
- }
48
-
49
- p{
50
- margin:0 0 15px 0;
51
- line-height:1.5em;
52
- }
53
-
54
- #main p,#sidebar p{
55
- padding:0 0 0 10px;
56
- }
57
-
58
- #logo{
59
- float:left;
60
- width:240px;
61
- margin:0 20px 0 0;
62
- padding:0 0 25px 0;
63
- background:#eee;
64
- border:4px solid #dde;
65
- text-align:center;
66
- color:#555;
67
- overflow:auto;
68
- }
69
-
70
- #logo h1{
71
- margin:50px 5px 1px 5px;
72
- letter-spacing:-3px;
73
- }
74
-
75
- #logo a{
76
- background-color:inherit;
77
- color:#26a;
78
- text-decoration:none;
79
- }
80
-
81
- #logo a:hover{
82
- background-color:inherit;
83
- color:#69e;
84
- }
85
-
86
- #tagline{
87
- text-align:center;
88
- font-size:1.2em;
89
- }
90
-
91
- #intro p{
92
- line-height:1.5em;
93
- }
94
-
95
- #main{
96
- float:left;
97
- width:530px;
98
- margin-right:20px;
99
- padding:0;
100
- }
101
-
102
- #main h2, .navbar {
103
- display:block;
104
- margin:30px 0 10px 0;
105
- padding:5px 0 5px 8px;
106
- background:#eee url(images/gradient2.png) repeat-x;
107
- color:#222;
108
- border-top:1px solid #ddd;
109
- border-right:1px solid #bbb;
110
- border-bottom:1px solid #bbb;
111
- border-left:1px solid #ddd;
112
- text-decoration:none;
113
- }
114
-
115
- #sidebar{
116
- width:155px;
117
- float:right;
118
- margin-top:20px;
119
- font-size:1em;
120
- line-height:1.3em;
121
- }
122
-
123
- #sidebar p, #sidebar .linklist {
124
- font-size:0.9em;
125
- }
126
-
127
- #sidebar ul.linklist {
128
- list-style-type: none;
129
- margin: 0px;
130
- padding: 5px 0px 5px 8px;
131
- }
132
-
133
- #sidebar #menu ul, #sidebar #submenu ul {
134
- list-style-type: none;
135
- margin: 0px;
136
- padding: 0px;
137
- }
138
-
139
- ul li ul li {
140
- margin-left: -2em;
141
- padding-left: 0;
142
- }
143
-
144
- #sidebar #menu li, .sidelink, #sidebar #submenu li, #sidebar #submenu li {
145
- display:block;
146
- width:140px;
147
- margin:3px 10px 2px 0;
148
- padding:5px 0 5px 8px;
149
- font-size:1.1em;
150
- font-weight:bold;
151
- text-align:left;
152
- background:#eee url(images/gradient1.png) repeat-x;
153
- color:#26c;
154
- border-top:1px solid #ddd;
155
- border-right:1px solid #bbb;
156
- border-bottom:1px solid #bbb;
157
- border-left:1px solid #ddd;
158
- }
159
-
160
- #sidebar #menu a:hover {
161
- text-decoration: none;
162
- }
163
-
164
- #sidebar #menu li.webgen-menu-submenu-inhierarchy, .menuheader {
165
- background:#fff url(images/gradient2.png) repeat-x;
166
- color:#222;
167
- border-top:1px solid #ddd;
168
- border-right:1px solid #888;
169
- border-bottom:1px solid #888;
170
- border-left:1px solid #ddd;
171
- text-decoration:none;
172
- }
173
-
174
- #sidebar #menu li.webgen-menu-item-selected {
175
- color: #222;
176
- }
177
- #sidebar #menu li.webgen-menu-item-selected:hover {
178
- color: #222;
179
- background: none;
180
- border: none;
181
- }
182
-
183
- .menuheader {
184
- font-size: 1.4em;
185
- text-align: center;
186
- margin-bottom: .4em;
187
- }
188
-
189
- #sidebar #submenu li.webgen-menu-item-selected, #sidebar #submenu li:hover {
190
- background: none;
191
- font-size: 1em:
192
- }
193
-
194
- #sidebar #menu li ul li, #sidebar #submenu li ul li, #sidebar #submenu li ul li.webgen-menu-item-selected {
195
- display:block;
196
- width:130px;
197
- margin:3px 10px 2px 0;
198
- padding:0px 0 0px 8px;
199
- font-size:0.8em;
200
- font-weight:bold;
201
- text-align:left;
202
- background: none;
203
- color:#26c;
204
- border: none;
205
- }
206
-
207
-
208
- #footer{
209
- margin:0 auto 20px auto;
210
- width:760px;
211
- background:#fff url(images/footerbg.png) bottom left no-repeat;
212
- padding:0 0 5px 0;
213
- font-size:0.9em;
214
- color:#888;
215
- text-align:center;
216
- }
217
-
218
- h1,h2,h3,h4{
219
- margin:0 0 10px 0;
220
- font-weight:normal;
221
- }
222
-
223
- h1{
224
- font-size:2.8em;
225
- margin-top: 5px;
226
- margin-bottom: 5px;
227
- }
228
-
229
- h2{
230
- margin:0 0 4px 0;
231
- font-size:1.8em;
232
- }
233
-
234
- h3{
235
- margin:20px 0 8px 0;
236
- font-size:1.4em;
237
- }
238
-
239
- h4{
240
- margin:10px 0 5px 0;
241
- font-size:1.2em;
242
- }
243
-
244
- .clear{
245
- clear:both;
246
- margin:0;
247
- }
248
-
249
- .right{
250
- text-align:right;
251
- }
252
-
253
- .internallink{
254
- font-size:0.9em;
255
- text-align:center;
256
- }
257
-
258
- .block{
259
- padding:20px;
260
- background:#eee;
261
- color:#222;
262
- border:2px solid #ddd;
263
- margin-top: 3em;
264
- margin-bottom: 3em;
265
- margin-left: 2em;
266
- margin-right: 2em;
267
- }
268
-
269
- .warning{
270
- padding:20px;
271
- background:#fbb;
272
- color:#222;
273
- border:2px solid #eaa;
274
- margin-top: 3em;
275
- margin-bottom: 3em;
276
- margin-left: 2em;
277
- margin-right: 2em;
278
-
279
- }
280
-
281
- .credit{
282
- color:#888;
283
- background-color:inherit;
284
- }
285
-
286
- .hide{
287
- display:none;
288
- }
289
-
290
- pre .code{
291
- margin-left: 2.5em;
292
- }
293
- pre {
294
- margin-left: 2.5em;
295
- }
296
- code {
297
- font: monospace;
298
- }
299
-
300
-
301
- /* Original open source design by Andreas Viklund - http://andreasviklund.com
302
- Released through OSWD.org */
303
-
304
- .navbar {
305
- padding-left: 1em;
306
- padding-right: 1em;
307
- padding-bottom: 2em;
308
- }
309
- .previous .next {
310
- margin: 1em;
311
- display: inline;
312
- font-size: 1.2em;
313
- }
314
- .previous {
315
- float: left;
316
- }
317
- .next {
318
- float: right;
319
- }
320
-
321
- .fullfigure {
322
- text-align: center;
323
- }
324
- .figurecaption {
325
- text-align: center;
326
- margin-top: -1em;
327
- margin-bottom: 4em;
328
- margin-left: 10%;
329
- margin-right: 10%;
330
- background:#eee;
331
- color:#222;
332
- border:2px solid #ddd;
333
- }
334
- .commandline {
335
- font: monospace;
336
- margin-left: 1em;
337
- margin-top: -.6em;
338
- margin-bottom: .5em;
339
- }
340
-