flak 0.0.1 → 0.0.2

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 (62) hide show
  1. data/README.textile +59 -0
  2. data/flak.gemspec +2 -2
  3. data/lib/flak.rb +16 -341
  4. data/lib/flak/rake/base.rb +312 -0
  5. data/lib/flak/{cpp.rb → rake/cpp.rb} +6 -4
  6. data/lib/flak/{delight.rb → rake/delight.rb} +3 -3
  7. data/lib/flak/rake/doc.rb +64 -0
  8. data/lib/flak/{gl.rb → rake/gl.rb} +1 -1
  9. data/lib/flak/{mac.rb → rake/mac.rb} +1 -1
  10. data/lib/flak/{max.rb → rake/max.rb} +1 -1
  11. data/lib/flak/{maya.rb → rake/maya.rb} +7 -7
  12. data/lib/flak/{maya_app.rb → rake/maya_app.rb} +1 -1
  13. data/lib/flak/{maya_plugin.rb → rake/maya_plugin.rb} +1 -1
  14. data/lib/flak/{nuke.rb → rake/nuke.rb} +1 -1
  15. data/lib/flak/{target.rb → rake/target.rb} +9 -19
  16. data/lib/flak/thor/generate.rb +108 -184
  17. data/lib/flak/thor/target_file.rb +62 -0
  18. data/lib/flak/thor/templates/INSTALL.tt +15 -13
  19. data/lib/flak/thor/templates/doc.tt +0 -0
  20. data/lib/flak/thor/templates/doc/Rules +77 -0
  21. data/lib/flak/thor/templates/doc/config.yaml +77 -0
  22. data/lib/flak/thor/templates/doc/content/assets/css/include.scss +14 -0
  23. data/lib/flak/thor/templates/doc/content/assets/css/page.scss +314 -0
  24. data/lib/flak/thor/templates/doc/content/assets/images/.empty_directory +1 -0
  25. data/lib/flak/thor/templates/doc/content/assets/images/screenshot.jpg +0 -0
  26. data/lib/flak/thor/templates/doc/content/assets/movies/.empty_directory +1 -0
  27. data/lib/flak/thor/templates/doc/content/assets/movies/sampleMovie.webm +0 -0
  28. data/lib/flak/thor/templates/doc/content/assets/site_images/array.gif +0 -0
  29. data/lib/flak/thor/templates/doc/content/assets/site_images/connectable.gif +0 -0
  30. data/lib/flak/thor/templates/doc/content/assets/site_images/create.gif +0 -0
  31. data/lib/flak/thor/templates/doc/content/assets/site_images/edit.gif +0 -0
  32. data/lib/flak/thor/templates/doc/content/assets/site_images/hidden.gif +0 -0
  33. data/lib/flak/thor/templates/doc/content/assets/site_images/input.gif +0 -0
  34. data/lib/flak/thor/templates/doc/content/assets/site_images/keyable.gif +0 -0
  35. data/lib/flak/thor/templates/doc/content/assets/site_images/logo.jpg +0 -0
  36. data/lib/flak/thor/templates/doc/content/assets/site_images/maya.png +0 -0
  37. data/lib/flak/thor/templates/doc/content/assets/site_images/miro_logo_bw.png +0 -0
  38. data/lib/flak/thor/templates/doc/content/assets/site_images/multiuse.gif +0 -0
  39. data/lib/flak/thor/templates/doc/content/assets/site_images/nanoc.png +0 -0
  40. data/lib/flak/thor/templates/doc/content/assets/site_images/nuke.png +0 -0
  41. data/lib/flak/thor/templates/doc/content/assets/site_images/output.gif +0 -0
  42. data/lib/flak/thor/templates/doc/content/assets/site_images/prman.png +0 -0
  43. data/lib/flak/thor/templates/doc/content/assets/site_images/python.png +0 -0
  44. data/lib/flak/thor/templates/doc/content/assets/site_images/query.gif +0 -0
  45. data/lib/flak/thor/templates/doc/content/assets/site_images/storable.gif +0 -0
  46. data/lib/flak/thor/templates/doc/content/assets/site_images/vfxoverflow_ribbon.png +0 -0
  47. data/lib/flak/thor/templates/doc/content/assets/site_images/vray.png +0 -0
  48. data/lib/flak/thor/templates/doc/content/index.txt.tt +31 -0
  49. data/lib/flak/thor/templates/doc/content/install_guide.txt.tt +64 -0
  50. data/lib/flak/thor/templates/doc/content/release_notes.txt.tt +44 -0
  51. data/lib/flak/thor/templates/doc/content/scenes/.empty_directory +1 -0
  52. data/lib/flak/thor/templates/doc/content/tutorial.txt.tt +81 -0
  53. data/lib/flak/thor/templates/doc/layouts/default.html +52 -0
  54. data/lib/flak/thor/templates/doc/lib/helpers.rb +147 -0
  55. data/lib/flak/thor/templates/env.tt +29 -1
  56. data/lib/flak/thor/templates/gitignore.tt +3 -0
  57. data/lib/flak/thor/templates/init.mel.tt +22 -0
  58. data/lib/flak/thor/templates/product.mel.tt +15 -10
  59. data/lib/flak/thor/wizard.rb +47 -0
  60. data/lib/flak/version.rb +1 -1
  61. metadata +120 -63
  62. data/lib/flak/doc.rb +0 -259
