spacedocs 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/README.md +6 -2
  2. data/{source → lib}/class.html.haml +1 -4
  3. data/{source → lib}/index.html.haml +2 -2
  4. data/{dox → lib/node_modules/dox}/History.md +0 -0
  5. data/{dox → lib/node_modules/dox}/Makefile +0 -0
  6. data/{dox → lib/node_modules/dox}/Readme.md +0 -0
  7. data/{dox → lib/node_modules/dox}/bin/dox +0 -0
  8. data/{dox → lib/node_modules/dox}/index.js +0 -0
  9. data/{dox → lib/node_modules/dox}/lib/dox.js +1 -10
  10. data/{dox → lib/node_modules/dox}/lib/utils.js +0 -0
  11. data/lib/node_modules/dox/node_modules/commander/History.md +99 -0
  12. data/lib/node_modules/dox/node_modules/commander/Makefile +7 -0
  13. data/lib/node_modules/dox/node_modules/commander/Readme.md +263 -0
  14. data/lib/node_modules/dox/node_modules/commander/index.js +2 -0
  15. data/lib/node_modules/dox/node_modules/commander/lib/commander.js +992 -0
  16. data/lib/node_modules/dox/node_modules/commander/package.json +38 -0
  17. data/lib/node_modules/dox/node_modules/github-flavored-markdown/README.md +17 -0
  18. data/lib/node_modules/dox/node_modules/github-flavored-markdown/_config.yml +3 -0
  19. data/lib/node_modules/dox/node_modules/github-flavored-markdown/_layouts/default.html +77 -0
  20. data/lib/node_modules/dox/node_modules/github-flavored-markdown/code.rb +67 -0
  21. data/lib/node_modules/dox/node_modules/github-flavored-markdown/images/gfm.png +0 -0
  22. data/lib/node_modules/dox/node_modules/github-flavored-markdown/index.md +78 -0
  23. data/lib/node_modules/dox/node_modules/github-flavored-markdown/package.json +27 -0
  24. data/lib/node_modules/dox/node_modules/github-flavored-markdown/preview.md +27 -0
  25. data/lib/node_modules/dox/node_modules/github-flavored-markdown/sample_content.html +169 -0
  26. data/lib/node_modules/dox/node_modules/github-flavored-markdown/scripts/preview.js +18 -0
  27. data/lib/node_modules/dox/node_modules/github-flavored-markdown/scripts/showdown.js +1414 -0
  28. data/lib/node_modules/dox/node_modules/github-flavored-markdown/stylesheets/screen.css +20 -0
  29. data/lib/node_modules/dox/package.json +43 -0
  30. data/lib/spacedocs.rb +42 -53
  31. data/lib/{assets/stylesheets/spacedocs/docs.css.sass → spacedocs.sass} +0 -0
  32. data/lib/spacedocs/version.rb +1 -1
  33. metadata +116 -25
  34. data/dox/package.json +0 -16
  35. data/dox/test/dox.test.js +0 -287
  36. data/dox/test/fixtures/a.js +0 -12
  37. data/dox/test/fixtures/b.js +0 -26
  38. data/dox/test/fixtures/c.js +0 -266
  39. data/dox/test/fixtures/d.js +0 -15
  40. data/dox/test/fixtures/titles.js +0 -14
  41. data/lib/spacedocs/engine.rb +0 -6
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "commander",
3
+ "version": "0.5.2",
4
+ "description": "the complete solution for node.js command-line programs",
5
+ "keywords": [
6
+ "command",
7
+ "option",
8
+ "parser",
9
+ "prompt",
10
+ "stdin"
11
+ ],
12
+ "author": {
13
+ "name": "TJ Holowaychuk",
14
+ "email": "tj@vision-media.ca"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git://github.com/visionmedia/commander.js.git"
19
+ },
20
+ "dependencies": {},
21
+ "devDependencies": {
22
+ "should": ">= 0.0.1"
23
+ },
24
+ "scripts": {
25
+ "test": "make test"
26
+ },
27
+ "main": "index",
28
+ "engines": {
29
+ "node": ">= 0.4.x < 0.8.0"
30
+ },
31
+ "_id": "commander@0.5.2",
32
+ "optionalDependencies": {},
33
+ "_engineSupported": true,
34
+ "_npmVersion": "1.1.3",
35
+ "_nodeVersion": "v0.6.11",
36
+ "_defaultsLoaded": true,
37
+ "_from": "commander@0.5.2"
38
+ }
@@ -0,0 +1,17 @@
1
+ See:
2
+ [github-flavored-markdown](http://github.github.com/github-flavored-markdown/)
3
+
4
+ As an npm package:
5
+
6
+ npm install github-flavored-markdown
7
+
8
+ And then in your node program:
9
+
10
+ var ghm = require("github-flavored-markdown")
11
+ ghm.parse("I **love** GHM.\n\n#2", "isaacs/npm")
12
+ // returns:
13
+ // '<p>I <strong>love</strong> GHM. '+
14
+ // '<a href=\'http://github.com/isaacs/npm/issues/#issue/2\'>#2</a></p>'
15
+
16
+ To get the sha/issue/fork links, pass in a second argument specifying
17
+ the current project that things should be relative to.
@@ -0,0 +1,3 @@
1
+ markdown: rdiscount
2
+ auto: true
3
+ server: true
@@ -0,0 +1,77 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
+ <title>GitHub Flavored Markdown - {{ page.title }}</title>
8
+ <link href="http://github.com/stylesheets/bundle_common.css" media="screen" rel="stylesheet" type="text/css" />
9
+ <link href="http://github.com/stylesheets/bundle_github.css" media="screen" rel="stylesheet" type="text/css" />
10
+ <link href="stylesheets/screen.css" media="screen" rel="stylesheet" type="text/css" />
11
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
12
+ <script type="text/javascript" src="http://github.github.com/github-flavored-markdown/scripts/showdown.js"></script>
13
+ <script type="text/javascript" src="http://github.github.com/github-flavored-markdown/scripts/preview.js"></script>
14
+ </head>
15
+ <body>
16
+ <div id="main">
17
+ <div id="header" class="basic" style="margin-bottom:20px">
18
+ <div class="site">
19
+ <div class="logo boring">
20
+ <a href="http://github.github.com/github-flavored-markdown/"><img src="images/gfm.png" alt="github flavored markdown" /></a>
21
+ </div>
22
+ <div class="topsearch">
23
+ <ul class="nav logged_out" style="margin-top:20px">
24
+ <li><a href="http://support.github.com/">Support</a></li>
25
+ <li><a href="http://github.com/">Back to GitHub</a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="content" class="site">
32
+ <div class="wikistyle">
33
+
34
+ {{ content }}
35
+
36
+ </div>
37
+ </div>
38
+
39
+ <div class="push"></div>
40
+ </div>
41
+
42
+ <div id="footer">
43
+ <div class="site">
44
+ <div class="info">
45
+ <div class="links">
46
+ <a href="http://github.com/blog"><b>Blog</b></a> |
47
+ <a href="http://support.github.com/">Support</a> |
48
+ <a href="http://github.com/training">Training</a> |
49
+ <a href="http://github.com/contact">Contact</a> |
50
+ <a href="http://develop.github.com">API</a> |
51
+ <a href="http://status.github.com">Status</a> |
52
+ <a href="http://twitter.com/github">Twitter</a> |
53
+ <a href="http://github.com/security">Security</a>
54
+ </div>
55
+ <div class="company">
56
+ &copy;
57
+ {{ site.time | date: "%Y" }}
58
+ GitHub Inc.
59
+ All rights reserved.
60
+ | <a href="http://github.com/site/terms">Terms of Service</a> | <a href="http://github.com/site/privacy">Privacy</a>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+
66
+ <script type="text/javascript">
67
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
68
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
69
+ </script>
70
+ <script type="text/javascript">
71
+ var pageTracker = _gat._getTracker("UA-3769691-2");
72
+ pageTracker._initData();
73
+ pageTracker._trackPageview();
74
+ </script>
75
+
76
+ </body>
77
+ </html>
@@ -0,0 +1,67 @@
1
+ require 'digest/md5'
2
+
3
+ def gfm(text)
4
+ # Extract pre blocks
5
+ extractions = {}
6
+ text.gsub!(%r{<pre>.*?</pre>}m) do |match|
7
+ md5 = Digest::MD5.hexdigest(match)
8
+ extractions[md5] = match
9
+ "{gfm-extraction-#{md5}}"
10
+ end
11
+
12
+ # prevent foo_bar_baz from ending up with an italic word in the middle
13
+ text.gsub!(/(^(?! {4}|\t)\w+_\w+_\w[\w_]*)/) do |x|
14
+ x.gsub('_', '\_') if x.split('').sort.to_s[0..1] == '__'
15
+ end
16
+
17
+ # in very clear cases, let newlines become <br /> tags
18
+ text.gsub!(/(\A|^$\n)(^\w[^\n]*\n)(^\w[^\n]*$)+/m) do |x|
19
+ x.gsub(/^(.+)$/, "\\1 ")
20
+ end
21
+
22
+ # Insert pre block extractions
23
+ text.gsub!(/\{gfm-extraction-([0-9a-f]{32})\}/) do
24
+ extractions[$1]
25
+ end
26
+
27
+ text
28
+ end
29
+
30
+ if $0 == __FILE__
31
+ require 'test/unit'
32
+ require 'shoulda'
33
+
34
+ class GFMTest < Test::Unit::TestCase
35
+ context "GFM" do
36
+ should "not touch single underscores inside words" do
37
+ assert_equal "foo_bar", gfm("foo_bar")
38
+ end
39
+
40
+ should "not touch underscores in code blocks" do
41
+ assert_equal " foo_bar_baz", gfm(" foo_bar_baz")
42
+ end
43
+
44
+ should "not touch underscores in pre blocks" do
45
+ assert_equal "<pre>\nfoo_bar_baz\n</pre>", gfm("<pre>\nfoo_bar_baz\n</pre>")
46
+ end
47
+
48
+ should "escape two or more underscores inside words" do
49
+ assert_equal "foo\\_bar\\_baz", gfm("foo_bar_baz")
50
+ end
51
+
52
+ should "turn newlines into br tags in simple cases" do
53
+ assert_equal "foo \nbar ", gfm("foo\nbar")
54
+ end
55
+
56
+ should "convert newlines in all groups" do
57
+ assert_equal "apple \npear \norange\n\nruby \npython \nerlang",
58
+ gfm("apple\npear\norange\n\nruby\npython\nerlang")
59
+ end
60
+
61
+ should "not convert newlines in lists" do
62
+ assert_equal "# foo\n# bar", gfm("# foo\n# bar")
63
+ assert_equal "* foo\n* bar", gfm("* foo\n* bar")
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: Introduction
3
+ layout: default
4
+ ---
5
+
6
+ GitHub uses what we're calling "GitHub Flavored Markdown" (GFM) for messages, issues, and comments. It differs from standard Markdown (SM) in a few significant ways and adds some additional functionality.
7
+
8
+ If you're not already familiar with Markdown, you should spend 15 minutes and go over the excellent [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) at Daring Fireball.
9
+
10
+ If you prefer to learn by example, see the following source and result:
11
+
12
+ * [Source](sample_content.html)
13
+ * [Result](http://github.com/mojombo/github-flavored-markdown/issues/#issue/1)
14
+
15
+ You can also use our [live javascript preview](http://github.github.com/github-flavored-markdown/preview.html) to see GFM in action.
16
+
17
+ Differences from traditional Markdown
18
+ -------------------------------------
19
+
20
+ ### Newlines
21
+
22
+ The biggest difference that GFM introduces is in the handling of linebreaks. With SM you can hard wrap paragraphs of text and they will be combined into a single paragraph. We find this to be the cause of a huge number of unintentional formatting errors. GFM treats newlines in paragraph-like content as real line breaks, which is probably what you intended.
23
+
24
+ The next paragraph contains two phrases separated by a single newline character:
25
+
26
+ Roses are red
27
+ Violets are blue
28
+
29
+ becomes
30
+
31
+ Roses are red
32
+ Violets are blue
33
+
34
+ ### Multiple underscores in words
35
+
36
+ It is not reasonable to italicize just _part_ of a word, especially when you're dealing with code and names often appear with multiple underscores. Therefore, GFM ignores multiple underscores in words.
37
+
38
+ perform_complicated_task
39
+ do_this_and_do_that_and_another_thing
40
+
41
+ becomes
42
+
43
+ perform\_complicated\_task
44
+ do\_this\_and\_do\_that\_and\_another\_thing
45
+
46
+ ### URL autolinking
47
+
48
+ GFM will autolink standard URLs, so if you want to link to a URL (instead of setting link text), you can simply enter the URL and it will be turned into a link to that URL.
49
+
50
+ A bit of the GitHub spice
51
+ -------------------------
52
+
53
+ In addition to the changes in the previous section, certain references are auto-linked:
54
+
55
+ * SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
56
+ * User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
57
+ * User/Project@SHA: mojombo/god@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
58
+ * \#Num: #1
59
+ * User/#Num: mojombo#1
60
+ * User/Project#Num: mojombo/god#1
61
+
62
+ becomes
63
+
64
+ <ul>
65
+ <li>SHA: <a href="http://github.com/mojombo/github-flavored-markdown/commit/be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2">be6a8cc</a></li>
66
+ <li>User@SHA ref: <a href="http://github.com/mojombo/github-flavored-markdown/commit/be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2">mojombo@be6a8cc</a></li>
67
+ <li>User/Project@SHA: <a href="http://github.com/mojombo/god/commit/be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2">mojombo/god@be6a8cc</a></li>
68
+ <li>#Num: <a href="http://github.com/mojombo/github-flavored-markdown/issues/#issue/1" class="internal">#1</a></li>
69
+ <li>User/#Num: <a href="http://github.com/mojombo/github-flavored-markdown/issues/#issue/1">mojombo#1</a></li>
70
+ <li>User/Project#Num: <a href="http://github.com/mojombo/god/issues/#issue/1">mojombo/god#1</a></li>
71
+ </ul>
72
+
73
+ Code
74
+ ----
75
+
76
+ The newline and underscore modification code can be seen below. If you find a bug in the rendering, we'd love to hear about it.
77
+
78
+ <script src="http://gist.github.com/118964.js"></script>
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "github-flavored-markdown",
3
+ "version": "1.0.1",
4
+ "description": "The port of Showdown used on github.com",
5
+ "author": {
6
+ "name": "tekkup",
7
+ "email": "git@tekkub.net",
8
+ "url": "http://tekkub.net/"
9
+ },
10
+ "main": "./scripts/showdown.js",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git://github.com/isaacs/github-flavored-markdown.git"
14
+ },
15
+ "_id": "github-flavored-markdown@1.0.1",
16
+ "dependencies": {},
17
+ "devDependencies": {},
18
+ "optionalDependencies": {},
19
+ "engines": {
20
+ "node": "*"
21
+ },
22
+ "_engineSupported": true,
23
+ "_npmVersion": "1.1.3",
24
+ "_nodeVersion": "v0.6.11",
25
+ "_defaultsLoaded": true,
26
+ "_from": "github-flavored-markdown@>= 0.0.1"
27
+ }
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Live Preview
3
+ layout: default
4
+ ---
5
+
6
+ This page provides a live GFM preview, rendered client-side using javascript.
7
+ The majority of the credit goes to the wonderful [Showdown](http://attacklab.net/showdown/) script, which handles the meat of the processing.
8
+ GFM modifications for newlines, underscore-words, autolinking and GitHub SHA1/issue link syntaxes were added.
9
+
10
+ User input
11
+ ----------
12
+
13
+ <script type="text/javascript">
14
+ var GitHub = {}
15
+ GitHub.nameWithOwner = "mojombo/god";
16
+ </script>
17
+
18
+ <textarea id="user_input"></textarea>
19
+
20
+ Live preview
21
+ ------------
22
+
23
+ <div id="result"></div>
24
+
25
+ ### HTML
26
+
27
+ <textarea id="html_result"></textarea>
@@ -0,0 +1,169 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <title>Example Source</title>
7
+ </head>
8
+ <body>
9
+ <pre>GitHub Flavored Markdown
10
+ ================================
11
+
12
+ *View the [source of this content](http://github.github.com/github-flavored-markdown/sample_content.html).*
13
+
14
+ Let's get the whole "linebreak" thing out of the way. The next paragraph contains two phrases separated by a single newline character:
15
+
16
+ Roses are red
17
+ Violets are blue
18
+
19
+ The next paragraph has the same phrases, but now they are separated by two spaces and a newline character:
20
+
21
+ Roses are red
22
+ Violets are blue
23
+
24
+ Oh, and one thing I cannot stand is the mangling of words with multiple underscores in them like perform_complicated_task or do_this_and_do_that_and_another_thing.
25
+
26
+ A bit of the GitHub spice
27
+ -------------------------
28
+
29
+ In addition to the changes in the previous section, certain references are auto-linked:
30
+
31
+ * SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
32
+ * User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
33
+ * User/Project@SHA: mojombo/god@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
34
+ * \#Num: #1
35
+ * User/#Num: mojombo#1
36
+ * User/Project#Num: mojombo/god#1
37
+
38
+ These are dangerous goodies though, and we need to make sure email addresses don't get mangled:
39
+
40
+ My email addy is tom@github.com.
41
+
42
+ Math is hard, let's go shopping
43
+ -------------------------------
44
+
45
+ In first grade I learned that 5 &gt; 3 and 2 &lt; 7. Maybe some arrows. 1 -&gt; 2 -&gt; 3. 9 &lt;- 8 &lt;- 7.
46
+
47
+ Triangles man! a^2 + b^2 = c^2
48
+
49
+ We all like making lists
50
+ ------------------------
51
+
52
+ The above header should be an H2 tag. Now, for a list of fruits:
53
+
54
+ * Red Apples
55
+ * Purple Grapes
56
+ * Green Kiwifruits
57
+
58
+ Let's get crazy:
59
+
60
+ 1. This is a list item with two paragraphs. Lorem ipsum dolor
61
+ sit amet, consectetuer adipiscing elit. Aliquam hendrerit
62
+ mi posuere lectus.
63
+
64
+ Vestibulum enim wisi, viverra nec, fringilla in, laoreet
65
+ vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
66
+ sit amet velit.
67
+
68
+ 2. Suspendisse id sem consectetuer libero luctus adipiscing.
69
+
70
+ What about some code **in** a list? That's insane, right?
71
+
72
+ 1. In Ruby you can map like this:
73
+
74
+ ['a', 'b'].map { |x| x.uppercase }
75
+
76
+ 2. In Rails, you can do a shortcut:
77
+
78
+ ['a', 'b'].map(&:uppercase)
79
+
80
+ Some people seem to like definition lists
81
+
82
+ &lt;dl&gt;
83
+ &lt;dt&gt;Lower cost&lt;/dt&gt;
84
+ &lt;dd&gt;The new version of this product costs significantly less than the previous one!&lt;/dd&gt;
85
+ &lt;dt&gt;Easier to use&lt;/dt&gt;
86
+ &lt;dd&gt;We've changed the product so that it's much easier to use!&lt;/dd&gt;
87
+ &lt;/dl&gt;
88
+
89
+ I am a robot
90
+ ------------
91
+
92
+ Maybe you want to print `robot` to the console 1000 times. Why not?
93
+
94
+ def robot_invasion
95
+ puts("robot " * 1000)
96
+ end
97
+
98
+ You see, that was formatted as code because it's been indented by four spaces.
99
+
100
+ How about we throw some angle braces and ampersands in there?
101
+
102
+ &lt;div class="footer"&gt;
103
+ &amp;copy; 2004 Foo Corporation
104
+ &lt;/div&gt;
105
+
106
+ Set in stone
107
+ ------------
108
+
109
+ Preformatted blocks are useful for ASCII art:
110
+
111
+ &lt;pre&gt;
112
+ ,-.
113
+ , ,-. ,-.
114
+ / \ ( )-( )
115
+ \ | ,.&gt;-( )-&lt;
116
+ \|,' ( )-( )
117
+ Y ___`-' `-'
118
+ |/__/ `-'
119
+ |
120
+ |
121
+ | -hrr-
122
+ ___|_____________
123
+ &lt;/pre&gt;
124
+
125
+ Playing the blame game
126
+ ----------------------
127
+
128
+ If you need to blame someone, the best way to do so is by quoting them:
129
+
130
+ &gt; I, at any rate, am convinced that He does not throw dice.
131
+
132
+ Or perhaps someone a little less eloquent:
133
+
134
+ &gt; I wish you'd have given me this written question ahead of time so I
135
+ &gt; could plan for it... I'm sure something will pop into my head here in
136
+ &gt; the midst of this press conference, with all the pressure of trying to
137
+ &gt; come up with answer, but it hadn't yet...
138
+ &gt;
139
+ &gt; I don't want to sound like
140
+ &gt; I have made no mistakes. I'm confident I have. I just haven't - you
141
+ &gt; just put me under the spot here, and maybe I'm not as quick on my feet
142
+ &gt; as I should be in coming up with one.
143
+
144
+ Table for two
145
+ -------------
146
+
147
+ &lt;table&gt;
148
+ &lt;tr&gt;
149
+ &lt;th&gt;ID&lt;/th&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Rank&lt;/th&gt;
150
+ &lt;/tr&gt;
151
+ &lt;tr&gt;
152
+ &lt;td&gt;1&lt;/td&gt;&lt;td&gt;Tom Preston-Werner&lt;/td&gt;&lt;td&gt;Awesome&lt;/td&gt;
153
+ &lt;/tr&gt;
154
+ &lt;tr&gt;
155
+ &lt;td&gt;2&lt;/td&gt;&lt;td&gt;Albert Einstein&lt;/td&gt;&lt;td&gt;Nearly as awesome&lt;/td&gt;
156
+ &lt;/tr&gt;
157
+ &lt;/table&gt;
158
+
159
+ Crazy linking action
160
+ --------------------
161
+
162
+ I get 10 times more traffic from [Google] [1] than from
163
+ [Yahoo] [2] or [MSN] [3].
164
+
165
+ [1]: http://google.com/ "Google"
166
+ [2]: http://search.yahoo.com/ "Yahoo Search"
167
+ [3]: http://search.msn.com/ "MSN Search"</pre>
168
+ </body>
169
+ </html>