Ignore underscores in the middle of words.

Fix #41.

R=sethladd@google.com

Review URL: https://codereview.chromium.org//1340143003 .
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e5040d6..d7d580c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
   `InlineParser.currentSource`.
 * Switch tests to use [test][] instead of [unittest][].
 * Fix a few bugs in inline code syntax.
+* Ignore underscores inside words (#41).
 
 [test]: https://pub.dartlang.org/packages/test
 [unittest]: https://pub.dartlang.org/packages/unittest
diff --git a/lib/src/inline_parser.dart b/lib/src/inline_parser.dart
index 3b1d9fa..9f0db08 100644
--- a/lib/src/inline_parser.dart
+++ b/lib/src/inline_parser.dart
@@ -43,13 +43,11 @@
     // Parse "**strong**" tags.
     new TagSyntax(r'\*\*', tag: 'strong'),
     // Parse "__strong__" tags.
-    new TagSyntax(r'__', tag: 'strong'),
+    new TagSyntax(r'\b__', tag: 'strong', end: r'__\b'),
     // Parse "*emphasis*" tags.
     new TagSyntax(r'\*', tag: 'em'),
     // Parse "_emphasis_" tags.
-    // TODO(rnystrom): Underscores in the middle of a word should not be
-    // parsed as emphasis like_in_this.
-    new TagSyntax(r'_', tag: 'em'),
+    new TagSyntax(r'\b_', tag: 'em', end: r'_\b'),
     new CodeSyntax(),
     // We will add the LinkSyntax once we know about the specific link resolver.
   ];
diff --git a/pubspec.yaml b/pubspec.yaml
index 0c2eedf..e459456 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: markdown
-version: 0.8.0-dev
+version: 0.8.0
 author: Dart Team <misc@dartlang.org>
 description: A library for converting markdown to HTML.
 homepage: https://github.com/dart-lang/markdown
diff --git a/test/original/emphasis_and_strong.unit b/test/original/emphasis_and_strong.unit
index 5e67fc0..90aea56 100644
--- a/test/original/emphasis_and_strong.unit
+++ b/test/original/emphasis_and_strong.unit
@@ -70,3 +70,19 @@
 
 <<<
 <p><em>a _b </em>c<em> d_ e</em></p>
+>>> in the middle of a word
+a_b_c a__b__c a*b*c a**b**c
+<<<
+<p>a_b_c a__b__c a<em>b</em>c a<strong>b</strong>c</p>
+>>> prefixing a word
+_a_b __a__b *a*b **a**b
+<<<
+<p>_a_b __a__b <em>a</em>b <strong>a</strong>b</p>
+>>> suffixing a word
+a_b_ a__b__ a*b* a**b**
+<<<
+<p>a_b_ a__b__ a<em>b</em> a<strong>b</strong></p>
+>>> spanning words
+_a_b c_d_ __a__b c__d__ *a*b c*d* **a**b c**d**
+<<<
+<p><em>a_b c_d</em> <strong>a__b c__d</strong> <em>a</em>b c<em>d</em> <strong>a</strong>b c<strong>d</strong></p>
\ No newline at end of file