mdoc 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/.rubocop.yml +2 -0
  2. data/README.md +134 -47
  3. data/bin/mdoc +11 -32
  4. data/lib/mdoc/document/kramdown.rb +25 -0
  5. data/lib/mdoc/document.rb +87 -0
  6. data/lib/mdoc/meta.rb +14 -0
  7. data/lib/mdoc/options.rb +104 -0
  8. data/lib/mdoc/pipeline.rb +59 -0
  9. data/lib/mdoc/processor/add_title.rb +15 -0
  10. data/lib/mdoc/processor/add_toc.rb +11 -0
  11. data/lib/mdoc/processor/smart_code_block.rb +37 -0
  12. data/lib/mdoc/processor.rb +21 -0
  13. data/lib/mdoc/version.rb +3 -4
  14. data/lib/mdoc/writer.rb +18 -0
  15. data/lib/mdoc.rb +143 -2
  16. data/mdoc.gemspec +19 -19
  17. data/spec/add_title_spec.rb +10 -0
  18. data/spec/add_toc_spec.rb +12 -0
  19. data/spec/document_spec.rb +34 -0
  20. data/spec/execute_spec.rb +12 -0
  21. data/spec/find_doc_type_spec.rb +14 -0
  22. data/spec/fixtures/README.md +135 -0
  23. data/spec/fixtures/config/mdoc_a.cnf +1 -0
  24. data/spec/fixtures/config/mdoc_b.cnf +1 -0
  25. data/spec/fixtures/executes/a +0 -0
  26. data/spec/fixtures/executes/b +0 -0
  27. data/spec/fixtures/executes/c +0 -0
  28. data/spec/fixtures/general.txt +10 -0
  29. data/spec/fixtures/multikeys.html +18 -0
  30. data/{examples → spec/fixtures}/multikeys.md +10 -8
  31. data/{examples → spec/fixtures}/original.md +10 -10
  32. data/{examples → spec/fixtures}/pandoc.md +7 -7
  33. data/spec/fixtures/process.test.md +11 -0
  34. data/spec/fixtures/templates/default.html.erb +0 -0
  35. data/spec/fixtures/templates/pandoc.html.erb +0 -0
  36. data/spec/get_class_spec.rb +35 -0
  37. data/spec/kramdown_spec.rb +10 -0
  38. data/spec/meta_spec.rb +6 -0
  39. data/spec/options_spec.rb +66 -0
  40. data/spec/pipeline_spec.rb +95 -0
  41. data/spec/smart_code_block_spec.rb +10 -0
  42. data/spec/spec_helper.rb +40 -7
  43. data/spec/tpl_out_spec.rb +19 -0
  44. data/templates/default.html.erb +17 -0
  45. metadata +63 -25
  46. data/ROADMAP +0 -24
  47. data/config/members.yml +0 -16
  48. data/docs/css/jsgantt.css +0 -53
  49. data/docs/gantt.html +0 -237
  50. data/docs/js/jsgantt.js +0 -1681
  51. data/lib/mdoc/convert.rb +0 -92
  52. data/lib/mdoc/parser.rb +0 -80
  53. data/spec/parser_spec.rb +0 -32
