flak 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
+