@@ -0,0 +1,62 @@
1
+
2
+ # opts[:maya_plugin_target] = false
3
+ # opts[:maya_app_target] = false
4
+
5
+ # opts[:nuke_target] = false
6
+ # opts[:standalone_target] = false
7
+
8
+ # opts[:delight_target] = false
9
+ #
10
+
11
+
12
+
13
+
14
+ module Flak
15
+ module TargetFile
16
+
17
+ def self.tool(name,options={})
18
+ h = Hash.new
19
+ maya_c_compile = true if options[:maya_plugin_target] || options[:maya_app_target]
20
+ c_compile = true if (maya_c_compile || options[:nuke_target] || options[:standalone_target] )
21
+
22
+ h['name'] = name.camelize
23
+
24
+ h['maya_script_copy_files'] = ["maya/script/**/*.mel","maya/script/**/*.py","maya/script/**/*.pyc"]
25
+ h['maya_scripted_plugin_copy_files'] = ["maya/script/plugin/**/*.py","maya/script/plugin/**/*.pyc"]
26
+ h['maya_node_icon_files'] = ["maya/icons/node/*"]
27
+ h['maya_icon_files'] = ["maya/icons/*.jpg"]
28
+ h['maya_icon_copy_files'] = ["maya/icons/*.png","maya/icons/*.xbm","maya/icons/*.xpm"]
29
+ h['nuke_script_copy_files'] = ["nuke/python/*.py", "nuke/gizmo/*.gizmo", "nuke/scenes/*.nk"] if options[:nuke]
30
+
31
+
32
+ h['include_paths'] = ["../../shared/src"] if c_compile
33
+ h['include_paths'] << "../../shared/src/maya" if maya_c_compile
34
+ h['libs'] = ["OpenMayaAnim","OpenMayaUI","OpenMayaRender","OpenMayaFX"] if maya_c_compile
35
+ h['templates'] = []
36
+ h['templates'] << "cpp" if c_compile
37
+ h['templates'] << "maya"
38
+ h['templates'] << "maya_plugin" if options[:maya_plugin_target]
39
+ h['templates'] << "maya_app" if options[:maya_app_target]
40
+ h['templates'] << "gl" if maya_c_compile
41
+ h['templates'] << "delight" if options[:delight_target]
42
+ h['source_files'] = []
43
+ h['source_files'] << "src/*.cpp" if c_compile
44
+ h['shell_script_copy_files'] = ["shell/script/*"]
45
+ YAML::dump(h)
46
+ end
47
+
48
+ def self.project(name,options={})
49
+ h = Hash.new
50
+ h['name'] = "FlakProject#{name.camelize}"
51
+ if options[:maya_module]
52
+ h['maya_script_copy_files'] = ["config/script/maya/*.mel","config/script/maya/*.py","config/script/maya/*.pyc"]
53
+ h['maya_script_erb_files'] = ["config/script/maya/erb/*.mel.erb","config/script/maya/erb/*.py.erb"]
54
+ h['templates'] = ["maya", "doc"]
55
+ end
56
+ h['shell_script_copy_files'] = ["config/script/shell/*.sh"]
57
+ h['shell_script_erb_files'] = ["config/script/shell/erb/*.erb"]
58
+ YAML::dump(h)
59
+ end
60
+
61
+ end
62
+ end
@@ -2,17 +2,17 @@
2
2
 
3
3
  #TODO - rewrite in ruby
4
4
 