@@ -0,0 +1,95 @@
1
+ require 'spec_helper'
2
+
3
+ module Mdoc
4
+ class Processor
5
+ class ProcA < Processor; end
6
+ class ProcB < Processor; end
7
+
8
+ class ProcC < Processor
9
+ def process!(doc)
10
+ doc.body = 'c'
11
+ end
12
+ end
13
+
14
+ class ProcD < Processor
15
+ def process!(doc)
16
+ doc.body = 'd'
17
+ end
18
+ end
19
+
20
+ class ProcR < Processor
21
+ def repeatable?
22
+ true
23
+ end
24
+ end
25
+
26
+ class ProcWrap < Processor
27
+ def pre_processors
28
+ [ProcA, 'proc_b']
29
+ end
30
+ end
31
+ end
32
+
33
+ class Writer
34
+ class NilWriter < Writer
35
+ def process!(doc); end
36
+ end
37
+ end
38
+ end
39
+
40
+ describe Mdoc::Pipeline do
41
+ context 'pre_processor' do
42
+ subject(:doc) do
43
+ Mdoc.convert!('spec/fixtures/multikeys.md') do |pl|
44
+ pl.insert('proc_wrap')
45
+ pl.writer = Mdoc::Writer::NilWriter
46
+ end
47
+ end
48
+
49
+ it 'perform 3 processors' do
50
+ doc.performed.size.should eq(3 + Mdoc.default_processors.size)
51
+ doc.performed[Mdoc::Processor::ProcB].should eq(1)
52
+ end
53
+ end
54
+
55
+ context 'insert' do
56
+ subject(:doc) do
57
+ Mdoc.convert!('spec/fixtures/multikeys.md') do |pl|
58
+ pl.append('proc_wrap')
59
+ pl.append('proc_c')
60
+ pl.insert('proc_d', { before: 'proc_c' })
61
+ end
62
+ end
63
+
64
+ it 'perform 5 processors' do
65
+ doc.is_a?(Mdoc::Document::Kramdown).should be_true
66
+ doc.performed.size.should eq(5 + Mdoc.default_processors.size)
67
+ doc.performed[Mdoc::Processor::ProcD].should eq(1)
68
+ doc.performed[Mdoc::Processor::ProcC].should eq(1)
69
+ doc.body.should eq('c') # d insert before c
70
+ end
71
+ end
72
+
73
+ context 'repeatable' do
74
+ subject(:doc) do
75
+ Mdoc.convert!('spec/fixtures/general.txt') do |pl|
76
+ pl.insert('proc_a')
77
+ pl.insert('proc_a')
78
+ pl.append('proc_r')
79
+ pl.append('proc_r')
80
+ pl.append('proc_b')
81
+ pl.insert('proc_d', { after: 'proc_b' })
82
+ pl.remove(['proc_b'])
83
+ pl.writer = Mdoc::Writer::NilWriter
84
+ end
85
+ end
86
+
87
+ it 'repeat only for proc_r' do
88
+ doc.is_a?(Mdoc::Document).should be_true
89
+ doc.performed[Mdoc::Processor::ProcA].should eq(1)
90
+ doc.performed[Mdoc::Processor::ProcR].should eq(2)
91
+ doc.body.should eq('d')
92
+ end
93
+ end
94
+
95
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mdoc::Processor::SmartCodeBlock do
4
+ it 'delete extra blank lines' do
5
+ doc = Mdoc::Document::Kramdown.new('spec/fixtures/README.md')
6
+ doc.body.should match(/~{3,}\s*ruby\s*\n\n+/)
7
+ doc.apply!('smart_code_block')
8
+ doc.body.should_not match(/~{3,}\s*ruby\s*\n\n+/)
9
+ end
10
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,40 @@
1
- require 'rspec'
2
- require 'mdoc'
3
-
4
- RSpec.configure do |config|
5
- config.color_enabled = true
6
- config.formatter = 'documentation'
7
- end
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_group 'Libraries', 'lib'
4
+ add_group 'Specs', 'spec'
5
+ coverage_dir 'docs/coverage'
6
+ end
7
+
8
+ require 'rspec'
9
+ require 'mdoc'
10
+
11
+ def capture_stdout(&block)
12
+ original_stdout = $stdout
13
+ $stdout = fake = StringIO.new
14
+ begin
15
+ yield
16
+ rescue SystemExit
17
+ $stdout = original_stdout # fake rubocop
18
+ ensure
19
+ $stdout = original_stdout
20
+ end
21
+ fake.string
22
+ end
23
+
24
+ def capture_stderr(&block)
25
+ original_stdout = $stderr
26
+ $stderr = fake = StringIO.new
27
+ begin
28
+ yield
29
+ rescue SystemExit
30
+ $stdout = original_stdout # fake rubocop
31
+ ensure
32
+ $stderr = original_stdout
33
+ end
34
+ fake.string
35
+ end
36
+
37
+ RSpec.configure do |config|
38
+ config.color_enabled = true
39
+ config.formatter = 'documentation'
40
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mdoc do
4
+ it 'find pandoc.html' do
5
+ Mdoc.load_defaults
6
+ Mdoc.load_cli_options %w[-t pandoc.html -d spec/fixtures/templates]
7
+ tpl = Mdoc.find_tpl_file
8
+ tpl.should match(%r|spec/fixtures/templates/pandoc\.html\.erb$|)
9
+ Mdoc.find_out_file('ff.md').should eq('ff.html')
10
+ end
11
+
12
+ it 'find default.html' do
13
+ Mdoc.load_defaults
14
+ Mdoc.load_cli_options %w[-t html -d spec/fixtures/templates]
15
+ tpl = Mdoc.find_tpl_file
16
+ tpl.should match(%r|spec/fixtures/templates/default\.html\.erb$|)
17
+ Mdoc.find_out_file('ff.md').should eq('ff.html')
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title><% if title %><%= title %><% else %>Preview<% end %></title>
6
+ <!--this style include the test_md/css screen.css(first) and base.css -->
7
+ <style type="text/css">
8
+ pre code{display:block;background:#fff;color:#4d4d4c;font-family:Menlo, Monaco, Consolas, monospace;font-size:12px;line-height:1.5;border:1px solid #ccc;padding:10px}html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}table{border-collapse:separate;border-spacing:0}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}blockquote:before,blockquote:after,q:before,q:after{content:""}blockquote,q{quotes:"" ""}a img{border:none}body{margin:10px}html{height:100%}body{padding:0;margin:0;font:14px/22px "adelle", Georgia, sans-serif;font-size-adjust:none;font-style:normal;font-variant:normal;font-weight:normal;background:#f4f6ec}a{color:#369}#markdown-toc{float:left;width:230px;margin-right:30px;margin-top:40px}#markdown-toc a{display:block;font-weight:bold;text-decoration:none}#markdown-toc #sections{list-style-type:none;border-bottom:3px solid rgba(0,0,0,0.1);padding-bottom:10px;margin-bottom:10px}#markdown-toc #sections>li>a{padding:5px 0;color:#444;font-size:16px}#markdown-toc #sections ul{margin-bottom:15px}#markdown-toc #sections ul li{list-style-type:none}#markdown-toc #sections ul li a{padding:1px 15px;font-size:13px;font-weight:normal}#markdown-toc .extra{padding:5px 0;min-height:1.4em}#markdown-toc .extra a{color:#555;font-size:14px}#markdown-toc #travis img{margin-top:10px;display:block}#markdown-toc>*:last-child{margin-bottom:20px}#content{padding:30px 30px 20px 30px;min-height:100px;width:600px;background:#fff;float:left;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;margin-top:15px}#content #loader{color:#888;width:300px;height:24px;line-height:24px;position:absolute;top:30px;left:30px;background:url("data:image/gif;base64,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") no-repeat center left;padding-left:32px;font-size:18px}#content>p{zoom:1}#content>p:before,#content>p:after{content:"";display:table}#content>p:after{clear:both}#content p{padding:0 0 0.8125em 0;color:#444}#content p img{float:left;margin:0.5em 0.8125em 0.8125em 0;padding:0}#content img{max-width:100%}#content h1,#content h2,#content h3,#content h4,#content h5,#content h6{font-weight:bold;line-height:1.2em}#content h1{font-size:2.125em;margin-bottom:0.4em}#content h2{font-size:1.7em;margin:0.855em 0 0.4em;color:#cc333f}#content h3{font-size:1.3em;margin:0.956em 0 0.4em}#content h4{font-size:1.1em;margin:1.161em 0 0.4em}#content h5,#content h6{font-size:1em;font-weight:bold;margin:1.238em 0 0.4em}#content>h1,#content>h2{margin-top:0}#content ul{list-style-position:outside}#content li ul,#content li ol{margin:0 1.625em}#content ul,#content ol{margin:0 0 1.625em 1.25em}#content dl{margin:0 0 1.625em 0}#content dl dt{font-weight:bold}#content dl dd{margin-left:1.625em}#content a{text-decoration:none}#content a:hover{text-decoration:underline}#content table{margin-bottom:1.625em;border-collapse:collapse}#content th{font-weight:bold}#content tr,#content th,#content td{margin:0;padding:0 1.625em 0 1em;height:26px}#content tfoot{font-style:italic}#content caption{text-align:center;font-family:Georgia, serif}#content abbr,#content acronym{border-bottom:1px dotted #000}#content address{margin-top:1.625em;font-style:italic}#content del{color:#000}#content blockquote{padding:1em 1em 1.625em 1em;font-family:georgia, serif;font-style:italic}#content blockquote:before{content:"\201C";font-size:3em;margin-left:-0.625em;font-family:georgia, serif;color:#aaa;line-height:0}#content blockquote>p{padding:0;margin:0}#content strong{font-weight:bold}#content em,#content dfn{font-style:italic}#content dfn{font-weight:bold}#content pre,#content code{margin:0 0 1.625em;white-space:pre}#content pre,#content code,#content tt{font-size:1em;font-family:Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;line-height:1.5}#content code{background:#f7f8f1;padding:1px 2px;border:1px solid #ccc}#content pre code{padding:10px 12px;word-wrap:normal;overflow-y:auto}#content tt{display:block;margin:1.625em 0}#content hr{margin-bottom:1.625em}#content table{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;width:100%}#content th,#content td{padding:5px 10px;border:1px solid #ccc}#content th{background:#eee;padding:7px 10px}#content td{font-size:0.9em;border-color:#ddd}#content tbody tr:nth-child(2n){background:#f5f5f5}@media only screen and (max-width: 480px){#container{width:100%}#markdown-toc{width:100%;margin-top:10px;float:none}#markdown-toc #sections,#markdown-toc #header,#markdown-toc .extra{padding-left:30px;padding-right:30px}#content{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-width:1px;float:none;margin:0;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media only screen and (min-device-pixel-ratio: 1.5), only screen and (min-resolution: 1.5dppx){#github-ribbon img{width:100px}}*{margin:0;padding:0}body{margin-left:40px}#markdown-toc{float:right !important;position:fixed;left:745px;height:90%;overflow:auto}#content{float:left !important;filter:progid:DXImageTransform.Microsoft.Shadow(color=#909090,direction=120,strength=4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:2px 2px 10px #909090}#markdown-toc{width:auto;max-width:300px !important;top:40px}#markdown-toc>li>ul>li>a{color:#cc333f;margin-top:10px}#markdown-toc>li>ul>li>ul>li>a,h3{color:#009999}#markdown-toc>li>ul>li>ul>li>ul>li>a,h4{color:#669999}#markdown-toc>li>a{margin-bottom:20px;padding-bottom:20px;border-bottom:3px solid rgba(0,0,0,0.1);font-size:20px;color:#000000}#content code{border-radius:3px}
9
+ </style>
10
+ </head>
11
+
12
+ <body>
13
+ <div id="content">
14
+ <%= body_html %>
15
+ </div>
16
+ </body>
17
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-13 00:00:00.000000000 Z
12
+ date: 2013-07-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: kramdown
@@ -28,7 +28,7 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: rest-client
31
+ name: tilt
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
@@ -44,23 +44,23 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  - !ruby/object:Gem::Dependency
47
- name: launchy
47
+ name: rspec
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :runtime
53
+ version: '2.5'
54
+ type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ! '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.5'
62
62
  - !ruby/object:Gem::Dependency
63
- name: rspec
63
+ name: simplecov
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
@@ -75,31 +75,58 @@ dependencies:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
77
  version: '2.5'
78
- description: mdoc is a bundle of tools for converting markdown documents.
78
+ description: A tool for convert document between several different formats.
79
79
  email: huangw@pe-po.com
80
80
  executables:
81
81
  - mdoc
82
82
  extensions: []
83
83
  extra_rdoc_files: []
84
84
  files:
85
+ - .rubocop.yml
85
86
  - README.md
86
- - ROADMAP
87
87
  - bin/mdoc
88
- - config/members.yml
89
- - docs/css/jsgantt.css
90
- - docs/gantt.html
91
- - docs/js/jsgantt.js
92
- - examples/multikeys.md
93
- - examples/original.md
94
- - examples/pandoc.md
95
88
  - lib/mdoc.rb
96
- - lib/mdoc/convert.rb
97
- - lib/mdoc/parser.rb
89
+ - lib/mdoc/document.rb
90
+ - lib/mdoc/document/kramdown.rb
91
+ - lib/mdoc/meta.rb
92
+ - lib/mdoc/options.rb
93
+ - lib/mdoc/pipeline.rb
94
+ - lib/mdoc/processor.rb
95
+ - lib/mdoc/processor/add_title.rb
96
+ - lib/mdoc/processor/add_toc.rb
97
+ - lib/mdoc/processor/smart_code_block.rb
98
98
  - lib/mdoc/version.rb
99
+ - lib/mdoc/writer.rb
99
100
  - mdoc.gemspec
100
- - spec/parser_spec.rb
101
+ - spec/add_title_spec.rb
102
+ - spec/add_toc_spec.rb
103
+ - spec/document_spec.rb
104
+ - spec/execute_spec.rb
105
+ - spec/find_doc_type_spec.rb
106
+ - spec/fixtures/README.md
107
+ - spec/fixtures/config/mdoc_a.cnf
108
+ - spec/fixtures/config/mdoc_b.cnf
109
+ - spec/fixtures/executes/a
110
+ - spec/fixtures/executes/b
111
+ - spec/fixtures/executes/c
112
+ - spec/fixtures/general.txt
113
+ - spec/fixtures/multikeys.html
114
+ - spec/fixtures/multikeys.md
115
+ - spec/fixtures/original.md
116
+ - spec/fixtures/pandoc.md
117
+ - spec/fixtures/process.test.md
118
+ - spec/fixtures/templates/default.html.erb
119
+ - spec/fixtures/templates/pandoc.html.erb
120
+ - spec/get_class_spec.rb
121
+ - spec/kramdown_spec.rb
122
+ - spec/meta_spec.rb
123
+ - spec/options_spec.rb
124
+ - spec/pipeline_spec.rb
125
+ - spec/smart_code_block_spec.rb
101
126
  - spec/spec_helper.rb
102
- homepage: https://github.com/huangw/mdoc-gem
127
+ - spec/tpl_out_spec.rb
128
+ - templates/default.html.erb
129
+ homepage: https://github.com/7lime/mdoc-gem
103
130
  licenses: []
104
131
  post_install_message:
105
132
  rdoc_options: []
@@ -122,7 +149,18 @@ rubyforge_project:
122
149
  rubygems_version: 1.8.25
123
150
  signing_key:
124
151
  specification_version: 3
125
- summary: mdoc is a bundle of tools for converting markdown documents.
152
+ summary: Convert markdown/reStructure/... of documents to html/docx/pdf/... formats.
126
153
  test_files:
127
- - spec/parser_spec.rb
154
+ - spec/add_title_spec.rb
155
+ - spec/add_toc_spec.rb
156
+ - spec/document_spec.rb
157
+ - spec/execute_spec.rb
158
+ - spec/find_doc_type_spec.rb
159
+ - spec/get_class_spec.rb
160
+ - spec/kramdown_spec.rb
161
+ - spec/meta_spec.rb
162
+ - spec/options_spec.rb
163
+ - spec/pipeline_spec.rb
164
+ - spec/smart_code_block_spec.rb
128
165
  - spec/spec_helper.rb
166
+ - spec/tpl_out_spec.rb
data/ROADMAP DELETED
@@ -1,24 +0,0 @@
1
- % ----
2
- title: Markdown Document Converting Tools
3
- status: producing
4
- leader: huangw
5
- moderator: lixf
6
- team: [xuyc sunyr songcy]
7
- year: 2013
8
- % ----
9
-
10
- [+] design: design api document in readme 06/12 @huangw:06/12
11
-
12
- [+] parser: write a document parser using yaml and kramdown 06/12 @huangw:06/12
13
-
14
- [+] converters: write converters for varies format 06/12 @huangw
15
- [++] docx: convert to docx with pandoc 06/12 @huangw:06/13
16
- [++] docup: convert to html use document-up 06/12 @huangw:06/13
17
- [++] pdf: convert to pdf use xelatex 06/12 @huangw
18
-
19
- [+] server: a server that can receive html for review 06/12 @huangw:50
20
-
21
- [+] release_v0.1.0: first public release 06/13 @huangw:06/13
22
-
23
- [+] release_v0.1.4: updated version 06/13 @huangw:06/13
24
- [++] epub: add epub3 support via pandoc 06/13 @huangw:06/13
data/config/members.yml DELETED
@@ -1,16 +0,0 @@
1
- members:
2
- huangw: ['黄巍', 'huangw@pe-po.com']
3
- xuyc: ['徐以臣', 'xuyc@pe-po.com']
4
- sunyr: ['孙云蕊', 'sunyr@pe-po.com']
5
- lizh: ['李中华', 'lizh@pe-po.com']
6
- songcy: ['宋春月', 'songcy@pe-po.com']
7
- du: ['杜丽玲', 'du@pe-po.com']
8
- zhaogl: ['赵桂兰', 'zhaogl@pe-po.com']
9
- wangh: ['王浩', 'wangh@pe-po.com']
10
- liudx: ['刘东旭', 'liudx@pe-po.com']
11
- zhangy: ['张祎', 'zhangy@pe-po.com']
12
- wangqh: ['王清华', 'wangqh@pe-po.com']
13
- cuibg: ['崔保国', 'cuibg@pe-po.com']
14
- lixf: ['李现凤', 'lixf@pe-po.com']
15
- zhaoxx: ['赵秀秀', 'zhaoxx@pe-po.com']
16
-
data/docs/css/jsgantt.css DELETED
@@ -1,53 +0,0 @@
1
-
2
- // These are the class/styles used by various objects in GanttChart. However, Firefox has problems deciphering class style when DIVs are embedded in other DIVs.
3
-
4
- // GanttChart makes heavy use of embedded DIVS, thus the style are often embedded directly in the objects html. If this could be resolved with Firefox, it would
5
-
6
- // make alot of the code look simpleer/cleaner without all the embedded styles
7
-
8
-
9
-
10
- ..gantt { font-family:tahoma, arial, verdana; font-size:10px;}
11
-
12
- ..gdatehead { BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; HEIGHT: 18px }
13
-
14
- ..ghead { BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 24px; HEIGHT: 20px }
15
-
16
- ..gname { BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; WIDTH: 18px; HEIGHT: 18px }
17
-
18
- ..ghead A { FONT-SIZE: 10px; COLOR: #000000; TEXT-DECORATION: none }
19
-
20
- ..gheadwkend A { FONT-SIZE: 10px; COLOR: #000000; TEXT-DECORATION: none }
21
-
22
- ..gheadwkend { BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 24px; HEIGHT: 20px; background-color: #cfcfcf }
23
-
24
- ..gfiller { BORDER-TOP: #efefef 1px solid; BORDER-LEFT: #efefef 1px solid; WIDTH: 18px; HEIGHT: 18px }
25
-
26
- ..gfillerwkend { BORDER-LEFT: #efefef 1px solid; WIDTH: 18px; HEIGHT: 18px; BACKGROUND-COLOR: #cfcfcf }
27
-
28
- ..gitem { BORDER-TOP: #cccccc 1px solid; WIDTH: 18px; HEIGHT: 18px }
29
-
30
- ..gitemwkend { BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; WIDTH: 18px; HEIGHT: 18px }
31
-
32
- ..gmilestone { BORDER-TOP: #efefef 1px solid; FONT-SIZE: 14px; OVERFLOW: hidden; BORDER-LEFT: #efefef 1px solid; WIDTH: 18px; HEIGHT: 18px}
33
-
34
- ..gmilestonewkend { BORDER-TOP: #efefef 1px solid; BORDER-LEFT: #cccccc 1px solid; WIDTH: 18px; HEIGHT: 18px}
35
-
36
- ..btn { BORDER-RIGHT: #ffffff; BORDER-TOP: #ffffff; FONT-WEIGHT: bold; FONT-SIZE: 10px; BORDER-LEFT: #ffffff; WIDTH: 12px; COLOR: #cccccc; BORDER-BOTTOM: #ffffff; BACKGROUND-COLOR: #ffffff }
37
-
38
- ..hrcomplete { BORDER-RIGHT: #000000 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: #000000 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: #000000 2px solid; WIDTH: 20px; COLOR: #000000; PADDING-TOP: 0px; BORDER-BOTTOM: #000000 2px solid; HEIGHT: 4px }
39
-
40
- ..hrhalfcomplete { BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; WIDTH: 9px; COLOR: #000000; BORDER-BOTTOM: #000000 2px solid; HEIGHT: 4px }
41
-
42
- ..gweekend { font-family:tahoma, arial, verdana; font-size:11px; background-color:#EEEEEE; text-align:center; }
43
-
44
- ..gtask { font-family:tahoma, arial, verdana; font-size:11px; background-color:#00FF00; text-align:center; }
45
-
46
- ..gday { font-family:tahoma, arial, verdana; font-size:11px; text-align:center; }
47
-
48
- ..gcomplete { background-color:black; height:5px; overflow: auto; margin-top:4px; }
49
-
50
- DIV.scroll { BORDER-RIGHT: #efefef 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #efefef 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: hidden; BORDER-LEFT: #efefef 1px solid; WIDTH: 420px; PADDING-TOP: 0px; BORDER-BOTTOM: #efefef 1px solid; BACKGROUND-COLOR: #ffffff }
51
-
52
- DIV.scroll2 { position:relative; PADDING-RIGHT: 0px; overflow:auto ;overflow-x:scroll;overflow-y:hidden; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 482px; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffffff }
53
-