diff --git a/MelangeIntro.wiki b/MelangeIntro.md
similarity index 63%
rename from MelangeIntro.wiki
rename to MelangeIntro.md
index ed5350e..bb39008 100644
--- a/MelangeIntro.wiki
+++ b/MelangeIntro.md
@@ -1,24 +1,21 @@
-#summary An introduction to Melange
-#labels Contents-Draft,Phase-Guidelines,Importance-Overview
+# Melange, the Spice of Creation
 
-= Melange, the Spice of Creation =
+## What is Melange?
 
-== What is Melange? ==
+Melange is the combination of a [framework](SoCOverview.md) and multiple web
+applications (including [GSoC](GSoC.md) and [GHOP](GHOP.md)) implemented to be
+[deployed on Google App Engine](AppEngine.md).
 
-Melange is the combination of a [SoCOverview framework] and multiple web
-applications (including [GSoC GSoC] and [GHOP GHOP]) implemented to be
-[AppEngine deployed on Google App Engine].
-
-=== Replacing the GSoC web application ===
+### Replacing the GSoC web application
 
 Originally, Melange was envisioned as an effort to produce an
-open-source implementation of the [GSoC Google Summer of Code]^TM^ web
+open-source implementation of the [Google Summer of Code](GSoC.md)<sup>TM</sup> web
 application.  At first, the GSoC web application appears to be part
-[http://en.wikipedia.org/wiki/Content_management_system content management system],
+[content management system](http://en.wikipedia.org/wiki/Content_management_system),
 part
-[http://en.wikipedia.org/wiki/Ticketing_system issue tracking system],
+[issue tracking system](http://en.wikipedia.org/wiki/Ticketing_system),
 and part
-[http://en.wikipedia.org/wiki/Customer_relationship_management customer relationship manager].
+[customer relationship manager](http://en.wikipedia.org/wiki/Customer_relationship_management).
 
 But, while the GSoC web application shares some features in common with
 those systems, it is quite different in its purpose.  The purpose of GSoC
@@ -32,21 +29,21 @@
 As much as GSoC attempts to inspire new open source developers, it has not
 previously been able to actually embrace them in the development of the
 GSoC web application itself.  Initially, with the launch of the enabling
-[http://code.google.com/appengine/ Google App Engine], the plan was to create
+[Google App Engine](http://code.google.com/appengine/), the plan was to create
 an open-sourced GSoC web application.  It would have to be created from
 scratch, because the existing code is (unfortunately) wired directly to
 Google infrastructure interfaces, which are old enough to be quite
 unlike AppEngine.
 
-The [http://code.google.com/opensource/ Open Source Programs Office (OSPO)]
+The [Open Source Programs Office (OSPO)](http://code.google.com/opensource/)
 at Google believes in promoting the release of Google source code under
-open source licenses.  [GSoC Google Summer of Code]^TM^ is a major
+open source licenses.  [Google Summer of Code](GSoC.md)<sup>TM</sup> is a major
 program for the OSPO team.  So, it makes sense for the OSPO team to
 develop the GSoC web application as open source and in the open.  And,
 now that hosting infrastructure with Google scalability is available
 via AppEngine, we intend to do just that.
 
-=== Moving beyond the GSoC web application ===
+### Moving beyond the GSoC web application
 
 It seems there are other real-world programs and sponsors that are
 interested in a workflow similar to that found in the GSoC web
@@ -56,7 +53,7 @@
 community of users (mentors, students, and organization administrators)
 of the existing web application in the creation of something that can
 be used not just by Google, but by anyone, to host programs like the
-[GSoC GSoC] and [GHOP GHOP], to the continued benefit of open source
+[GSoC](GSoC.md) and [GHOP](GHOP.md), to the continued benefit of open source
 and free software.
 
 So, the goal of this project is not merely to open-source the GSoC web
@@ -64,9 +61,9 @@
 free software contribution workflows. Using this framework, and copying
 and modifying the Melange web applications built upon it, it should be
 possible for anyone to host future programs similar to
-[GSoC GSoC] and the
-[GHOP Google Highly Open Participation]^TM^ Contest) on the
-[http://code.google.com/appengine/ Google App Engine].
+[GSoC](GSoC.md) and the
+[Google Highly Open Participation](GHOP.md)<sup>TM</sup> Contest) on the
+[Google App Engine](http://code.google.com/appengine/).
 
 This project will be a success if these real-world programs continue
 to bring students and other open source and free software contributors
@@ -75,37 +72,40 @@
 and free software communities benefit greatly from the catalyst for
 development that these programs provide.
 
-=== Building a community to help open source and free software build theirs ===
+### Building a community to help open source and free software build theirs
 
 This project is not just about code.  It is about forming a thriving
 community. The results of the Melange project will not be
-[http://www.youtube.com/watch?v=ZtYJoatnHb8 thrown over the wall or worked on in secret],
+[thrown over the wall or worked on in secret](http://www.youtube.com/watch?v=ZtYJoatnHb8),
 with only occasional releases and annual sponsorship of
 _Google Summer of Code_ programs. Instead, we will actively engage the
 open source and free software community to continue to make these
 programs, and the web applications that make them possible, better and
 more effective at welcoming new contributors to the community.
 
-=== Contributing ===
+### Contributing
 
 To expand the usefulness of the fruits of this development effort, we
 seek suggestions, guidance, and contributions (in the form of source
 code, of course!) from the open source and free software community.
-Please see the [ContributionTerms guidelines for contributors] if you are
+Please see the [guidelines for contributors](ContributionTerms.md) if you are
 interested in contributing to the design and development of Melange and
-the [SoCOverview SoC framework].
+the [SoC framework](SoCOverview.md).
 
-=== Concept Diagram ===
+### Concept Diagram
 
-[http://soc.googlecode.com/svn/wiki/images/MelangeOverview.dot http://soc.googlecode.com/svn/wiki/images/MelangeOverview.dot.png]
+[![](http://soc.googlecode.com/svn/wiki/images/MelangeOverview.dot.png)](http://soc.googlecode.com/svn/wiki/images/MelangeOverview.dot)
 
-== Legend ==
+## Legend
 
-|| *-------* || direct dependency (inheritance, method call, etc.) ||
-|| *- - - -* || indirect dependency (call-back, etc.) ||
+| **-------** | direct dependency (inheritance, method call, etc.) |
+|:------------|:---------------------------------------------------|
+| **- - - -** | indirect dependency (call-back, etc.)              |
 
-----
+
+---
+
 _Copyright 2008 Google Inc._
 _This work is licensed under a_
-[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License].
-[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]
\ No newline at end of file
+[Creative Commons Attribution 2.5 License](http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html).
+[![](http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png)](http://creativecommons.org/licenses/by/2.5/)
\ No newline at end of file