5
- # INSTALL for mac and linux - the purpose of this script is to:
6
- # 1. write the modules file and put it in the maya app dir modules directory
7
- # 2. write lines at the bottom of bashrc to source the product.sh file
8
5
 
9
- # the product was built for a specific maya version
10
- set maya_ver = "<%= self.settings[:maya_version] %>"
6
+ # INSTALL script for mac and linux - the purpose of this script is to:
7
+ # Write lines at the bottom of bashrc to source the product.sh file
8
+ # Write the Maya modules file if this is a module, and put it in the maya app dir modules directory
11
9
 
12
- # therefore product_version is derived from the maya version
13
- set product_version = "<%= self.settings[:product_revision] %>"
14
- set product = "<%= @settings[:product_name] %>"
15
- set product_up = "<%= @settings[:product_name].upcase %>"
10
+ set maya_ver = "<%%= self.settings[:maya_version] %>"
11
+
12
+ set product_up = "<%%= @settings[:product_name].upcase %>"
13
+ set product_version = "<%%= self.settings[:product_revision] %>"
14
+ set product = "<%%= @settings[:product_name] %>"
15
+ set product_up = "<%%= @settings[:product_name].upcase %>"
16
16
 
17
17
  set rootdir = `dirname $0`
18
18
  set rootdir = `cd $rootdir && pwd` # ensure absolute path
@@ -83,9 +83,14 @@ mkdir -p $modules_dir
83
83
 
84
84
  set the_product_dir = ${product_inst_dir}/${product_version}-${install_platform}
85
85
  set the_maya_module = ${the_product_dir}"/maya"
86
- echo "+ ${product} ${product_version} ${the_maya_module}" > ${modules_dir}/${product}
87
86
 
87
+ <% if project_options[:maya_module] -%>
88
+ echo "+ ${product} ${product_version} ${the_maya_module}" > ${modules_dir}/${product}
88
89
  echo "writing + ${product} ${product_version} ${the_maya_module} to ${modules_dir}/${product}"
90
+ <% else -%>
91
+ # echo "+ ${product} ${product_version} ${the_maya_module}" > ${modules_dir}/${product}
92
+ # echo "writing + ${product} ${product_version} ${the_maya_module} to ${modules_dir}/${product}"
93
+ <% end -%>
89
94
 
90
95
  if (-f ${HOME}/.bashrc) then
91
96
  cp ${HOME}/.bashrc ${HOME}/.bashrc.${product}.bck
@@ -104,9 +109,6 @@ if (-f ${HOME}/.bashrc) then
104
109
  echo '. ${'${product_up}'}/bin/'${product}'.sh'
105
110
  echo ""
106
111
  echo "**************************************************************"
107
- echo ""
108
- echo "To start the ${product} menu automatically when maya starts: add the command: ${product}; in your userSetup.mel file"
109
- echo ""
110
112
 
111
113
  endif
112
114
 
