tmail 1.2.3.1 → 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/README +10 -0
  2. data/ext/tmailscanner/tmail/tmailscanner.c +39 -8
  3. data/lib/tmail.rb +1 -0
  4. data/lib/tmail/address.rb +6 -40
  5. data/lib/tmail/attachments.rb +41 -22
  6. data/lib/tmail/encode.rb +9 -0
  7. data/lib/tmail/header.rb +5 -3
  8. data/lib/tmail/interface.rb +40 -3
  9. data/lib/tmail/mail.rb +3 -3
  10. data/lib/tmail/mailbox.rb +3 -2
  11. data/lib/tmail/net.rb +3 -1
  12. data/lib/tmail/parser.rb +204 -620
  13. data/lib/tmail/parser.y +38 -3
  14. data/lib/tmail/quoting.rb +38 -1
  15. data/lib/tmail/utils.rb +28 -4
  16. data/lib/tmail/vendor/rchardet-1.3/COPYING +504 -0
  17. data/lib/tmail/vendor/rchardet-1.3/README +12 -0
  18. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
  19. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +927 -0
  20. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +42 -0
  21. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +237 -0
  22. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +112 -0
  23. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +75 -0
  24. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +64 -0
  25. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +42 -0
  26. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +90 -0
  27. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +244 -0
  28. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +88 -0
  29. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +596 -0
  30. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +42 -0
  31. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +430 -0
  32. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +42 -0
  33. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +474 -0
  34. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +42 -0
  35. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +289 -0
  36. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +570 -0
  37. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +229 -0
  38. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +229 -0
  39. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +330 -0
  40. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +227 -0
  41. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +202 -0
  42. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +226 -0
  43. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +201 -0
  44. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +147 -0
  45. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +89 -0
  46. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +47 -0
  47. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +542 -0
  48. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +124 -0
  49. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +58 -0
  50. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +88 -0
  51. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +166 -0
  52. data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
  53. data/lib/tmail/version.rb +1 -1
  54. data/setup.rb +2 -2
  55. data/test/fixtures/apple_unquoted_content_type +44 -0
  56. data/test/fixtures/inline_attachment.txt +2095 -0
  57. data/test/fixtures/iso_8859_1_email_without_encoding_and_message_id.txt +16 -0
  58. data/test/fixtures/mailbox.zip +0 -0
  59. data/test/fixtures/marked_as_iso_8859_1_but_it_is_utf_8.txt +33 -0
  60. data/test/fixtures/marked_as_utf_8_but_it_is_iso_8859_1.txt +56 -0
  61. data/test/fixtures/raw_email_bad_time +62 -0
  62. data/test/fixtures/raw_email_double_at_in_header +14 -0
  63. data/test/fixtures/raw_email_only_attachment +17 -0
  64. data/test/fixtures/raw_email_string_in_date_field +17 -0
  65. data/test/fixtures/raw_email_trailing_dot +21 -0
  66. data/test/fixtures/raw_email_with_quoted_attachment_filename +60 -0
  67. data/test/fixtures/raw_email_with_wrong_splitted_multibyte_encoded_word_subject +15 -0
  68. data/test/fixtures/the_only_part_is_a_word_document.txt +425 -0
  69. data/test/fixtures/unquoted_filename_in_attachment +177 -0
  70. data/test/test_address.rb +114 -92
  71. data/test/test_attachments.rb +84 -1
  72. data/test/test_encode.rb +54 -0
  73. data/test/test_header.rb +60 -2
  74. data/test/test_mail.rb +22 -15
  75. data/test/test_mbox.rb +12 -3
  76. data/test/test_port.rb +13 -9
  77. data/test/test_quote.rb +9 -0
  78. data/tmail.gemspec +34 -0
  79. metadata +68 -167
  80. data/MANIFEST +0 -191
  81. data/log/BugTrackingLog.txt +0 -1231
  82. data/log/Changelog.txt +0 -534
  83. data/log/Fixme.txt +0 -6
  84. data/log/Testlog.txt +0 -2340
  85. data/log/Todo.txt +0 -30
  86. data/log/fixme.rdoc +0 -6
  87. data/meta/MANIFEST +0 -128
  88. data/meta/VERSION +0 -1
  89. data/meta/project.yaml +0 -30
  90. data/meta/unixname +0 -1
  91. data/sample/bench_base64.rb +0 -48
  92. data/sample/data/multipart +0 -23
  93. data/sample/data/normal +0 -29
  94. data/sample/data/sendtest +0 -5
  95. data/sample/data/simple +0 -14
  96. data/sample/data/test +0 -27
  97. data/sample/extract-attachements.rb +0 -33
  98. data/sample/from-check.rb +0 -26
  99. data/sample/multipart.rb +0 -26
  100. data/sample/parse-bench.rb +0 -68
  101. data/sample/parse-test.rb +0 -19
  102. data/sample/sendmail.rb +0 -94
  103. data/site/contributing/index.html +0 -183
  104. data/site/css/clean.css +0 -27
  105. data/site/css/layout.css +0 -31
  106. data/site/css/style.css +0 -60
  107. data/site/download/index.html +0 -61
  108. data/site/img/envelope.jpg +0 -0
  109. data/site/img/mailman.gif +0 -0
  110. data/site/img/stamp-sm.jpg +0 -0
  111. data/site/img/stamp.jpg +0 -0
  112. data/site/img/stampborder.jpg +0 -0
  113. data/site/img/tfire.jpg +0 -0
  114. data/site/img/tmail.png +0 -0
  115. data/site/index.html +0 -270
  116. data/site/js/jquery.js +0 -31
  117. data/site/log/Changelog.xsl +0 -33
  118. data/site/log/changelog.xml +0 -1677
  119. data/site/outdated/BUGS +0 -3
  120. data/site/outdated/DEPENDS +0 -1
  121. data/site/outdated/Incompatibilities +0 -89
  122. data/site/outdated/Incompatibilities.ja +0 -102
  123. data/site/outdated/NEWS +0 -9
  124. data/site/outdated/README.ja +0 -73
  125. data/site/outdated/doc.ja/address.html +0 -275
  126. data/site/outdated/doc.ja/basics.html +0 -405
  127. data/site/outdated/doc.ja/config.html +0 -49
  128. data/site/outdated/doc.ja/details.html +0 -146
  129. data/site/outdated/doc.ja/index.html +0 -39
  130. data/site/outdated/doc.ja/mail.html +0 -793
  131. data/site/outdated/doc.ja/mailbox.html +0 -265
  132. data/site/outdated/doc.ja/port.html +0 -95
  133. data/site/outdated/doc.ja/tmail.html +0 -58
  134. data/site/outdated/doc.ja/usage.html +0 -202
  135. data/site/outdated/rdd/address.rrd.m +0 -229
  136. data/site/outdated/rdd/basics.rd.m +0 -275
  137. data/site/outdated/rdd/config.rrd.m +0 -26
  138. data/site/outdated/rdd/details.rd.m +0 -117
  139. data/site/outdated/rdd/index.rhtml.m +0 -54
  140. data/site/outdated/rdd/mail.rrd.m +0 -701
  141. data/site/outdated/rdd/mailbox.rrd.m +0 -228
  142. data/site/outdated/rdd/port.rrd.m +0 -69
  143. data/site/outdated/rdd/tmail.rrd.m +0 -33
  144. data/site/outdated/rdd/usage.rd.m +0 -247
  145. data/site/quickstart/index.html +0 -69
  146. data/site/quickstart/quickstart.html +0 -52
  147. data/site/quickstart/usage.html +0 -193
  148. data/site/reference/address.html +0 -247
  149. data/site/reference/config.html +0 -30
  150. data/site/reference/index.html +0 -101
  151. data/site/reference/mail.html +0 -726
  152. data/site/reference/mailbox.html +0 -245
  153. data/site/reference/port.html +0 -75
  154. data/site/reference/tmail.html +0 -35
  155. data/work/script/make +0 -26
  156. data/work/script/rdoc +0 -39
  157. data/work/script/setup +0 -1616
  158. data/work/script/test +0 -30