File without changes
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # A few helpful tips about the Rules file:
4
+ #
5
+ # * The string given to #compile and #route are matching patterns for
6
+ # identifiers--not for paths. Therefore, you can't match on extension.
7
+ #
8
+ # * The order of rules is important: for each item, only the first matching
9
+ # rule is applied.
10
+ #
11
+ # * Item identifiers start and end with a slash (e.g. "/about/" for the file
12
+ # "content/about.html"). To select all children, grandchildren, ... of an
13
+ # item, use the pattern "/about/*/"; "/about/*" will also select the parent,
14
+ # because "*" matches zero or more characters.
15
+
16
+ # filter page.scss with sass
17
+ compile '/assets/css/page/' do
18
+ filter :sass, :syntax => :scss
19
+ end
20
+
21
+ # dont try to compile the sass include file
22
+ compile '/assets/css/include/' do
23
+ nil
24
+ end
25
+
26
+ # dont copy the sass include file
27
+ route '/assets/css/include/' do
28
+ nil
29
+ end
30
+
31
+ # put css in css/page.css - not /assets/css/page.css
32
+ route '/assets/css/page/' do
33
+ item.identifier.gsub('/assets','').chop + '.css'
34
+ end
35
+
36
+ # dont try to compile files in the scenes directory
37
+ compile '/scenes/*' do
38
+ nil
39
+ end
40
+
41
+ # dont copy files in the scenes directory
42
+ route '/scenes/*' do
43
+ nil
44
+ end
45
+
46
+
47
+ # filter all non binary files
48
+ # - first with embedded ruby
49
+ # - then with redcloth, (ruby library for marking up textile)
50
+ compile '*' do
51
+ unless item.binary?
52
+ filter :erb
53
+ filter :redcloth
54
+ layout 'default'
55
+ end
56
+ end
57
+
58
+ # the module index file
59
+ route '/' do
60
+ '/index.html'
61
+ end
62
+
63
+ # there will be no assets directory in the destination
64
+ # so strip the assets string from the identifier when copying assets.
65
+ # NOTE: binary in this case means anything that is not intended to be html
66
+ # for example, CSS is treated as binary.
67
+ # For other files, strip the trailing slash from the identifier
68
+ # and add the html extension.
69
+ route '*' do
70
+ if item.binary?
71
+ item.identifier.gsub('/assets','').chop + '.' + item[:extension]
72
+ else
73
+ item.identifier.chop + '.html'
74
+ end
75
+ end
76
+
77
+ layout '*', :erb
@@ -0,0 +1,77 @@
1
+ # A list of file extensions that nanoc will consider to be textual rather than
2
+ # binary. If an item with an extension not in this list is found, the file
3
+ # will be considered as binary.
4
+ text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'txt', 'md', 'php', 'rb', 'sass', 'scss', 'txt', 'xhtml', 'xml', 'coffee' ]
5
+
6
+ # The path to the directory where all generated files will be written to. This
7
+ # can be an absolute path starting with a slash, but it can also be path
8
+ # relative to the site directory.
9
+ output_dir: output
10
+
11
+ # A list of index filenames, i.e. names of files that will be served by a web
12
+ # server when a directory is requested. Usually, index files are named
13
+ # "index.html", but depending on the web server, this may be something else,
14
+ # such as "default.htm". This list is used by nanoc to generate pretty URLs.
15
+ index_filenames: [ 'index.html' ]
16
+
17
+ # Whether or not to generate a diff of the compiled content when compiling a
18
+ # site. The diff will contain the differences between the compiled content
19
+ # before and after the last site compilation.
20
+ enable_output_diff: false
21
+
22
+ prune:
23
+ # Whether to automatically remove files not managed by nanoc from the output
24
+ # directory. For safety reasons, this is turned off by default.
25
+ auto_prune: false
26
+
27
+ # Which files and directories you want to exclude from pruning. If you version
28
+ # your output directory, you should probably exclude VCS directories such as
29
+ # .git, .svn etc.
30
+ exclude: [ '.git', '.hg', '.svn', 'CVS' ]
31
+
32
+ # The data sources where nanoc loads its data from. This is an array of
33
+ # hashes; each array element represents a single data source. By default,
34
+ # there is only a single data source that reads data from the "content/" and
35
+ # "layout/" directories in the site directory.
36
+ data_sources:
37
+ -
38
+ # The type is the identifier of the data source. By default, this will be
39
+ # `filesystem_unified`.
40
+ type: filesystem_unified
41
+
42
+ # The path where items should be mounted (comparable to mount points in
43
+ # Unix-like systems). This is "/" by default, meaning that items will have
44
+ # "/" prefixed to their identifiers. If the items root were "/en/"
45
+ # instead, an item at content/about.html would have an identifier of
46
+ # "/en/about/" instead of just "/about/".
47
+ items_root: /
48
+
49
+ # The path where layouts should be mounted. The layouts root behaves the
50
+ # same as the items root, but applies to layouts rather than items.
51
+ layouts_root: /
52
+
53
+ # Whether to allow periods in identifiers. When turned off, everything
54
+ # past the first period is considered to be the extension, and when
55
+ # turned on, only the characters past the last period are considered to
56
+ # be the extension. For example, a file named "content/about.html.erb"
57
+ # will have the identifier "/about/" when turned off, but when turned on
58
+ # it will become "/about.html/" instead.
59
+ allow_periods_in_identifiers: false
60
+
61
+ # Configuration for the "watch" command, which watches a site for changes and
62
+ # recompiles if necessary.
63
+ watcher:
64
+ # A list of directories to watch for changes. When editing this, make sure
65
+ # that the "output/" and "tmp/" directories are _not_ included in this list,
66
+ # because recompiling the site will cause these directories to change, which
67
+ # will cause the site to be recompiled, which will cause these directories
68
+ # to change, which will cause the site to be recompiled again, and so on.
69
+ dirs_to_watch: [ 'content', 'layouts', 'lib' ]
70
+
71
+ # A list of single files to watch for changes. As mentioned above, don't put
72
+ # any files from the "output/" or "tmp/" directories in here.
73
+ files_to_watch: [ 'config.yaml', 'Rules' ]
74
+
75
+ # When to send notifications (using Growl or notify-send).
76
+ notify_on_compilation_success: true
77
+ notify_on_compilation_failure: true
@@ -0,0 +1,14 @@
1
+ $headings_color : #cd3028;
2
+ $bg1_color : #eee ;
3
+ $bg2_color : #ddd ;
4
+ $bq1_color : #eec ;
5
+ $borders_color : #ccc ;
6
+ $src_code_color : #a0a ;
7
+
8
+ $toc_headings_bg_color : #aa251b;
9
+ $reliance_blue : #0c4ca3;
10
+ $reliance_light_blue: $reliance_blue + #333;
11
+ $toc_current_bg_color:#f1c7bf;
12
+ @mixin shadow_box {
13
+ box-shadow: 0px 2px 5px #606060;
14
+ }
@@ -0,0 +1,314 @@
1
+ @import "include.scss";
2
+
3
+ body {
4
+ font-family: Verdana, Arial, Helvetica, sans-serif;
5
+ font-size: 0.8em;
6
+ margin:0;
7
+ background-color:#ddd;
8
+ height: 100%;
9
+ }
10
+
11
+ p {
12
+ display:block;
13
+ }
14
+
15
+ .page {
16
+
17
+ position:relative;
18
+ width: 900px;
19
+ margin:auto;
20
+ top:0;
21
+ border:0;
22
+ background-color:#fff;
23
+ @include shadow_box;
24
+
25
+ h3 {
26
+ text-indent:1em;
27
+ color: $headings_color;
28
+ }
29
+ h4 { }
30
+
31
+
32
+
33
+ pre {
34
+ width:50%;
35
+ }
36
+
37
+ code {
38
+ font-size: 1.4em;
39
+ color:$src_code_color;
40
+ padding-left: 10px;
41
+ }
42
+
43
+ hr {
44
+ clear:both;
45
+ width: 100%;
46
+ border-style: none;
47
+ }
48
+
49
+ blockquote {
50
+
51
+ // width: 90%;
52
+ background-color:$bq1_color;
53
+ font-style: italic;
54
+ text-align: center;
55
+ padding-top: 3px;
56
+ padding-bottom: 3px;
57
+ padding: 20px;
58
+ border-radius: 10px 10px 10px 10px;
59
+ }
60
+
61
+
62
+
63
+ div.figure {
64
+ min-width:300px;
65
+ margin:0 20px 20px 20px;
66
+ /*float: right;*/
67
+ border: 1px solid $borders_color;
68
+ background-color:$bg1_color;
69
+
70
+ img {
71
+ max-width: 600px;
72
+ height : auto;
73
+ }
74
+ }
75
+
76
+ .left {
77
+ float: left;
78
+ }
79
+
80
+ .right {
81
+ float: right;
82
+ }
83
+
84
+
85
+
86
+ div.figure p{
87
+
88
+ margin:0px;
89
+ }
90
+ div.figure img {
91
+ margin-left: auto;
92
+ margin-right: auto;
93
+ display: block;
94
+
95
+ border: 1px solid $borders_color;
96
+ }
97
+
98
+ div.figure object {
99
+ margin-left: auto;
100
+ margin-right: auto;
101
+ display: block;
102
+ margin-top:0;
103
+ margin-bottom:0;
104
+ padding:0;
105
+ border: 1px solid $borders_color;
106
+ }
107
+
108
+
109
+ div.figure p.title {
110
+ font-size:0.8em;
111
+ text-align: center;
112
+ font-weight: bold;
113
+ margin:0;
114
+ }
115
+
116
+ div.figure p.caption {
117
+ text-align: center;
118
+ font-size:0.8em;
119
+ font-style: italic;
120
+ padding:0;
121
+ max-width:400px;
122
+ margin-left: auto;
123
+ margin-right: auto;
124
+ display: block;
125
+ }
126
+
127
+
128
+ .illustration {
129
+ border: 1px solid $borders_color;
130
+ margin-left: 20px;
131
+ float: right;
132
+ }
133
+
134
+
135
+ .logo {
136
+ border:0;
137
+ clear: both;
138
+ margin:1em 0 0 1em;
139
+ }
140
+
141
+ .meta_container {
142
+ border-bottom: 1px solid $borders_color;
143
+ }
144
+ .metainfo {
145
+
146
+ text-indent:10px;
147
+ width: 100%;
148
+ padding-top: 3px;
149
+ padding-bottom: 3px;
150
+ margin-top: 3px;
151
+ background-color: $bg1_color;
152
+ }
153
+
154
+
155
+ #main_container {
156
+ display:table-row;
157
+ list-style:none;
158
+ width:100%;
159
+ height:100%;
160
+
161
+
162
+ }
163
+ #sidebar {
164
+ width: 20%;
165
+ padding-left:10px;
166
+ display:table-cell;
167
+ list-style:none;
168
+ border:0;
169
+ height:100%;
170
+
171
+ padding-right: 10px;
172
+ padding-bottom: 10em;
173
+ background-color: $bg1_color;
174
+
175
+ font-family: "Helvetica Neue";
176
+ font-weight: bold;
177
+ font-stretch: condensed;
178
+ font-size: 1.2em;
179
+
180
+
181
+ .toc_block {
182
+ // border: 1px solid $borders_color;
183
+ // background-color: #ff9;
184
+ padding:0.5em 0;
185
+ margin:0;
186
+ font-size: 0.85em;
187
+
188
+ h4 {
189
+ margin:0;
190
+ background-color: $toc_headings_bg_color;
191
+ color:#fff;
192
+ text-indent:0.5em;
193
+ }
194
+
195
+ ul {
196
+ list-style:none;
197
+ padding-left:0;
198
+ text-indent:0.5em;
199
+
200
+ }
201
+ .current {
202
+ color:$headings_color ;
203
+ background-color: $toc_current_bg_color;
204
+ }
205
+
206
+ }
207
+
208
+ }
209
+ #body_container {
210
+ width: 80%;
211
+ margin-left:4%;
212
+ display:table-cell;
213
+ list-style:none;
214
+ padding:0 1em 3em 1em;
215
+ }
216
+
217
+ #footer {
218
+
219
+ border-top: 1px solid $borders_color;
220
+ background-color: $bg1_color;
221
+ ul {
222
+
223
+ width:100%;
224
+ display:table-row;
225
+ li {
226
+ display:table-cell;
227
+ list-style:none;
228
+ width:20%;
229
+ img {
230
+ padding: 0 2em;
231
+ max-height:50px;
232
+ width:auto;
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+
239
+ #vfxoverflow {
240
+ position: absolute;
241
+ top: 0;
242
+ right: 0;
243
+ border: 0;
244
+ }
245
+
246
+ a, a:visited {
247
+ color:$reliance_blue;
248
+ font-weight: bold;
249
+ text-decoration: none;
250
+ }
251
+ a:hover {
252
+ color:$reliance_light_blue;
253
+ }
254
+
255
+
256
+ /**
257
+ table properties for node attributes and command flgs
258
+ */
259
+ table {
260
+ border-style:solid;
261
+ border-width:1px;
262
+ border-color:$borders_color;
263
+ margin-bottom:5px;
264
+ }
265
+
266
+ tr {
267
+ height:auto;
268
+ min-width:600px;
269
+ margin-top:5px;
270
+ background-color: $bg2_color;
271
+ margin-bottom:5px;
272
+
273
+ }
274
+
275
+ th, td {
276
+ text-align:left;
277
+ padding-left:5px;
278
+ padding-top: 3px;
279
+ padding-bottom: 3px;
280
+ }
281
+
282
+
283
+ /**
284
+ cell widths and indents for node attributes
285
+ */
286
+ .atname {width:35%;}
287
+ .attype {width:35%;}
288
+ .atdefault {width:15%;}
289
+ .atflags {width:15%;}
290
+ .atdesc {width:100%;background-color: #eee;}
291
+
292
+ .projname {width:30%;}
293
+ .projauth {width:35%;}
294
+ .projdate {width:35%;}
295
+ .projdesc {width:100%;background-color: #eee;}
296
+
297
+
298
+
299
+
300
+ .atflags img {padding-right:5px;}
301
+
302
+ .d1 {width:100%;}
303
+ .d2 {width:99%;left: 1%;position: relative;}
304
+ .d3 {width:98%;left: 2%;position: relative;}
305
+ .d4 {width:97%;left: 3%;position: relative;}
306
+
307
+ /**
308
+ cell widths for command flags
309
+ */
310
+ .flagname {width:50%;}
311
+ .flagargtype {width:30%;}
312
+ .flagproperties {width:20%;}
313
+ .flagproperties img {padding-right:10px;}
314
+