@@ -1,68 +0,0 @@
1
- #
2
- # parser benchmark
3
- #
4
-
5
- require 'tmail'
6
-
7
-
8
- if ARGV.empty? then
9
- $stderr.puts "usage: #{$0} <mhdir> <mhdir>..."
10
- exit 0
11
- end
12
- ARGV.each do |dname|
13
- unless File.directory? dname then
14
- $stderr.puts "not directory: #{dname}"
15
- exit 1
16
- end
17
- end
18
-
19
- $stdout.sync = true
20
-
21
- $count = 0
22
- $failnum = 0
23
- $dirfail = 0
24
- $fieldname = ''
25
- $dirname = ''
26
- $port = nil
27
-
28
- begin
29
- ARGV.each do |dirname|
30
- $dirname = dirname
31
-
32
- TMail::MhLoader.new( dirname ).each do |port|
33
- begin
34
- t = TMail::Mail.new( port )
35
- $port = port
36
-
37
- t.each_header do |key, field|
38
- $fieldname = key
39
- next if /received/i === key
40
- if ::TMail::StructH === field then
41
- field.instance_eval { parse unless @parsed }
42
- end
43
- end
44
- rescue TMail::SyntaxError
45
- $stderr.puts "fail in #{$count+1}, field #{$fieldname}"
46
- $stderr.puts $!.to_s
47
- $failnum += 1
48
- $dirfail += 1
49
-
50
- if $failnum % 10 == 0 then
51
- puts 'fail = ' + $failnum.to_s
52
- #raise
53
- end
54
- end
55
-
56
- $count += 1
57
- puts "end #{$count}" if $count % 50 == 0
58
- end
59
-
60
- puts "directory #{dirname} end, fail=#{$dirfail}"
61
- $dirfail = 0
62
- end
63
- rescue
64
- puts "at #{$port.inspect}, non ParseError raised"
65
- raise
66
- end
67
-
68
- puts "parse #{$count} files, fail=#{$failnum}"
@@ -1,19 +0,0 @@
1
- #
2
- # parser test
3
- #
4
-
5
- require 'tmail'
6
-
7
- puts "testing parser --------------------------------"
8
- puts
9
-
10
- TMail::Mail.load( 'data/normal' ).each_header do |key, field|
11
- if field.respond_to? :parse, true then
12
- field.instance_eval {
13
- parse
14
- @written = true
15
- }
16
- end
17
- printf "%s ok\n", field.name
18
- # puts field.decoded
19
- end
@@ -1,94 +0,0 @@
1
- #
2
- # sendmail.rb
3
- #
4
-
5
- require 'tmail'
6
- require 'net/smtp'
7
- require 'nkf'
8
- require 'etc'
9
- require 'socket'
10
- require 'getopts'
11
-
12
-
13
- def usage( status, msg = nil )
14
- output = (status == 0 ? $stdout : $stderr)
15
- output.puts msg if msg
16
- output.print(<<EOS)
17
- Usage: cat msg | #{File.basename $0} [-j|--ja] [-s <subject>] [-f <from>] <to>
18
-
19
- -h,--host=addr SMTP server address. (default=localhost)
20
- -s,--subject=sbj subject of the message. (default=(none))
21
- -f,--from=from from address.
22
- -j,--ja handle japanese message. (default=off)
23
-
24
- EOS
25
- exit status
26
- end
27
-
28
- def main
29
- getopts('j', 'ja', 'h:', 'host:',
30
- 's:', 'subject:', 'f:', 'from:',
31
- 'help') or usage(1)
32
-
33
- smtphost = $OPT_host || $OPT_h || 'localhost'
34
- subject = $OPT_subject || $OPT_s
35
- from = $OPT_from || $OPT_f || guess_from_address()
36
- usage(1, 'Sender address not given') unless from
37
- to = ARGV
38
- usage(1, 'Receipt address(es) not given') if to.empty?
39
- ja_locale = $OPT_ja || $OPT_j
40
-
41
- send_mail smtphost, setup_mail(from, to, subject, $stdin.read, ja_locale)
42
- end
43
-
44
- def setup_mail( from, to, subject, body, ja_locale )
45
- mail = TMail::Mail.new
46
- mail.date = Time.now
47
- mail.from = from
48
- mail.to = to
49
- mail.subject = subject if subject
50
- mail.mime_version = '1.0'
51
- if ja_locale
52
- mail.body = NKF.nkf('-j', body)
53
- mail.set_content_type 'text', 'plain', 'charset' => 'iso-2022-jp'
54
- else
55
- mail.body = body
56
- mail.set_content_type 'text', 'plain'
57
- end
58
- mail
59
- end
60
-
61
- def send_mail( host, mail )
62
- msg = mail.encoded
63
- $stderr.print msg if $DEBUG
64
-
65
- smtp = Net::SMTP.new(host, 25)
66
- smtp.set_debug_output $stderr if $DEBUG
67
- smtp.start {
68
- smtp.send_mail msg, mail.from_address, mail.destinations
69
- }
70
- end
71
-
72
- def guess_from_address
73
- user = getlogin()
74
- unless user
75
- $stderr.puts 'cannot get user account; abort.'
76
- exit 1
77
- end
78
- if domain = (Socket.gethostname || ENV['HOSTNAME'] || ENV['HOST'])
79
- user + '@' + domain
80
- else
81
- user
82
- end
83
- end
84
-
85
- def getlogin
86
- begin
87
- require 'etc'
88
- Etc.getlogin
89
- rescue LoadError
90
- ENV['LOGNAME'] || ENV['USER']
91
- end
92
- end
93
-
94
- main
@@ -1,183 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html lang="en">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=utf8">
5
- <meta http-equiv="Content-Language" content="en">
6
-
7
- <link rel="stylesheet" href="../css/clean.css" type="text/css" media="screen, projection, print"/>
8
- <link rel="stylesheet" href="../css/layout.css" type="text/css" media="screen, projection, print"/>
9
- <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen, projection, print"/>
10
-
11
- <link rel="icon" href="../img/tfire.jpg" type="image/x-icon"/>
12
-
13
- <title>TMail &mdash; Contributing to the best Ruby email handler ever!</title>
14
-
15
- <script type="text/javascript" src="../js/jquery.js"></script>
16
-
17
- </head>
18
- <body>
19
- <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
20
- </script>
21
- <script type="text/javascript">
22
- _uacct = "UA-2871747-1";
23
- urchinTracker();
24
- </script>
25
-
26
- <div class="container">
27
-
28
- <div class="logo">
29
- <img src="../img/stamp-sm.jpg"/>
30
- </div>
31
-
32
- <div class="title">
33
- <h1>TMail</h1>
34
- <h2>Ruby on Mail</h2>
35
- </div>
36
-
37
- <div class="menu">
38
- &nbsp;
39
- <a href="../index.html">Home</a> &nbsp;&nbsp;
40
- <a href="../quickstart/index.html">Quickstart</a> &nbsp;&nbsp;
41
- <a href="http://lindsaar.net/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/blog_page');">Blog</a> &nbsp;&nbsp;
42
- <a href="http://rubyforge.org/frs/?group_id=4512" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/download_page');">Download</a> &nbsp;&nbsp;
43
- <a href="http://rubyforge.org/mailman/listinfo/tmail-talk">Mailing List</a> &nbsp;&nbsp;
44
- <a href="../reference/index.html">Reference</a> &nbsp;&nbsp;
45
- <a href="../rdoc/index.html">RDocs</a> &nbsp;&nbsp;
46
- <a href="http://rubyforge.org/projects/tmail/" onClick="javascript:urchinTracker('/outgoing/rubyforge.org/project_page');">Project</a> &nbsp;&nbsp;
47
- <a href="../contributing/index.html">Contributing</a>
48
- </div>
49
-
50
- <div class="main">
51
- <h1>Contributing to TMail</h1>
52
-
53
- <p>
54
- Here is a blunt truth, TMail is what we (that is you and me) make it.
55
- </p>
56
-
57
- <p>
58
- I have had a few people asking how to contribute to TMail, so I thought I
59
- would quickly do a write up on how to go about it.
60
- </p>
61
-
62
- <p>
63
- First things first, go to the <a href="http://rubyforge.org/mailman/listinfo/tmail-talk"
64
- title="Tmail-talk Info Page">TMail Mailing list</a> and subscribe and let us
65
- know what you want to attack, while this is definitely not a requirement to
66
- writing a patch, maybe someone else has the same problem and / or is mid
67
- fixing it, plus, we're basically a nice bunch of people ;)
68
- </p>
69
-
70
- <p>
71
- Then, if you are new to this sort of thing you should go and read this great write up
72
- by <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/"
73
- title="Dr Nic &raquo; 8 steps for fixing other people&#8217;s code">Dr Nic</a>
74
- which covers the basic steps on how to check out, patch and submit fixes to
75
- code. This also applied very well to TMail.
76
- </p>
77
-
78
- <p>
79
- Then, you need to get a copy of the latest TMail trunk code. You do this like so:
80
- </p>
81
-
82
- <pre class="shell">
83
- baci:~ mikel$ svn checkout http://tmail.rubyforge.org/svn/trunk tmail
84
- </pre>
85
-
86
- <p>
87
- This will check out the most recent version of TMail from the source tree at
88
- RubyForge. Once you have this, the first thing you should do is run the test
89
- suite. There are over 4000 assertions run by the test suite to make sure all
90
- is OK. This also gives you a stable datum of "When I got it, it was working
91
- so I just have to make sure it stays working...". To run the tests, do this:
92
- </p>
93
-
94
-
95
- <pre class="shell">
96
- baci:~ mikel$ cd tmail
97
- baci:~/tmail mikel$ rake test
98
- (in /Users/mikel/tmail)
99
- /usr/local/bin/ruby -Ilib:test ((SNIP))
100
- Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
101
- Started
102
- ........................................................................
103
- ........................................................................
104
- ............................................................
105
- Finished in 0.456426 seconds.
106
-
107
- 204 tests, 4014 assertions, 0 failures, 0 errors
108
- </pre>
109
-
110
- <p>
111
- If you get any errors at this point, post to the TMail Mailing list and let us
112
- know, tell us what version of Ruby you are running, and what platform you are on
113
- as well as any error output from the tests. If you can fix it, go ahead!
114
- </p>
115
-
116
- <p>
117
- Now that you have the trunk version, you need to write your patch and submit it.
118
- If you are making a code change, you should write a test driven change, if you
119
- are new to this, you can find a great screen cast by James Edward Gray II on
120
- <a href="http://macromates.com/screencast/ruby_quiz_screencast.mov">TDD with Textmate.</a>
121
- This will give you the basics of what a test drive change is and how to go about it.
122
- For all you RSpec fans, I am seriously considering moving the testing framework over
123
- to BDD and RSpec, if you want to get on board and help out, that would be great!
124
- </p>
125
-
126
- <p>
127
- Once you have written your test, run rake test again and watch it fail. This is a
128
- key part of Test Driven Development. Then write your change in the code.
129
- </p>
130
-
131
- <p>
132
- Once you have written your code, run rake test again, and your test should now pass
133
- and every OTHER test should also pass. If this is the case, then well done! You
134
- have just made a test driven change to the TMail library.
135
- </p>
136
-
137
- <p>
138
- Now you need to make the diff file of what you have done against the library. You
139
- do this using the svn diff command. First however, you should update your code, just
140
- in case someone else has updated the source tree between you checking it out and
141
- writing your patch. So, you do both like this:
142
- </p>
143
-
144
- <pre class="shell">
145
- baci:~/tmail mikel$ svn up
146
- At revision 206.
147
- baci:~/tmail mikel$ svn diff > my_well_named_patch_file.diff
148
- baci:~/tmail mikel$
149
- </pre>
150
-
151
- <p>
152
- Note: If while doing the SVN UP anything was updated, you should re-run your
153
- tests using rake test to make sure your patch didn't just go stale :)
154
- </p>
155
-
156
- <p>
157
- Next step is peer review. Go open a patch ticket on the
158
- <a href="http://rubyforge.org/tracker/?group_id=4512" title="RubyForge: TMail:">
159
- RubyForge tracker</a>, in it, select the right category and group for the patch
160
- you have made (if there isn't one that matches, leave it as none and then mention
161
- this in the description field). Give your ticket a name, and then attach your file.
162
- </p>
163
-
164
- <p>
165
- It is a good idea to then go to the TMail Talk list and let everyone know about your
166
- patch. Then we can check it out, suggest changes or commit it if all is good.
167
- </p>
168
-
169
- <p>
170
- That's it! Easy hey? Once you have submitted patches, it gets easier and you get
171
- to bask in the glory of being a committer to Ruby's most popular mail handling
172
- library.
173
- </p>
174
-
175
- </div>
176
-
177
- <div class="footer">
178
- Copyright (c) 2007 TMail Project &reg; All Rights Reserved
179
- </div>
180
-
181
- </div>
182
- </body>
183
- </html>
@@ -1,27 +0,0 @@
1
- * {
2
- background: transparent;
3
- }
4
-
5
- body {
6
- margin: 0;
7
- padding: 0;
8
- font-size: 12px;
9
- color: #333333;
10
- }
11
-
12
- div {
13
- font-size: 15px;
14
- }
15
-
16
- p {
17
- font-size: 15px;
18
- line-height: 19px;
19
- }
20
-
21
- pre {
22
- font-size: 13px;
23
- font-family: Courier, sans-serif;
24
- background-color: #EEE;
25
- display: block;
26
- border: 1px solid #999;
27
- }
@@ -1,31 +0,0 @@
1
-
2
- .container{
3
- width: 800px;
4
- margin: 0 auto;
5
- padding: 10px 20px 10px 20px;
6
- }
7
-
8
- .logo {
9
- float: right;
10
- width: 150px;
11
- padding: 0 0 10px 0;
12
- text-align: right;
13
- }
14
-
15
- .menu {
16
- margin-top: 30px;
17
- width: 650px;
18
- }
19
-
20
- .menu a {
21
- text-decoration: none;
22
- }
23
-
24
- .main {
25
- clear: both;
26
- padding: 10px 20px;
27
- }
28
-
29
- .footer {
30
- margin: 30px 0 10px 0;
31
- }
@@ -1,60 +0,0 @@
1
- body {
2
- background: #FFFFFF;
3
- }
4
-
5
- .container {
6
- background: white;
7
- }
8
-
9
- .title h1 {
10
- color: red;
11
- font-size: 72px;
12
- font-family: Times New Roman;
13
- font-weight: bold;
14
- margin: 0;
15
- padding: 0px;
16
- }
17
-
18
- .title h2 {
19
- color: #cc5500;
20
- font-size: 16px;
21
- font-family: Times New Roman;
22
- font-weight: bold;
23
- margin: 0;
24
- padding: 0 12px;
25
- letter-spacing: 8px;
26
- }
27
-
28
- .menu {
29
- text-align: left;
30
- color: red;
31
- font-size: 14px;
32
- }
33
-
34
- .main {
35
- border: 1px solid orange;
36
- }
37
-
38
- .footer {
39
- color: gray;
40
- font-size: .9em;
41
- }
42
-
43
- pre {
44
- border: 1px solid #dddddd;
45
- font-family: monospace;
46
- font-size: 0.8em;
47
- line-height: 1.6em;
48
- }
49
-
50
- pre.ruby {
51
- color: red;
52
- background: #eeeeee;
53
- padding: 10px;
54
- }
55
-
56
- pre.shell {
57
- color: green;
58
- background: #eeeeee;
59
- padding: 10px;
60
- }