New Grammar implemented by Harsh, for more information see documentation
diff --git a/cli/pom.xml b/cli/pom.xml
old mode 100644
new mode 100755
index 9fd8fad..8cc7af7
--- a/cli/pom.xml
+++ b/cli/pom.xml
@@ -1,86 +1,86 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2011, TAUTUA
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.tautua.markdownpapers</groupId>
- <artifactId>markdownpapers-parent</artifactId>
- <version>1.2.7</version>
- <relativePath>../parent/pom.xml</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.tautua.markdownpapers</groupId>
- <artifactId>markdownpapers-cli</artifactId>
- <name>MarkdownPapers Command Line Interface</name>
- <dependencies>
- <dependency>
- <groupId>org.tautua.markdownpapers</groupId>
- <artifactId>markdownpapers-core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
- <version>1.2</version>
- </dependency>
- </dependencies>
- <profiles>
- <profile>
- <id>dist</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- <configuration>
- <appendAssemblyId>false</appendAssemblyId>
- <finalName>markdownpapers-${project.version}</finalName>
- <descriptors>
- <descriptor>${basedir}/src/main/assembly/distribution.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.3</version>
- <configuration>
- <archive>
- <manifest>
- <mainClass>org.tautua.markdownpapers.cli.Main</mainClass>
- </manifest>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2011, TAUTUA
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.tautua.markdownpapers</groupId>
+ <artifactId>markdownpapers-parent</artifactId>
+ <version>1.2.7</version>
+ <relativePath>../parent/pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.tautua.markdownpapers</groupId>
+ <artifactId>markdownpapers-cli</artifactId>
+ <name>MarkdownPapers Command Line Interface</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.tautua.markdownpapers</groupId>
+ <artifactId>markdownpapers-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+ <profiles>
+ <profile>
+ <id>dist</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-5</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>attached</goal>
+ </goals>
+ <configuration>
+ <appendAssemblyId>false</appendAssemblyId>
+ <finalName>markdownpapers-${project.version}</finalName>
+ <descriptors>
+ <descriptor>${basedir}/src/main/assembly/distribution.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>org.tautua.markdownpapers.cli.Main</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/cli/src/main/assembly/distribution.xml b/cli/src/main/assembly/distribution.xml
old mode 100644
new mode 100755
index 639ff5d..08314af
--- a/cli/src/main/assembly/distribution.xml
+++ b/cli/src/main/assembly/distribution.xml
@@ -1,46 +1,46 @@
-<!--
- Copyright 2011, TAUTUA
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd">
- <id>distribution</id>
- <formats>
- <format>tar.gz</format>
- <format>zip</format>
- </formats>
- <dependencySets>
- <dependencySet>
- <outputDirectory>lib</outputDirectory>
- </dependencySet>
- </dependencySets>
- <fileSets>
- <fileSet>
- <includes>
- <include>${project.basedir}/README*</include>
- <include>${project.basedir}/LICENSE*</include>
- <include>${project.basedir}/NOTICE*</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${project.basedir}/src/main/bin</directory>
- <outputDirectory>bin</outputDirectory>
- <fileMode>0755</fileMode>
- <directoryMode>0755</directoryMode>
- </fileSet>
- </fileSets>
-</assembly>
-
+<!--
+ Copyright 2011, TAUTUA
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd">
+ <id>distribution</id>
+ <formats>
+ <format>tar.gz</format>
+ <format>zip</format>
+ </formats>
+ <dependencySets>
+ <dependencySet>
+ <outputDirectory>lib</outputDirectory>
+ </dependencySet>
+ </dependencySets>
+ <fileSets>
+ <fileSet>
+ <includes>
+ <include>${project.basedir}/README*</include>
+ <include>${project.basedir}/LICENSE*</include>
+ <include>${project.basedir}/NOTICE*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/src/main/bin</directory>
+ <outputDirectory>bin</outputDirectory>
+ <fileMode>0755</fileMode>
+ <directoryMode>0755</directoryMode>
+ </fileSet>
+ </fileSets>
+</assembly>
+
diff --git a/cli/src/main/bin/mdpapers b/cli/src/main/bin/mdpapers
old mode 100644
new mode 100755
index 2e4cde0..f93539f
--- a/cli/src/main/bin/mdpapers
+++ b/cli/src/main/bin/mdpapers
@@ -1,10 +1,10 @@
-#!/bin/bash
-
-LIB="`dirname $0`/../lib"
-JARS="$LIB/commons-cli-1.2.jar:$LIB/markdownpapers-core-0.1.0-SNAPSHOT.jar:$LIB/markdownpapers-cli-0.1.0-SNAPSHOT.jar"
-
-case "`uname`" in
- CYGWIN*) JAR="`cygpath --windows -- "$JAR"`" ;;
-esac
-
-java -classpath "$JARS" org.tautua.markdownpapers.cli.Main "$@"
+#!/bin/bash
+
+LIB="`dirname $0`/../lib"
+JARS="$LIB/commons-cli-1.2.jar:$LIB/markdownpapers-core-0.1.0-SNAPSHOT.jar:$LIB/markdownpapers-cli-0.1.0-SNAPSHOT.jar"
+
+case "`uname`" in
+ CYGWIN*) JAR="`cygpath --windows -- "$JAR"`" ;;
+esac
+
+java -classpath "$JARS" org.tautua.markdownpapers.cli.Main "$@"
diff --git a/cli/src/main/bin/mdpapers.bat b/cli/src/main/bin/mdpapers.bat
old mode 100644
new mode 100755
index 14acda6..ae293dc
--- a/cli/src/main/bin/mdpapers.bat
+++ b/cli/src/main/bin/mdpapers.bat
@@ -1,7 +1,7 @@
-
-@echo off
-
-set LIB = "%~dp0..\lib"
-set JARS = "%LIB%\commons-cli-1.2.jar;%LIB%\markdownpapers-core-0.1.0-SNAPSHOT.jar;%LIB%\markdownpapers-cli-0.1.0-SNAPSHOT.jar"
-
-java -classpath "%JARS%" org.tautua.markdownpapers.cli.Main "$@"
+
+@echo off
+
+set LIB = "%~dp0..\lib"
+set JARS = "%LIB%\commons-cli-1.2.jar;%LIB%\markdownpapers-core-0.1.0-SNAPSHOT.jar;%LIB%\markdownpapers-cli-0.1.0-SNAPSHOT.jar"
+
+java -classpath "%JARS%" org.tautua.markdownpapers.cli.Main "$@"
diff --git a/cli/src/main/java/org/tautua/markdownpapers/cli/Main.java b/cli/src/main/java/org/tautua/markdownpapers/cli/Main.java
old mode 100644
new mode 100755
index 684ce9b..8ab896d
--- a/cli/src/main/java/org/tautua/markdownpapers/cli/Main.java
+++ b/cli/src/main/java/org/tautua/markdownpapers/cli/Main.java
@@ -1,129 +1,129 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.cli;
-
-import org.apache.commons.cli.*;
-import org.tautua.markdownpapers.Markdown;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * @author Larry Ruiz
- */
-public class Main {
- private static final String DEFAULT_INPUT_EXTENSION = ".md";
- private static final String OUTPUT_EXTENSION = ".html";
-
- private CommandLine commandLine;
- private Options options;
- private boolean badUsage;
- private File input;
- private File outputDirectory;
-
- private Writer consoleOut;
-
-
- public Main(String[] arguments) throws Exception {
- this(arguments, new OutputStreamWriter(System.out));
- }
-
-
- public Main(String[] arguments, Writer consoleOut) throws Exception {
- CommandLineParser parser = new PosixParser();
- options = getOptions();
- commandLine = parser.parse(options, arguments);
- this.consoleOut = consoleOut;
- badUsage = commandLine.getArgList().isEmpty();
- }
-
- private static Options getOptions() {
- Options options = new Options();
- options.addOption("o", true, "output directory");
- options.addOption("r", false, "recursive");
- options.addOption("h", false, "help");
- return options;
- }
-
- public void execute() throws Exception {
- if (badUsage) {
- HelpFormatter formatter = new HelpFormatter();
- formatter.printHelp("mdpapers <input> [options]", options);
- } else {
- String inputArg = commandLine.getArgs()[0];
- input = ((inputArg == null) ? new File(".") : new File(inputArg));
-
- String outputArg = commandLine.getOptionValue("o");
- outputDirectory = ((outputArg == null) ? new File(".") : new File(outputArg));
-
- Collection<File> files = searchInputs();
- if (files.isEmpty()) {
- consoleOut.write("file or directory does not exist.\n");
- } else {
- for (File markdown : files) {
- transform(markdown);
- }
- }
- }
- consoleOut.flush();
- }
-
- private Collection<File> searchInputs() {
- return searchInputsAt(input);
- }
-
- private Collection<File> searchInputsAt(File lookAt) {
- if (!lookAt.exists()) {
- return Collections.emptyList();
- } else if (lookAt.isFile()) {
- return Arrays.asList(lookAt);
- }
-
- Collection<File> cache = new ArrayList<File>();
- for (File candidate : lookAt.listFiles()) {
- if (candidate.isDirectory() && commandLine.hasOption("r")) {
- cache.addAll(searchInputsAt(candidate));
- } else if (candidate.getName().endsWith(DEFAULT_INPUT_EXTENSION)){
- cache.add(candidate);
- }
- }
-
- return cache;
- }
-
- public void transform(File markdown) throws Exception {
- Reader in = new FileReader(markdown);
- Writer out = new FileWriter(getOutputFile(markdown));
- transform(in, out);
- out.flush();
- out.close();
- }
-
- private File getOutputFile(File markdown) {
- return new File(markdown.getAbsolutePath().substring(0, markdown.getAbsolutePath().lastIndexOf("."))
- + OUTPUT_EXTENSION);
- }
-
- public void transform(Reader in, Writer out) throws org.tautua.markdownpapers.parser.ParseException {
- Markdown md = new Markdown();
- md.transform(in, out);
- }
-
- public static void main(String[] arguments) throws Exception {
- new Main(arguments).execute();
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.cli;
+
+import org.apache.commons.cli.*;
+import org.tautua.markdownpapers.Markdown;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Main {
+ private static final String DEFAULT_INPUT_EXTENSION = ".md";
+ private static final String OUTPUT_EXTENSION = ".html";
+
+ private CommandLine commandLine;
+ private Options options;
+ private boolean badUsage;
+ private File input;
+ private File outputDirectory;
+
+ private Writer consoleOut;
+
+
+ public Main(String[] arguments) throws Exception {
+ this(arguments, new OutputStreamWriter(System.out));
+ }
+
+
+ public Main(String[] arguments, Writer consoleOut) throws Exception {
+ CommandLineParser parser = new PosixParser();
+ options = getOptions();
+ commandLine = parser.parse(options, arguments);
+ this.consoleOut = consoleOut;
+ badUsage = commandLine.getArgList().isEmpty();
+ }
+
+ private static Options getOptions() {
+ Options options = new Options();
+ options.addOption("o", true, "output directory");
+ options.addOption("r", false, "recursive");
+ options.addOption("h", false, "help");
+ return options;
+ }
+
+ public void execute() throws Exception {
+ if (badUsage) {
+ HelpFormatter formatter = new HelpFormatter();
+ formatter.printHelp("mdpapers <input> [options]", options);
+ } else {
+ String inputArg = commandLine.getArgs()[0];
+ input = ((inputArg == null) ? new File(".") : new File(inputArg));
+
+ String outputArg = commandLine.getOptionValue("o");
+ outputDirectory = ((outputArg == null) ? new File(".") : new File(outputArg));
+
+ Collection<File> files = searchInputs();
+ if (files.isEmpty()) {
+ consoleOut.write("file or directory does not exist.\n");
+ } else {
+ for (File markdown : files) {
+ transform(markdown);
+ }
+ }
+ }
+ consoleOut.flush();
+ }
+
+ private Collection<File> searchInputs() {
+ return searchInputsAt(input);
+ }
+
+ private Collection<File> searchInputsAt(File lookAt) {
+ if (!lookAt.exists()) {
+ return Collections.emptyList();
+ } else if (lookAt.isFile()) {
+ return Arrays.asList(lookAt);
+ }
+
+ Collection<File> cache = new ArrayList<File>();
+ for (File candidate : lookAt.listFiles()) {
+ if (candidate.isDirectory() && commandLine.hasOption("r")) {
+ cache.addAll(searchInputsAt(candidate));
+ } else if (candidate.getName().endsWith(DEFAULT_INPUT_EXTENSION)){
+ cache.add(candidate);
+ }
+ }
+
+ return cache;
+ }
+
+ public void transform(File markdown) throws Exception {
+ Reader in = new FileReader(markdown);
+ Writer out = new FileWriter(getOutputFile(markdown));
+ transform(in, out);
+ out.flush();
+ out.close();
+ }
+
+ private File getOutputFile(File markdown) {
+ return new File(markdown.getAbsolutePath().substring(0, markdown.getAbsolutePath().lastIndexOf("."))
+ + OUTPUT_EXTENSION);
+ }
+
+ public void transform(Reader in, Writer out) throws org.tautua.markdownpapers.parser.ParseException {
+ Markdown md = new Markdown();
+ md.transform(in, out);
+ }
+
+ public static void main(String[] arguments) throws Exception {
+ new Main(arguments).execute();
+ }
+}
diff --git a/cli/src/test/java/org/tautua/markdownpapers/cli/MainTest.java b/cli/src/test/java/org/tautua/markdownpapers/cli/MainTest.java
old mode 100644
new mode 100755
index bd5959c..40082bc
--- a/cli/src/test/java/org/tautua/markdownpapers/cli/MainTest.java
+++ b/cli/src/test/java/org/tautua/markdownpapers/cli/MainTest.java
@@ -1,44 +1,44 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.cli;
-
-import org.junit.*;
-
-/**
- * Unit test for simple Main.
- */
-public class MainTest {
-
- @Test
- public void usage() throws Exception {
- Main main = new Main(new String[0]);
- main.execute();
- }
-
- @Test
- public void specificFileAsInput() throws Exception {
- Main main = new Main(new String[]{"target/test-classes/example.md", "other"});
- main.execute();
- }
-
- @Test
- public void directoryAsInput() throws Exception {
- Main main = new Main(new String[]{"target/test-classes/directory"});
- main.execute();
- }
-
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.cli;
+
+import org.junit.*;
+
+/**
+ * Unit test for simple Main.
+ */
+public class MainTest {
+
+ @Test
+ public void usage() throws Exception {
+ Main main = new Main(new String[0]);
+ main.execute();
+ }
+
+ @Test
+ public void specificFileAsInput() throws Exception {
+ Main main = new Main(new String[]{"target/test-classes/example.md", "other"});
+ main.execute();
+ }
+
+ @Test
+ public void directoryAsInput() throws Exception {
+ Main main = new Main(new String[]{"target/test-classes/directory"});
+ main.execute();
+ }
+
+}
diff --git a/cli/src/test/resources/directory/example.md b/cli/src/test/resources/directory/example.md
old mode 100644
new mode 100755
index 70930d8..cdc8504
--- a/cli/src/test/resources/directory/example.md
+++ b/cli/src/test/resources/directory/example.md
@@ -1,3 +1,3 @@
-# H1
-
+# H1
+
just an example
\ No newline at end of file
diff --git a/cli/src/test/resources/example.md b/cli/src/test/resources/example.md
old mode 100644
new mode 100755
index 70930d8..cdc8504
--- a/cli/src/test/resources/example.md
+++ b/cli/src/test/resources/example.md
@@ -1,3 +1,3 @@
-# H1
-
+# H1
+
just an example
\ No newline at end of file
diff --git a/core/pom.xml b/core/pom.xml
old mode 100644
new mode 100755
index 809fd6e..3ae8a1c
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -1,70 +1,70 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2011, TAUTUA
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.tautua.markdownpapers</groupId>
- <artifactId>markdownpapers-parent</artifactId>
- <version>1.2.7</version>
- <relativePath>../parent/pom.xml</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.tautua.markdownpapers</groupId>
- <artifactId>markdownpapers-core</artifactId>
- <packaging>bundle</packaging>
- <name>MarkdownPapers Core</name>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>javacc-maven-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>generate-parser</id>
- <goals>
- <goal>jjtree-javacc</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <!-- the plugin doesn't read it from the .jjt file -->
- <nodePackage>org.tautua.markdownpapers.ast</nodePackage>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.4</version>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Export-Package>org.tautua.markdownpapers.*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>xmlunit</groupId>
- <artifactId>xmlunit</artifactId>
- <version>1.3</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2011, TAUTUA
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.tautua.markdownpapers</groupId>
+ <artifactId>markdownpapers-parent</artifactId>
+ <version>1.2.7</version>
+ <relativePath>../parent/pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.tautua.markdownpapers</groupId>
+ <artifactId>markdownpapers-core</artifactId>
+ <packaging>bundle</packaging>
+ <name>MarkdownPapers Core</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>javacc-maven-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>generate-parser</id>
+ <goals>
+ <goal>jjtree-javacc</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <!-- the plugin doesn't read it from the .jjt file -->
+ <nodePackage>org.tautua.markdownpapers.ast</nodePackage>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.3.4</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Export-Package>org.tautua.markdownpapers.*</Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <version>1.3</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/core/src/main/java/org/tautua/markdownpapers/HtmlEmitter.java b/core/src/main/java/org/tautua/markdownpapers/HtmlEmitter.java
old mode 100644
new mode 100755
index 94579ea..1d4ede9
--- a/core/src/main/java/org/tautua/markdownpapers/HtmlEmitter.java
+++ b/core/src/main/java/org/tautua/markdownpapers/HtmlEmitter.java
@@ -1,295 +1,612 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import org.tautua.markdownpapers.ast.*;
-import org.tautua.markdownpapers.util.DequeStack;
-import org.tautua.markdownpapers.util.Stack;
-
-import java.io.IOException;
-
-import static org.tautua.markdownpapers.util.Utils.*;
-/**
- * <p>HTML generator.</p>
- *
- * @author Larry Ruiz
- */
-public class HtmlEmitter implements Visitor {
- private Appendable buffer;
-
- public HtmlEmitter(Appendable buffer) {
- this.buffer = buffer;
- }
-
- public void visit(CharRef node) {
- append(node.getValue());
- }
-
- public void visit(Code node) {
- append("<pre><code>");
- visitChildrenAndAppendSeparator(node, EOL);
- append("</code></pre>");
- append(EOL);
- }
-
- public void visit(CodeSpan node) {
- append("<code>");
- escapeAndAppend(node.getText());
- append("</code>");
- }
-
- public void visit(CodeText node) {
- escapeAndAppend(node.getValue());
- }
-
- public void visit(Comment node) {
- append("<!--");
- append(node.getText());
- append("-->");
- }
-
- public void visit(Document node) {
- visitChildrenAndAppendSeparator(node, EOL);
- }
-
- public void visit(Emphasis node) {
- switch (node.getType()) {
- case ITALIC:
- append("<em>");
- append(node.getText());
- append("</em>");
- break;
- case BOLD:
- append("<strong>");
- append(node.getText());
- append("</strong>");
- break;
- case ITALIC_AND_BOLD:
- append("<strong><em>");
- append(node.getText());
- append("</em></strong>");
- break;
- }
- }
-
- public void visit(Header node) {
- String level = String.valueOf(node.getLevel());
- append("<h");
- append(level);
- append(">");
- node.childrenAccept(this);
- append("</h");
- append(level);
- append(">");
- append(EOL);
- }
-
- public void visit(Image node) {
- Resource resource = node.getResource();
- if (resource == null) {
- append("<img src=\"\" alt=\"");
- escapeAndAppend(node.getText());
- append("\"/>");
- } else {
- append("<img");
- append(" src=\"");
- escapeAndAppend(resource.getLocation());
- if (node.getText() != null) {
- append("\" alt=\"");
- escapeAndAppend(node.getText());
- }
- if (resource.getHint() != null) {
- append("\" title=\"");
- escapeAndAppend(resource.getHint());
- }
- append("\"/>");
- }
- }
-
- public void visit(InlineUrl node) {
- append("<a href=\"");
- escapeAndAppend(node.getUrl());
- append("\">");
- escapeAndAppend(node.getUrl());
- append("</a>");
- }
-
- public void visit(Item node) {
- append("<li>");
- node.childrenAccept(this);
- append("</li>");
- append(EOL);
- }
-
- public void visit(Line node) {
- node.childrenAccept(this);
- }
-
- @Override
- public void visit(LineBreak node) {
- Line l = (Line) node.jjtGetParent();
- if(!l.isEnding()) {
- append("<br/>");
- }
- }
-
- public void visit(Link node) {
- Resource resource = node.getResource();
- if (resource == null) {
- if (node.isReferenced()) {
- append("[");
- node.childrenAccept(this);
- append("]");
- if (node.getReference() != null) {
- if (node.hasWhitespaceAtMiddle()) {
- append(' ');
- }
- append("[");
- append(node.getReference());
- append("]");
- }
- } else {
- append("<a href=\"\">");
- node.childrenAccept(this);
- append("</a>");
- }
- } else {
- append("<a");
- append(" href=\"");
- escapeAndAppend(resource.getLocation());
- if (resource.getHint() != null) {
- append("\" title=\"");
- escapeAndAppend(resource.getHint());
- }
- append("\">");
- node.childrenAccept(this);
- append("</a>");
- }
- }
-
- public void visit(ResourceDefinition node) {
- // do nothing
- }
-
- public void visit(List node) {
- if (node.isOrdered()) {
- append("<ol>");
- append(EOL);
- node.childrenAccept(this);
- append("</ol>");
- } else {
- append("<ul>");
- append(EOL);
- node.childrenAccept(this);
- append("</ul>");
- }
- append(EOL);
- }
-
- public void visit(Paragraph node) {
- Node parent = node.jjtGetParent();
- if(parent instanceof Item) {
- if (!((Item)parent).isLoose()) {
- visitChildrenAndAppendSeparator(node, EOL);
- return;
- }
- }
- append("<p>");
- visitChildrenAndAppendSeparator(node, EOL);
- append("</p>");
- append(EOL);
- }
-
- public void visit(Ruler node) {
- append("<hr/>");
- append(EOL);
- }
-
- public void visit(Quote node) {
- append("<blockquote>");
- append(EOL);
- node.childrenAccept(this);
- append("</blockquote>");
- append(EOL);
- }
-
- public void visit(SimpleNode node) {
- throw new IllegalArgumentException("can not process this element");
- }
-
- public void visit(Tag node) {
- append("<");
- append(node.getName());
- for (TagAttribute attribute : node.getAttributes()) {
- append(SPACE);
- append(attribute.getName());
- append("=\"");
- append(attribute.getValue());
- append("\"");
- }
-
- if(node.jjtGetNumChildren() == 0) {
- append("/>");
- } else {
- append(">");
- node.childrenAccept(this);
- append("</");
- append(node.getName());
- append(">");
- }
- }
-
- public void visit(Text node) {
- if(node.jjtGetParent() instanceof Tag) {
- append(node.getValue());
- } else {
- escapeAndAppend(node.getValue());
- }
- }
-
- void visitChildrenAndAppendSeparator(Node node, char separator){
- int count = node.jjtGetNumChildren();
- for(int i = 0; i < count; i++) {
- node.jjtGetChild(i).accept(this);
- if(i < count - 1) {
- append(separator);
- }
- }
- }
-
- void escapeAndAppend(String val) {
- for(char character : val.toCharArray()) {
- append(escape(character));
- }
- }
-
- void append(String val) {
- try {
- buffer.append(val);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- void append(char val) {
- try {
- buffer.append(val);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import org.tautua.markdownpapers.ast.*;
+import org.tautua.markdownpapers.util.DequeStack;
+import org.tautua.markdownpapers.util.Stack;
+
+
+import java.io.IOException;
+
+import static org.tautua.markdownpapers.util.Utils.*;
+/**
+ * <p>HTML generator.</p>
+ *
+ * @author Larry Ruiz
+ */
+public class HtmlEmitter implements Visitor {
+ private Appendable buffer;
+ private String attr[]=null;
+ private int i,count=1,gen=1;
+ public HtmlEmitter(Appendable buffer) {
+ this.buffer = buffer;
+ }
+
+ public String genid(){
+ String res = new String("#id");
+ res += Integer.toString(gen);
+ gen++;
+ return res;
+ }
+ public void visit(CharRef node) {
+ append(node.getValue());
+ }
+
+ public void visit(Code node) {
+ attr = node.getAttr();
+ if(attr==null)
+ append("<pre><code>");
+ else{
+ append("<pre ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ append("<code>");
+ }
+ visitChildrenAndAppendSeparator(node, EOL);
+ append("</code></pre>");
+ append(EOL);
+ }
+
+ public void visit(CodeSpan node) {
+ attr = node.getAttr();
+ if(attr==null)
+ append("<code>");
+ else{
+ append("<code ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ escapeAndAppend(node.getText());
+ append("</code>");
+ }
+
+ public void visit(CodeText node) {
+ escapeAndAppend(node.getValue());
+ }
+
+ public void visit(Comment node) {
+ append("<!--");
+ append(node.getText());
+ append("-->");
+ }
+
+ public void visit(Document node) {
+ visitChildrenAndAppendSeparator(node, EOL);
+ }
+
+ public void visit(Emphasis node) {
+ attr = node.getAttr();
+ switch (node.getType()) {
+ case ITALIC:
+ if(attr==null){
+ append("<em>");
+ }
+ else{
+ append("<em ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(node.getText());
+ append("</em>");
+ break;
+ case BOLD:
+ if(attr==null){
+ append("<strong>");
+ }
+ else{
+ append("<strong ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(node.getText());
+ append("</strong>");
+ break;
+ case ITALIC_AND_BOLD:
+ if(attr==null){
+ append("<strong><em>");
+ }
+ else{
+ append("<strong ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ append("<em>");
+ }
+ append(node.getText());
+ append("</em></strong>");
+ break;
+ }
+ }
+
+ public void visit(Header node) {
+ String level = String.valueOf(node.getLevel());
+ attr = node.getAttr();
+ if(attr==null){
+ append("<h");
+ append(level);
+ append(">");
+ }
+ else{
+ append("<h");
+ append(level+" ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ node.childrenAccept(this);
+ append("</h");
+ append(level);
+ append(">");
+ append(EOL);
+ }
+
+ public void visit(Image node) {
+ Resource resource = node.getResource();
+ String attr[] = node.getAttr();
+ if (resource == null) {
+ if(attr==null)
+ append("<img src=\"\" alt=\"");
+ else{
+ append("<img ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append("src=\"\" alt=\"");
+ }
+ escapeAndAppend(node.getText());
+ append("\"/>");
+ } else {
+ if(attr==null)
+ append("<img");
+ else{
+ append("<img ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ }
+ append(" src=\"");
+ escapeAndAppend(resource.getLocation());
+ if (node.getText() != null) {
+ append("\" alt=\"");
+ escapeAndAppend(node.getText());
+ }
+ if (resource.getHint() != null) {
+ append("\" title=\"");
+ escapeAndAppend(resource.getHint());
+ }
+ append("\"/>");
+ }
+ }
+
+ public void visit(InlineUrl node) {
+ attr = node.getAttr();
+ if(attr==null)
+ append("<a href=\"");
+ else{
+ append("<a ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append("href=\"");
+ }
+ escapeAndAppend(node.getUrl());
+ append("\">");
+ escapeAndAppend(node.getUrl());
+ append("</a>");
+ }
+
+ public void visit(Item node) {
+ attr = node.getAttr();
+ if(attr==null)
+ append("<li>");
+ else{
+ append("<li ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ node.childrenAccept(this);
+ append("</li>");
+ append(EOL);
+ }
+
+ public void visit(Line node) {
+ node.childrenAccept(this);
+ }
+
+ @Override
+ public void visit(LineBreak node) {
+ Line l = (Line) node.jjtGetParent();
+ if(!l.isEnding()) {
+ append("<br/>");
+ }
+ }
+
+ public void visit(Link node) {
+ Resource resource = node.getResource();
+ String attr[] = node.getAttr();
+ if (resource == null) {
+ if (node.isReferenced()) {
+ append("[");
+ node.childrenAccept(this);
+ append("]");
+ if (node.getReference() != null) {
+ if (node.hasWhitespaceAtMiddle()) {
+ append(' ');
+ }
+ append("[");
+ append(node.getReference());
+ append("]");
+ }
+ } else {
+ if(attr==null)
+ append("<a href=\"\">");
+ else {
+ append("<a ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append("href=\"\">");
+ }
+ node.childrenAccept(this);
+ append("</a>");
+ }
+ } else {
+ if(attr==null)
+ append("<a");
+ else{
+ append("<a ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ }
+ append(" href=\"");
+ escapeAndAppend(resource.getLocation());
+ if (resource.getHint() != null) {
+ append("\" title=\"");
+ escapeAndAppend(resource.getHint());
+ }
+ append("\">");
+ node.childrenAccept(this);
+ append("</a>");
+ }
+ }
+
+ public void visit(ResourceDefinition node) {
+ // do nothing
+ }
+
+ public void visit(List node) {
+ attr = node.getAttr();
+ if (node.isOrdered()) {
+ if(attr==null)
+ append("<ol>");
+ else{
+ append("<ol ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append("</ol>");
+ } else {
+ if(attr==null)
+ append("<ul>");
+ else{
+ append("<ul ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append("</ul>");
+ }
+ append(EOL);
+ }
+
+ public void visit(Paragraph node) {
+ Node parent = node.jjtGetParent();
+ String attr[] = node.getAttr();
+ if(parent instanceof Item) {
+ if (!((Item)parent).isLoose()) {
+ visitChildrenAndAppendSeparator(node, EOL);
+ return;
+ }
+ }
+ if(attr==null)
+ append("<p>");
+ else{
+ append("<p ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ visitChildrenAndAppendSeparator(node, EOL);
+ append("</p>");
+ append(EOL);
+ }
+
+ public void visit(Ruler node) {
+ append("<hr/>");
+ append(EOL);
+ }
+
+ public void visit(Quote node) {
+ attr = node.getAttr();
+ if(attr==null)
+ append("<blockquote>");
+ else{
+ append("<blockquote ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append("</blockquote>");
+ append(EOL);
+ }
+
+ public void visit(SimpleNode node) {
+ throw new IllegalArgumentException("can not process this element");
+ }
+
+ public void visit(Tag node) {
+ append("<");
+ append(node.getName());
+ for (TagAttribute attribute : node.getAttributes()) {
+ append(SPACE);
+ append(attribute.getName());
+ append("=\"");
+ append(attribute.getValue());
+ append("\"");
+ }
+
+ if(node.jjtGetNumChildren() == 0) {
+ append("/>");
+ } else {
+ append(">");
+ node.childrenAccept(this);
+ append("</");
+ append(node.getName());
+ append(">");
+ }
+ }
+
+ public void visit(Text node) {
+ if(node.jjtGetParent() instanceof Tag) {
+ append(node.getValue());
+ } else {
+ escapeAndAppend(node.getValue());
+ }
+ }
+
+ void visitChildrenAndAppendSeparator(Node node, char separator){
+ int count = node.jjtGetNumChildren();
+ for(int i = 0; i < count; i++) {
+ node.jjtGetChild(i).accept(this);
+ if(i < count - 1) {
+ append(separator);
+ }
+ }
+ }
+
+ void escapeAndAppend(String val) {
+ for(char character : val.toCharArray()) {
+ append(escape(character));
+ }
+ }
+
+ void append(String val) {
+ try {
+ buffer.append(val);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ void append(char val) {
+ try {
+ buffer.append(val);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+
+ @Override
+ public void visit(Division node) {
+ // TODO Auto-generated method stub
+ attr = node.getAttr();
+ if(attr==null)
+ append("<div>");
+ else{
+ append("<div ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append(EOL);
+ append("</div>");
+ }
+
+ @Override
+ public void visit(Span node) {
+ // TODO Auto-generated method stub
+ attr = node.getAttr();
+ if(attr==null)
+ append("<span>");
+ else{
+ append("<span ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append(EOL);
+ append("</span>");
+ }
+
+ @Override
+ public void visit(Row node) {
+ // TODO Auto-generated method stub
+ attr = node.getAttr();
+ if(attr==null)
+ append("<tr>");
+ else{
+ append("<tr ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append(EOL);
+ append("</tr>");
+ }
+
+ @Override
+ public void visit(Col node) {
+ // TODO Auto-generated method stub
+ attr = node.getAttr();
+ if(attr==null)
+ append("<td>");
+ else{
+ append("<td ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append(EOL);
+ append("</td>");
+ }
+
+ @Override
+ public void visit(Table node) {
+ // TODO Auto-generated method stub
+ attr = node.getAttr();
+ if(attr==null)
+ append("<table>");
+ else{
+ append("<table ");
+ for(i=0;i<attr.length;i++){
+ append(attr[i]+" ");
+ }
+ append(">");
+ }
+ append(EOL);
+ node.childrenAccept(this);
+ append(EOL);
+ append("</table>");
+ }
+
+ @Override
+ public void visit(QA node) {
+ // TODO Auto-generated method stub
+ append("<table class=\"faqs\">");
+ node.childrenAccept(this);
+ append("</tr>");
+ append("</table>");
+ }
+
+ @Override
+ public void visit(Question node) {
+ // TODO Auto-generated method stub
+ int i=0,j=2;
+ if(count%2!=0){
+ append("<tr>");
+ }
+ append("<td>");
+ append("<span class=\"badge-artoo margin-l40n\">"+count+"</span>");
+ append("<span class=\"faqs-title\">");
+ node.childrenAccept(this);
+ }
+
+ @Override
+ public void visit(Answer node) {
+ // TODO Auto-generated method stub
+ append("</span>");
+ append("<br/>");
+ node.childrenAccept(this);
+ append("</td>");
+ if(count%2==0){
+ append("</tr>");
+ }
+ count++;
+ //append("I came here");
+ }
+
+ @Override
+ public void visit(Corousel node) {
+ // TODO Auto-generated method stub
+ String gen = genid();
+ append("<div id=\""+gen+"\" class=\"carousel slide\"><!-- Carousel items --><div class=\"carousel-inner\">");
+ node.childrenAccept(this);
+ append("</div><!-- Carousel nav --><a class=\"carousel-control left\" href=\""+gen+"\" data-slide=\"prev\">‹</a><a class=\"carousel-control right\" href=\""+gen+"\" data-slide=\"next\">›</a></div>");
+ }
+
+ @Override
+ public void visit(Items node) {
+ // TODO Auto-generated method stub
+ int c = node.getAb();
+ append("<div class=\"");
+ if(c==1){
+ append("active item\">");
+ }
+ else{
+ append("item\">");
+ }
+ node.childrenAccept(this);
+ append("</div>");
+ }
+
+ @Override
+ public void visit(CorCap node) {
+ // TODO Auto-generated method stub
+ append("<div class=\"carousel-caption\">");
+ node.childrenAccept(this);
+ append("</div>");
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/Markdown.java b/core/src/main/java/org/tautua/markdownpapers/Markdown.java
old mode 100644
new mode 100755
index fe4d9b1..f104ad2
--- a/core/src/main/java/org/tautua/markdownpapers/Markdown.java
+++ b/core/src/main/java/org/tautua/markdownpapers/Markdown.java
@@ -1,36 +1,36 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import org.tautua.markdownpapers.ast.Document;
-import org.tautua.markdownpapers.parser.ParseException;
-import org.tautua.markdownpapers.parser.Parser;
-
-import java.io.Reader;
-import java.io.Writer;
-
-/**
- * @author Larry Ruiz. Aug 6, 2010
- */
-public class Markdown {
- public void transform(Reader in, Writer out) throws ParseException {
- Parser parser = new Parser(in);
- HtmlEmitter emitter = new HtmlEmitter(out);
- Document document = parser.parse();
- document.accept(emitter);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import org.tautua.markdownpapers.ast.Document;
+import org.tautua.markdownpapers.parser.ParseException;
+import org.tautua.markdownpapers.parser.Parser;
+
+import java.io.Reader;
+import java.io.Writer;
+
+/**
+ * @author Larry Ruiz. Aug 6, 2010
+ */
+public class Markdown {
+ public void transform(Reader in, Writer out) throws ParseException {
+ Parser parser = new Parser(in);
+ HtmlEmitter emitter = new HtmlEmitter(out);
+ Document document = parser.parse();
+ document.accept(emitter);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Answer.java b/core/src/main/java/org/tautua/markdownpapers/ast/Answer.java
new file mode 100755
index 0000000..f7ab4d5
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Answer.java
@@ -0,0 +1,15 @@
+package org.tautua.markdownpapers.ast;
+
+public class Answer extends SimpleNode{
+
+ public Answer(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/CharRef.java b/core/src/main/java/org/tautua/markdownpapers/ast/CharRef.java
old mode 100644
new mode 100755
index c8a9049..45757f5
--- a/core/src/main/java/org/tautua/markdownpapers/ast/CharRef.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/CharRef.java
@@ -1,41 +1,41 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class CharRef extends SimpleNode {
- private String value;
-
- public CharRef(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class CharRef extends SimpleNode {
+ private String value;
+
+ public CharRef(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Code.java b/core/src/main/java/org/tautua/markdownpapers/ast/Code.java
old mode 100644
new mode 100755
index aef8092..fc69bdd
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Code.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Code.java
@@ -1,31 +1,31 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Code extends SimpleNode {
- public Code(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Code extends SimpleNode {
+ public Code(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/CodeSpan.java b/core/src/main/java/org/tautua/markdownpapers/ast/CodeSpan.java
old mode 100644
new mode 100755
index 51ccf16..752350e
--- a/core/src/main/java/org/tautua/markdownpapers/ast/CodeSpan.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/CodeSpan.java
@@ -1,41 +1,41 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class CodeSpan extends SimpleNode {
- private String text;
-
- public CodeSpan(int id) {
- super(id);
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class CodeSpan extends SimpleNode {
+ private String text;
+
+ public CodeSpan(int id) {
+ super(id);
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/CodeText.java b/core/src/main/java/org/tautua/markdownpapers/ast/CodeText.java
old mode 100644
new mode 100755
index 9944b35..e24b717
--- a/core/src/main/java/org/tautua/markdownpapers/ast/CodeText.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/CodeText.java
@@ -1,45 +1,45 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class CodeText extends SimpleNode {
- private StringBuilder buffer = new StringBuilder();
-
- public CodeText(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public void append(String str) {
- buffer.append(str);
- }
-
- public void append(char c) {
- buffer.append(c);
- }
-
- public String getValue() {
- return buffer.toString();
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class CodeText extends SimpleNode {
+ private StringBuilder buffer = new StringBuilder();
+
+ public CodeText(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public void append(String str) {
+ buffer.append(str);
+ }
+
+ public void append(char c) {
+ buffer.append(c);
+ }
+
+ public String getValue() {
+ return buffer.toString();
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Col.java b/core/src/main/java/org/tautua/markdownpapers/ast/Col.java
new file mode 100755
index 0000000..d72b15c
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Col.java
@@ -0,0 +1,16 @@
+package org.tautua.markdownpapers.ast;
+
+public class Col extends SimpleNode{
+
+ public Col(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Comment.java b/core/src/main/java/org/tautua/markdownpapers/ast/Comment.java
old mode 100644
new mode 100755
index b17dd14..260377f
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Comment.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Comment.java
@@ -1,41 +1,41 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Comment extends SimpleNode {
- private String text;
-
- public Comment(int i) {
- super(i);
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Comment extends SimpleNode {
+ private String text;
+
+ public Comment(int i) {
+ super(i);
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/CorCap.java b/core/src/main/java/org/tautua/markdownpapers/ast/CorCap.java
new file mode 100755
index 0000000..920507b
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/CorCap.java
@@ -0,0 +1,14 @@
+package org.tautua.markdownpapers.ast;
+
+public class CorCap extends SimpleNode {
+
+ public CorCap(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Corousel.java b/core/src/main/java/org/tautua/markdownpapers/ast/Corousel.java
new file mode 100755
index 0000000..5bc5d28
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Corousel.java
@@ -0,0 +1,17 @@
+package org.tautua.markdownpapers.ast;
+
+public class Corousel extends SimpleNode {
+
+ public Corousel(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Division.java b/core/src/main/java/org/tautua/markdownpapers/ast/Division.java
new file mode 100755
index 0000000..25eec20
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Division.java
@@ -0,0 +1,17 @@
+package org.tautua.markdownpapers.ast;
+
+public class Division extends SimpleNode{
+
+ public Division(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Document.java b/core/src/main/java/org/tautua/markdownpapers/ast/Document.java
old mode 100644
new mode 100755
index 71abc72..f0a697d
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Document.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Document.java
@@ -1,58 +1,58 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * <p>Represents a markdown document</p>
- *
- * @author Larry Ruiz
- */
-public class Document extends SimpleNode {
- private Map<String, Resource> resourceDefinitions = new HashMap<String, Resource>();
-
- public Document(int id) {
- super(id);
- }
-
- @Override
- protected Document getDocument() {
- return this;
- }
-
- public Resource findResource(String id) {
- return resourceDefinitions.get(id);
- }
-
- @Override
- public void jjtAddChild(Node n, int i) {
- if (n instanceof ResourceDefinition) {
- ResourceDefinition r = (ResourceDefinition) n;
- resourceDefinitions.put(r.getId(), r.getResource());
- }
-
- super.jjtAddChild(n, i);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-}
-
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>Represents a markdown document</p>
+ *
+ * @author Larry Ruiz
+ */
+public class Document extends SimpleNode {
+ private Map<String, Resource> resourceDefinitions = new HashMap<String, Resource>();
+
+ public Document(int id) {
+ super(id);
+ }
+
+ @Override
+ protected Document getDocument() {
+ return this;
+ }
+
+ public Resource findResource(String id) {
+ return resourceDefinitions.get(id);
+ }
+
+ @Override
+ public void jjtAddChild(Node n, int i) {
+ if (n instanceof ResourceDefinition) {
+ ResourceDefinition r = (ResourceDefinition) n;
+ resourceDefinitions.put(r.getId(), r.getResource());
+ }
+
+ super.jjtAddChild(n, i);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
+
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Emphasis.java b/core/src/main/java/org/tautua/markdownpapers/ast/Emphasis.java
old mode 100644
new mode 100755
index fcd6aa0..376c66d
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Emphasis.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Emphasis.java
@@ -1,68 +1,77 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Emphasis extends SimpleNode {
- private String text;
- private Type type = Type.ITALIC;
-
- public Emphasis(int id) {
- super(id);
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public Type getType() {
- return type;
- }
-
- public void setType(Type type) {
- this.type = type;
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public void makeItalic() {
- type = Type.ITALIC;
- }
-
- public void makeBold() {
- type = Type.BOLD;
- }
-
- public void makeItalicAndBold() {
- type = Type.ITALIC_AND_BOLD;
- }
-
- public static enum Type {
- ITALIC,
- BOLD,
- ITALIC_AND_BOLD,
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Emphasis extends SimpleNode {
+ private String text;
+ private String classname;
+ private Type type = Type.ITALIC;
+
+ public Emphasis(int id) {
+ super(id);
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public String getClassname() {
+ return classname;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public void setClassname(String text) {
+ this.classname = text;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public void makeItalic() {
+ type = Type.ITALIC;
+ }
+
+ public void makeBold() {
+ type = Type.BOLD;
+ }
+
+ public void makeItalicAndBold() {
+ type = Type.ITALIC_AND_BOLD;
+ }
+
+ public static enum Type {
+ ITALIC,
+ BOLD,
+ ITALIC_AND_BOLD,
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Header.java b/core/src/main/java/org/tautua/markdownpapers/ast/Header.java
old mode 100644
new mode 100755
index 317006e..0f6fee6
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Header.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Header.java
@@ -1,41 +1,49 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Header extends SimpleNode {
- private int level = 1;
-
- public Header(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public int getLevel() {
- return level;
- }
-
- public void setLevel(int level) {
- this.level = level;
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Header extends SimpleNode {
+ private int level = 1;
+ private String headername;
+ public Header(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+
+ public String getHeadername() {
+ return headername;
+ }
+
+ public void setHeadername(String name) {
+ this.headername = name;
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Image.java b/core/src/main/java/org/tautua/markdownpapers/ast/Image.java
old mode 100644
new mode 100755
index 00937a4..222709f
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Image.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Image.java
@@ -1,69 +1,70 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-import static org.tautua.markdownpapers.util.Utils.isBlank;
-
-/**
- * @author Larry Ruiz
- */
-public class Image extends SimpleNode implements ResourceReference {
- private String reference;
- private String text;
- private Resource resource;
-
- public Image(int id) {
- super(id);
- }
-
- public String getReference() {
- return reference;
- }
-
- public void setReference(String reference) {
- this.reference = reference;
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public Resource getResource() {
- if (resource == null) {
- if (isBlank(reference)) {
- resource = getDocument().findResource(text);
- } else {
- resource = getDocument().findResource(reference);
- }
- }
-
- return resource;
- }
-
- public void setResource(Resource resource) {
- this.resource = resource;
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+import static org.tautua.markdownpapers.util.Utils.isBlank;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Image extends SimpleNode implements ResourceReference {
+ private String reference;
+ private String text;
+ private Resource resource;
+
+ public Image(int id) {
+ super(id);
+ }
+
+ public String getReference() {
+ return reference;
+ }
+
+ public void setReference(String reference) {
+ this.reference = reference;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public Resource getResource() {
+ if (resource == null) {
+ if (isBlank(reference)) {
+ resource = getDocument().findResource(text);
+ } else {
+ resource = getDocument().findResource(reference);
+ }
+ }
+
+ return resource;
+ }
+
+ public void setResource(Resource resource) {
+ this.resource = resource;
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/InlineUrl.java b/core/src/main/java/org/tautua/markdownpapers/ast/InlineUrl.java
old mode 100644
new mode 100755
index 385a166..63742dd
--- a/core/src/main/java/org/tautua/markdownpapers/ast/InlineUrl.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/InlineUrl.java
@@ -1,41 +1,41 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class InlineUrl extends SimpleNode {
- private String url;
-
- public InlineUrl(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class InlineUrl extends SimpleNode {
+ private String url;
+
+ public InlineUrl(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Item.java b/core/src/main/java/org/tautua/markdownpapers/ast/Item.java
old mode 100644
new mode 100755
index 54fd9f8..0137854
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Item.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Item.java
@@ -1,72 +1,72 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Item extends SimpleNode {
- private Item previous;
- private int indentation;
- private boolean ordered;
- private boolean loose;
-
- public Item(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public void setPrevious(Item previous) {
- this.previous = previous;
- }
-
- public int getIndentation() {
- return indentation;
- }
-
- public void setIndentation(int indentation) {
- this.indentation = indentation;
- }
-
- public boolean isOrdered() {
- return ordered;
- }
-
- public void makeOrdered() {
- this.ordered = true;
- }
-
- public void makeUnordered() {
- this.ordered = false;
- }
-
- public void makeLoose() {
- this.loose = true;
- }
-
- public boolean isLoose() {
- if (loose) {
- return true;
- } else {
- return previous != null && previous.loose;
- }
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Item extends SimpleNode {
+ private Item previous;
+ private int indentation;
+ private boolean ordered;
+ private boolean loose;
+
+ public Item(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public void setPrevious(Item previous) {
+ this.previous = previous;
+ }
+
+ public int getIndentation() {
+ return indentation;
+ }
+
+ public void setIndentation(int indentation) {
+ this.indentation = indentation;
+ }
+
+ public boolean isOrdered() {
+ return ordered;
+ }
+
+ public void makeOrdered() {
+ this.ordered = true;
+ }
+
+ public void makeUnordered() {
+ this.ordered = false;
+ }
+
+ public void makeLoose() {
+ this.loose = true;
+ }
+
+ public boolean isLoose() {
+ if (loose) {
+ return true;
+ } else {
+ return previous != null && previous.loose;
+ }
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Items.java b/core/src/main/java/org/tautua/markdownpapers/ast/Items.java
new file mode 100755
index 0000000..4827089
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Items.java
@@ -0,0 +1,24 @@
+package org.tautua.markdownpapers.ast;
+
+public class Items extends SimpleNode {
+
+ private int ab = 0;
+
+ public int getAb() {
+ return ab;
+ }
+
+ public void setAb(int ab) {
+ this.ab = ab;
+ }
+
+ public Items(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Line.java b/core/src/main/java/org/tautua/markdownpapers/ast/Line.java
old mode 100644
new mode 100755
index b2decb0..cc256a4
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Line.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Line.java
@@ -1,45 +1,45 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Line extends SimpleNode {
- private boolean ending = false;
-
- public Line(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public void ending() {
- this.ending = true;
- }
-
- public boolean isEnding() {
- return ending;
- }
-
- public boolean isEmpty() {
- return children.length == 0;
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Line extends SimpleNode {
+ private boolean ending = false;
+
+ public Line(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public void ending() {
+ this.ending = true;
+ }
+
+ public boolean isEnding() {
+ return ending;
+ }
+
+ public boolean isEmpty() {
+ return children.length == 0;
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/LineBreak.java b/core/src/main/java/org/tautua/markdownpapers/ast/LineBreak.java
old mode 100644
new mode 100755
index 2df9e52..e25bb9f
--- a/core/src/main/java/org/tautua/markdownpapers/ast/LineBreak.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/LineBreak.java
@@ -1,32 +1,32 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class LineBreak extends SimpleNode {
-
- public LineBreak(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class LineBreak extends SimpleNode {
+
+ public LineBreak(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Link.java b/core/src/main/java/org/tautua/markdownpapers/ast/Link.java
old mode 100644
new mode 100755
index f15042e..b39af2d
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Link.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Link.java
@@ -1,94 +1,95 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-import static org.tautua.markdownpapers.util.Utils.isBlank;
-
-/**
- * @author Larry Ruiz
- */
-public class Link extends SimpleNode implements ResourceReference {
- private boolean inline = false;
- private String reference;
- private Resource resource;
- private boolean whitespaceAtMiddle = false;
-
- public Link(int id) {
- super(id);
- }
-
- public String getText() {
- StringBuilder buff = new StringBuilder();
- for (Node child : children) {
- if (child instanceof Text) {
- String val = ((Text) child).getValue();
- if ("\n".equals(val)) {
- if (' ' != buff.charAt(buff.length() - 1)) {
- buff.append(" ");
- }
- } else {
- buff.append(val);
- }
- } else if (child instanceof Link) {
- buff.append(((Link)child).getText());
- }
- }
- return buff.toString();
- }
-
- public String getReference() {
- return reference;
- }
-
- public void setReference(String reference) {
- this.reference = reference;
- }
-
- public Resource getResource() {
- if (resource == null) {
- if (isBlank(reference)) {
- resource = getDocument().findResource(getText());
- } else {
- resource = getDocument().findResource(reference);
- }
- }
-
- return resource;
- }
-
- public void setResource(Resource resource) {
- inline = true;
- this.resource = resource;
- }
-
- public boolean isReferenced() {
- return !inline;
- }
-
- public boolean hasWhitespaceAtMiddle() {
- return whitespaceAtMiddle;
- }
-
- public void setWhitespaceAtMiddle() {
- whitespaceAtMiddle = true;
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+import static org.tautua.markdownpapers.util.Utils.isBlank;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Link extends SimpleNode implements ResourceReference {
+ private boolean inline = false;
+ private String reference;
+ private Resource resource;
+ private boolean whitespaceAtMiddle = false;
+
+ public Link(int id) {
+ super(id);
+ }
+
+ public String getText() {
+ StringBuilder buff = new StringBuilder();
+ for (Node child : children) {
+ if (child instanceof Text) {
+ String val = ((Text) child).getValue();
+ if ("\n".equals(val)) {
+ if (' ' != buff.charAt(buff.length() - 1)) {
+ buff.append(" ");
+ }
+ } else {
+ buff.append(val);
+ }
+ } else if (child instanceof Link) {
+ buff.append(((Link)child).getText());
+ }
+ }
+ return buff.toString();
+ }
+
+ public String getReference() {
+ return reference;
+ }
+
+ public void setReference(String reference) {
+ this.reference = reference;
+ }
+
+ public Resource getResource() {
+ if (resource == null) {
+ if (isBlank(reference)) {
+ resource = getDocument().findResource(getText());
+ } else {
+ resource = getDocument().findResource(reference);
+ }
+ }
+
+ return resource;
+ }
+
+ public void setResource(Resource resource) {
+ inline = true;
+ this.resource = resource;
+ }
+
+ public boolean isReferenced() {
+ return !inline;
+ }
+
+ public boolean hasWhitespaceAtMiddle() {
+ return whitespaceAtMiddle;
+ }
+
+ public void setWhitespaceAtMiddle() {
+ whitespaceAtMiddle = true;
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/List.java b/core/src/main/java/org/tautua/markdownpapers/ast/List.java
old mode 100644
new mode 100755
index 7239d49..1f71f64
--- a/core/src/main/java/org/tautua/markdownpapers/ast/List.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/List.java
@@ -1,53 +1,57 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class List extends SimpleNode {
- private int indentation;
-
- public List(int id) {
- super(id);
- }
-
- public int getIndentation() {
- return indentation;
- }
-
- public void setIndentation(int indentation) {
- this.indentation = indentation;
- }
-
- public boolean isOrdered() {
- return ((Item)children[0]).isOrdered();
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- @Override
- public void jjtAddChild(Node n, int i) {
- super.jjtAddChild(n, i);
- if (i < children.length - 1) {
- ((Item)children[i + 1]).setPrevious((Item)n);
- }
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class List extends SimpleNode {
+ private int indentation;
+
+
+ public List(int id) {
+ super(id);
+ }
+
+ public int getIndentation() {
+ return indentation;
+ }
+
+ public void setIndentation(int indentation) {
+ this.indentation = indentation;
+ }
+
+ public boolean isOrdered() {
+ return ((Item)children[0]).isOrdered();
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+
+
+
+ @Override
+ public void jjtAddChild(Node n, int i) {
+ super.jjtAddChild(n, i);
+ if (i < children.length - 1) {
+ ((Item)children[i + 1]).setPrevious((Item)n);
+ }
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Node.java b/core/src/main/java/org/tautua/markdownpapers/ast/Node.java
old mode 100644
new mode 100755
index 39d1381..d8ced45
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Node.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Node.java
@@ -1,63 +1,63 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/* All AST nodes must implement this interface. It provides basic
- machinery for constructing the parent and child relationships
- between nodes. */
-
-public interface Node {
-
- /**
- * This method is called after the node has been made the current
- * node. It indicates that child nodes can now be added to it.
- */
- public void jjtOpen();
-
- /**
- * This method is called after all the child nodes have been
- * added.
- */
- public void jjtClose();
-
- /**
- * This pair of methods are used to inform the node of its
- * parent.
- */
- public void jjtSetParent(Node n);
-
- public Node jjtGetParent();
-
- /**
- * This method tells the node to add its argument to the node's
- * list of children.
- */
- public void jjtAddChild(Node n, int i);
-
- /**
- * This method returns a child node. The children are numbered
- * from zero, left to right.
- */
- public Node jjtGetChild(int i);
-
- /**
- * Return the number of children the node has.
- */
- public int jjtGetNumChildren();
-
- public void accept(Visitor visitor);
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/* All AST nodes must implement this interface. It provides basic
+ machinery for constructing the parent and child relationships
+ between nodes. */
+
+public interface Node {
+
+ /**
+ * This method is called after the node has been made the current
+ * node. It indicates that child nodes can now be added to it.
+ */
+ public void jjtOpen();
+
+ /**
+ * This method is called after all the child nodes have been
+ * added.
+ */
+ public void jjtClose();
+
+ /**
+ * This pair of methods are used to inform the node of its
+ * parent.
+ */
+ public void jjtSetParent(Node n);
+
+ public Node jjtGetParent();
+
+ /**
+ * This method tells the node to add its argument to the node's
+ * list of children.
+ */
+ public void jjtAddChild(Node n, int i);
+
+ /**
+ * This method returns a child node. The children are numbered
+ * from zero, left to right.
+ */
+ public Node jjtGetChild(int i);
+
+ /**
+ * Return the number of children the node has.
+ */
+ public int jjtGetNumChildren();
+
+ public void accept(Visitor visitor);
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Paragraph.java b/core/src/main/java/org/tautua/markdownpapers/ast/Paragraph.java
old mode 100644
new mode 100755
index ea51293..9c88abd
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Paragraph.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Paragraph.java
@@ -1,41 +1,41 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Paragraph extends SimpleNode {
- public Paragraph(int id) {
- super(id);
- }
-
- @Override
- public void jjtAddChild(Node n, int i) {
- int j = jjtGetNumChildren();
- if(i >= j) {
- Line l = (Line)n;
- l.ending();
- }
- super.jjtAddChild(n, i);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Paragraph extends SimpleNode {
+ public Paragraph(int id) {
+ super(id);
+ }
+
+ @Override
+ public void jjtAddChild(Node n, int i) {
+ int j = jjtGetNumChildren();
+ if(i >= j) {
+ Line l = (Line)n;
+ l.ending();
+ }
+ super.jjtAddChild(n, i);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/QA.java b/core/src/main/java/org/tautua/markdownpapers/ast/QA.java
new file mode 100755
index 0000000..eabcebd
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/QA.java
@@ -0,0 +1,19 @@
+package org.tautua.markdownpapers.ast;
+
+public class QA extends SimpleNode {
+
+
+
+ public QA(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Question.java b/core/src/main/java/org/tautua/markdownpapers/ast/Question.java
new file mode 100755
index 0000000..4ec38b9
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Question.java
@@ -0,0 +1,15 @@
+package org.tautua.markdownpapers.ast;
+
+public class Question extends SimpleNode{
+
+ public Question(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Quote.java b/core/src/main/java/org/tautua/markdownpapers/ast/Quote.java
old mode 100644
new mode 100755
index b2a83cd..d7ad7fa
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Quote.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Quote.java
@@ -1,31 +1,31 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Quote extends SimpleNode {
- public Quote(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Quote extends SimpleNode {
+ public Quote(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Resource.java b/core/src/main/java/org/tautua/markdownpapers/ast/Resource.java
old mode 100644
new mode 100755
index 0b65bc7..3f78912
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Resource.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Resource.java
@@ -1,45 +1,45 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * <p>Represents a resource which include location and an additional hint information,
- * it could be a webpage or image</p>
- *
- * @author Larry Ruiz
- */
-public class Resource {
- private String location;
- private String hint;
-
- public Resource(String location) {
- this.location = location;
- }
-
- public Resource(String location, String hint) {
- this.location = location;
- this.hint = hint;
- }
-
- public String getLocation() {
- return location;
- }
-
- public String getHint() {
- return hint;
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * <p>Represents a resource which include location and an additional hint information,
+ * it could be a webpage or image</p>
+ *
+ * @author Larry Ruiz
+ */
+public class Resource {
+ private String location;
+ private String hint;
+
+ public Resource(String location) {
+ this.location = location;
+ }
+
+ public Resource(String location, String hint) {
+ this.location = location;
+ this.hint = hint;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getHint() {
+ return hint;
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/ResourceDefinition.java b/core/src/main/java/org/tautua/markdownpapers/ast/ResourceDefinition.java
old mode 100644
new mode 100755
index f24c700..ba644df
--- a/core/src/main/java/org/tautua/markdownpapers/ast/ResourceDefinition.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/ResourceDefinition.java
@@ -1,50 +1,50 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class ResourceDefinition extends SimpleNode {
- private String id;
- private Resource resource;
-
- public ResourceDefinition(int id) {
- super(id);
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public Resource getResource() {
- return resource;
- }
-
- public void setResource(Resource resource) {
- this.resource = resource;
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class ResourceDefinition extends SimpleNode {
+ private String id;
+ private Resource resource;
+
+ public ResourceDefinition(int id) {
+ super(id);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Resource getResource() {
+ return resource;
+ }
+
+ public void setResource(Resource resource) {
+ this.resource = resource;
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/ResourceReference.java b/core/src/main/java/org/tautua/markdownpapers/ast/ResourceReference.java
old mode 100644
new mode 100755
index dce314d..8b0d12c
--- a/core/src/main/java/org/tautua/markdownpapers/ast/ResourceReference.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/ResourceReference.java
@@ -1,24 +1,24 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz, 10/25/2010
- */
-public interface ResourceReference {
- Resource getResource();
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz, 10/25/2010
+ */
+public interface ResourceReference {
+ Resource getResource();
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Row.java b/core/src/main/java/org/tautua/markdownpapers/ast/Row.java
new file mode 100755
index 0000000..3c863b3
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Row.java
@@ -0,0 +1,15 @@
+package org.tautua.markdownpapers.ast;
+
+public class Row extends SimpleNode{
+
+ public Row(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Ruler.java b/core/src/main/java/org/tautua/markdownpapers/ast/Ruler.java
old mode 100644
new mode 100755
index d60ef49..be0fdce
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Ruler.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Ruler.java
@@ -1,31 +1,31 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Ruler extends SimpleNode {
- public Ruler(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Ruler extends SimpleNode {
+ public Ruler(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/SimpleNode.java b/core/src/main/java/org/tautua/markdownpapers/ast/SimpleNode.java
old mode 100644
new mode 100755
index 1aa6af5..2ff2cdd
--- a/core/src/main/java/org/tautua/markdownpapers/ast/SimpleNode.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/SimpleNode.java
@@ -1,126 +1,151 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class SimpleNode implements Node {
- private static final Node[] EMPTY_ARRAY = new Node[0];
-
- protected Node parent;
- protected Node[] children = EMPTY_ARRAY;
- protected int id;
- protected Object value;
- private Document document;
-
- public SimpleNode(int i) {
- id = i;
- }
-
- protected Document getDocument() {
- if (document != null) {
- return document;
- }
-
- document = ((SimpleNode)parent).getDocument();
- return document;
- }
-
- public void jjtOpen() {
- }
-
- public void jjtClose() {
- }
-
- public void jjtSetParent(Node n) {
- parent = n;
- }
-
- public Node jjtGetParent() {
- return parent;
- }
-
- public void jjtAddChild(Node n, int i) {
- if (children == null) {
- children = new Node[i + 1];
- } else if (i >= children.length) {
- Node c[] = new Node[i + 1];
- System.arraycopy(children, 0, c, 0, children.length);
- children = c;
- }
- children[i] = n;
- }
-
- public Node jjtGetChild(int i) {
- return children[i];
- }
-
- public int jjtGetNumChildren() {
- return (children == null) ? 0 : children.length;
- }
-
- public void jjtSetValue(Object value) {
- this.value = value;
- }
-
- public Object jjtGetValue() {
- return value;
- }
-
- /**
- * Accept the visitor. *
- */
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public void childrenAccept(Visitor visitor) {
- for (Node child : children) {
- child.accept(visitor);
- }
- }
-
- /* You can override these two methods in subclasses of SimpleNode to
-customize the way the node appears when the tree is dumped. If
-your output uses more than one line you should override
-toString(String), otherwise overriding toString() is probably all
-you need to do. */
-
- public String toString() {
- return ParserTreeConstants.jjtNodeName[id];
- }
-
- public String toString(String prefix) {
- return prefix + toString();
- }
-
- /* Override this method if you want to customize how the node dumps
- out its children. */
-
- public void dump(String prefix) {
- System.out.println(toString(prefix));
- if (children != null) {
- for (int i = 0; i < children.length; ++i) {
- SimpleNode n = (SimpleNode) children[i];
- if (n != null) {
- n.dump(prefix + " ");
- }
- }
- }
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class SimpleNode implements Node{
+ private static final Node[] EMPTY_ARRAY = new Node[0];
+
+ protected Node parent;
+ protected Node[] children = EMPTY_ARRAY;
+ protected int id;
+ protected Object value;
+ private Document document;
+ public String attr[];
+ private int noq;
+
+ public int getNoq() {
+ return noq;
+ }
+
+ public void setNoq(int noq) {
+ this.noq = noq;
+ }
+
+ public SimpleNode(int i) {
+ id = i;
+ }
+
+ protected Document getDocument() {
+ if (document != null) {
+ return document;
+ }
+
+ document = ((SimpleNode)parent).getDocument();
+ return document;
+ }
+
+ public void jjtOpen() {
+ }
+
+ public void jjtClose() {
+ }
+
+ public void jjtSetParent(Node n) {
+ parent = n;
+ }
+
+ public Node jjtGetParent() {
+ return parent;
+ }
+
+ public void jjtAddChild(Node n, int i) {
+ if (children == null) {
+ children = new Node[i + 1];
+ } else if (i >= children.length) {
+ Node c[] = new Node[i + 1];
+ System.arraycopy(children, 0, c, 0, children.length);
+ children = c;
+ }
+ children[i] = n;
+ }
+
+ public Node jjtGetChild(int i) {
+ return children[i];
+ }
+
+ public int jjtGetNumChildren() {
+ return (children == null) ? 0 : children.length;
+ }
+
+ public void jjtSetValue(Object value) {
+ this.value = value;
+ }
+
+ public Object jjtGetValue() {
+ return value;
+ }
+
+ /**
+ * Accept the visitor. *
+ */
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public void childrenAccept(Visitor visitor) {
+ for (Node child : children) {
+ child.accept(visitor);
+ }
+ }
+
+ /* You can override these two methods in subclasses of SimpleNode to
+customize the way the node appears when the tree is dumped. If
+your output uses more than one line you should override
+toString(String), otherwise overriding toString() is probably all
+you need to do. */
+
+ public String toString() {
+ return ParserTreeConstants.jjtNodeName[id];
+ }
+
+ public String toString(String prefix) {
+ return prefix + toString();
+ }
+
+ /* Override this method if you want to customize how the node dumps
+ out its children. */
+
+ public void dump(String prefix) {
+ System.out.println(toString(prefix));
+ if (children != null) {
+ for (int i = 0; i < children.length; ++i) {
+ SimpleNode n = (SimpleNode) children[i];
+ if (n != null) {
+ n.dump(prefix + " ");
+ }
+ }
+ }
+ }
+
+
+ public String[] getAttr() {
+ // TODO Auto-generated method stub
+ return this.attr;
+ }
+
+
+ public void setAttr(String attr[]) {
+ // TODO Auto-generated method stub
+ this.attr = attr;
+ }
+
+
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Span.java b/core/src/main/java/org/tautua/markdownpapers/ast/Span.java
new file mode 100755
index 0000000..2deee06
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Span.java
@@ -0,0 +1,16 @@
+package org.tautua.markdownpapers.ast;
+
+public class Span extends SimpleNode{
+
+
+ public Span(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Table.java b/core/src/main/java/org/tautua/markdownpapers/ast/Table.java
new file mode 100755
index 0000000..9da5a39
--- /dev/null
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Table.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Table extends SimpleNode{
+
+ public Table(int i) {
+ super(i);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+
+
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Tag.java b/core/src/main/java/org/tautua/markdownpapers/ast/Tag.java
old mode 100644
new mode 100755
index 8194cb1..393239a
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Tag.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Tag.java
@@ -1,52 +1,52 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-import java.util.*;
-
-/**
- * @author Larry Ruiz
- */
-public class Tag extends SimpleNode {
- protected String name;
- private java.util.List<TagAttribute> attributes = new ArrayList<TagAttribute>();
-
- public Tag(int i) {
- super(i);
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public java.util.List<TagAttribute> getAttributes() {
- return attributes;
- }
-
- public void addAttribute(TagAttribute attribute) {
- attributes.add(attribute);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+import java.util.*;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Tag extends SimpleNode {
+ protected String name;
+ private java.util.List<TagAttribute> attributes = new ArrayList<TagAttribute>();
+
+ public Tag(int i) {
+ super(i);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public java.util.List<TagAttribute> getAttributes() {
+ return attributes;
+ }
+
+ public void addAttribute(TagAttribute attribute) {
+ attributes.add(attribute);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/TagAttribute.java b/core/src/main/java/org/tautua/markdownpapers/ast/TagAttribute.java
old mode 100644
new mode 100755
index 80eb9f2..04f59a7
--- a/core/src/main/java/org/tautua/markdownpapers/ast/TagAttribute.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/TagAttribute.java
@@ -1,38 +1,38 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class TagAttribute {
- private String name;
- private String value;
-
- public TagAttribute(String name, String value) {
- this.name = name;
- this.value = value;
- }
-
- public String getName() {
- return name;
- }
-
- public String getValue() {
- return value;
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class TagAttribute {
+ private String name;
+ private String value;
+
+ public TagAttribute(String name, String value) {
+ this.name = name;
+ this.value = value;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getValue() {
+ return value;
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Text.java b/core/src/main/java/org/tautua/markdownpapers/ast/Text.java
old mode 100644
new mode 100755
index ff6b3ed..8ffc983
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Text.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Text.java
@@ -1,54 +1,55 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public class Text extends SimpleNode {
- private StringBuilder buffer = new StringBuilder();
-
- public Text(int id) {
- super(id);
- }
-
- @Override
- public void accept(Visitor visitor) {
- visitor.visit(this);
- }
-
- public void append(String str) {
- buffer.append(str);
- }
-
- public void append(char c) {
- buffer.append(c);
- }
-
- public String getValue() {
- return buffer.toString();
- }
-
- public boolean isWhitespace() {
- return buffer.toString().trim().length() == 0;
- }
-
- @Override
- public String toString() {
- return buffer.toString();
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public class Text extends SimpleNode {
+ private StringBuilder buffer = new StringBuilder();
+
+ public Text(int id) {
+ super(id);
+ }
+
+ @Override
+ public void accept(Visitor visitor) {
+ visitor.visit(this);
+ }
+
+ public void append(String str) {
+ buffer.append(str);
+ }
+
+ public void append(char c) {
+ buffer.append(c);
+ }
+
+ public String getValue() {
+ return buffer.toString();
+ }
+
+ public boolean isWhitespace() {
+ return buffer.toString().trim().length() == 0;
+ }
+
+ @Override
+ public String toString() {
+ return buffer.toString();
+ }
+
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/ast/Visitor.java b/core/src/main/java/org/tautua/markdownpapers/ast/Visitor.java
old mode 100644
new mode 100755
index 17a8bac..d1fb160
--- a/core/src/main/java/org/tautua/markdownpapers/ast/Visitor.java
+++ b/core/src/main/java/org/tautua/markdownpapers/ast/Visitor.java
@@ -1,66 +1,88 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.ast;
-
-/**
- * @author Larry Ruiz
- */
-public interface Visitor {
- void visit(CharRef node);
-
- void visit(Code node);
-
- void visit(CodeSpan node);
-
- void visit(CodeText node);
-
- void visit(Comment node);
-
- void visit(Document node);
-
- void visit(Emphasis node);
-
- void visit(Header node);
-
- void visit(Image node);
-
- void visit(Line node);
-
- void visit(LineBreak node);
-
- void visit(Link node);
-
- void visit(List node);
-
- void visit(InlineUrl node);
-
- void visit(Item node);
-
- void visit(Paragraph node);
-
- void visit(Quote node);
-
- void visit(ResourceDefinition node);
-
- void visit(Ruler node);
-
- void visit(SimpleNode node);
-
- void visit(Tag node);
-
- void visit(Text node);
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.ast;
+
+/**
+ * @author Larry Ruiz
+ */
+public interface Visitor {
+ void visit(CharRef node);
+
+ void visit(Code node);
+
+ void visit(CodeSpan node);
+
+ void visit(CodeText node);
+
+ void visit(Comment node);
+
+ void visit(Document node);
+
+ void visit(Emphasis node);
+
+ void visit(Header node);
+
+ void visit(Image node);
+
+ void visit(Line node);
+
+ void visit(LineBreak node);
+
+ void visit(Link node);
+
+ void visit(List node);
+
+ void visit(InlineUrl node);
+
+ void visit(Item node);
+
+ void visit(Paragraph node);
+
+ void visit(Quote node);
+
+ void visit(ResourceDefinition node);
+
+ void visit(Ruler node);
+
+ void visit(SimpleNode node);
+
+ void visit(Tag node);
+
+ void visit(Text node);
+
+ void visit(Division node);
+
+ void visit(Span node);
+
+ void visit(Table node);
+
+ void visit(Row node);
+
+ void visit(Col node);
+
+ void visit(QA node);
+
+ void visit(Question node);
+
+ void visit(Answer node);
+
+ void visit(Corousel node);
+
+ void visit(Items node);
+
+ void visit(CorCap node);
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/parser/Token.java b/core/src/main/java/org/tautua/markdownpapers/parser/Token.java
old mode 100644
new mode 100755
index 91fa80b..1867b6e
--- a/core/src/main/java/org/tautua/markdownpapers/parser/Token.java
+++ b/core/src/main/java/org/tautua/markdownpapers/parser/Token.java
@@ -1,171 +1,171 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.parser;
-
-/**
- * Describes the input token stream.
- */
-
-public class Token implements java.io.Serializable {
-
- /**
- * The version identifier for this Serializable class.
- * Increment only if the <i>serialized</i> form of the
- * class changes.
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * An integer that describes the kind of this token. This numbering
- * system is determined by JavaCCParser, and a table of these numbers is
- * stored in the file ...Constants.java.
- */
- public int kind;
-
- /**
- * The line number of the first character of this Token.
- */
- public int beginLine;
- /**
- * The column number of the first character of this Token.
- */
- public int beginColumn;
- /**
- * The line number of the last character of this Token.
- */
- public int endLine;
- /**
- * The column number of the last character of this Token.
- */
- public int endColumn;
-
- /**
- * The string image of the token.
- */
- public String image;
-
- /**
- * A reference to the next regular (non-special) token from the input
- * stream. If this is the last token from the input stream, or if the
- * token manager has not read tokens beyond this one, this field is
- * set to null. This is true only if this token is also a regular
- * token. Otherwise, see below for a description of the contents of
- * this field.
- */
- public Token next;
-
- /**
- * This field is used to access special tokens that occur prior to this
- * token, but after the immediately preceding regular (non-special) token.
- * If there are no such special tokens, this field is set to null.
- * When there are more than one such special token, this field refers
- * to the last of these special tokens, which in turn refers to the next
- * previous special token through its specialToken field, and so on
- * until the first special token (whose specialToken field is null).
- * The next fields of special tokens refer to other special tokens that
- * immediately follow it (without an intervening regular token). If there
- * is no such token, this field is null.
- */
- public Token specialToken;
-
- /**
- * An optional attribute value of the Token.
- * Tokens which are not used as syntactic sugar will often contain
- * meaningful values that will be used later on by the compiler or
- * interpreter. This attribute value is often different from the image.
- * Any subclass of Token that actually wants to return a non-null value can
- * override this method as appropriate.
- */
- public Object getValue() {
- return null;
- }
-
- /**
- * No-argument constructor
- */
- public Token() {
- }
-
- /**
- * Constructs a new token for the specified Image.
- */
- public Token(int kind) {
- this(kind, null);
- }
-
- /**
- * Constructs a new token for the specified Image and Kind.
- */
- public Token(int kind, String image) {
- this.kind = kind;
- this.image = image;
- }
-
- /**
- * if the token is one of the kinds passed.
- * @param args
- * @return
- */
- public boolean any(int... args) {
- for(int kind : args) {
- if(this.kind == kind) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * if the token is none of the kinds passed.
- * @param args
- * @return
- */
- public boolean none(int... args) {
- return !any(args);
- }
-
- /**
- * Returns the image.
- */
- public String toString() {
- return image;
- }
-
- /**
- * Returns a new Token object, by default. However, if you want, you
- * can create and return subclass objects based on the value of ofKind.
- * Simply add the cases to the switch for all those special cases.
- * For example, if you have a subclass of Token called IDToken that
- * you want to create if ofKind is ID, simply add something like :
- * <p/>
- * case MyParserConstants.ID : return new IDToken(ofKind, image);
- * <p/>
- * to the following switch statement. Then you can cast matchedToken
- * variable to the appropriate type and use sit in your lexical actions.
- */
- public static Token newToken(int ofKind, String image) {
- switch (ofKind) {
- default:
- return new Token(ofKind, image);
- }
- }
-
- public static Token newToken(int ofKind) {
- return newToken(ofKind, null);
- }
-
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.parser;
+
+/**
+ * Describes the input token stream.
+ */
+
+public class Token implements java.io.Serializable {
+
+ /**
+ * The version identifier for this Serializable class.
+ * Increment only if the <i>serialized</i> form of the
+ * class changes.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * An integer that describes the kind of this token. This numbering
+ * system is determined by JavaCCParser, and a table of these numbers is
+ * stored in the file ...Constants.java.
+ */
+ public int kind;
+
+ /**
+ * The line number of the first character of this Token.
+ */
+ public int beginLine;
+ /**
+ * The column number of the first character of this Token.
+ */
+ public int beginColumn;
+ /**
+ * The line number of the last character of this Token.
+ */
+ public int endLine;
+ /**
+ * The column number of the last character of this Token.
+ */
+ public int endColumn;
+
+ /**
+ * The string image of the token.
+ */
+ public String image;
+
+ /**
+ * A reference to the next regular (non-special) token from the input
+ * stream. If this is the last token from the input stream, or if the
+ * token manager has not read tokens beyond this one, this field is
+ * set to null. This is true only if this token is also a regular
+ * token. Otherwise, see below for a description of the contents of
+ * this field.
+ */
+ public Token next;
+
+ /**
+ * This field is used to access special tokens that occur prior to this
+ * token, but after the immediately preceding regular (non-special) token.
+ * If there are no such special tokens, this field is set to null.
+ * When there are more than one such special token, this field refers
+ * to the last of these special tokens, which in turn refers to the next
+ * previous special token through its specialToken field, and so on
+ * until the first special token (whose specialToken field is null).
+ * The next fields of special tokens refer to other special tokens that
+ * immediately follow it (without an intervening regular token). If there
+ * is no such token, this field is null.
+ */
+ public Token specialToken;
+
+ /**
+ * An optional attribute value of the Token.
+ * Tokens which are not used as syntactic sugar will often contain
+ * meaningful values that will be used later on by the compiler or
+ * interpreter. This attribute value is often different from the image.
+ * Any subclass of Token that actually wants to return a non-null value can
+ * override this method as appropriate.
+ */
+ public Object getValue() {
+ return null;
+ }
+
+ /**
+ * No-argument constructor
+ */
+ public Token() {
+ }
+
+ /**
+ * Constructs a new token for the specified Image.
+ */
+ public Token(int kind) {
+ this(kind, null);
+ }
+
+ /**
+ * Constructs a new token for the specified Image and Kind.
+ */
+ public Token(int kind, String image) {
+ this.kind = kind;
+ this.image = image;
+ }
+
+ /**
+ * if the token is one of the kinds passed.
+ * @param args
+ * @return
+ */
+ public boolean any(int... args) {
+ for(int kind : args) {
+ if(this.kind == kind) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * if the token is none of the kinds passed.
+ * @param args
+ * @return
+ */
+ public boolean none(int... args) {
+ return !any(args);
+ }
+
+ /**
+ * Returns the image.
+ */
+ public String toString() {
+ return image;
+ }
+
+ /**
+ * Returns a new Token object, by default. However, if you want, you
+ * can create and return subclass objects based on the value of ofKind.
+ * Simply add the cases to the switch for all those special cases.
+ * For example, if you have a subclass of Token called IDToken that
+ * you want to create if ofKind is ID, simply add something like :
+ * <p/>
+ * case MyParserConstants.ID : return new IDToken(ofKind, image);
+ * <p/>
+ * to the following switch statement. Then you can cast matchedToken
+ * variable to the appropriate type and use sit in your lexical actions.
+ */
+ public static Token newToken(int ofKind, String image) {
+ switch (ofKind) {
+ default:
+ return new Token(ofKind, image);
+ }
+ }
+
+ public static Token newToken(int ofKind) {
+ return newToken(ofKind, null);
+ }
+
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/util/DequeStack.java b/core/src/main/java/org/tautua/markdownpapers/util/DequeStack.java
old mode 100644
new mode 100755
index 47eeba6..ba7e6ad
--- a/core/src/main/java/org/tautua/markdownpapers/util/DequeStack.java
+++ b/core/src/main/java/org/tautua/markdownpapers/util/DequeStack.java
@@ -1,49 +1,49 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.util;
-
-
-import java.util.ArrayDeque;
-import java.util.Deque;
-
-/**
- * <p>Stack implementation based on java.util.Deque</p>
- *
- * @author Larry Ruiz
- */
-public class DequeStack<E> implements Stack<E> {
- private Deque<E> deque = new ArrayDeque<E>();
- public E peek() {
- return deque.peekLast();
- }
-
- public void push(E e) {
- deque.addLast(e);
- }
-
- public E pop() {
- return deque.pollLast();
- }
-
- public int size() {
- return deque.size();
- }
-
- public void clear() {
- deque.clear();
- }
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.util;
+
+
+import java.util.ArrayDeque;
+import java.util.Deque;
+
+/**
+ * <p>Stack implementation based on java.util.Deque</p>
+ *
+ * @author Larry Ruiz
+ */
+public class DequeStack<E> implements Stack<E> {
+ private Deque<E> deque = new ArrayDeque<E>();
+ public E peek() {
+ return deque.peekLast();
+ }
+
+ public void push(E e) {
+ deque.addLast(e);
+ }
+
+ public E pop() {
+ return deque.pollLast();
+ }
+
+ public int size() {
+ return deque.size();
+ }
+
+ public void clear() {
+ deque.clear();
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/tautua/markdownpapers/util/Stack.java b/core/src/main/java/org/tautua/markdownpapers/util/Stack.java
old mode 100644
new mode 100755
index 798f2a4..35565a6
--- a/core/src/main/java/org/tautua/markdownpapers/util/Stack.java
+++ b/core/src/main/java/org/tautua/markdownpapers/util/Stack.java
@@ -1,39 +1,39 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.util;
-
-/**
- * <p>Stack representation - LIFO.</p>
- *
- * @author Larry Ruiz
- */
-public interface Stack<E> {
- /**
- * Retrieves, but does not remove, the last element of this deque,
- * or returns <tt>null</tt> if this deque is empty.
- * @return
- */
- E peek();
-
- void push(E e);
-
- E pop();
-
- int size();
-
- void clear();
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.util;
+
+/**
+ * <p>Stack representation - LIFO.</p>
+ *
+ * @author Larry Ruiz
+ */
+public interface Stack<E> {
+ /**
+ * Retrieves, but does not remove, the last element of this deque,
+ * or returns <tt>null</tt> if this deque is empty.
+ * @return
+ */
+ E peek();
+
+ void push(E e);
+
+ E pop();
+
+ int size();
+
+ void clear();
+}
diff --git a/core/src/main/java/org/tautua/markdownpapers/util/Utils.java b/core/src/main/java/org/tautua/markdownpapers/util/Utils.java
old mode 100644
new mode 100755
index 45436b6..2131459
--- a/core/src/main/java/org/tautua/markdownpapers/util/Utils.java
+++ b/core/src/main/java/org/tautua/markdownpapers/util/Utils.java
@@ -1,55 +1,55 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Larry Ruiz, Sep 3, 2010
- */
-public final class Utils {
- public static final char TAB = '\t';
- public static final char EOL = '\n';
- public static final char SPACE = ' ';
- public static final char QUOTE = '\"';
- public static final char AMPERSAND = '&';
- public static final char LT = '<';
- public static final char GT = '>';
- public static final String EMPTY_STRING = "";
-
-
- private static final Map<Character, String> ESCAPED_CHARS;
-
-
- static {
- ESCAPED_CHARS = new HashMap<Character, String>();
- ESCAPED_CHARS.put(AMPERSAND, "&");
- ESCAPED_CHARS.put(LT, "<");
- ESCAPED_CHARS.put(GT, ">");
- ESCAPED_CHARS.put(QUOTE, """);
- }
-
- public static String escape(char character) {
- String escaped = ESCAPED_CHARS.get(character);
- return escaped == null ? String.valueOf(character) : escaped;
- }
-
- public static boolean isBlank(String val) {
- return val == null || val.trim().equals(EMPTY_STRING);
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Larry Ruiz, Sep 3, 2010
+ */
+public final class Utils {
+ public static final char TAB = '\t';
+ public static final char EOL = '\n';
+ public static final char SPACE = ' ';
+ public static final char QUOTE = '\"';
+ public static final char AMPERSAND = '&';
+ public static final char LT = '<';
+ public static final char GT = '>';
+ public static final String EMPTY_STRING = "";
+
+
+ private static final Map<Character, String> ESCAPED_CHARS;
+
+
+ static {
+ ESCAPED_CHARS = new HashMap<Character, String>();
+ ESCAPED_CHARS.put(AMPERSAND, "&");
+ ESCAPED_CHARS.put(LT, "<");
+ ESCAPED_CHARS.put(GT, ">");
+ ESCAPED_CHARS.put(QUOTE, """);
+ }
+
+ public static String escape(char character) {
+ String escaped = ESCAPED_CHARS.get(character);
+ return escaped == null ? String.valueOf(character) : escaped;
+ }
+
+ public static boolean isBlank(String val) {
+ return val == null || val.trim().equals(EMPTY_STRING);
+ }
+}
diff --git a/core/src/main/jjtree/Markdown.jjt b/core/src/main/jjtree/Markdown.jjt
old mode 100644
new mode 100755
index 3c09599..70f0d45
--- a/core/src/main/jjtree/Markdown.jjt
+++ b/core/src/main/jjtree/Markdown.jjt
Binary files differ
diff --git a/core/src/test/java/org/tautua/markdownpapers/BaseTest.java b/core/src/test/java/org/tautua/markdownpapers/BaseTest.java
old mode 100644
new mode 100755
index 26eb9c4..24596e2
--- a/core/src/test/java/org/tautua/markdownpapers/BaseTest.java
+++ b/core/src/test/java/org/tautua/markdownpapers/BaseTest.java
@@ -1,101 +1,101 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import org.custommonkey.xmlunit.HTMLDocumentBuilder;
-import org.custommonkey.xmlunit.TolerantSaxDocumentBuilder;
-import org.custommonkey.xmlunit.XMLAssert;
-import org.custommonkey.xmlunit.XMLUnit;
-import org.junit.Before;
-import org.junit.Test;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.*;
-
-/**
- * @author Larry Ruiz
- */
-public abstract class BaseTest {
-
- private static final String DEFAULT_OUTPUT_EXTENSION = ".html";
- private static final String DEFAULT_INPUT_EXTENSION = ".text";
-
- protected String fileName;
- private String inputExtension;
- private String outputExtension;
- private File inputDirectory;
- private File outputDirectory;
-
- protected BaseTest(String fileName, File inputDirectory, File outputDirectory) {
- this(fileName, inputDirectory, outputDirectory, DEFAULT_INPUT_EXTENSION, DEFAULT_OUTPUT_EXTENSION);
- }
-
- protected BaseTest(String fileName, File inputDirectory, File outputDirectory, String inputExtension, String outputExtension) {
- this.fileName = fileName;
- this.inputDirectory = inputDirectory;
- this.outputDirectory = outputDirectory;
- this.inputExtension = inputExtension;
- this.outputExtension = outputExtension;
- }
-
-
- protected static void transform(File in, File out) throws Exception {
- Markdown md = new Markdown();
- Reader r = new FileReader(in);
- Writer w = new FileWriter(out);
- md.transform(r, w);
- r.close();
- w.close();
- }
-
- /**
- * <p>Compare two xml files, whitespace and attribute order are ignored.</p>
- * @param expected
- * @param output
- * @throws java.io.IOException
- * @throws org.xml.sax.SAXException
- * @throws javax.xml.parsers.ParserConfigurationException
- */
- protected static void compare(File expected, File output) throws IOException, SAXException, ParserConfigurationException {
- XMLUnit.setIgnoreWhitespace(true);
- XMLUnit.setIgnoreAttributeOrder(true);
- TolerantSaxDocumentBuilder tolerantSaxDocumentBuilder = new TolerantSaxDocumentBuilder(XMLUnit.newTestParser());
- HTMLDocumentBuilder htmlDocumentBuilder = new HTMLDocumentBuilder(tolerantSaxDocumentBuilder);
- org.w3c.dom.Document e = htmlDocumentBuilder.parse(new FileReader(expected));
- org.w3c.dom.Document o = htmlDocumentBuilder.parse(new FileReader(output));
- XMLAssert.assertXMLEqual(e, o);
- }
-
- @Before
- public void setup() {
- if (!outputDirectory.exists()) {
- outputDirectory.mkdirs();
- }
- }
-
- @Test
- public void execute() throws Exception {
- File input = new File(inputDirectory, fileName + inputExtension);
- File expected = new File(inputDirectory, fileName + outputExtension);
- File output = new File(outputDirectory, fileName + outputExtension);
- transform(input, output);
- if(expected.exists()) {
- compare(expected, output);
- }
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import org.custommonkey.xmlunit.HTMLDocumentBuilder;
+import org.custommonkey.xmlunit.TolerantSaxDocumentBuilder;
+import org.custommonkey.xmlunit.XMLAssert;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.junit.Before;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.*;
+
+/**
+ * @author Larry Ruiz
+ */
+public abstract class BaseTest {
+
+ private static final String DEFAULT_OUTPUT_EXTENSION = ".html";
+ private static final String DEFAULT_INPUT_EXTENSION = ".text";
+
+ protected String fileName;
+ private String inputExtension;
+ private String outputExtension;
+ private File inputDirectory;
+ private File outputDirectory;
+
+ protected BaseTest(String fileName, File inputDirectory, File outputDirectory) {
+ this(fileName, inputDirectory, outputDirectory, DEFAULT_INPUT_EXTENSION, DEFAULT_OUTPUT_EXTENSION);
+ }
+
+ protected BaseTest(String fileName, File inputDirectory, File outputDirectory, String inputExtension, String outputExtension) {
+ this.fileName = fileName;
+ this.inputDirectory = inputDirectory;
+ this.outputDirectory = outputDirectory;
+ this.inputExtension = inputExtension;
+ this.outputExtension = outputExtension;
+ }
+
+
+ protected static void transform(File in, File out) throws Exception {
+ Markdown md = new Markdown();
+ Reader r = new FileReader(in);
+ Writer w = new FileWriter(out);
+ md.transform(r, w);
+ r.close();
+ w.close();
+ }
+
+ /**
+ * <p>Compare two xml files, whitespace and attribute order are ignored.</p>
+ * @param expected
+ * @param output
+ * @throws java.io.IOException
+ * @throws org.xml.sax.SAXException
+ * @throws javax.xml.parsers.ParserConfigurationException
+ */
+ protected static void compare(File expected, File output) throws IOException, SAXException, ParserConfigurationException {
+ XMLUnit.setIgnoreWhitespace(true);
+ XMLUnit.setIgnoreAttributeOrder(true);
+ TolerantSaxDocumentBuilder tolerantSaxDocumentBuilder = new TolerantSaxDocumentBuilder(XMLUnit.newTestParser());
+ HTMLDocumentBuilder htmlDocumentBuilder = new HTMLDocumentBuilder(tolerantSaxDocumentBuilder);
+ org.w3c.dom.Document e = htmlDocumentBuilder.parse(new FileReader(expected));
+ org.w3c.dom.Document o = htmlDocumentBuilder.parse(new FileReader(output));
+ XMLAssert.assertXMLEqual(e, o);
+ }
+
+ @Before
+ public void setup() {
+ if (!outputDirectory.exists()) {
+ outputDirectory.mkdirs();
+ }
+ }
+
+ @Test
+ public void execute() throws Exception {
+ File input = new File(inputDirectory, fileName + inputExtension);
+ File expected = new File(inputDirectory, fileName + outputExtension);
+ File output = new File(outputDirectory, fileName + outputExtension);
+ transform(input, output);
+ if(expected.exists()) {
+ compare(expected, output);
+ }
+ }
+}
diff --git a/core/src/test/java/org/tautua/markdownpapers/LabelledParameterized.java b/core/src/test/java/org/tautua/markdownpapers/LabelledParameterized.java
old mode 100644
new mode 100755
index c781638..096fdf6
--- a/core/src/test/java/org/tautua/markdownpapers/LabelledParameterized.java
+++ b/core/src/test/java/org/tautua/markdownpapers/LabelledParameterized.java
@@ -1,173 +1,173 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.junit.runner.Description;
-import org.junit.runners.Parameterized;
-
-
-/**
- * <p>Taken from <a href="http://code.google.com/p/migen/">MiGen Project</a>, for better test name reporting.</p>
- */
-public class LabelledParameterized extends Parameterized {
- private List<String> labels;
-
- private Description labelledDescription;
-
- public LabelledParameterized(Class<?> cl) throws Throwable {
- super(cl);
- initialiseLabels();
- generateLabelledDescription();
- }
-
- private void initialiseLabels() throws Exception {
- Collection<Object[]> parameterArrays = getParameterArrays();
- labels = new ArrayList<String>();
- for (Object[] parameterArray : parameterArrays) {
- String label = parameterArray[0].toString();
- labels.add(label);
- }
-
- }
-
- private Collection<Object[]> getParameterArrays() throws Exception {
- Method testClassMethod = getDeclaredMethod(this.getClass(),
- "getTestClass");
- Class<?> returnType = testClassMethod.getReturnType();
- if (returnType == Class.class)
- return getParameterArrays4_3();
- else
- return getParameterArrays4_4();
- }
-
- @SuppressWarnings("unchecked")
- private Collection<Object[]> getParameterArrays4_3() throws Exception {
- Object[][] methodCalls = new Object[][] { new Object[] { "getTestClass" } };
- Class<?> cl = invokeMethodChain(this, methodCalls);
- Method[] methods = cl.getMethods();
-
- Method parametersMethod = null;
- for (Method method : methods) {
- boolean providesParameters = method
- .isAnnotationPresent(Parameters.class);
- if (!providesParameters)
- continue;
-
- if (parametersMethod != null)
- throw new Exception(
- "Only one method should be annotated with @Labels");
-
- parametersMethod = method;
- }
-
- if (parametersMethod == null)
- throw new Exception("No @Parameters method found");
-
- Collection<Object[]> parameterArrays = (Collection<Object[]>) parametersMethod
- .invoke(null);
- return parameterArrays;
-
- }
-
- private Collection<Object[]> getParameterArrays4_4() throws Exception {
- Object[][] methodCalls = new Object[][] {
- new Object[] { "getTestClass" },
- new Object[] { "getAnnotatedMethods", Class.class,
- Parameters.class },
- new Object[] { "get", int.class, 0 },
- // use array type for varargs (equivalent (almost))
- new Object[] { "invokeExplosively", Object.class, null,
- Object[].class, new Object[] {} } };
- Collection<Object[]> parameterArrays = invokeMethodChain(this,
- methodCalls);
- return parameterArrays;
- }
-
- @SuppressWarnings("unchecked")
- private <T> T invokeMethodChain(Object object, Object[][] methodCalls)
- throws Exception {
- for (Object[] methodCall : methodCalls) {
- String methodName = (String) methodCall[0];
- int parameterCount = (methodCall.length - 1) / 2;
- Class<?>[] classes = new Class<?>[parameterCount];
- Object[] arguments = new Object[parameterCount];
- for (int i = 1; i < methodCall.length; i += 2) {
- Class<?> cl = (Class<?>) methodCall[i];
- Object argument = methodCall[i + 1];
- int index = (i - 1) / 2; // messy!
- classes[index] = cl;
- arguments[index] = argument;
- }
- Method method = getDeclaredMethod(object.getClass(), methodName,
- classes);
- object = method.invoke(object, arguments);
- }
- return (T) object;
- }
-
- // iterates through super-classes until found. Throws NoSuchMethodException
- // if not
- private Method getDeclaredMethod(Class<?> cl, String methodName,
- Class<?>... parameterTypes) throws NoSuchMethodException {
- do {
- try {
- Method method = cl
- .getDeclaredMethod(methodName, parameterTypes);
- return method;
- } catch (NoSuchMethodException e) {
- // do nothing - just fall through to the below
- }
- cl = cl.getSuperclass();
- } while (cl != null);
- throw new NoSuchMethodException("Method " + methodName
- + "() not found in hierarchy");
- }
-
- private void generateLabelledDescription() throws Exception {
- Description originalDescription = super.getDescription();
- labelledDescription = Description
- .createSuiteDescription(originalDescription.getDisplayName());
- ArrayList<Description> childDescriptions = originalDescription
- .getChildren();
- int childCount = childDescriptions.size();
- if (childCount != labels.size())
- throw new Exception(
- "Number of labels and number of parameters must match.");
-
- for (int i = 0; i < childDescriptions.size(); i++) {
- Description childDescription = childDescriptions.get(i);
- String label = labels.get(i);
- Description newDescription = Description
- .createSuiteDescription(label);
- ArrayList<Description> grandChildren = childDescription
- .getChildren();
- for (Description grandChild : grandChildren)
- newDescription.addChild(grandChild);
- labelledDescription.addChild(newDescription);
- }
- }
-
- @Override
- public Description getDescription() {
- return labelledDescription;
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.junit.runner.Description;
+import org.junit.runners.Parameterized;
+
+
+/**
+ * <p>Taken from <a href="http://code.google.com/p/migen/">MiGen Project</a>, for better test name reporting.</p>
+ */
+public class LabelledParameterized extends Parameterized {
+ private List<String> labels;
+
+ private Description labelledDescription;
+
+ public LabelledParameterized(Class<?> cl) throws Throwable {
+ super(cl);
+ initialiseLabels();
+ generateLabelledDescription();
+ }
+
+ private void initialiseLabels() throws Exception {
+ Collection<Object[]> parameterArrays = getParameterArrays();
+ labels = new ArrayList<String>();
+ for (Object[] parameterArray : parameterArrays) {
+ String label = parameterArray[0].toString();
+ labels.add(label);
+ }
+
+ }
+
+ private Collection<Object[]> getParameterArrays() throws Exception {
+ Method testClassMethod = getDeclaredMethod(this.getClass(),
+ "getTestClass");
+ Class<?> returnType = testClassMethod.getReturnType();
+ if (returnType == Class.class)
+ return getParameterArrays4_3();
+ else
+ return getParameterArrays4_4();
+ }
+
+ @SuppressWarnings("unchecked")
+ private Collection<Object[]> getParameterArrays4_3() throws Exception {
+ Object[][] methodCalls = new Object[][] { new Object[] { "getTestClass" } };
+ Class<?> cl = invokeMethodChain(this, methodCalls);
+ Method[] methods = cl.getMethods();
+
+ Method parametersMethod = null;
+ for (Method method : methods) {
+ boolean providesParameters = method
+ .isAnnotationPresent(Parameters.class);
+ if (!providesParameters)
+ continue;
+
+ if (parametersMethod != null)
+ throw new Exception(
+ "Only one method should be annotated with @Labels");
+
+ parametersMethod = method;
+ }
+
+ if (parametersMethod == null)
+ throw new Exception("No @Parameters method found");
+
+ Collection<Object[]> parameterArrays = (Collection<Object[]>) parametersMethod
+ .invoke(null);
+ return parameterArrays;
+
+ }
+
+ private Collection<Object[]> getParameterArrays4_4() throws Exception {
+ Object[][] methodCalls = new Object[][] {
+ new Object[] { "getTestClass" },
+ new Object[] { "getAnnotatedMethods", Class.class,
+ Parameters.class },
+ new Object[] { "get", int.class, 0 },
+ // use array type for varargs (equivalent (almost))
+ new Object[] { "invokeExplosively", Object.class, null,
+ Object[].class, new Object[] {} } };
+ Collection<Object[]> parameterArrays = invokeMethodChain(this,
+ methodCalls);
+ return parameterArrays;
+ }
+
+ @SuppressWarnings("unchecked")
+ private <T> T invokeMethodChain(Object object, Object[][] methodCalls)
+ throws Exception {
+ for (Object[] methodCall : methodCalls) {
+ String methodName = (String) methodCall[0];
+ int parameterCount = (methodCall.length - 1) / 2;
+ Class<?>[] classes = new Class<?>[parameterCount];
+ Object[] arguments = new Object[parameterCount];
+ for (int i = 1; i < methodCall.length; i += 2) {
+ Class<?> cl = (Class<?>) methodCall[i];
+ Object argument = methodCall[i + 1];
+ int index = (i - 1) / 2; // messy!
+ classes[index] = cl;
+ arguments[index] = argument;
+ }
+ Method method = getDeclaredMethod(object.getClass(), methodName,
+ classes);
+ object = method.invoke(object, arguments);
+ }
+ return (T) object;
+ }
+
+ // iterates through super-classes until found. Throws NoSuchMethodException
+ // if not
+ private Method getDeclaredMethod(Class<?> cl, String methodName,
+ Class<?>... parameterTypes) throws NoSuchMethodException {
+ do {
+ try {
+ Method method = cl
+ .getDeclaredMethod(methodName, parameterTypes);
+ return method;
+ } catch (NoSuchMethodException e) {
+ // do nothing - just fall through to the below
+ }
+ cl = cl.getSuperclass();
+ } while (cl != null);
+ throw new NoSuchMethodException("Method " + methodName
+ + "() not found in hierarchy");
+ }
+
+ private void generateLabelledDescription() throws Exception {
+ Description originalDescription = super.getDescription();
+ labelledDescription = Description
+ .createSuiteDescription(originalDescription.getDisplayName());
+ ArrayList<Description> childDescriptions = originalDescription
+ .getChildren();
+ int childCount = childDescriptions.size();
+ if (childCount != labels.size())
+ throw new Exception(
+ "Number of labels and number of parameters must match.");
+
+ for (int i = 0; i < childDescriptions.size(); i++) {
+ Description childDescription = childDescriptions.get(i);
+ String label = labels.get(i);
+ Description newDescription = Description
+ .createSuiteDescription(label);
+ ArrayList<Description> grandChildren = childDescription
+ .getChildren();
+ for (Description grandChild : grandChildren)
+ newDescription.addChild(grandChild);
+ labelledDescription.addChild(newDescription);
+ }
+ }
+
+ @Override
+ public Description getDescription() {
+ return labelledDescription;
+ }
+}
diff --git a/core/src/test/java/org/tautua/markdownpapers/MarkdownPapersTest.java b/core/src/test/java/org/tautua/markdownpapers/MarkdownPapersTest.java
old mode 100644
new mode 100755
index 7250d1d..27b3941
--- a/core/src/test/java/org/tautua/markdownpapers/MarkdownPapersTest.java
+++ b/core/src/test/java/org/tautua/markdownpapers/MarkdownPapersTest.java
@@ -1,55 +1,55 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import java.io.*;
-import java.util.Arrays;
-import java.util.List;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameters;
-
-@RunWith(LabelledParameterized.class)
-public class MarkdownPapersTest extends BaseTest {
-
- public MarkdownPapersTest(String fileName) {
- super(fileName, new File("target/test-classes/others"), new File("target/output/others"));
- }
-
- @Parameters
- public static List<Object[]> data() throws FileNotFoundException {
- return Arrays.asList(new Object[][]{
- {"code"},
- {"comments"},
- {"emphasis"},
- {"headers"},
- {"images"},
- {"inline"},
- {"linebreak"},
- {"links"},
- {"list"},
- {"paragraphs"},
- {"quoteAndList"},
- {"quotes"},
- {"rulers"},
- {"snippets"},
- {"tags"},
- {"underscore"},
- {"inlineUrls"}
- });
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(LabelledParameterized.class)
+public class MarkdownPapersTest extends BaseTest {
+
+ public MarkdownPapersTest(String fileName) {
+ super(fileName, new File("target/test-classes/others"), new File("target/output/others"));
+ }
+
+ @Parameters
+ public static List<Object[]> data() throws FileNotFoundException {
+ return Arrays.asList(new Object[][]{
+ {"code"},
+ {"comments"},
+ {"emphasis"},
+ {"headers"},
+ {"images"},
+ {"inline"},
+ {"linebreak"},
+ {"links"},
+ {"list"},
+ {"paragraphs"},
+ {"quoteAndList"},
+ {"quotes"},
+ {"rulers"},
+ {"snippets"},
+ {"tags"},
+ {"underscore"},
+ {"inlineUrls"}
+ });
+ }
+}
diff --git a/core/src/test/java/org/tautua/markdownpapers/Markdown_1_0_Test.java b/core/src/test/java/org/tautua/markdownpapers/Markdown_1_0_Test.java
old mode 100644
new mode 100755
index 66d72c5..867712d
--- a/core/src/test/java/org/tautua/markdownpapers/Markdown_1_0_Test.java
+++ b/core/src/test/java/org/tautua/markdownpapers/Markdown_1_0_Test.java
@@ -1,61 +1,61 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameters;
-import java.io.*;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author Larry Ruiz
- */
-@RunWith(LabelledParameterized.class)
-public class Markdown_1_0_Test extends BaseTest {
- private static final File OUTPUT_DIR = new File("target/output/1.0");
- private static final File INPUT_DIR = new File("target/test-classes/1.0");
-
- public Markdown_1_0_Test(String fileName) {
- super(fileName, INPUT_DIR, OUTPUT_DIR);
- }
-
- @Parameters
- public static List<Object[]> data() {
- return Arrays.asList(new Object[][]{
- {"Amps and angle encoding"},
- {"Auto links"},
- {"Backslash escapes"},
- {"Blockquotes with code blocks"},
- {"Hard-wrapped paragraphs with list-like lines"},
- {"Horizontal rules"},
- {"Inline HTML (Advanced)"},
- {"Inline HTML (Simple)"},
- {"Inline HTML comments"},
- {"Links, inline style"},
- {"Links, reference style"},
- {"Literal quotes in titles"},
- {"Markdown Documentation - Basics"},
- {"Markdown Documentation - Syntax"},
- {"Nested blockquotes"},
- {"Ordered and unordered lists"},
- {"Strong and em together"},
- {"Tabs"},
- {"Tidyness"}
- });
- }
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized.Parameters;
+import java.io.*;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author Larry Ruiz
+ */
+@RunWith(LabelledParameterized.class)
+public class Markdown_1_0_Test extends BaseTest {
+ private static final File OUTPUT_DIR = new File("target/output/1.0");
+ private static final File INPUT_DIR = new File("target/test-classes/1.0");
+
+ public Markdown_1_0_Test(String fileName) {
+ super(fileName, INPUT_DIR, OUTPUT_DIR);
+ }
+
+ @Parameters
+ public static List<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"Amps and angle encoding"},
+ {"Auto links"},
+ {"Backslash escapes"},
+ {"Blockquotes with code blocks"},
+ {"Hard-wrapped paragraphs with list-like lines"},
+ {"Horizontal rules"},
+ {"Inline HTML (Advanced)"},
+ {"Inline HTML (Simple)"},
+ {"Inline HTML comments"},
+ {"Links, inline style"},
+ {"Links, reference style"},
+ {"Literal quotes in titles"},
+ {"Markdown Documentation - Basics"},
+ {"Markdown Documentation - Syntax"},
+ {"Nested blockquotes"},
+ {"Ordered and unordered lists"},
+ {"Strong and em together"},
+ {"Tabs"},
+ {"Tidyness"}
+ });
+ }
+}
diff --git a/core/src/test/java/org/tautua/markdownpapers/Markdown_1_1_Test.java b/core/src/test/java/org/tautua/markdownpapers/Markdown_1_1_Test.java
old mode 100644
new mode 100755
index 03f5193..1628fec
--- a/core/src/test/java/org/tautua/markdownpapers/Markdown_1_1_Test.java
+++ b/core/src/test/java/org/tautua/markdownpapers/Markdown_1_1_Test.java
@@ -1,66 +1,66 @@
-/*
- * Copyright 2011, TAUTUA
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.tautua.markdownpapers;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized.Parameters;
-import java.io.*;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author Larry Ruiz
- */
-@RunWith(LabelledParameterized.class)
-public class Markdown_1_1_Test extends BaseTest {
- private static final File OUTPUT_DIR = new File("target/output/1.1/basics");
- private static final File INPUT_DIR = new File("target/test-classes/1.1/basics");
-
- public Markdown_1_1_Test(String fileName) {
- super(fileName, INPUT_DIR, OUTPUT_DIR, ".text", ".xhtml");
- }
-
- @Parameters
- public static List<Object[]> data() {
- return Arrays.asList(new Object[][]{
- {"Amps and angle encoding"},
- {"Auto links"},
- {"Backslash escapes"},
- {"Blockquotes with code blocks"},
- {"Code Blocks"},
- {"Code Spans"},
- {"Hard-wrapped paragraphs with list-like lines"},
- {"Horizontal rules"},
- {"Images"},
- {"Inline HTML (Advanced)"},
- {"Inline HTML (Simple)"},
- {"Inline HTML comments"},
- {"Links, inline style"},
- {"Links, reference style"},
- {"Links, shortcut references"},
- {"Literal quotes in titles"},
- {"Markdown Documentation - Basics"},
- {"Markdown Documentation - Syntax"},
- {"Nested blockquotes"},
- {"Ordered and unordered lists"},
- {"Strong and em together"},
- {"Tabs"},
- {"Tidyness"}
- });
- }
-
-}
+/*
+ * Copyright 2011, TAUTUA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.tautua.markdownpapers;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized.Parameters;
+import java.io.*;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author Larry Ruiz
+ */
+@RunWith(LabelledParameterized.class)
+public class Markdown_1_1_Test extends BaseTest {
+ private static final File OUTPUT_DIR = new File("target/output/1.1/basics");
+ private static final File INPUT_DIR = new File("target/test-classes/1.1/basics");
+
+ public Markdown_1_1_Test(String fileName) {
+ super(fileName, INPUT_DIR, OUTPUT_DIR, ".text", ".xhtml");
+ }
+
+ @Parameters
+ public static List<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"Amps and angle encoding"},
+ {"Auto links"},
+ {"Backslash escapes"},
+ {"Blockquotes with code blocks"},
+ {"Code Blocks"},
+ {"Code Spans"},
+ {"Hard-wrapped paragraphs with list-like lines"},
+ {"Horizontal rules"},
+ {"Images"},
+ {"Inline HTML (Advanced)"},
+ {"Inline HTML (Simple)"},
+ {"Inline HTML comments"},
+ {"Links, inline style"},
+ {"Links, reference style"},
+ {"Links, shortcut references"},
+ {"Literal quotes in titles"},
+ {"Markdown Documentation - Basics"},
+ {"Markdown Documentation - Syntax"},
+ {"Nested blockquotes"},
+ {"Ordered and unordered lists"},
+ {"Strong and em together"},
+ {"Tabs"},
+ {"Tidyness"}
+ });
+ }
+
+}
diff --git a/core/src/test/resources/1.0/Amps and angle encoding.html b/core/src/test/resources/1.0/Amps and angle encoding.html
old mode 100644
new mode 100755
index 9606860..9923605
--- a/core/src/test/resources/1.0/Amps and angle encoding.html
+++ b/core/src/test/resources/1.0/Amps and angle encoding.html
@@ -1,17 +1,17 @@
-<p>AT&T has an ampersand in their name.</p>
-
-<p>AT&T is another way to write it.</p>
-
-<p>This & that.</p>
-
-<p>4 < 5.</p>
-
-<p>6 > 5.</p>
-
-<p>Here's a <a href="http://example.com/?foo=1&bar=2">link</a> with an ampersand in the URL.</p>
-
-<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&T">AT&T</a>.</p>
-
-<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
-
-<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
+<p>AT&T has an ampersand in their name.</p>
+
+<p>AT&T is another way to write it.</p>
+
+<p>This & that.</p>
+
+<p>4 < 5.</p>
+
+<p>6 > 5.</p>
+
+<p>Here's a <a href="http://example.com/?foo=1&bar=2">link</a> with an ampersand in the URL.</p>
+
+<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&T">AT&T</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
diff --git a/core/src/test/resources/1.0/Amps and angle encoding.text b/core/src/test/resources/1.0/Amps and angle encoding.text
old mode 100644
new mode 100755
index 0e9527f..d898199
--- a/core/src/test/resources/1.0/Amps and angle encoding.text
+++ b/core/src/test/resources/1.0/Amps and angle encoding.text
@@ -1,21 +1,21 @@
-AT&T has an ampersand in their name.
-
-AT&T is another way to write it.
-
-This & that.
-
-4 < 5.
-
-6 > 5.
-
-Here's a [link] [1] with an ampersand in the URL.
-
-Here's a link with an amersand in the link text: [AT&T] [2].
-
-Here's an inline [link](/script?foo=1&bar=2).
-
-Here's an inline [link](</script?foo=1&bar=2>).
-
-
-[1]: http://example.com/?foo=1&bar=2
+AT&T has an ampersand in their name.
+
+AT&T is another way to write it.
+
+This & that.
+
+4 < 5.
+
+6 > 5.
+
+Here's a [link] [1] with an ampersand in the URL.
+
+Here's a link with an amersand in the link text: [AT&T] [2].
+
+Here's an inline [link](/script?foo=1&bar=2).
+
+Here's an inline [link](</script?foo=1&bar=2>).
+
+
+[1]: http://example.com/?foo=1&bar=2
[2]: http://att.com/ "AT&T"
\ No newline at end of file
diff --git a/core/src/test/resources/1.0/Auto links.html b/core/src/test/resources/1.0/Auto links.html
old mode 100644
new mode 100755
index f8df985..12800bc
--- a/core/src/test/resources/1.0/Auto links.html
+++ b/core/src/test/resources/1.0/Auto links.html
@@ -1,18 +1,18 @@
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
-
-<p>With an ampersand: <a href="http://example.com/?foo=1&bar=2">http://example.com/?foo=1&bar=2</a></p>
-
-<ul>
-<li>In a list?</li>
-<li><a href="http://example.com/">http://example.com/</a></li>
-<li>It should.</li>
-</ul>
-
-<blockquote>
- <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
-</blockquote>
-
-<p>Auto-links should not occur here: <code><http://example.com/></code></p>
-
-<pre><code>or here: <http://example.com/>
-</code></pre>
+<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
+
+<p>With an ampersand: <a href="http://example.com/?foo=1&bar=2">http://example.com/?foo=1&bar=2</a></p>
+
+<ul>
+<li>In a list?</li>
+<li><a href="http://example.com/">http://example.com/</a></li>
+<li>It should.</li>
+</ul>
+
+<blockquote>
+ <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
+</blockquote>
+
+<p>Auto-links should not occur here: <code><http://example.com/></code></p>
+
+<pre><code>or here: <http://example.com/>
+</code></pre>
diff --git a/core/src/test/resources/1.0/Auto links.text b/core/src/test/resources/1.0/Auto links.text
old mode 100644
new mode 100755
index abbc488..9e4380e
--- a/core/src/test/resources/1.0/Auto links.text
+++ b/core/src/test/resources/1.0/Auto links.text
@@ -1,13 +1,13 @@
-Link: <http://example.com/>.
-
-With an ampersand: <http://example.com/?foo=1&bar=2>
-
-* In a list?
-* <http://example.com/>
-* It should.
-
-> Blockquoted: <http://example.com/>
-
-Auto-links should not occur here: `<http://example.com/>`
-
+Link: <http://example.com/>.
+
+With an ampersand: <http://example.com/?foo=1&bar=2>
+
+* In a list?
+* <http://example.com/>
+* It should.
+
+> Blockquoted: <http://example.com/>
+
+Auto-links should not occur here: `<http://example.com/>`
+
or here: <http://example.com/>
\ No newline at end of file
diff --git a/core/src/test/resources/1.0/Backslash escapes.html b/core/src/test/resources/1.0/Backslash escapes.html
old mode 100644
new mode 100755
index 77823c3..0263468
--- a/core/src/test/resources/1.0/Backslash escapes.html
+++ b/core/src/test/resources/1.0/Backslash escapes.html
@@ -1,102 +1,102 @@
-<p>These should all get escaped:</p>
-
-<p>Backslash: \</p>
-
-<p>Backtick: `</p>
-
-<p>Asterisk: *</p>
-
-<p>Underscore: _</p>
-
-<p>Left brace: {</p>
-
-<p>Right brace: }</p>
-
-<p>Left bracket: [</p>
-
-<p>Right bracket: ]</p>
-
-<p>Left paren: (</p>
-
-<p>Right paren: )</p>
-
-<p>Greater-than: ></p>
-
-<p>Hash: #</p>
-
-<p>Period: .</p>
-
-<p>Bang: !</p>
-
-<p>Plus: +</p>
-
-<p>Minus: -</p>
-
-<p>These should not, because they occur within a code block:</p>
-
-<pre><code>Backslash: \\
-
-Backtick: \`
-
-Asterisk: \*
-
-Underscore: \_
-
-Left brace: \{
-
-Right brace: \}
-
-Left bracket: \[
-
-Right bracket: \]
-
-Left paren: \(
-
-Right paren: \)
-
-Greater-than: \>
-
-Hash: \#
-
-Period: \.
-
-Bang: \!
-
-Plus: \+
-
-Minus: \-
-</code></pre>
-
-<p>Nor should these, which occur in code spans:</p>
-
-<p>Backslash: <code>\\</code></p>
-
-<p>Backtick: <code>\`</code></p>
-
-<p>Asterisk: <code>\*</code></p>
-
-<p>Underscore: <code>\_</code></p>
-
-<p>Left brace: <code>\{</code></p>
-
-<p>Right brace: <code>\}</code></p>
-
-<p>Left bracket: <code>\[</code></p>
-
-<p>Right bracket: <code>\]</code></p>
-
-<p>Left paren: <code>\(</code></p>
-
-<p>Right paren: <code>\)</code></p>
-
-<p>Greater-than: <code>\></code></p>
-
-<p>Hash: <code>\#</code></p>
-
-<p>Period: <code>\.</code></p>
-
-<p>Bang: <code>\!</code></p>
-
-<p>Plus: <code>\+</code></p>
-
-<p>Minus: <code>\-</code></p>
+<p>These should all get escaped:</p>
+
+<p>Backslash: \</p>
+
+<p>Backtick: `</p>
+
+<p>Asterisk: *</p>
+
+<p>Underscore: _</p>
+
+<p>Left brace: {</p>
+
+<p>Right brace: }</p>
+
+<p>Left bracket: [</p>
+
+<p>Right bracket: ]</p>
+
+<p>Left paren: (</p>
+
+<p>Right paren: )</p>
+
+<p>Greater-than: ></p>
+
+<p>Hash: #</p>
+
+<p>Period: .</p>
+
+<p>Bang: !</p>
+
+<p>Plus: +</p>
+
+<p>Minus: -</p>
+
+<p>These should not, because they occur within a code block:</p>
+
+<pre><code>Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \>
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+</code></pre>
+
+<p>Nor should these, which occur in code spans:</p>
+
+<p>Backslash: <code>\\</code></p>
+
+<p>Backtick: <code>\`</code></p>
+
+<p>Asterisk: <code>\*</code></p>
+
+<p>Underscore: <code>\_</code></p>
+
+<p>Left brace: <code>\{</code></p>
+
+<p>Right brace: <code>\}</code></p>
+
+<p>Left bracket: <code>\[</code></p>
+
+<p>Right bracket: <code>\]</code></p>
+
+<p>Left paren: <code>\(</code></p>
+
+<p>Right paren: <code>\)</code></p>
+
+<p>Greater-than: <code>\></code></p>
+
+<p>Hash: <code>\#</code></p>
+
+<p>Period: <code>\.</code></p>
+
+<p>Bang: <code>\!</code></p>
+
+<p>Plus: <code>\+</code></p>
+
+<p>Minus: <code>\-</code></p>
diff --git a/core/src/test/resources/1.0/Backslash escapes.text b/core/src/test/resources/1.0/Backslash escapes.text
old mode 100644
new mode 100755
index 16447a0..5450eb2
--- a/core/src/test/resources/1.0/Backslash escapes.text
+++ b/core/src/test/resources/1.0/Backslash escapes.text
@@ -1,104 +1,104 @@
-These should all get escaped:
-
-Backslash: \\
-
-Backtick: \`
-
-Asterisk: \*
-
-Underscore: \_
-
-Left brace: \{
-
-Right brace: \}
-
-Left bracket: \[
-
-Right bracket: \]
-
-Left paren: \(
-
-Right paren: \)
-
-Greater-than: \>
-
-Hash: \#
-
-Period: \.
-
-Bang: \!
-
-Plus: \+
-
-Minus: \-
-
-
-
-These should not, because they occur within a code block:
-
- Backslash: \\
-
- Backtick: \`
-
- Asterisk: \*
-
- Underscore: \_
-
- Left brace: \{
-
- Right brace: \}
-
- Left bracket: \[
-
- Right bracket: \]
-
- Left paren: \(
-
- Right paren: \)
-
- Greater-than: \>
-
- Hash: \#
-
- Period: \.
-
- Bang: \!
-
- Plus: \+
-
- Minus: \-
-
-
-Nor should these, which occur in code spans:
-
-Backslash: `\\`
-
-Backtick: `` \` ``
-
-Asterisk: `\*`
-
-Underscore: `\_`
-
-Left brace: `\{`
-
-Right brace: `\}`
-
-Left bracket: `\[`
-
-Right bracket: `\]`
-
-Left paren: `\(`
-
-Right paren: `\)`
-
-Greater-than: `\>`
-
-Hash: `\#`
-
-Period: `\.`
-
-Bang: `\!`
-
-Plus: `\+`
-
-Minus: `\-`
+These should all get escaped:
+
+Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \>
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+
+
+
+These should not, because they occur within a code block:
+
+ Backslash: \\
+
+ Backtick: \`
+
+ Asterisk: \*
+
+ Underscore: \_
+
+ Left brace: \{
+
+ Right brace: \}
+
+ Left bracket: \[
+
+ Right bracket: \]
+
+ Left paren: \(
+
+ Right paren: \)
+
+ Greater-than: \>
+
+ Hash: \#
+
+ Period: \.
+
+ Bang: \!
+
+ Plus: \+
+
+ Minus: \-
+
+
+Nor should these, which occur in code spans:
+
+Backslash: `\\`
+
+Backtick: `` \` ``
+
+Asterisk: `\*`
+
+Underscore: `\_`
+
+Left brace: `\{`
+
+Right brace: `\}`
+
+Left bracket: `\[`
+
+Right bracket: `\]`
+
+Left paren: `\(`
+
+Right paren: `\)`
+
+Greater-than: `\>`
+
+Hash: `\#`
+
+Period: `\.`
+
+Bang: `\!`
+
+Plus: `\+`
+
+Minus: `\-`
diff --git a/core/src/test/resources/1.0/Blockquotes with code blocks.html b/core/src/test/resources/1.0/Blockquotes with code blocks.html
old mode 100644
new mode 100755
index 990202a..3bdb552
--- a/core/src/test/resources/1.0/Blockquotes with code blocks.html
+++ b/core/src/test/resources/1.0/Blockquotes with code blocks.html
@@ -1,15 +1,15 @@
-<blockquote>
- <p>Example:</p>
-
-<pre><code>sub status {
- print "working";
-}
-</code></pre>
-
- <p>Or:</p>
-
-<pre><code>sub status {
- return "working";
-}
-</code></pre>
-</blockquote>
+<blockquote>
+ <p>Example:</p>
+
+<pre><code>sub status {
+ print "working";
+}
+</code></pre>
+
+ <p>Or:</p>
+
+<pre><code>sub status {
+ return "working";
+}
+</code></pre>
+</blockquote>
diff --git a/core/src/test/resources/1.0/Blockquotes with code blocks.text b/core/src/test/resources/1.0/Blockquotes with code blocks.text
old mode 100644
new mode 100755
index c31d171..1132c95
--- a/core/src/test/resources/1.0/Blockquotes with code blocks.text
+++ b/core/src/test/resources/1.0/Blockquotes with code blocks.text
@@ -1,11 +1,11 @@
-> Example:
->
-> sub status {
-> print "working";
-> }
->
-> Or:
->
-> sub status {
-> return "working";
-> }
+> Example:
+>
+> sub status {
+> print "working";
+> }
+>
+> Or:
+>
+> sub status {
+> return "working";
+> }
diff --git a/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.html b/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.html
old mode 100644
new mode 100755
index e21ac79..c7a7277
--- a/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.html
+++ b/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.html
@@ -1,8 +1,8 @@
-<p>In Markdown 1.0.0 and earlier. Version
-8. This line turns into a list item.
-Because a hard-wrapped line in the
-middle of a paragraph looked like a
-list item.</p>
-
-<p>Here's one with a bullet.
-* criminey.</p>
+<p>In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.</p>
+
+<p>Here's one with a bullet.
+* criminey.</p>
diff --git a/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.text b/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.text
old mode 100644
new mode 100755
index f8a5b27..94acad8
--- a/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.text
+++ b/core/src/test/resources/1.0/Hard-wrapped paragraphs with list-like lines.text
@@ -1,8 +1,8 @@
-In Markdown 1.0.0 and earlier. Version
-8. This line turns into a list item.
-Because a hard-wrapped line in the
-middle of a paragraph looked like a
-list item.
-
-Here's one with a bullet.
-* criminey.
+In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.
+
+Here's one with a bullet.
+* criminey.
diff --git a/core/src/test/resources/1.0/Horizontal rules.html b/core/src/test/resources/1.0/Horizontal rules.html
old mode 100644
new mode 100755
index 2dc2ab6..4b5574c
--- a/core/src/test/resources/1.0/Horizontal rules.html
+++ b/core/src/test/resources/1.0/Horizontal rules.html
@@ -1,71 +1,71 @@
-<p>Dashes:</p>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>---
-</code></pre>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>- - -
-</code></pre>
-
-<p>Asterisks:</p>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>***
-</code></pre>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>* * *
-</code></pre>
-
-<p>Underscores:</p>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>___
-</code></pre>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>_ _ _
-</code></pre>
+<p>Dashes:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>---
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>- - -
+</code></pre>
+
+<p>Asterisks:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>***
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>* * *
+</code></pre>
+
+<p>Underscores:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>___
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>_ _ _
+</code></pre>
diff --git a/core/src/test/resources/1.0/Horizontal rules.text b/core/src/test/resources/1.0/Horizontal rules.text
old mode 100644
new mode 100755
index 1594bda..6a51dac
--- a/core/src/test/resources/1.0/Horizontal rules.text
+++ b/core/src/test/resources/1.0/Horizontal rules.text
@@ -1,67 +1,67 @@
-Dashes:
-
----
-
- ---
-
- ---
-
- ---
-
- ---
-
-- - -
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
-
-Asterisks:
-
-***
-
- ***
-
- ***
-
- ***
-
- ***
-
-* * *
-
- * * *
-
- * * *
-
- * * *
-
- * * *
-
-
-Underscores:
-
-___
-
- ___
-
- ___
-
- ___
-
- ___
-
-_ _ _
-
- _ _ _
-
- _ _ _
-
- _ _ _
-
- _ _ _
+Dashes:
+
+---
+
+ ---
+
+ ---
+
+ ---
+
+ ---
+
+- - -
+
+ - - -
+
+ - - -
+
+ - - -
+
+ - - -
+
+
+Asterisks:
+
+***
+
+ ***
+
+ ***
+
+ ***
+
+ ***
+
+* * *
+
+ * * *
+
+ * * *
+
+ * * *
+
+ * * *
+
+
+Underscores:
+
+___
+
+ ___
+
+ ___
+
+ ___
+
+ ___
+
+_ _ _
+
+ _ _ _
+
+ _ _ _
+
+ _ _ _
+
+ _ _ _
diff --git "a/core/src/test/resources/1.0/Inline HTML \050Advanced\051.html" "b/core/src/test/resources/1.0/Inline HTML \050Advanced\051.html"
old mode 100644
new mode 100755
index 1972d87..db46fde
--- "a/core/src/test/resources/1.0/Inline HTML \050Advanced\051.html"
+++ "b/core/src/test/resources/1.0/Inline HTML \050Advanced\051.html"
@@ -1,14 +1,14 @@
-<p>Simple block on one line:</p>
-
-<div>foo</div>
-
-<p>And nested without indentation:</p>
-
-<div>
-<div>
-<div>
-foo
-</div>
-</div>
-<div>bar</div>
-</div>
+<p>Simple block on one line:</p>
+
+<div>foo</div>
+
+<p>And nested without indentation:</p>
+
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>bar</div>
+</div>
diff --git "a/core/src/test/resources/1.0/Inline HTML \050Advanced\051.text" "b/core/src/test/resources/1.0/Inline HTML \050Advanced\051.text"
old mode 100644
new mode 100755
index 9d71ddc..72c22c3
--- "a/core/src/test/resources/1.0/Inline HTML \050Advanced\051.text"
+++ "b/core/src/test/resources/1.0/Inline HTML \050Advanced\051.text"
@@ -1,14 +1,14 @@
-Simple block on one line:
-
-<div>foo</div>
-
-And nested without indentation:
-
-<div>
-<div>
-<div>
-foo
-</div>
-</div>
-<div>bar</div>
-</div>
+Simple block on one line:
+
+<div>foo</div>
+
+And nested without indentation:
+
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>bar</div>
+</div>
diff --git "a/core/src/test/resources/1.0/Inline HTML \050Simple\051.html" "b/core/src/test/resources/1.0/Inline HTML \050Simple\051.html"
old mode 100644
new mode 100755
index 6bf78f8..eeb873d
--- "a/core/src/test/resources/1.0/Inline HTML \050Simple\051.html"
+++ "b/core/src/test/resources/1.0/Inline HTML \050Simple\051.html"
@@ -1,72 +1,72 @@
-<p>Here's a simple block:</p>
-
-<div>
- foo
-</div>
-
-<p>This should be a code block, though:</p>
-
-<pre><code><div>
- foo
-</div>
-</code></pre>
-
-<p>As should this:</p>
-
-<pre><code><div>foo</div>
-</code></pre>
-
-<p>Now, nested:</p>
-
-<div>
- <div>
- <div>
- foo
- </div>
- </div>
-</div>
-
-<p>This should just be an HTML comment:</p>
-
-<!-- Comment -->
-
-<p>Multiline:</p>
-
-<!--
-Blah
-Blah
--->
-
-<p>Code block:</p>
-
-<pre><code><!-- Comment -->
-</code></pre>
-
-<p>Just plain comment, with trailing spaces on the line:</p>
-
-<!-- foo -->
-
-<p>Code:</p>
-
-<pre><code><hr />
-</code></pre>
-
-<p>Hr's:</p>
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr class="foo" id="bar" />
-
-<hr class="foo" id="bar"/>
-
-<hr class="foo" id="bar" >
+<p>Here's a simple block:</p>
+
+<div>
+ foo
+</div>
+
+<p>This should be a code block, though:</p>
+
+<pre><code><div>
+ foo
+</div>
+</code></pre>
+
+<p>As should this:</p>
+
+<pre><code><div>foo</div>
+</code></pre>
+
+<p>Now, nested:</p>
+
+<div>
+ <div>
+ <div>
+ foo
+ </div>
+ </div>
+</div>
+
+<p>This should just be an HTML comment:</p>
+
+<!-- Comment -->
+
+<p>Multiline:</p>
+
+<!--
+Blah
+Blah
+-->
+
+<p>Code block:</p>
+
+<pre><code><!-- Comment -->
+</code></pre>
+
+<p>Just plain comment, with trailing spaces on the line:</p>
+
+<!-- foo -->
+
+<p>Code:</p>
+
+<pre><code><hr />
+</code></pre>
+
+<p>Hr's:</p>
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
diff --git "a/core/src/test/resources/1.0/Inline HTML \050Simple\051.text" "b/core/src/test/resources/1.0/Inline HTML \050Simple\051.text"
old mode 100644
new mode 100755
index 14aa2dc..3d2f820
--- "a/core/src/test/resources/1.0/Inline HTML \050Simple\051.text"
+++ "b/core/src/test/resources/1.0/Inline HTML \050Simple\051.text"
@@ -1,69 +1,69 @@
-Here's a simple block:
-
-<div>
- foo
-</div>
-
-This should be a code block, though:
-
- <div>
- foo
- </div>
-
-As should this:
-
- <div>foo</div>
-
-Now, nested:
-
-<div>
- <div>
- <div>
- foo
- </div>
- </div>
-</div>
-
-This should just be an HTML comment:
-
-<!-- Comment -->
-
-Multiline:
-
-<!--
-Blah
-Blah
--->
-
-Code block:
-
- <!-- Comment -->
-
-Just plain comment, with trailing spaces on the line:
-
-<!-- foo -->
-
-Code:
-
- <hr />
-
-Hr's:
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr class="foo" id="bar" />
-
-<hr class="foo" id="bar"/>
-
-<hr class="foo" id="bar" >
-
+Here's a simple block:
+
+<div>
+ foo
+</div>
+
+This should be a code block, though:
+
+ <div>
+ foo
+ </div>
+
+As should this:
+
+ <div>foo</div>
+
+Now, nested:
+
+<div>
+ <div>
+ <div>
+ foo
+ </div>
+ </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+ <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->
+
+Code:
+
+ <hr />
+
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
diff --git a/core/src/test/resources/1.0/Inline HTML comments.html b/core/src/test/resources/1.0/Inline HTML comments.html
old mode 100644
new mode 100755
index 3f167a1..fc353b6
--- a/core/src/test/resources/1.0/Inline HTML comments.html
+++ b/core/src/test/resources/1.0/Inline HTML comments.html
@@ -1,13 +1,13 @@
-<p>Paragraph one.</p>
-
-<!-- This is a simple comment -->
-
-<!--
- This is another comment.
--->
-
-<p>Paragraph two.</p>
-
-<!-- one comment block -- -- with two comments -->
-
-<p>The end.</p>
+<p>Paragraph one.</p>
+
+<!-- This is a simple comment -->
+
+<!--
+ This is another comment.
+-->
+
+<p>Paragraph two.</p>
+
+<!-- one comment block -- -- with two comments -->
+
+<p>The end.</p>
diff --git a/core/src/test/resources/1.0/Inline HTML comments.text b/core/src/test/resources/1.0/Inline HTML comments.text
old mode 100644
new mode 100755
index 41d830d..2faaca9
--- a/core/src/test/resources/1.0/Inline HTML comments.text
+++ b/core/src/test/resources/1.0/Inline HTML comments.text
@@ -1,13 +1,13 @@
-Paragraph one.
-
-<!-- This is a simple comment -->
-
-<!--
- This is another comment.
--->
-
-Paragraph two.
-
-<!-- one comment block -- -- with two comments -->
-
-The end.
+Paragraph one.
+
+<!-- This is a simple comment -->
+
+<!--
+ This is another comment.
+-->
+
+Paragraph two.
+
+<!-- one comment block -- -- with two comments -->
+
+The end.
diff --git a/core/src/test/resources/1.0/Links, inline style.html b/core/src/test/resources/1.0/Links, inline style.html
old mode 100644
new mode 100755
index bdfabb5..f548e79
--- a/core/src/test/resources/1.0/Links, inline style.html
+++ b/core/src/test/resources/1.0/Links, inline style.html
@@ -1,9 +1,9 @@
-<p>Just a <a href="/url/">URL</a>.</p>
-
-<p><a href="/url/" title="title">URL and title</a>.</p>
-
-<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>
-
-<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>
-
-<p><a href="">Empty</a>.</p>
+<p>Just a <a href="/url/">URL</a>.</p>
+
+<p><a href="/url/" title="title">URL and title</a>.</p>
+
+<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>
+
+<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>
+
+<p><a href="">Empty</a>.</p>
diff --git a/core/src/test/resources/1.0/Links, inline style.text b/core/src/test/resources/1.0/Links, inline style.text
old mode 100644
new mode 100755
index 4d0c1c2..bb191cf
--- a/core/src/test/resources/1.0/Links, inline style.text
+++ b/core/src/test/resources/1.0/Links, inline style.text
@@ -1,9 +1,9 @@
-Just a [URL](/url/).
-
-[URL and title](/url/ "title").
-
-[URL and title](/url/ "title preceded by two spaces").
-
-[URL and title](/url/ "title preceded by a tab").
-
-[Empty]().
+Just a [URL](/url/).
+
+[URL and title](/url/ "title").
+
+[URL and title](/url/ "title preceded by two spaces").
+
+[URL and title](/url/ "title preceded by a tab").
+
+[Empty]().
diff --git a/core/src/test/resources/1.0/Links, reference style.html b/core/src/test/resources/1.0/Links, reference style.html
old mode 100644
new mode 100755
index cf4d833..ee82fc6
--- a/core/src/test/resources/1.0/Links, reference style.html
+++ b/core/src/test/resources/1.0/Links, reference style.html
@@ -1,18 +1,18 @@
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-
-<p>With <a href="/url/">embedded [brackets]</a>.</p>
-
-<p>Indented <a href="/url">once</a>.</p>
-
-<p>Indented <a href="/url">twice</a>.</p>
-
-<p>Indented <a href="/url">thrice</a>.</p>
-
-<p>Indented [four][] times.</p>
-
-<pre><code>[four]: /url
-</code></pre>
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>With <a href="/url/">embedded [brackets]</a>.</p>
+
+<p>Indented <a href="/url">once</a>.</p>
+
+<p>Indented <a href="/url">twice</a>.</p>
+
+<p>Indented <a href="/url">thrice</a>.</p>
+
+<p>Indented [four][] times.</p>
+
+<pre><code>[four]: /url
+</code></pre>
diff --git a/core/src/test/resources/1.0/Links, reference style.text b/core/src/test/resources/1.0/Links, reference style.text
old mode 100644
new mode 100755
index b2fa734..5f1d158
--- a/core/src/test/resources/1.0/Links, reference style.text
+++ b/core/src/test/resources/1.0/Links, reference style.text
@@ -1,31 +1,31 @@
-Foo [bar] [1].
-
-Foo [bar][1].
-
-Foo [bar]
-[1].
-
-[1]: /url/ "Title"
-
-
-With [embedded [brackets]] [b].
-
-
-Indented [once][].
-
-Indented [twice][].
-
-Indented [thrice][].
-
-Indented [four][] times.
-
- [once]: /url
-
- [twice]: /url
-
- [thrice]: /url
-
- [four]: /url
-
-
-[b]: /url/
+Foo [bar] [1].
+
+Foo [bar][1].
+
+Foo [bar]
+[1].
+
+[1]: /url/ "Title"
+
+
+With [embedded [brackets]] [b].
+
+
+Indented [once][].
+
+Indented [twice][].
+
+Indented [thrice][].
+
+Indented [four][] times.
+
+ [once]: /url
+
+ [twice]: /url
+
+ [thrice]: /url
+
+ [four]: /url
+
+
+[b]: /url/
diff --git a/core/src/test/resources/1.0/Literal quotes in titles.html b/core/src/test/resources/1.0/Literal quotes in titles.html
old mode 100644
new mode 100755
index 611c1ac..d464ab4
--- a/core/src/test/resources/1.0/Literal quotes in titles.html
+++ b/core/src/test/resources/1.0/Literal quotes in titles.html
@@ -1,3 +1,3 @@
-<p>Foo <a href="/url/" title="Title with "quotes" inside">bar</a>.</p>
-
-<p>Foo <a href="/url/" title="Title with "quotes" inside">bar</a>.</p>
+<p>Foo <a href="/url/" title="Title with "quotes" inside">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title with "quotes" inside">bar</a>.</p>
diff --git a/core/src/test/resources/1.0/Literal quotes in titles.text b/core/src/test/resources/1.0/Literal quotes in titles.text
old mode 100644
new mode 100755
index 29d0e42..b62bd98
--- a/core/src/test/resources/1.0/Literal quotes in titles.text
+++ b/core/src/test/resources/1.0/Literal quotes in titles.text
@@ -1,7 +1,7 @@
-Foo [bar][].
-
-Foo [bar](/url/ "Title with "quotes" inside").
-
-
- [bar]: /url/ "Title with "quotes" inside"
-
+Foo [bar][].
+
+Foo [bar](/url/ "Title with "quotes" inside").
+
+
+ [bar]: /url/ "Title with "quotes" inside"
+
diff --git a/core/src/test/resources/1.0/Markdown Documentation - Basics.html b/core/src/test/resources/1.0/Markdown Documentation - Basics.html
old mode 100644
new mode 100755
index d5bdbb2..d96fa3e
--- a/core/src/test/resources/1.0/Markdown Documentation - Basics.html
+++ b/core/src/test/resources/1.0/Markdown Documentation - Basics.html
@@ -1,314 +1,314 @@
-<h1>Markdown: Basics</h1>
-
-<ul id="ProjectSubmenu">
- <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
- <li><a class="selected" title="Markdown Basics">Basics</a></li>
- <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
- <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
- <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
-</ul>
-
-<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
-
-<p>This page offers a brief overview of what it's like to use Markdown.
-The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for
-every feature, but Markdown should be very easy to pick up simply by
-looking at a few examples of it in action. The examples on this page
-are written in a before/after style, showing example syntax and the
-HTML output produced by Markdown.</p>
-
-<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
-web application that allows you type your own Markdown-formatted text
-and translate it to XHTML.</p>
-
-<p><strong>Note:</strong> This document is itself written using Markdown; you
-can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>
-
-<h2>Paragraphs, Headers, Blockquotes</h2>
-
-<p>A paragraph is simply one or more consecutive lines of text, separated
-by one or more blank lines. (A blank line is any line that looks like a
-blank line -- a line containing nothing spaces or tabs is considered
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
-
-<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.
-Setext-style headers for <code><h1></code> and <code><h2></code> are created by
-"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
-To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the
-beginning of the line -- the number of hashes equals the resulting
-HTML header level.</p>
-
-<p>Blockquotes are indicated using email-style '<code>></code>' angle brackets.</p>
-
-<p>Markdown:</p>
-
-<pre><code>A First Level Header
-====================
-
-A Second Level Header
----------------------
-
-Now is the time for all good men to come to
-the aid of their country. This is just a
-regular paragraph.
-
-The quick brown fox jumped over the lazy
-dog's back.
-
-### Header 3
-
-> This is a blockquote.
->
-> This is the second paragraph in the blockquote.
->
-> ## This is an H2 in a blockquote
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><h1>A First Level Header</h1>
-
-<h2>A Second Level Header</h2>
-
-<p>Now is the time for all good men to come to
-the aid of their country. This is just a
-regular paragraph.</p>
-
-<p>The quick brown fox jumped over the lazy
-dog's back.</p>
-
-<h3>Header 3</h3>
-
-<blockquote>
- <p>This is a blockquote.</p>
-
- <p>This is the second paragraph in the blockquote.</p>
-
- <h2>This is an H2 in a blockquote</h2>
-</blockquote>
-</code></pre>
-
-<h3>Phrase Emphasis</h3>
-
-<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>
-
-<p>Markdown:</p>
-
-<pre><code>Some of these words *are emphasized*.
-Some of these words _are emphasized also_.
-
-Use two asterisks for **strong emphasis**.
-Or, if you prefer, __use two underscores instead__.
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>Some of these words <em>are emphasized</em>.
-Some of these words <em>are emphasized also</em>.</p>
-
-<p>Use two asterisks for <strong>strong emphasis</strong>.
-Or, if you prefer, <strong>use two underscores instead</strong>.</p>
-</code></pre>
-
-<h2>Lists</h2>
-
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,
-<code>+</code>, and <code>-</code>) as list markers. These three markers are
-interchangable; this:</p>
-
-<pre><code>* Candy.
-* Gum.
-* Booze.
-</code></pre>
-
-<p>this:</p>
-
-<pre><code>+ Candy.
-+ Gum.
-+ Booze.
-</code></pre>
-
-<p>and this:</p>
-
-<pre><code>- Candy.
-- Gum.
-- Booze.
-</code></pre>
-
-<p>all produce the same output:</p>
-
-<pre><code><ul>
-<li>Candy.</li>
-<li>Gum.</li>
-<li>Booze.</li>
-</ul>
-</code></pre>
-
-<p>Ordered (numbered) lists use regular numbers, followed by periods, as
-list markers:</p>
-
-<pre><code>1. Red
-2. Green
-3. Blue
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><ol>
-<li>Red</li>
-<li>Green</li>
-<li>Blue</li>
-</ol>
-</code></pre>
-
-<p>If you put blank lines between items, you'll get <code><p></code> tags for the
-list item text. You can create multi-paragraph list items by indenting
-the paragraphs by 4 spaces or 1 tab:</p>
-
-<pre><code>* A list item.
-
- With multiple paragraphs.
-
-* Another item in the list.
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><ul>
-<li><p>A list item.</p>
-<p>With multiple paragraphs.</p></li>
-<li><p>Another item in the list.</p></li>
-</ul>
-</code></pre>
-
-<h3>Links</h3>
-
-<p>Markdown supports two styles for creating links: <em>inline</em> and
-<em>reference</em>. With both styles, you use square brackets to delimit the
-text you want to turn into a link.</p>
-
-<p>Inline-style links use parentheses immediately after the link text.
-For example:</p>
-
-<pre><code>This is an [example link](http://example.com/).
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>This is an <a href="http://example.com/">
-example link</a>.</p>
-</code></pre>
-
-<p>Optionally, you may include a title attribute in the parentheses:</p>
-
-<pre><code>This is an [example link](http://example.com/ "With a Title").
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>This is an <a href="http://example.com/" title="With a Title">
-example link</a>.</p>
-</code></pre>
-
-<p>Reference-style links allow you to refer to your links by names, which
-you define elsewhere in your document:</p>
-
-<pre><code>I get 10 times more traffic from [Google][1] than from
-[Yahoo][2] or [MSN][3].
-
-[1]: http://google.com/ "Google"
-[2]: http://search.yahoo.com/ "Yahoo Search"
-[3]: http://search.msn.com/ "MSN Search"
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>I get 10 times more traffic from <a href="http://google.com/"
-title="Google">Google</a> than from <a href="http://search.yahoo.com/"
-title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
-title="MSN Search">MSN</a>.</p>
-</code></pre>
-
-<p>The title attribute is optional. Link names may contain letters,
-numbers and spaces, but are <em>not</em> case sensitive:</p>
-
-<pre><code>I start my morning with a cup of coffee and
-[The New York Times][NY Times].
-
-[ny times]: http://www.nytimes.com/
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>I start my morning with a cup of coffee and
-<a href="http://www.nytimes.com/">The New York Times</a>.</p>
-</code></pre>
-
-<h3>Images</h3>
-
-<p>Image syntax is very much like link syntax.</p>
-
-<p>Inline (titles are optional):</p>
-
-<pre><code>
-</code></pre>
-
-<p>Reference-style:</p>
-
-<pre><code>![alt text][id]
-
-[id]: /path/to/img.jpg "Title"
-</code></pre>
-
-<p>Both of the above examples produce the same output:</p>
-
-<pre><code><img src="/path/to/img.jpg" alt="alt text" title="Title" />
-</code></pre>
-
-<h3>Code</h3>
-
-<p>In a regular paragraph, you can create code span by wrapping text in
-backtick quotes. Any ampersands (<code>&</code>) and angle brackets (<code><</code> or
-<code>></code>) will automatically be translated into HTML entities. This makes
-it easy to use Markdown to write about HTML example code:</p>
-
-<pre><code>I strongly recommend against using any `<blink>` tags.
-
-I wish SmartyPants used named entities like `&mdash;`
-instead of decimal-encoded entites like `&#8212;`.
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>I strongly recommend against using any
-<code>&lt;blink&gt;</code> tags.</p>
-
-<p>I wish SmartyPants used named entities like
-<code>&amp;mdash;</code> instead of decimal-encoded
-entites like <code>&amp;#8212;</code>.</p>
-</code></pre>
-
-<p>To specify an entire block of pre-formatted code, indent every line of
-the block by 4 spaces or 1 tab. Just like with code spans, <code>&</code>, <code><</code>,
-and <code>></code> characters will be escaped automatically.</p>
-
-<p>Markdown:</p>
-
-<pre><code>If you want your page to validate under XHTML 1.0 Strict,
-you've got to put paragraph tags in your blockquotes:
-
- <blockquote>
- <p>For example.</p>
- </blockquote>
-</code></pre>
-
-<p>Output:</p>
-
-<pre><code><p>If you want your page to validate under XHTML 1.0 Strict,
-you've got to put paragraph tags in your blockquotes:</p>
-
-<pre><code>&lt;blockquote&gt;
- &lt;p&gt;For example.&lt;/p&gt;
-&lt;/blockquote&gt;
-</code></pre>
-</code></pre>
+<h1>Markdown: Basics</h1>
+
+<ul id="ProjectSubmenu">
+ <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+ <li><a class="selected" title="Markdown Basics">Basics</a></li>
+ <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
+ <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+ <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
+
+<p>This page offers a brief overview of what it's like to use Markdown.
+The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.</p>
+
+<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.</p>
+
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>
+
+<h2>Paragraphs, Headers, Blockquotes</h2>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+
+<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.
+Setext-style headers for <code><h1></code> and <code><h2></code> are created by
+"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
+To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the
+beginning of the line -- the number of hashes equals the resulting
+HTML header level.</p>
+
+<p>Blockquotes are indicated using email-style '<code>></code>' angle brackets.</p>
+
+<p>Markdown:</p>
+
+<pre><code>A First Level Header
+====================
+
+A Second Level Header
+---------------------
+
+Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.
+
+The quick brown fox jumped over the lazy
+dog's back.
+
+### Header 3
+
+> This is a blockquote.
+>
+> This is the second paragraph in the blockquote.
+>
+> ## This is an H2 in a blockquote
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><h1>A First Level Header</h1>
+
+<h2>A Second Level Header</h2>
+
+<p>Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.</p>
+
+<p>The quick brown fox jumped over the lazy
+dog's back.</p>
+
+<h3>Header 3</h3>
+
+<blockquote>
+ <p>This is a blockquote.</p>
+
+ <p>This is the second paragraph in the blockquote.</p>
+
+ <h2>This is an H2 in a blockquote</h2>
+</blockquote>
+</code></pre>
+
+<h3>Phrase Emphasis</h3>
+
+<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>
+
+<p>Markdown:</p>
+
+<pre><code>Some of these words *are emphasized*.
+Some of these words _are emphasized also_.
+
+Use two asterisks for **strong emphasis**.
+Or, if you prefer, __use two underscores instead__.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>Some of these words <em>are emphasized</em>.
+Some of these words <em>are emphasized also</em>.</p>
+
+<p>Use two asterisks for <strong>strong emphasis</strong>.
+Or, if you prefer, <strong>use two underscores instead</strong>.</p>
+</code></pre>
+
+<h2>Lists</h2>
+
+<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,
+<code>+</code>, and <code>-</code>) as list markers. These three markers are
+interchangable; this:</p>
+
+<pre><code>* Candy.
+* Gum.
+* Booze.
+</code></pre>
+
+<p>this:</p>
+
+<pre><code>+ Candy.
++ Gum.
++ Booze.
+</code></pre>
+
+<p>and this:</p>
+
+<pre><code>- Candy.
+- Gum.
+- Booze.
+</code></pre>
+
+<p>all produce the same output:</p>
+
+<pre><code><ul>
+<li>Candy.</li>
+<li>Gum.</li>
+<li>Booze.</li>
+</ul>
+</code></pre>
+
+<p>Ordered (numbered) lists use regular numbers, followed by periods, as
+list markers:</p>
+
+<pre><code>1. Red
+2. Green
+3. Blue
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><ol>
+<li>Red</li>
+<li>Green</li>
+<li>Blue</li>
+</ol>
+</code></pre>
+
+<p>If you put blank lines between items, you'll get <code><p></code> tags for the
+list item text. You can create multi-paragraph list items by indenting
+the paragraphs by 4 spaces or 1 tab:</p>
+
+<pre><code>* A list item.
+
+ With multiple paragraphs.
+
+* Another item in the list.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><ul>
+<li><p>A list item.</p>
+<p>With multiple paragraphs.</p></li>
+<li><p>Another item in the list.</p></li>
+</ul>
+</code></pre>
+
+<h3>Links</h3>
+
+<p>Markdown supports two styles for creating links: <em>inline</em> and
+<em>reference</em>. With both styles, you use square brackets to delimit the
+text you want to turn into a link.</p>
+
+<p>Inline-style links use parentheses immediately after the link text.
+For example:</p>
+
+<pre><code>This is an [example link](http://example.com/).
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>This is an <a href="http://example.com/">
+example link</a>.</p>
+</code></pre>
+
+<p>Optionally, you may include a title attribute in the parentheses:</p>
+
+<pre><code>This is an [example link](http://example.com/ "With a Title").
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>This is an <a href="http://example.com/" title="With a Title">
+example link</a>.</p>
+</code></pre>
+
+<p>Reference-style links allow you to refer to your links by names, which
+you define elsewhere in your document:</p>
+
+<pre><code>I get 10 times more traffic from [Google][1] than from
+[Yahoo][2] or [MSN][3].
+
+[1]: http://google.com/ "Google"
+[2]: http://search.yahoo.com/ "Yahoo Search"
+[3]: http://search.msn.com/ "MSN Search"
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>I get 10 times more traffic from <a href="http://google.com/"
+title="Google">Google</a> than from <a href="http://search.yahoo.com/"
+title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
+title="MSN Search">MSN</a>.</p>
+</code></pre>
+
+<p>The title attribute is optional. Link names may contain letters,
+numbers and spaces, but are <em>not</em> case sensitive:</p>
+
+<pre><code>I start my morning with a cup of coffee and
+[The New York Times][NY Times].
+
+[ny times]: http://www.nytimes.com/
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>I start my morning with a cup of coffee and
+<a href="http://www.nytimes.com/">The New York Times</a>.</p>
+</code></pre>
+
+<h3>Images</h3>
+
+<p>Image syntax is very much like link syntax.</p>
+
+<p>Inline (titles are optional):</p>
+
+<pre><code>
+</code></pre>
+
+<p>Reference-style:</p>
+
+<pre><code>![alt text][id]
+
+[id]: /path/to/img.jpg "Title"
+</code></pre>
+
+<p>Both of the above examples produce the same output:</p>
+
+<pre><code><img src="/path/to/img.jpg" alt="alt text" title="Title" />
+</code></pre>
+
+<h3>Code</h3>
+
+<p>In a regular paragraph, you can create code span by wrapping text in
+backtick quotes. Any ampersands (<code>&</code>) and angle brackets (<code><</code> or
+<code>></code>) will automatically be translated into HTML entities. This makes
+it easy to use Markdown to write about HTML example code:</p>
+
+<pre><code>I strongly recommend against using any `<blink>` tags.
+
+I wish SmartyPants used named entities like `&mdash;`
+instead of decimal-encoded entites like `&#8212;`.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>I strongly recommend against using any
+<code>&lt;blink&gt;</code> tags.</p>
+
+<p>I wish SmartyPants used named entities like
+<code>&amp;mdash;</code> instead of decimal-encoded
+entites like <code>&amp;#8212;</code>.</p>
+</code></pre>
+
+<p>To specify an entire block of pre-formatted code, indent every line of
+the block by 4 spaces or 1 tab. Just like with code spans, <code>&</code>, <code><</code>,
+and <code>></code> characters will be escaped automatically.</p>
+
+<p>Markdown:</p>
+
+<pre><code>If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:
+
+ <blockquote>
+ <p>For example.</p>
+ </blockquote>
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code><p>If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:</p>
+
+<pre><code>&lt;blockquote&gt;
+ &lt;p&gt;For example.&lt;/p&gt;
+&lt;/blockquote&gt;
+</code></pre>
+</code></pre>
diff --git a/core/src/test/resources/1.0/Markdown Documentation - Basics.text b/core/src/test/resources/1.0/Markdown Documentation - Basics.text
old mode 100644
new mode 100755
index 486055c..97b8f33
--- a/core/src/test/resources/1.0/Markdown Documentation - Basics.text
+++ b/core/src/test/resources/1.0/Markdown Documentation - Basics.text
@@ -1,306 +1,306 @@
-Markdown: Basics
-================
-
-<ul id="ProjectSubmenu">
- <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
- <li><a class="selected" title="Markdown Basics">Basics</a></li>
- <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
- <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
- <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
-</ul>
-
-
-Getting the Gist of Markdown's Formatting Syntax
-------------------------------------------------
-
-This page offers a brief overview of what it's like to use Markdown.
-The [syntax page] [s] provides complete, detailed documentation for
-every feature, but Markdown should be very easy to pick up simply by
-looking at a few examples of it in action. The examples on this page
-are written in a before/after style, showing example syntax and the
-HTML output produced by Markdown.
-
-It's also helpful to simply try Markdown out; the [Dingus] [d] is a
-web application that allows you type your own Markdown-formatted text
-and translate it to XHTML.
-
-**Note:** This document is itself written using Markdown; you
-can [see the source for it by adding '.text' to the URL] [src].
-
- [s]: /projects/markdown/syntax "Markdown Syntax"
- [d]: /projects/markdown/dingus "Markdown Dingus"
- [src]: /projects/markdown/basics.text
-
-
-## Paragraphs, Headers, Blockquotes ##
-
-A paragraph is simply one or more consecutive lines of text, separated
-by one or more blank lines. (A blank line is any line that looks like a
-blank line -- a line containing nothing spaces or tabs is considered
-blank.) Normal paragraphs should not be intended with spaces or tabs.
-
-Markdown offers two styles of headers: *Setext* and *atx*.
-Setext-style headers for `<h1>` and `<h2>` are created by
-"underlining" with equal signs (`=`) and hyphens (`-`), respectively.
-To create an atx-style header, you put 1-6 hash marks (`#`) at the
-beginning of the line -- the number of hashes equals the resulting
-HTML header level.
-
-Blockquotes are indicated using email-style '`>`' angle brackets.
-
-Markdown:
-
- A First Level Header
- ====================
-
- A Second Level Header
- ---------------------
-
- Now is the time for all good men to come to
- the aid of their country. This is just a
- regular paragraph.
-
- The quick brown fox jumped over the lazy
- dog's back.
-
- ### Header 3
-
- > This is a blockquote.
- >
- > This is the second paragraph in the blockquote.
- >
- > ## This is an H2 in a blockquote
-
-
-Output:
-
- <h1>A First Level Header</h1>
-
- <h2>A Second Level Header</h2>
-
- <p>Now is the time for all good men to come to
- the aid of their country. This is just a
- regular paragraph.</p>
-
- <p>The quick brown fox jumped over the lazy
- dog's back.</p>
-
- <h3>Header 3</h3>
-
- <blockquote>
- <p>This is a blockquote.</p>
-
- <p>This is the second paragraph in the blockquote.</p>
-
- <h2>This is an H2 in a blockquote</h2>
- </blockquote>
-
-
-
-### Phrase Emphasis ###
-
-Markdown uses asterisks and underscores to indicate spans of emphasis.
-
-Markdown:
-
- Some of these words *are emphasized*.
- Some of these words _are emphasized also_.
-
- Use two asterisks for **strong emphasis**.
- Or, if you prefer, __use two underscores instead__.
-
-Output:
-
- <p>Some of these words <em>are emphasized</em>.
- Some of these words <em>are emphasized also</em>.</p>
-
- <p>Use two asterisks for <strong>strong emphasis</strong>.
- Or, if you prefer, <strong>use two underscores instead</strong>.</p>
-
-
-
-## Lists ##
-
-Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
-`+`, and `-`) as list markers. These three markers are
-interchangable; this:
-
- * Candy.
- * Gum.
- * Booze.
-
-this:
-
- + Candy.
- + Gum.
- + Booze.
-
-and this:
-
- - Candy.
- - Gum.
- - Booze.
-
-all produce the same output:
-
- <ul>
- <li>Candy.</li>
- <li>Gum.</li>
- <li>Booze.</li>
- </ul>
-
-Ordered (numbered) lists use regular numbers, followed by periods, as
-list markers:
-
- 1. Red
- 2. Green
- 3. Blue
-
-Output:
-
- <ol>
- <li>Red</li>
- <li>Green</li>
- <li>Blue</li>
- </ol>
-
-If you put blank lines between items, you'll get `<p>` tags for the
-list item text. You can create multi-paragraph list items by indenting
-the paragraphs by 4 spaces or 1 tab:
-
- * A list item.
-
- With multiple paragraphs.
-
- * Another item in the list.
-
-Output:
-
- <ul>
- <li><p>A list item.</p>
- <p>With multiple paragraphs.</p></li>
- <li><p>Another item in the list.</p></li>
- </ul>
-
-
-
-### Links ###
-
-Markdown supports two styles for creating links: *inline* and
-*reference*. With both styles, you use square brackets to delimit the
-text you want to turn into a link.
-
-Inline-style links use parentheses immediately after the link text.
-For example:
-
- This is an [example link](http://example.com/).
-
-Output:
-
- <p>This is an <a href="http://example.com/">
- example link</a>.</p>
-
-Optionally, you may include a title attribute in the parentheses:
-
- This is an [example link](http://example.com/ "With a Title").
-
-Output:
-
- <p>This is an <a href="http://example.com/" title="With a Title">
- example link</a>.</p>
-
-Reference-style links allow you to refer to your links by names, which
-you define elsewhere in your document:
-
- I get 10 times more traffic from [Google][1] than from
- [Yahoo][2] or [MSN][3].
-
- [1]: http://google.com/ "Google"
- [2]: http://search.yahoo.com/ "Yahoo Search"
- [3]: http://search.msn.com/ "MSN Search"
-
-Output:
-
- <p>I get 10 times more traffic from <a href="http://google.com/"
- title="Google">Google</a> than from <a href="http://search.yahoo.com/"
- title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
- title="MSN Search">MSN</a>.</p>
-
-The title attribute is optional. Link names may contain letters,
-numbers and spaces, but are *not* case sensitive:
-
- I start my morning with a cup of coffee and
- [The New York Times][NY Times].
-
- [ny times]: http://www.nytimes.com/
-
-Output:
-
- <p>I start my morning with a cup of coffee and
- <a href="http://www.nytimes.com/">The New York Times</a>.</p>
-
-
-### Images ###
-
-Image syntax is very much like link syntax.
-
-Inline (titles are optional):
-
- 
-
-Reference-style:
-
- ![alt text][id]
-
- [id]: /path/to/img.jpg "Title"
-
-Both of the above examples produce the same output:
-
- <img src="/path/to/img.jpg" alt="alt text" title="Title" />
-
-
-
-### Code ###
-
-In a regular paragraph, you can create code span by wrapping text in
-backtick quotes. Any ampersands (`&`) and angle brackets (`<` or
-`>`) will automatically be translated into HTML entities. This makes
-it easy to use Markdown to write about HTML example code:
-
- I strongly recommend against using any `<blink>` tags.
-
- I wish SmartyPants used named entities like `—`
- instead of decimal-encoded entites like `—`.
-
-Output:
-
- <p>I strongly recommend against using any
- <code><blink></code> tags.</p>
-
- <p>I wish SmartyPants used named entities like
- <code>&mdash;</code> instead of decimal-encoded
- entites like <code>&#8212;</code>.</p>
-
-
-To specify an entire block of pre-formatted code, indent every line of
-the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`,
-and `>` characters will be escaped automatically.
-
-Markdown:
-
- If you want your page to validate under XHTML 1.0 Strict,
- you've got to put paragraph tags in your blockquotes:
-
- <blockquote>
- <p>For example.</p>
- </blockquote>
-
-Output:
-
- <p>If you want your page to validate under XHTML 1.0 Strict,
- you've got to put paragraph tags in your blockquotes:</p>
-
- <pre><code><blockquote>
- <p>For example.</p>
- </blockquote>
- </code></pre>
+Markdown: Basics
+================
+
+<ul id="ProjectSubmenu">
+ <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+ <li><a class="selected" title="Markdown Basics">Basics</a></li>
+ <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
+ <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+ <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+
+Getting the Gist of Markdown's Formatting Syntax
+------------------------------------------------
+
+This page offers a brief overview of what it's like to use Markdown.
+The [syntax page] [s] provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.
+
+It's also helpful to simply try Markdown out; the [Dingus] [d] is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.
+
+**Note:** This document is itself written using Markdown; you
+can [see the source for it by adding '.text' to the URL] [src].
+
+ [s]: /projects/markdown/syntax "Markdown Syntax"
+ [d]: /projects/markdown/dingus "Markdown Dingus"
+ [src]: /projects/markdown/basics.text
+
+
+## Paragraphs, Headers, Blockquotes ##
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+Markdown offers two styles of headers: *Setext* and *atx*.
+Setext-style headers for `<h1>` and `<h2>` are created by
+"underlining" with equal signs (`=`) and hyphens (`-`), respectively.
+To create an atx-style header, you put 1-6 hash marks (`#`) at the
+beginning of the line -- the number of hashes equals the resulting
+HTML header level.
+
+Blockquotes are indicated using email-style '`>`' angle brackets.
+
+Markdown:
+
+ A First Level Header
+ ====================
+
+ A Second Level Header
+ ---------------------
+
+ Now is the time for all good men to come to
+ the aid of their country. This is just a
+ regular paragraph.
+
+ The quick brown fox jumped over the lazy
+ dog's back.
+
+ ### Header 3
+
+ > This is a blockquote.
+ >
+ > This is the second paragraph in the blockquote.
+ >
+ > ## This is an H2 in a blockquote
+
+
+Output:
+
+ <h1>A First Level Header</h1>
+
+ <h2>A Second Level Header</h2>
+
+ <p>Now is the time for all good men to come to
+ the aid of their country. This is just a
+ regular paragraph.</p>
+
+ <p>The quick brown fox jumped over the lazy
+ dog's back.</p>
+
+ <h3>Header 3</h3>
+
+ <blockquote>
+ <p>This is a blockquote.</p>
+
+ <p>This is the second paragraph in the blockquote.</p>
+
+ <h2>This is an H2 in a blockquote</h2>
+ </blockquote>
+
+
+
+### Phrase Emphasis ###
+
+Markdown uses asterisks and underscores to indicate spans of emphasis.
+
+Markdown:
+
+ Some of these words *are emphasized*.
+ Some of these words _are emphasized also_.
+
+ Use two asterisks for **strong emphasis**.
+ Or, if you prefer, __use two underscores instead__.
+
+Output:
+
+ <p>Some of these words <em>are emphasized</em>.
+ Some of these words <em>are emphasized also</em>.</p>
+
+ <p>Use two asterisks for <strong>strong emphasis</strong>.
+ Or, if you prefer, <strong>use two underscores instead</strong>.</p>
+
+
+
+## Lists ##
+
+Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
+`+`, and `-`) as list markers. These three markers are
+interchangable; this:
+
+ * Candy.
+ * Gum.
+ * Booze.
+
+this:
+
+ + Candy.
+ + Gum.
+ + Booze.
+
+and this:
+
+ - Candy.
+ - Gum.
+ - Booze.
+
+all produce the same output:
+
+ <ul>
+ <li>Candy.</li>
+ <li>Gum.</li>
+ <li>Booze.</li>
+ </ul>
+
+Ordered (numbered) lists use regular numbers, followed by periods, as
+list markers:
+
+ 1. Red
+ 2. Green
+ 3. Blue
+
+Output:
+
+ <ol>
+ <li>Red</li>
+ <li>Green</li>
+ <li>Blue</li>
+ </ol>
+
+If you put blank lines between items, you'll get `<p>` tags for the
+list item text. You can create multi-paragraph list items by indenting
+the paragraphs by 4 spaces or 1 tab:
+
+ * A list item.
+
+ With multiple paragraphs.
+
+ * Another item in the list.
+
+Output:
+
+ <ul>
+ <li><p>A list item.</p>
+ <p>With multiple paragraphs.</p></li>
+ <li><p>Another item in the list.</p></li>
+ </ul>
+
+
+
+### Links ###
+
+Markdown supports two styles for creating links: *inline* and
+*reference*. With both styles, you use square brackets to delimit the
+text you want to turn into a link.
+
+Inline-style links use parentheses immediately after the link text.
+For example:
+
+ This is an [example link](http://example.com/).
+
+Output:
+
+ <p>This is an <a href="http://example.com/">
+ example link</a>.</p>
+
+Optionally, you may include a title attribute in the parentheses:
+
+ This is an [example link](http://example.com/ "With a Title").
+
+Output:
+
+ <p>This is an <a href="http://example.com/" title="With a Title">
+ example link</a>.</p>
+
+Reference-style links allow you to refer to your links by names, which
+you define elsewhere in your document:
+
+ I get 10 times more traffic from [Google][1] than from
+ [Yahoo][2] or [MSN][3].
+
+ [1]: http://google.com/ "Google"
+ [2]: http://search.yahoo.com/ "Yahoo Search"
+ [3]: http://search.msn.com/ "MSN Search"
+
+Output:
+
+ <p>I get 10 times more traffic from <a href="http://google.com/"
+ title="Google">Google</a> than from <a href="http://search.yahoo.com/"
+ title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
+ title="MSN Search">MSN</a>.</p>
+
+The title attribute is optional. Link names may contain letters,
+numbers and spaces, but are *not* case sensitive:
+
+ I start my morning with a cup of coffee and
+ [The New York Times][NY Times].
+
+ [ny times]: http://www.nytimes.com/
+
+Output:
+
+ <p>I start my morning with a cup of coffee and
+ <a href="http://www.nytimes.com/">The New York Times</a>.</p>
+
+
+### Images ###
+
+Image syntax is very much like link syntax.
+
+Inline (titles are optional):
+
+ 
+
+Reference-style:
+
+ ![alt text][id]
+
+ [id]: /path/to/img.jpg "Title"
+
+Both of the above examples produce the same output:
+
+ <img src="/path/to/img.jpg" alt="alt text" title="Title" />
+
+
+
+### Code ###
+
+In a regular paragraph, you can create code span by wrapping text in
+backtick quotes. Any ampersands (`&`) and angle brackets (`<` or
+`>`) will automatically be translated into HTML entities. This makes
+it easy to use Markdown to write about HTML example code:
+
+ I strongly recommend against using any `<blink>` tags.
+
+ I wish SmartyPants used named entities like `—`
+ instead of decimal-encoded entites like `—`.
+
+Output:
+
+ <p>I strongly recommend against using any
+ <code><blink></code> tags.</p>
+
+ <p>I wish SmartyPants used named entities like
+ <code>&mdash;</code> instead of decimal-encoded
+ entites like <code>&#8212;</code>.</p>
+
+
+To specify an entire block of pre-formatted code, indent every line of
+the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`,
+and `>` characters will be escaped automatically.
+
+Markdown:
+
+ If you want your page to validate under XHTML 1.0 Strict,
+ you've got to put paragraph tags in your blockquotes:
+
+ <blockquote>
+ <p>For example.</p>
+ </blockquote>
+
+Output:
+
+ <p>If you want your page to validate under XHTML 1.0 Strict,
+ you've got to put paragraph tags in your blockquotes:</p>
+
+ <pre><code><blockquote>
+ <p>For example.</p>
+ </blockquote>
+ </code></pre>
diff --git a/core/src/test/resources/1.0/Markdown Documentation - Syntax.html b/core/src/test/resources/1.0/Markdown Documentation - Syntax.html
old mode 100644
new mode 100755
index 5c01306..b8c87e4
--- a/core/src/test/resources/1.0/Markdown Documentation - Syntax.html
+++ b/core/src/test/resources/1.0/Markdown Documentation - Syntax.html
@@ -1,942 +1,942 @@
-<h1>Markdown: Syntax</h1>
-
-<ul id="ProjectSubmenu">
- <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
- <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
- <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
- <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
- <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
-</ul>
-
-<ul>
-<li><a href="#overview">Overview</a>
-<ul>
-<li><a href="#philosophy">Philosophy</a></li>
-<li><a href="#html">Inline HTML</a></li>
-<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
-</ul></li>
-<li><a href="#block">Block Elements</a>
-<ul>
-<li><a href="#p">Paragraphs and Line Breaks</a></li>
-<li><a href="#header">Headers</a></li>
-<li><a href="#blockquote">Blockquotes</a></li>
-<li><a href="#list">Lists</a></li>
-<li><a href="#precode">Code Blocks</a></li>
-<li><a href="#hr">Horizontal Rules</a></li>
-</ul></li>
-<li><a href="#span">Span Elements</a>
-<ul>
-<li><a href="#link">Links</a></li>
-<li><a href="#em">Emphasis</a></li>
-<li><a href="#code">Code</a></li>
-<li><a href="#img">Images</a></li>
-</ul></li>
-<li><a href="#misc">Miscellaneous</a>
-<ul>
-<li><a href="#backslash">Backslash Escapes</a></li>
-<li><a href="#autolink">Automatic Links</a></li>
-</ul></li>
-</ul>
-
-<p><strong>Note:</strong> This document is itself written using Markdown; you
-can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
-
-<hr />
-
-<h2 id="overview">Overview</h2>
-
-<h3 id="philosophy">Philosophy</h3>
-
-<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
-
-<p>Readability, however, is emphasized above all else. A Markdown-formatted
-document should be publishable as-is, as plain text, without looking
-like it's been marked up with tags or formatting instructions. While
-Markdown's syntax has been influenced by several existing text-to-HTML
-filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
-<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
-inspiration for Markdown's syntax is the format of plain text email.</p>
-
-<p>To this end, Markdown's syntax is comprised entirely of punctuation
-characters, which punctuation characters have been carefully chosen so
-as to look like what they mean. E.g., asterisks around a word actually
-look like *emphasis*. Markdown lists look like, well, lists. Even
-blockquotes look like quoted passages of text, assuming you've ever
-used email.</p>
-
-<h3 id="html">Inline HTML</h3>
-
-<p>Markdown's syntax is intended for one purpose: to be used as a
-format for <em>writing</em> for the web.</p>
-
-<p>Markdown is not a replacement for HTML, or even close to it. Its
-syntax is very small, corresponding only to a very small subset of
-HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
-to insert HTML tags. In my opinion, HTML tags are already easy to
-insert. The idea for Markdown is to make it easy to read, write, and
-edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
-format. Thus, Markdown's formatting syntax only addresses issues that
-can be conveyed in plain text.</p>
-
-<p>For any markup that is not covered by Markdown's syntax, you simply
-use HTML itself. There's no need to preface it or delimit it to
-indicate that you're switching from Markdown to HTML; you just use
-the tags.</p>
-
-<p>The only restrictions are that block-level HTML elements -- e.g. <code><div></code>,
-<code><table></code>, <code><pre></code>, <code><p></code>, etc. -- must be separated from surrounding
-content by blank lines, and the start and end tags of the block should
-not be indented with tabs or spaces. Markdown is smart enough not
-to add extra (unwanted) <code><p></code> tags around HTML block-level tags.</p>
-
-<p>For example, to add an HTML table to a Markdown article:</p>
-
-<pre><code>This is a regular paragraph.
-
-<table>
- <tr>
- <td>Foo</td>
- </tr>
-</table>
-
-This is another regular paragraph.
-</code></pre>
-
-<p>Note that Markdown formatting syntax is not processed within block-level
-HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
-HTML block.</p>
-
-<p>Span-level HTML tags -- e.g. <code><span></code>, <code><cite></code>, or <code><del></code> -- can be
-used anywhere in a Markdown paragraph, list item, or header. If you
-want, you can even use HTML tags instead of Markdown formatting; e.g. if
-you'd prefer to use HTML <code><a></code> or <code><img></code> tags instead of Markdown's
-link or image syntax, go right ahead.</p>
-
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
-span-level tags.</p>
-
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
-
-<p>In HTML, there are two characters that demand special treatment: <code><</code>
-and <code>&</code>. Left angle brackets are used to start tags; ampersands are
-used to denote HTML entities. If you want to use them as literal
-characters, you must escape them as entities, e.g. <code>&lt;</code>, and
-<code>&amp;</code>.</p>
-
-<p>Ampersands in particular are bedeviling for web writers. If you want to
-write about 'AT&T', you need to write '<code>AT&amp;T</code>'. You even need to
-escape ampersands within URLs. Thus, if you want to link to:</p>
-
-<pre><code>http://images.google.com/images?num=30&q=larry+bird
-</code></pre>
-
-<p>you need to encode the URL as:</p>
-
-<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
-</code></pre>
-
-<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
-forget, and is probably the single most common source of HTML validation
-errors in otherwise well-marked-up web sites.</p>
-
-<p>Markdown allows you to use these characters naturally, taking care of
-all the necessary escaping for you. If you use an ampersand as part of
-an HTML entity, it remains unchanged; otherwise it will be translated
-into <code>&amp;</code>.</p>
-
-<p>So, if you want to include a copyright symbol in your article, you can write:</p>
-
-<pre><code>&copy;
-</code></pre>
-
-<p>and Markdown will leave it alone. But if you write:</p>
-
-<pre><code>AT&T
-</code></pre>
-
-<p>Markdown will translate it to:</p>
-
-<pre><code>AT&amp;T
-</code></pre>
-
-<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
-angle brackets as delimiters for HTML tags, Markdown will treat them as
-such. But if you write:</p>
-
-<pre><code>4 < 5
-</code></pre>
-
-<p>Markdown will translate it to:</p>
-
-<pre><code>4 &lt; 5
-</code></pre>
-
-<p>However, inside Markdown code spans and blocks, angle brackets and
-ampersands are <em>always</em> encoded automatically. This makes it easy to use
-Markdown to write about HTML code. (As opposed to raw HTML, which is a
-terrible format for writing about HTML syntax, because every single <code><</code>
-and <code>&</code> in your example code needs to be escaped.)</p>
-
-<hr />
-
-<h2 id="block">Block Elements</h2>
-
-<h3 id="p">Paragraphs and Line Breaks</h3>
-
-<p>A paragraph is simply one or more consecutive lines of text, separated
-by one or more blank lines. (A blank line is any line that looks like a
-blank line -- a line containing nothing but spaces or tabs is considered
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
-
-<p>The implication of the "one or more consecutive lines of text" rule is
-that Markdown supports "hard-wrapped" text paragraphs. This differs
-significantly from most other text-to-HTML formatters (including Movable
-Type's "Convert Line Breaks" option) which translate every line break
-character in a paragraph into a <code><br /></code> tag.</p>
-
-<p>When you <em>do</em> want to insert a <code><br /></code> break tag using Markdown, you
-end a line with two or more spaces, then type return.</p>
-
-<p>Yes, this takes a tad more effort to create a <code><br /></code>, but a simplistic
-"every line break is a <code><br /></code>" rule wouldn't work for Markdown.
-Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
-work best -- and look better -- when you format them with hard breaks.</p>
-
-<h3 id="header">Headers</h3>
-
-<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
-
-<p>Setext-style headers are "underlined" using equal signs (for first-level
-headers) and dashes (for second-level headers). For example:</p>
-
-<pre><code>This is an H1
-=============
-
-This is an H2
--------------
-</code></pre>
-
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
-
-<p>Atx-style headers use 1-6 hash characters at the start of the line,
-corresponding to header levels 1-6. For example:</p>
-
-<pre><code># This is an H1
-
-## This is an H2
-
-###### This is an H6
-</code></pre>
-
-<p>Optionally, you may "close" atx-style headers. This is purely
-cosmetic -- you can use this if you think it looks better. The
-closing hashes don't even need to match the number of hashes
-used to open the header. (The number of opening hashes
-determines the header level.) :</p>
-
-<pre><code># This is an H1 #
-
-## This is an H2 ##
-
-### This is an H3 ######
-</code></pre>
-
-<h3 id="blockquote">Blockquotes</h3>
-
-<p>Markdown uses email-style <code>></code> characters for blockquoting. If you're
-familiar with quoting passages of text in an email message, then you
-know how to create a blockquote in Markdown. It looks best if you hard
-wrap the text and put a <code>></code> before every line:</p>
-
-<pre><code>> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
-> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
-> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
->
-> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
-> id sem consectetuer libero luctus adipiscing.
-</code></pre>
-
-<p>Markdown allows you to be lazy and only put the <code>></code> before the first
-line of a hard-wrapped paragraph:</p>
-
-<pre><code>> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
-
-> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
-id sem consectetuer libero luctus adipiscing.
-</code></pre>
-
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
-adding additional levels of <code>></code>:</p>
-
-<pre><code>> This is the first level of quoting.
->
-> > This is nested blockquote.
->
-> Back to the first level.
-</code></pre>
-
-<p>Blockquotes can contain other Markdown elements, including headers, lists,
-and code blocks:</p>
-
-<pre><code>> ## This is a header.
->
-> 1. This is the first list item.
-> 2. This is the second list item.
->
-> Here's some example code:
->
-> return shell_exec("echo $input | $markdown_script");
-</code></pre>
-
-<p>Any decent text editor should make email-style quoting easy. For
-example, with BBEdit, you can make a selection and choose Increase
-Quote Level from the Text menu.</p>
-
-<h3 id="list">Lists</h3>
-
-<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
-
-<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
--- as list markers:</p>
-
-<pre><code>* Red
-* Green
-* Blue
-</code></pre>
-
-<p>is equivalent to:</p>
-
-<pre><code>+ Red
-+ Green
-+ Blue
-</code></pre>
-
-<p>and:</p>
-
-<pre><code>- Red
-- Green
-- Blue
-</code></pre>
-
-<p>Ordered lists use numbers followed by periods:</p>
-
-<pre><code>1. Bird
-2. McHale
-3. Parish
-</code></pre>
-
-<p>It's important to note that the actual numbers you use to mark the
-list have no effect on the HTML output Markdown produces. The HTML
-Markdown produces from the above list is:</p>
-
-<pre><code><ol>
-<li>Bird</li>
-<li>McHale</li>
-<li>Parish</li>
-</ol>
-</code></pre>
-
-<p>If you instead wrote the list in Markdown like this:</p>
-
-<pre><code>1. Bird
-1. McHale
-1. Parish
-</code></pre>
-
-<p>or even:</p>
-
-<pre><code>3. Bird
-1. McHale
-8. Parish
-</code></pre>
-
-<p>you'd get the exact same HTML output. The point is, if you want to,
-you can use ordinal numbers in your ordered Markdown lists, so that
-the numbers in your source match the numbers in your published HTML.
-But if you want to be lazy, you don't have to.</p>
-
-<p>If you do use lazy list numbering, however, you should still start the
-list with the number 1. At some point in the future, Markdown may support
-starting ordered lists at an arbitrary number.</p>
-
-<p>List markers typically start at the left margin, but may be indented by
-up to three spaces. List markers must be followed by one or more spaces
-or a tab.</p>
-
-<p>To make lists look nice, you can wrap items with hanging indents:</p>
-
-<pre><code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
- Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
- viverra nec, fringilla in, laoreet vitae, risus.
-* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
- Suspendisse id sem consectetuer libero luctus adipiscing.
-</code></pre>
-
-<p>But if you want to be lazy, you don't have to:</p>
-
-<pre><code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
-viverra nec, fringilla in, laoreet vitae, risus.
-* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
-Suspendisse id sem consectetuer libero luctus adipiscing.
-</code></pre>
-
-<p>If list items are separated by blank lines, Markdown will wrap the
-items in <code><p></code> tags in the HTML output. For example, this input:</p>
-
-<pre><code>* Bird
-* Magic
-</code></pre>
-
-<p>will turn into:</p>
-
-<pre><code><ul>
-<li>Bird</li>
-<li>Magic</li>
-</ul>
-</code></pre>
-
-<p>But this:</p>
-
-<pre><code>* Bird
-
-* Magic
-</code></pre>
-
-<p>will turn into:</p>
-
-<pre><code><ul>
-<li><p>Bird</p></li>
-<li><p>Magic</p></li>
-</ul>
-</code></pre>
-
-<p>List items may consist of multiple paragraphs. Each subsequent
-paragraph in a list item must be intended by either 4 spaces
-or one tab:</p>
-
-<pre><code>1. This is a list item with two paragraphs. Lorem ipsum dolor
- sit amet, consectetuer adipiscing elit. Aliquam hendrerit
- mi posuere lectus.
-
- Vestibulum enim wisi, viverra nec, fringilla in, laoreet
- vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
- sit amet velit.
-
-2. Suspendisse id sem consectetuer libero luctus adipiscing.
-</code></pre>
-
-<p>It looks nice if you indent every line of the subsequent
-paragraphs, but here again, Markdown will allow you to be
-lazy:</p>
-
-<pre><code>* This is a list item with two paragraphs.
-
- This is the second paragraph in the list item. You're
-only required to indent the first line. Lorem ipsum dolor
-sit amet, consectetuer adipiscing elit.
-
-* Another item in the same list.
-</code></pre>
-
-<p>To put a blockquote within a list item, the blockquote's <code>></code>
-delimiters need to be indented:</p>
-
-<pre><code>* A list item with a blockquote:
-
- > This is a blockquote
- > inside a list item.
-</code></pre>
-
-<p>To put a code block within a list item, the code block needs
-to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
-
-<pre><code>* A list item with a code block:
-
- <code goes here>
-</code></pre>
-
-<p>It's worth noting that it's possible to trigger an ordered list by
-accident, by writing something like this:</p>
-
-<pre><code>1986. What a great season.
-</code></pre>
-
-<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
-line. To avoid this, you can backslash-escape the period:</p>
-
-<pre><code>1986\. What a great season.
-</code></pre>
-
-<h3 id="precode">Code Blocks</h3>
-
-<p>Pre-formatted code blocks are used for writing about programming or
-markup source code. Rather than forming normal paragraphs, the lines
-of a code block are interpreted literally. Markdown wraps a code block
-in both <code><pre></code> and <code><code></code> tags.</p>
-
-<p>To produce a code block in Markdown, simply indent every line of the
-block by at least 4 spaces or 1 tab. For example, given this input:</p>
-
-<pre><code>This is a normal paragraph:
-
- This is a code block.
-</code></pre>
-
-<p>Markdown will generate:</p>
-
-<pre><code><p>This is a normal paragraph:</p>
-
-<pre><code>This is a code block.
-</code></pre>
-</code></pre>
-
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
-line of the code block. For example, this:</p>
-
-<pre><code>Here is an example of AppleScript:
-
- tell application "Foo"
- beep
- end tell
-</code></pre>
-
-<p>will turn into:</p>
-
-<pre><code><p>Here is an example of AppleScript:</p>
-
-<pre><code>tell application "Foo"
- beep
-end tell
-</code></pre>
-</code></pre>
-
-<p>A code block continues until it reaches a line that is not indented
-(or the end of the article).</p>
-
-<p>Within a code block, ampersands (<code>&</code>) and angle brackets (<code><</code> and <code>></code>)
-are automatically converted into HTML entities. This makes it very
-easy to include example HTML source code using Markdown -- just paste
-it and indent it, and Markdown will handle the hassle of encoding the
-ampersands and angle brackets. For example, this:</p>
-
-<pre><code> <div class="footer">
- &copy; 2004 Foo Corporation
- </div>
-</code></pre>
-
-<p>will turn into:</p>
-
-<pre><code><pre><code>&lt;div class="footer"&gt;
- &amp;copy; 2004 Foo Corporation
-&lt;/div&gt;
-</code></pre>
-</code></pre>
-
-<p>Regular Markdown syntax is not processed within code blocks. E.g.,
-asterisks are just literal asterisks within a code block. This means
-it's also easy to use Markdown to write about Markdown's own syntax.</p>
-
-<h3 id="hr">Horizontal Rules</h3>
-
-<p>You can produce a horizontal rule tag (<code><hr /></code>) by placing three or
-more hyphens, asterisks, or underscores on a line by themselves. If you
-wish, you may use spaces between the hyphens or asterisks. Each of the
-following lines will produce a horizontal rule:</p>
-
-<pre><code>* * *
-
-***
-
-*****
-
-- - -
-
----------------------------------------
-
-_ _ _
-</code></pre>
-
-<hr />
-
-<h2 id="span">Span Elements</h2>
-
-<h3 id="link">Links</h3>
-
-<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
-
-<p>In both styles, the link text is delimited by [square brackets].</p>
-
-<p>To create an inline link, use a set of regular parentheses immediately
-after the link text's closing square bracket. Inside the parentheses,
-put the URL where you want the link to point, along with an <em>optional</em>
-title for the link, surrounded in quotes. For example:</p>
-
-<pre><code>This is [an example](http://example.com/ "Title") inline link.
-
-[This link](http://example.net/) has no title attribute.
-</code></pre>
-
-<p>Will produce:</p>
-
-<pre><code><p>This is <a href="http://example.com/" title="Title">
-an example</a> inline link.</p>
-
-<p><a href="http://example.net/">This link</a> has no
-title attribute.</p>
-</code></pre>
-
-<p>If you're referring to a local resource on the same server, you can
-use relative paths:</p>
-
-<pre><code>See my [About](/about/) page for details.
-</code></pre>
-
-<p>Reference-style links use a second set of square brackets, inside
-which you place a label of your choosing to identify the link:</p>
-
-<pre><code>This is [an example][id] reference-style link.
-</code></pre>
-
-<p>You can optionally use a space to separate the sets of brackets:</p>
-
-<pre><code>This is [an example] [id] reference-style link.
-</code></pre>
-
-<p>Then, anywhere in the document, you define your link label like this,
-on a line by itself:</p>
-
-<pre><code>[id]: http://example.com/ "Optional Title Here"
-</code></pre>
-
-<p>That is:</p>
-
-<ul>
-<li>Square brackets containing the link identifier (optionally
-indented from the left margin using up to three spaces);</li>
-<li>followed by a colon;</li>
-<li>followed by one or more spaces (or tabs);</li>
-<li>followed by the URL for the link;</li>
-<li>optionally followed by a title attribute for the link, enclosed
-in double or single quotes.</li>
-</ul>
-
-<p>The link URL may, optionally, be surrounded by angle brackets:</p>
-
-<pre><code>[id]: <http://example.com/> "Optional Title Here"
-</code></pre>
-
-<p>You can put the title attribute on the next line and use extra spaces
-or tabs for padding, which tends to look better with longer URLs:</p>
-
-<pre><code>[id]: http://example.com/longish/path/to/resource/here
- "Optional Title Here"
-</code></pre>
-
-<p>Link definitions are only used for creating links during Markdown
-processing, and are stripped from your document in the HTML output.</p>
-
-<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
-
-<pre><code>[link text][a]
-[link text][A]
-</code></pre>
-
-<p>are equivalent.</p>
-
-<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
-link, in which case the link text itself is used as the name.
-Just use an empty set of square brackets -- e.g., to link the word
-"Google" to the google.com web site, you could simply write:</p>
-
-<pre><code>[Google][]
-</code></pre>
-
-<p>And then define the link:</p>
-
-<pre><code>[Google]: http://google.com/
-</code></pre>
-
-<p>Because link names may contain spaces, this shortcut even works for
-multiple words in the link text:</p>
-
-<pre><code>Visit [Daring Fireball][] for more information.
-</code></pre>
-
-<p>And then define the link:</p>
-
-<pre><code>[Daring Fireball]: http://daringfireball.net/
-</code></pre>
-
-<p>Link definitions can be placed anywhere in your Markdown document. I
-tend to put them immediately after each paragraph in which they're
-used, but if you want, you can put them all at the end of your
-document, sort of like footnotes.</p>
-
-<p>Here's an example of reference links in action:</p>
-
-<pre><code>I get 10 times more traffic from [Google] [1] than from
-[Yahoo] [2] or [MSN] [3].
-
- [1]: http://google.com/ "Google"
- [2]: http://search.yahoo.com/ "Yahoo Search"
- [3]: http://search.msn.com/ "MSN Search"
-</code></pre>
-
-<p>Using the implicit link name shortcut, you could instead write:</p>
-
-<pre><code>I get 10 times more traffic from [Google][] than from
-[Yahoo][] or [MSN][].
-
- [google]: http://google.com/ "Google"
- [yahoo]: http://search.yahoo.com/ "Yahoo Search"
- [msn]: http://search.msn.com/ "MSN Search"
-</code></pre>
-
-<p>Both of the above examples will produce the following HTML output:</p>
-
-<pre><code><p>I get 10 times more traffic from <a href="http://google.com/"
-title="Google">Google</a> than from
-<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
-or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
-</code></pre>
-
-<p>For comparison, here is the same paragraph written using
-Markdown's inline link style:</p>
-
-<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
-[MSN](http://search.msn.com/ "MSN Search").
-</code></pre>
-
-<p>The point of reference-style links is not that they're easier to
-write. The point is that with reference-style links, your document
-source is vastly more readable. Compare the above examples: using
-reference-style links, the paragraph itself is only 81 characters
-long; with inline-style links, it's 176 characters; and as raw HTML,
-it's 234 characters. In the raw HTML, there's more markup than there
-is text.</p>
-
-<p>With Markdown's reference-style links, a source document much more
-closely resembles the final output, as rendered in a browser. By
-allowing you to move the markup-related metadata out of the paragraph,
-you can add links without interrupting the narrative flow of your
-prose.</p>
-
-<h3 id="em">Emphasis</h3>
-
-<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
-HTML <code><em></code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
-<code><strong></code> tag. E.g., this input:</p>
-
-<pre><code>*single asterisks*
-
-_single underscores_
-
-**double asterisks**
-
-__double underscores__
-</code></pre>
-
-<p>will produce:</p>
-
-<pre><code><em>single asterisks</em>
-
-<em>single underscores</em>
-
-<strong>double asterisks</strong>
-
-<strong>double underscores</strong>
-</code></pre>
-
-<p>You can use whichever style you prefer; the lone restriction is that
-the same character must be used to open and close an emphasis span.</p>
-
-<p>Emphasis can be used in the middle of a word:</p>
-
-<pre><code>un*fucking*believable
-</code></pre>
-
-<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
-literal asterisk or underscore.</p>
-
-<p>To produce a literal asterisk or underscore at a position where it
-would otherwise be used as an emphasis delimiter, you can backslash
-escape it:</p>
-
-<pre><code>\*this text is surrounded by literal asterisks\*
-</code></pre>
-
-<h3 id="code">Code</h3>
-
-<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
-Unlike a pre-formatted code block, a code span indicates code within a
-normal paragraph. For example:</p>
-
-<pre><code>Use the `printf()` function.
-</code></pre>
-
-<p>will produce:</p>
-
-<pre><code><p>Use the <code>printf()</code> function.</p>
-</code></pre>
-
-<p>To include a literal backtick character within a code span, you can use
-multiple backticks as the opening and closing delimiters:</p>
-
-<pre><code>``There is a literal backtick (`) here.``
-</code></pre>
-
-<p>which will produce this:</p>
-
-<pre><code><p><code>There is a literal backtick (`) here.</code></p>
-</code></pre>
-
-<p>The backtick delimiters surrounding a code span may include spaces --
-one after the opening, one before the closing. This allows you to place
-literal backtick characters at the beginning or end of a code span:</p>
-
-<pre><code>A single backtick in a code span: `` ` ``
-
-A backtick-delimited string in a code span: `` `foo` ``
-</code></pre>
-
-<p>will produce:</p>
-
-<pre><code><p>A single backtick in a code span: <code>`</code></p>
-
-<p>A backtick-delimited string in a code span: <code>`foo`</code></p>
-</code></pre>
-
-<p>With a code span, ampersands and angle brackets are encoded as HTML
-entities automatically, which makes it easy to include example HTML
-tags. Markdown will turn this:</p>
-
-<pre><code>Please don't use any `<blink>` tags.
-</code></pre>
-
-<p>into:</p>
-
-<pre><code><p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
-</code></pre>
-
-<p>You can write this:</p>
-
-<pre><code>`&#8212;` is the decimal-encoded equivalent of `&mdash;`.
-</code></pre>
-
-<p>to produce:</p>
-
-<pre><code><p><code>&amp;#8212;</code> is the decimal-encoded
-equivalent of <code>&amp;mdash;</code>.</p>
-</code></pre>
-
-<h3 id="img">Images</h3>
-
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
-placing images into a plain text document format.</p>
-
-<p>Markdown uses an image syntax that is intended to resemble the syntax
-for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
-
-<p>Inline image syntax looks like this:</p>
-
-<pre><code>
-
-
-</code></pre>
-
-<p>That is:</p>
-
-<ul>
-<li>An exclamation mark: <code>!</code>;</li>
-<li>followed by a set of square brackets, containing the <code>alt</code>
-attribute text for the image;</li>
-<li>followed by a set of parentheses, containing the URL or path to
-the image, and an optional <code>title</code> attribute enclosed in double
-or single quotes.</li>
-</ul>
-
-<p>Reference-style image syntax looks like this:</p>
-
-<pre><code>![Alt text][id]
-</code></pre>
-
-<p>Where "id" is the name of a defined image reference. Image references
-are defined using syntax identical to link references:</p>
-
-<pre><code>[id]: url/to/image "Optional title attribute"
-</code></pre>
-
-<p>As of this writing, Markdown has no syntax for specifying the
-dimensions of an image; if this is important to you, you can simply
-use regular HTML <code><img></code> tags.</p>
-
-<hr />
-
-<h2 id="misc">Miscellaneous</h2>
-
-<h3 id="autolink">Automatic Links</h3>
-
-<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
-
-<pre><code><http://example.com/>
-</code></pre>
-
-<p>Markdown will turn this into:</p>
-
-<pre><code><a href="http://example.com/">http://example.com/</a>
-</code></pre>
-
-<p>Automatic links for email addresses work similarly, except that
-Markdown will also perform a bit of randomized decimal and hex
-entity-encoding to help obscure your address from address-harvesting
-spambots. For example, Markdown will turn this:</p>
-
-<pre><code><address@example.com>
-</code></pre>
-
-<p>into something like this:</p>
-
-<pre><code><a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
-&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
-&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
-&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
-</code></pre>
-
-<p>which will render in a browser as a clickable link to "address@example.com".</p>
-
-<p>(This sort of entity-encoding trick will indeed fool many, if not
-most, address-harvesting bots, but it definitely won't fool all of
-them. It's better than nothing, but an address published in this way
-will probably eventually start receiving spam.)</p>
-
-<h3 id="backslash">Backslash Escapes</h3>
-
-<p>Markdown allows you to use backslash escapes to generate literal
-characters which would otherwise have special meaning in Markdown's
-formatting syntax. For example, if you wanted to surround a word with
-literal asterisks (instead of an HTML <code><em></code> tag), you can backslashes
-before the asterisks, like this:</p>
-
-<pre><code>\*literal asterisks\*
-</code></pre>
-
-<p>Markdown provides backslash escapes for the following characters:</p>
-
-<pre><code>\ backslash
-` backtick
-* asterisk
-_ underscore
-{} curly braces
-[] square brackets
-() parentheses
-# hash mark
-+ plus sign
-- minus sign (hyphen)
-. dot
-! exclamation mark
-</code></pre>
+<h1>Markdown: Syntax</h1>
+
+<ul id="ProjectSubmenu">
+ <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+ <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+ <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+ <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+ <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<ul>
+<li><a href="#overview">Overview</a>
+<ul>
+<li><a href="#philosophy">Philosophy</a></li>
+<li><a href="#html">Inline HTML</a></li>
+<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
+</ul></li>
+<li><a href="#block">Block Elements</a>
+<ul>
+<li><a href="#p">Paragraphs and Line Breaks</a></li>
+<li><a href="#header">Headers</a></li>
+<li><a href="#blockquote">Blockquotes</a></li>
+<li><a href="#list">Lists</a></li>
+<li><a href="#precode">Code Blocks</a></li>
+<li><a href="#hr">Horizontal Rules</a></li>
+</ul></li>
+<li><a href="#span">Span Elements</a>
+<ul>
+<li><a href="#link">Links</a></li>
+<li><a href="#em">Emphasis</a></li>
+<li><a href="#code">Code</a></li>
+<li><a href="#img">Images</a></li>
+</ul></li>
+<li><a href="#misc">Miscellaneous</a>
+<ul>
+<li><a href="#backslash">Backslash Escapes</a></li>
+<li><a href="#autolink">Automatic Links</a></li>
+</ul></li>
+</ul>
+
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
+
+<hr />
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
+
+<p>Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.</p>
+
+<p>To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like *emphasis*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.</p>
+
+<h3 id="html">Inline HTML</h3>
+
+<p>Markdown's syntax is intended for one purpose: to be used as a
+format for <em>writing</em> for the web.</p>
+
+<p>Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.</p>
+
+<p>For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.</p>
+
+<p>The only restrictions are that block-level HTML elements -- e.g. <code><div></code>,
+<code><table></code>, <code><pre></code>, <code><p></code>, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) <code><p></code> tags around HTML block-level tags.</p>
+
+<p>For example, to add an HTML table to a Markdown article:</p>
+
+<pre><code>This is a regular paragraph.
+
+<table>
+ <tr>
+ <td>Foo</td>
+ </tr>
+</table>
+
+This is another regular paragraph.
+</code></pre>
+
+<p>Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
+HTML block.</p>
+
+<p>Span-level HTML tags -- e.g. <code><span></code>, <code><cite></code>, or <code><del></code> -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML <code><a></code> or <code><img></code> tags instead of Markdown's
+link or image syntax, go right ahead.</p>
+
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
+span-level tags.</p>
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+<p>In HTML, there are two characters that demand special treatment: <code><</code>
+and <code>&</code>. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. <code>&lt;</code>, and
+<code>&amp;</code>.</p>
+
+<p>Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&T', you need to write '<code>AT&amp;T</code>'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:</p>
+
+<pre><code>http://images.google.com/images?num=30&q=larry+bird
+</code></pre>
+
+<p>you need to encode the URL as:</p>
+
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
+</code></pre>
+
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.</p>
+
+<p>Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into <code>&amp;</code>.</p>
+
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>
+
+<pre><code>&copy;
+</code></pre>
+
+<p>and Markdown will leave it alone. But if you write:</p>
+
+<pre><code>AT&T
+</code></pre>
+
+<p>Markdown will translate it to:</p>
+
+<pre><code>AT&amp;T
+</code></pre>
+
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:</p>
+
+<pre><code>4 < 5
+</code></pre>
+
+<p>Markdown will translate it to:</p>
+
+<pre><code>4 &lt; 5
+</code></pre>
+
+<p>However, inside Markdown code spans and blocks, angle brackets and
+ampersands are <em>always</em> encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single <code><</code>
+and <code>&</code> in your example code needs to be escaped.)</p>
+
+<hr />
+
+<h2 id="block">Block Elements</h2>
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+
+<p>The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a <code><br /></code> tag.</p>
+
+<p>When you <em>do</em> want to insert a <code><br /></code> break tag using Markdown, you
+end a line with two or more spaces, then type return.</p>
+
+<p>Yes, this takes a tad more effort to create a <code><br /></code>, but a simplistic
+"every line break is a <code><br /></code>" rule wouldn't work for Markdown.
+Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
+work best -- and look better -- when you format them with hard breaks.</p>
+
+<h3 id="header">Headers</h3>
+
+<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
+
+<p>Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:</p>
+
+<pre><code>This is an H1
+=============
+
+This is an H2
+-------------
+</code></pre>
+
+<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
+
+<p>Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:</p>
+
+<pre><code># This is an H1
+
+## This is an H2
+
+###### This is an H6
+</code></pre>
+
+<p>Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :</p>
+
+<pre><code># This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+</code></pre>
+
+<h3 id="blockquote">Blockquotes</h3>
+
+<p>Markdown uses email-style <code>></code> characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a <code>></code> before every line:</p>
+
+<pre><code>> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+>
+> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+> id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>Markdown allows you to be lazy and only put the <code>></code> before the first
+line of a hard-wrapped paragraph:</p>
+
+<pre><code>> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of <code>></code>:</p>
+
+<pre><code>> This is the first level of quoting.
+>
+> > This is nested blockquote.
+>
+> Back to the first level.
+</code></pre>
+
+<p>Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:</p>
+
+<pre><code>> ## This is a header.
+>
+> 1. This is the first list item.
+> 2. This is the second list item.
+>
+> Here's some example code:
+>
+> return shell_exec("echo $input | $markdown_script");
+</code></pre>
+
+<p>Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.</p>
+
+<h3 id="list">Lists</h3>
+
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
+
+<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:</p>
+
+<pre><code>* Red
+* Green
+* Blue
+</code></pre>
+
+<p>is equivalent to:</p>
+
+<pre><code>+ Red
++ Green
++ Blue
+</code></pre>
+
+<p>and:</p>
+
+<pre><code>- Red
+- Green
+- Blue
+</code></pre>
+
+<p>Ordered lists use numbers followed by periods:</p>
+
+<pre><code>1. Bird
+2. McHale
+3. Parish
+</code></pre>
+
+<p>It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:</p>
+
+<pre><code><ol>
+<li>Bird</li>
+<li>McHale</li>
+<li>Parish</li>
+</ol>
+</code></pre>
+
+<p>If you instead wrote the list in Markdown like this:</p>
+
+<pre><code>1. Bird
+1. McHale
+1. Parish
+</code></pre>
+
+<p>or even:</p>
+
+<pre><code>3. Bird
+1. McHale
+8. Parish
+</code></pre>
+
+<p>you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.</p>
+
+<p>If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.</p>
+
+<p>List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.</p>
+
+<p>To make lists look nice, you can wrap items with hanging indents:</p>
+
+<pre><code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+ viverra nec, fringilla in, laoreet vitae, risus.
+* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+ Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>But if you want to be lazy, you don't have to:</p>
+
+<pre><code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>If list items are separated by blank lines, Markdown will wrap the
+items in <code><p></code> tags in the HTML output. For example, this input:</p>
+
+<pre><code>* Bird
+* Magic
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code><ul>
+<li>Bird</li>
+<li>Magic</li>
+</ul>
+</code></pre>
+
+<p>But this:</p>
+
+<pre><code>* Bird
+
+* Magic
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code><ul>
+<li><p>Bird</p></li>
+<li><p>Magic</p></li>
+</ul>
+</code></pre>
+
+<p>List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:</p>
+
+<pre><code>1. This is a list item with two paragraphs. Lorem ipsum dolor
+ sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+ mi posuere lectus.
+
+ Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+ vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+ sit amet velit.
+
+2. Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:</p>
+
+<pre><code>* This is a list item with two paragraphs.
+
+ This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+* Another item in the same list.
+</code></pre>
+
+<p>To put a blockquote within a list item, the blockquote's <code>></code>
+delimiters need to be indented:</p>
+
+<pre><code>* A list item with a blockquote:
+
+ > This is a blockquote
+ > inside a list item.
+</code></pre>
+
+<p>To put a code block within a list item, the code block needs
+to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
+
+<pre><code>* A list item with a code block:
+
+ <code goes here>
+</code></pre>
+
+<p>It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:</p>
+
+<pre><code>1986. What a great season.
+</code></pre>
+
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:</p>
+
+<pre><code>1986\. What a great season.
+</code></pre>
+
+<h3 id="precode">Code Blocks</h3>
+
+<p>Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both <code><pre></code> and <code><code></code> tags.</p>
+
+<p>To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:</p>
+
+<pre><code>This is a normal paragraph:
+
+ This is a code block.
+</code></pre>
+
+<p>Markdown will generate:</p>
+
+<pre><code><p>This is a normal paragraph:</p>
+
+<pre><code>This is a code block.
+</code></pre>
+</code></pre>
+
+<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:</p>
+
+<pre><code>Here is an example of AppleScript:
+
+ tell application "Foo"
+ beep
+ end tell
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code><p>Here is an example of AppleScript:</p>
+
+<pre><code>tell application "Foo"
+ beep
+end tell
+</code></pre>
+</code></pre>
+
+<p>A code block continues until it reaches a line that is not indented
+(or the end of the article).</p>
+
+<p>Within a code block, ampersands (<code>&</code>) and angle brackets (<code><</code> and <code>></code>)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:</p>
+
+<pre><code> <div class="footer">
+ &copy; 2004 Foo Corporation
+ </div>
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code><pre><code>&lt;div class="footer"&gt;
+ &amp;copy; 2004 Foo Corporation
+&lt;/div&gt;
+</code></pre>
+</code></pre>
+
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.</p>
+
+<h3 id="hr">Horizontal Rules</h3>
+
+<p>You can produce a horizontal rule tag (<code><hr /></code>) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:</p>
+
+<pre><code>* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+</code></pre>
+
+<hr />
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
+
+<p>In both styles, the link text is delimited by [square brackets].</p>
+
+<p>To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an <em>optional</em>
+title for the link, surrounded in quotes. For example:</p>
+
+<pre><code>This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+</code></pre>
+
+<p>Will produce:</p>
+
+<pre><code><p>This is <a href="http://example.com/" title="Title">
+an example</a> inline link.</p>
+
+<p><a href="http://example.net/">This link</a> has no
+title attribute.</p>
+</code></pre>
+
+<p>If you're referring to a local resource on the same server, you can
+use relative paths:</p>
+
+<pre><code>See my [About](/about/) page for details.
+</code></pre>
+
+<p>Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:</p>
+
+<pre><code>This is [an example][id] reference-style link.
+</code></pre>
+
+<p>You can optionally use a space to separate the sets of brackets:</p>
+
+<pre><code>This is [an example] [id] reference-style link.
+</code></pre>
+
+<p>Then, anywhere in the document, you define your link label like this,
+on a line by itself:</p>
+
+<pre><code>[id]: http://example.com/ "Optional Title Here"
+</code></pre>
+
+<p>That is:</p>
+
+<ul>
+<li>Square brackets containing the link identifier (optionally
+indented from the left margin using up to three spaces);</li>
+<li>followed by a colon;</li>
+<li>followed by one or more spaces (or tabs);</li>
+<li>followed by the URL for the link;</li>
+<li>optionally followed by a title attribute for the link, enclosed
+in double or single quotes.</li>
+</ul>
+
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>
+
+<pre><code>[id]: <http://example.com/> "Optional Title Here"
+</code></pre>
+
+<p>You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:</p>
+
+<pre><code>[id]: http://example.com/longish/path/to/resource/here
+ "Optional Title Here"
+</code></pre>
+
+<p>Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.</p>
+
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
+
+<pre><code>[link text][a]
+[link text][A]
+</code></pre>
+
+<p>are equivalent.</p>
+
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:</p>
+
+<pre><code>[Google][]
+</code></pre>
+
+<p>And then define the link:</p>
+
+<pre><code>[Google]: http://google.com/
+</code></pre>
+
+<p>Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:</p>
+
+<pre><code>Visit [Daring Fireball][] for more information.
+</code></pre>
+
+<p>And then define the link:</p>
+
+<pre><code>[Daring Fireball]: http://daringfireball.net/
+</code></pre>
+
+<p>Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.</p>
+
+<p>Here's an example of reference links in action:</p>
+
+<pre><code>I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+ [1]: http://google.com/ "Google"
+ [2]: http://search.yahoo.com/ "Yahoo Search"
+ [3]: http://search.msn.com/ "MSN Search"
+</code></pre>
+
+<p>Using the implicit link name shortcut, you could instead write:</p>
+
+<pre><code>I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+ [google]: http://google.com/ "Google"
+ [yahoo]: http://search.yahoo.com/ "Yahoo Search"
+ [msn]: http://search.msn.com/ "MSN Search"
+</code></pre>
+
+<p>Both of the above examples will produce the following HTML output:</p>
+
+<pre><code><p>I get 10 times more traffic from <a href="http://google.com/"
+title="Google">Google</a> than from
+<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+</code></pre>
+
+<p>For comparison, here is the same paragraph written using
+Markdown's inline link style:</p>
+
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+</code></pre>
+
+<p>The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.</p>
+
+<p>With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.</p>
+
+<h3 id="em">Emphasis</h3>
+
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
+HTML <code><em></code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
+<code><strong></code> tag. E.g., this input:</p>
+
+<pre><code>*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code><em>single asterisks</em>
+
+<em>single underscores</em>
+
+<strong>double asterisks</strong>
+
+<strong>double underscores</strong>
+</code></pre>
+
+<p>You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.</p>
+
+<p>Emphasis can be used in the middle of a word:</p>
+
+<pre><code>un*fucking*believable
+</code></pre>
+
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
+literal asterisk or underscore.</p>
+
+<p>To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:</p>
+
+<pre><code>\*this text is surrounded by literal asterisks\*
+</code></pre>
+
+<h3 id="code">Code</h3>
+
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:</p>
+
+<pre><code>Use the `printf()` function.
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code><p>Use the <code>printf()</code> function.</p>
+</code></pre>
+
+<p>To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:</p>
+
+<pre><code>``There is a literal backtick (`) here.``
+</code></pre>
+
+<p>which will produce this:</p>
+
+<pre><code><p><code>There is a literal backtick (`) here.</code></p>
+</code></pre>
+
+<p>The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:</p>
+
+<pre><code>A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code><p>A single backtick in a code span: <code>`</code></p>
+
+<p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+</code></pre>
+
+<p>With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:</p>
+
+<pre><code>Please don't use any `<blink>` tags.
+</code></pre>
+
+<p>into:</p>
+
+<pre><code><p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
+</code></pre>
+
+<p>You can write this:</p>
+
+<pre><code>`&#8212;` is the decimal-encoded equivalent of `&mdash;`.
+</code></pre>
+
+<p>to produce:</p>
+
+<pre><code><p><code>&amp;#8212;</code> is the decimal-encoded
+equivalent of <code>&amp;mdash;</code>.</p>
+</code></pre>
+
+<h3 id="img">Images</h3>
+
+<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.</p>
+
+<p>Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
+
+<p>Inline image syntax looks like this:</p>
+
+<pre><code>
+
+
+</code></pre>
+
+<p>That is:</p>
+
+<ul>
+<li>An exclamation mark: <code>!</code>;</li>
+<li>followed by a set of square brackets, containing the <code>alt</code>
+attribute text for the image;</li>
+<li>followed by a set of parentheses, containing the URL or path to
+the image, and an optional <code>title</code> attribute enclosed in double
+or single quotes.</li>
+</ul>
+
+<p>Reference-style image syntax looks like this:</p>
+
+<pre><code>![Alt text][id]
+</code></pre>
+
+<p>Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:</p>
+
+<pre><code>[id]: url/to/image "Optional title attribute"
+</code></pre>
+
+<p>As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML <code><img></code> tags.</p>
+
+<hr />
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
+
+<pre><code><http://example.com/>
+</code></pre>
+
+<p>Markdown will turn this into:</p>
+
+<pre><code><a href="http://example.com/">http://example.com/</a>
+</code></pre>
+
+<p>Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:</p>
+
+<pre><code><address@example.com>
+</code></pre>
+
+<p>into something like this:</p>
+
+<pre><code><a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
+&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
+&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
+&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
+</code></pre>
+
+<p>which will render in a browser as a clickable link to "address@example.com".</p>
+
+<p>(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)</p>
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+<p>Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML <code><em></code> tag), you can backslashes
+before the asterisks, like this:</p>
+
+<pre><code>\*literal asterisks\*
+</code></pre>
+
+<p>Markdown provides backslash escapes for the following characters:</p>
+
+<pre><code>\ backslash
+` backtick
+* asterisk
+_ underscore
+{} curly braces
+[] square brackets
+() parentheses
+# hash mark
++ plus sign
+- minus sign (hyphen)
+. dot
+! exclamation mark
+</code></pre>
diff --git a/core/src/test/resources/1.0/Markdown Documentation - Syntax.text b/core/src/test/resources/1.0/Markdown Documentation - Syntax.text
old mode 100644
new mode 100755
index dabd75c..99c42e5
--- a/core/src/test/resources/1.0/Markdown Documentation - Syntax.text
+++ b/core/src/test/resources/1.0/Markdown Documentation - Syntax.text
@@ -1,888 +1,888 @@
-Markdown: Syntax
-================
-
-<ul id="ProjectSubmenu">
- <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
- <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
- <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
- <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
- <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
-</ul>
-
-
-* [Overview](#overview)
- * [Philosophy](#philosophy)
- * [Inline HTML](#html)
- * [Automatic Escaping for Special Characters](#autoescape)
-* [Block Elements](#block)
- * [Paragraphs and Line Breaks](#p)
- * [Headers](#header)
- * [Blockquotes](#blockquote)
- * [Lists](#list)
- * [Code Blocks](#precode)
- * [Horizontal Rules](#hr)
-* [Span Elements](#span)
- * [Links](#link)
- * [Emphasis](#em)
- * [Code](#code)
- * [Images](#img)
-* [Miscellaneous](#misc)
- * [Backslash Escapes](#backslash)
- * [Automatic Links](#autolink)
-
-
-**Note:** This document is itself written using Markdown; you
-can [see the source for it by adding '.text' to the URL][src].
-
- [src]: /projects/markdown/syntax.text
-
-* * *
-
-<h2 id="overview">Overview</h2>
-
-<h3 id="philosophy">Philosophy</h3>
-
-Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
-
-Readability, however, is emphasized above all else. A Markdown-formatted
-document should be publishable as-is, as plain text, without looking
-like it's been marked up with tags or formatting instructions. While
-Markdown's syntax has been influenced by several existing text-to-HTML
-filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],
-[Grutatext] [5], and [EtText] [6] -- the single biggest source of
-inspiration for Markdown's syntax is the format of plain text email.
-
- [1]: http://docutils.sourceforge.net/mirror/setext.html
- [2]: http://www.aaronsw.com/2002/atx/
- [3]: http://textism.com/tools/textile/
- [4]: http://docutils.sourceforge.net/rst.html
- [5]: http://www.triptico.com/software/grutatxt.html
- [6]: http://ettext.taint.org/doc/
-
-To this end, Markdown's syntax is comprised entirely of punctuation
-characters, which punctuation characters have been carefully chosen so
-as to look like what they mean. E.g., asterisks around a word actually
-look like \*emphasis\*. Markdown lists look like, well, lists. Even
-blockquotes look like quoted passages of text, assuming you've ever
-used email.
-
-
-
-<h3 id="html">Inline HTML</h3>
-
-Markdown's syntax is intended for one purpose: to be used as a
-format for *writing* for the web.
-
-Markdown is not a replacement for HTML, or even close to it. Its
-syntax is very small, corresponding only to a very small subset of
-HTML tags. The idea is *not* to create a syntax that makes it easier
-to insert HTML tags. In my opinion, HTML tags are already easy to
-insert. The idea for Markdown is to make it easy to read, write, and
-edit prose. HTML is a *publishing* format; Markdown is a *writing*
-format. Thus, Markdown's formatting syntax only addresses issues that
-can be conveyed in plain text.
-
-For any markup that is not covered by Markdown's syntax, you simply
-use HTML itself. There's no need to preface it or delimit it to
-indicate that you're switching from Markdown to HTML; you just use
-the tags.
-
-The only restrictions are that block-level HTML elements -- e.g. `<div>`,
-`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding
-content by blank lines, and the start and end tags of the block should
-not be indented with tabs or spaces. Markdown is smart enough not
-to add extra (unwanted) `<p>` tags around HTML block-level tags.
-
-For example, to add an HTML table to a Markdown article:
-
- This is a regular paragraph.
-
- <table>
- <tr>
- <td>Foo</td>
- </tr>
- </table>
-
- This is another regular paragraph.
-
-Note that Markdown formatting syntax is not processed within block-level
-HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an
-HTML block.
-
-Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be
-used anywhere in a Markdown paragraph, list item, or header. If you
-want, you can even use HTML tags instead of Markdown formatting; e.g. if
-you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's
-link or image syntax, go right ahead.
-
-Unlike block-level HTML tags, Markdown syntax *is* processed within
-span-level tags.
-
-
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
-
-In HTML, there are two characters that demand special treatment: `<`
-and `&`. Left angle brackets are used to start tags; ampersands are
-used to denote HTML entities. If you want to use them as literal
-characters, you must escape them as entities, e.g. `<`, and
-`&`.
-
-Ampersands in particular are bedeviling for web writers. If you want to
-write about 'AT&T', you need to write '`AT&T`'. You even need to
-escape ampersands within URLs. Thus, if you want to link to:
-
- http://images.google.com/images?num=30&q=larry+bird
-
-you need to encode the URL as:
-
- http://images.google.com/images?num=30&q=larry+bird
-
-in your anchor tag `href` attribute. Needless to say, this is easy to
-forget, and is probably the single most common source of HTML validation
-errors in otherwise well-marked-up web sites.
-
-Markdown allows you to use these characters naturally, taking care of
-all the necessary escaping for you. If you use an ampersand as part of
-an HTML entity, it remains unchanged; otherwise it will be translated
-into `&`.
-
-So, if you want to include a copyright symbol in your article, you can write:
-
- ©
-
-and Markdown will leave it alone. But if you write:
-
- AT&T
-
-Markdown will translate it to:
-
- AT&T
-
-Similarly, because Markdown supports [inline HTML](#html), if you use
-angle brackets as delimiters for HTML tags, Markdown will treat them as
-such. But if you write:
-
- 4 < 5
-
-Markdown will translate it to:
-
- 4 < 5
-
-However, inside Markdown code spans and blocks, angle brackets and
-ampersands are *always* encoded automatically. This makes it easy to use
-Markdown to write about HTML code. (As opposed to raw HTML, which is a
-terrible format for writing about HTML syntax, because every single `<`
-and `&` in your example code needs to be escaped.)
-
-
-* * *
-
-
-<h2 id="block">Block Elements</h2>
-
-
-<h3 id="p">Paragraphs and Line Breaks</h3>
-
-A paragraph is simply one or more consecutive lines of text, separated
-by one or more blank lines. (A blank line is any line that looks like a
-blank line -- a line containing nothing but spaces or tabs is considered
-blank.) Normal paragraphs should not be intended with spaces or tabs.
-
-The implication of the "one or more consecutive lines of text" rule is
-that Markdown supports "hard-wrapped" text paragraphs. This differs
-significantly from most other text-to-HTML formatters (including Movable
-Type's "Convert Line Breaks" option) which translate every line break
-character in a paragraph into a `<br />` tag.
-
-When you *do* want to insert a `<br />` break tag using Markdown, you
-end a line with two or more spaces, then type return.
-
-Yes, this takes a tad more effort to create a `<br />`, but a simplistic
-"every line break is a `<br />`" rule wouldn't work for Markdown.
-Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]
-work best -- and look better -- when you format them with hard breaks.
-
- [bq]: #blockquote
- [l]: #list
-
-
-
-<h3 id="header">Headers</h3>
-
-Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
-
-Setext-style headers are "underlined" using equal signs (for first-level
-headers) and dashes (for second-level headers). For example:
-
- This is an H1
- =============
-
- This is an H2
- -------------
-
-Any number of underlining `=`'s or `-`'s will work.
-
-Atx-style headers use 1-6 hash characters at the start of the line,
-corresponding to header levels 1-6. For example:
-
- # This is an H1
-
- ## This is an H2
-
- ###### This is an H6
-
-Optionally, you may "close" atx-style headers. This is purely
-cosmetic -- you can use this if you think it looks better. The
-closing hashes don't even need to match the number of hashes
-used to open the header. (The number of opening hashes
-determines the header level.) :
-
- # This is an H1 #
-
- ## This is an H2 ##
-
- ### This is an H3 ######
-
-
-<h3 id="blockquote">Blockquotes</h3>
-
-Markdown uses email-style `>` characters for blockquoting. If you're
-familiar with quoting passages of text in an email message, then you
-know how to create a blockquote in Markdown. It looks best if you hard
-wrap the text and put a `>` before every line:
-
- > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
- > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
- > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
- >
- > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
- > id sem consectetuer libero luctus adipiscing.
-
-Markdown allows you to be lazy and only put the `>` before the first
-line of a hard-wrapped paragraph:
-
- > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
- Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
-
- > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
- id sem consectetuer libero luctus adipiscing.
-
-Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
-adding additional levels of `>`:
-
- > This is the first level of quoting.
- >
- > > This is nested blockquote.
- >
- > Back to the first level.
-
-Blockquotes can contain other Markdown elements, including headers, lists,
-and code blocks:
-
- > ## This is a header.
- >
- > 1. This is the first list item.
- > 2. This is the second list item.
- >
- > Here's some example code:
- >
- > return shell_exec("echo $input | $markdown_script");
-
-Any decent text editor should make email-style quoting easy. For
-example, with BBEdit, you can make a selection and choose Increase
-Quote Level from the Text menu.
-
-
-<h3 id="list">Lists</h3>
-
-Markdown supports ordered (numbered) and unordered (bulleted) lists.
-
-Unordered lists use asterisks, pluses, and hyphens -- interchangably
--- as list markers:
-
- * Red
- * Green
- * Blue
-
-is equivalent to:
-
- + Red
- + Green
- + Blue
-
-and:
-
- - Red
- - Green
- - Blue
-
-Ordered lists use numbers followed by periods:
-
- 1. Bird
- 2. McHale
- 3. Parish
-
-It's important to note that the actual numbers you use to mark the
-list have no effect on the HTML output Markdown produces. The HTML
-Markdown produces from the above list is:
-
- <ol>
- <li>Bird</li>
- <li>McHale</li>
- <li>Parish</li>
- </ol>
-
-If you instead wrote the list in Markdown like this:
-
- 1. Bird
- 1. McHale
- 1. Parish
-
-or even:
-
- 3. Bird
- 1. McHale
- 8. Parish
-
-you'd get the exact same HTML output. The point is, if you want to,
-you can use ordinal numbers in your ordered Markdown lists, so that
-the numbers in your source match the numbers in your published HTML.
-But if you want to be lazy, you don't have to.
-
-If you do use lazy list numbering, however, you should still start the
-list with the number 1. At some point in the future, Markdown may support
-starting ordered lists at an arbitrary number.
-
-List markers typically start at the left margin, but may be indented by
-up to three spaces. List markers must be followed by one or more spaces
-or a tab.
-
-To make lists look nice, you can wrap items with hanging indents:
-
- * Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
- Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
- viverra nec, fringilla in, laoreet vitae, risus.
- * Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
- Suspendisse id sem consectetuer libero luctus adipiscing.
-
-But if you want to be lazy, you don't have to:
-
- * Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
- Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
- viverra nec, fringilla in, laoreet vitae, risus.
- * Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
- Suspendisse id sem consectetuer libero luctus adipiscing.
-
-If list items are separated by blank lines, Markdown will wrap the
-items in `<p>` tags in the HTML output. For example, this input:
-
- * Bird
- * Magic
-
-will turn into:
-
- <ul>
- <li>Bird</li>
- <li>Magic</li>
- </ul>
-
-But this:
-
- * Bird
-
- * Magic
-
-will turn into:
-
- <ul>
- <li><p>Bird</p></li>
- <li><p>Magic</p></li>
- </ul>
-
-List items may consist of multiple paragraphs. Each subsequent
-paragraph in a list item must be intended by either 4 spaces
-or one tab:
-
- 1. This is a list item with two paragraphs. Lorem ipsum dolor
- sit amet, consectetuer adipiscing elit. Aliquam hendrerit
- mi posuere lectus.
-
- Vestibulum enim wisi, viverra nec, fringilla in, laoreet
- vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
- sit amet velit.
-
- 2. Suspendisse id sem consectetuer libero luctus adipiscing.
-
-It looks nice if you indent every line of the subsequent
-paragraphs, but here again, Markdown will allow you to be
-lazy:
-
- * This is a list item with two paragraphs.
-
- This is the second paragraph in the list item. You're
- only required to indent the first line. Lorem ipsum dolor
- sit amet, consectetuer adipiscing elit.
-
- * Another item in the same list.
-
-To put a blockquote within a list item, the blockquote's `>`
-delimiters need to be indented:
-
- * A list item with a blockquote:
-
- > This is a blockquote
- > inside a list item.
-
-To put a code block within a list item, the code block needs
-to be indented *twice* -- 8 spaces or two tabs:
-
- * A list item with a code block:
-
- <code goes here>
-
-
-It's worth noting that it's possible to trigger an ordered list by
-accident, by writing something like this:
-
- 1986. What a great season.
-
-In other words, a *number-period-space* sequence at the beginning of a
-line. To avoid this, you can backslash-escape the period:
-
- 1986\. What a great season.
-
-
-
-<h3 id="precode">Code Blocks</h3>
-
-Pre-formatted code blocks are used for writing about programming or
-markup source code. Rather than forming normal paragraphs, the lines
-of a code block are interpreted literally. Markdown wraps a code block
-in both `<pre>` and `<code>` tags.
-
-To produce a code block in Markdown, simply indent every line of the
-block by at least 4 spaces or 1 tab. For example, given this input:
-
- This is a normal paragraph:
-
- This is a code block.
-
-Markdown will generate:
-
- <p>This is a normal paragraph:</p>
-
- <pre><code>This is a code block.
- </code></pre>
-
-One level of indentation -- 4 spaces or 1 tab -- is removed from each
-line of the code block. For example, this:
-
- Here is an example of AppleScript:
-
- tell application "Foo"
- beep
- end tell
-
-will turn into:
-
- <p>Here is an example of AppleScript:</p>
-
- <pre><code>tell application "Foo"
- beep
- end tell
- </code></pre>
-
-A code block continues until it reaches a line that is not indented
-(or the end of the article).
-
-Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
-are automatically converted into HTML entities. This makes it very
-easy to include example HTML source code using Markdown -- just paste
-it and indent it, and Markdown will handle the hassle of encoding the
-ampersands and angle brackets. For example, this:
-
- <div class="footer">
- © 2004 Foo Corporation
- </div>
-
-will turn into:
-
- <pre><code><div class="footer">
- &copy; 2004 Foo Corporation
- </div>
- </code></pre>
-
-Regular Markdown syntax is not processed within code blocks. E.g.,
-asterisks are just literal asterisks within a code block. This means
-it's also easy to use Markdown to write about Markdown's own syntax.
-
-
-
-<h3 id="hr">Horizontal Rules</h3>
-
-You can produce a horizontal rule tag (`<hr />`) by placing three or
-more hyphens, asterisks, or underscores on a line by themselves. If you
-wish, you may use spaces between the hyphens or asterisks. Each of the
-following lines will produce a horizontal rule:
-
- * * *
-
- ***
-
- *****
-
- - - -
-
- ---------------------------------------
-
- _ _ _
-
-
-* * *
-
-<h2 id="span">Span Elements</h2>
-
-<h3 id="link">Links</h3>
-
-Markdown supports two style of links: *inline* and *reference*.
-
-In both styles, the link text is delimited by [square brackets].
-
-To create an inline link, use a set of regular parentheses immediately
-after the link text's closing square bracket. Inside the parentheses,
-put the URL where you want the link to point, along with an *optional*
-title for the link, surrounded in quotes. For example:
-
- This is [an example](http://example.com/ "Title") inline link.
-
- [This link](http://example.net/) has no title attribute.
-
-Will produce:
-
- <p>This is <a href="http://example.com/" title="Title">
- an example</a> inline link.</p>
-
- <p><a href="http://example.net/">This link</a> has no
- title attribute.</p>
-
-If you're referring to a local resource on the same server, you can
-use relative paths:
-
- See my [About](/about/) page for details.
-
-Reference-style links use a second set of square brackets, inside
-which you place a label of your choosing to identify the link:
-
- This is [an example][id] reference-style link.
-
-You can optionally use a space to separate the sets of brackets:
-
- This is [an example] [id] reference-style link.
-
-Then, anywhere in the document, you define your link label like this,
-on a line by itself:
-
- [id]: http://example.com/ "Optional Title Here"
-
-That is:
-
-* Square brackets containing the link identifier (optionally
- indented from the left margin using up to three spaces);
-* followed by a colon;
-* followed by one or more spaces (or tabs);
-* followed by the URL for the link;
-* optionally followed by a title attribute for the link, enclosed
- in double or single quotes.
-
-The link URL may, optionally, be surrounded by angle brackets:
-
- [id]: <http://example.com/> "Optional Title Here"
-
-You can put the title attribute on the next line and use extra spaces
-or tabs for padding, which tends to look better with longer URLs:
-
- [id]: http://example.com/longish/path/to/resource/here
- "Optional Title Here"
-
-Link definitions are only used for creating links during Markdown
-processing, and are stripped from your document in the HTML output.
-
-Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:
-
- [link text][a]
- [link text][A]
-
-are equivalent.
-
-The *implicit link name* shortcut allows you to omit the name of the
-link, in which case the link text itself is used as the name.
-Just use an empty set of square brackets -- e.g., to link the word
-"Google" to the google.com web site, you could simply write:
-
- [Google][]
-
-And then define the link:
-
- [Google]: http://google.com/
-
-Because link names may contain spaces, this shortcut even works for
-multiple words in the link text:
-
- Visit [Daring Fireball][] for more information.
-
-And then define the link:
-
- [Daring Fireball]: http://daringfireball.net/
-
-Link definitions can be placed anywhere in your Markdown document. I
-tend to put them immediately after each paragraph in which they're
-used, but if you want, you can put them all at the end of your
-document, sort of like footnotes.
-
-Here's an example of reference links in action:
-
- I get 10 times more traffic from [Google] [1] than from
- [Yahoo] [2] or [MSN] [3].
-
- [1]: http://google.com/ "Google"
- [2]: http://search.yahoo.com/ "Yahoo Search"
- [3]: http://search.msn.com/ "MSN Search"
-
-Using the implicit link name shortcut, you could instead write:
-
- I get 10 times more traffic from [Google][] than from
- [Yahoo][] or [MSN][].
-
- [google]: http://google.com/ "Google"
- [yahoo]: http://search.yahoo.com/ "Yahoo Search"
- [msn]: http://search.msn.com/ "MSN Search"
-
-Both of the above examples will produce the following HTML output:
-
- <p>I get 10 times more traffic from <a href="http://google.com/"
- title="Google">Google</a> than from
- <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
- or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
-
-For comparison, here is the same paragraph written using
-Markdown's inline link style:
-
- I get 10 times more traffic from [Google](http://google.com/ "Google")
- than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
- [MSN](http://search.msn.com/ "MSN Search").
-
-The point of reference-style links is not that they're easier to
-write. The point is that with reference-style links, your document
-source is vastly more readable. Compare the above examples: using
-reference-style links, the paragraph itself is only 81 characters
-long; with inline-style links, it's 176 characters; and as raw HTML,
-it's 234 characters. In the raw HTML, there's more markup than there
-is text.
-
-With Markdown's reference-style links, a source document much more
-closely resembles the final output, as rendered in a browser. By
-allowing you to move the markup-related metadata out of the paragraph,
-you can add links without interrupting the narrative flow of your
-prose.
-
-
-<h3 id="em">Emphasis</h3>
-
-Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
-emphasis. Text wrapped with one `*` or `_` will be wrapped with an
-HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
-`<strong>` tag. E.g., this input:
-
- *single asterisks*
-
- _single underscores_
-
- **double asterisks**
-
- __double underscores__
-
-will produce:
-
- <em>single asterisks</em>
-
- <em>single underscores</em>
-
- <strong>double asterisks</strong>
-
- <strong>double underscores</strong>
-
-You can use whichever style you prefer; the lone restriction is that
-the same character must be used to open and close an emphasis span.
-
-Emphasis can be used in the middle of a word:
-
- un*fucking*believable
-
-But if you surround an `*` or `_` with spaces, it'll be treated as a
-literal asterisk or underscore.
-
-To produce a literal asterisk or underscore at a position where it
-would otherwise be used as an emphasis delimiter, you can backslash
-escape it:
-
- \*this text is surrounded by literal asterisks\*
-
-
-
-<h3 id="code">Code</h3>
-
-To indicate a span of code, wrap it with backtick quotes (`` ` ``).
-Unlike a pre-formatted code block, a code span indicates code within a
-normal paragraph. For example:
-
- Use the `printf()` function.
-
-will produce:
-
- <p>Use the <code>printf()</code> function.</p>
-
-To include a literal backtick character within a code span, you can use
-multiple backticks as the opening and closing delimiters:
-
- ``There is a literal backtick (`) here.``
-
-which will produce this:
-
- <p><code>There is a literal backtick (`) here.</code></p>
-
-The backtick delimiters surrounding a code span may include spaces --
-one after the opening, one before the closing. This allows you to place
-literal backtick characters at the beginning or end of a code span:
-
- A single backtick in a code span: `` ` ``
-
- A backtick-delimited string in a code span: `` `foo` ``
-
-will produce:
-
- <p>A single backtick in a code span: <code>`</code></p>
-
- <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
-
-With a code span, ampersands and angle brackets are encoded as HTML
-entities automatically, which makes it easy to include example HTML
-tags. Markdown will turn this:
-
- Please don't use any `<blink>` tags.
-
-into:
-
- <p>Please don't use any <code><blink></code> tags.</p>
-
-You can write this:
-
- `—` is the decimal-encoded equivalent of `—`.
-
-to produce:
-
- <p><code>&#8212;</code> is the decimal-encoded
- equivalent of <code>&mdash;</code>.</p>
-
-
-
-<h3 id="img">Images</h3>
-
-Admittedly, it's fairly difficult to devise a "natural" syntax for
-placing images into a plain text document format.
-
-Markdown uses an image syntax that is intended to resemble the syntax
-for links, allowing for two styles: *inline* and *reference*.
-
-Inline image syntax looks like this:
-
- 
-
- 
-
-That is:
-
-* An exclamation mark: `!`;
-* followed by a set of square brackets, containing the `alt`
- attribute text for the image;
-* followed by a set of parentheses, containing the URL or path to
- the image, and an optional `title` attribute enclosed in double
- or single quotes.
-
-Reference-style image syntax looks like this:
-
- ![Alt text][id]
-
-Where "id" is the name of a defined image reference. Image references
-are defined using syntax identical to link references:
-
- [id]: url/to/image "Optional title attribute"
-
-As of this writing, Markdown has no syntax for specifying the
-dimensions of an image; if this is important to you, you can simply
-use regular HTML `<img>` tags.
-
-
-* * *
-
-
-<h2 id="misc">Miscellaneous</h2>
-
-<h3 id="autolink">Automatic Links</h3>
-
-Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:
-
- <http://example.com/>
-
-Markdown will turn this into:
-
- <a href="http://example.com/">http://example.com/</a>
-
-Automatic links for email addresses work similarly, except that
-Markdown will also perform a bit of randomized decimal and hex
-entity-encoding to help obscure your address from address-harvesting
-spambots. For example, Markdown will turn this:
-
- <address@example.com>
-
-into something like this:
-
- <a href="mailto:addre
- ss@example.co
- m">address@exa
- mple.com</a>
-
-which will render in a browser as a clickable link to "address@example.com".
-
-(This sort of entity-encoding trick will indeed fool many, if not
-most, address-harvesting bots, but it definitely won't fool all of
-them. It's better than nothing, but an address published in this way
-will probably eventually start receiving spam.)
-
-
-
-<h3 id="backslash">Backslash Escapes</h3>
-
-Markdown allows you to use backslash escapes to generate literal
-characters which would otherwise have special meaning in Markdown's
-formatting syntax. For example, if you wanted to surround a word with
-literal asterisks (instead of an HTML `<em>` tag), you can backslashes
-before the asterisks, like this:
-
- \*literal asterisks\*
-
-Markdown provides backslash escapes for the following characters:
-
- \ backslash
- ` backtick
- * asterisk
- _ underscore
- {} curly braces
- [] square brackets
- () parentheses
- # hash mark
- + plus sign
- - minus sign (hyphen)
- . dot
- ! exclamation mark
-
+Markdown: Syntax
+================
+
+<ul id="ProjectSubmenu">
+ <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+ <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+ <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+ <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+ <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+
+* [Overview](#overview)
+ * [Philosophy](#philosophy)
+ * [Inline HTML](#html)
+ * [Automatic Escaping for Special Characters](#autoescape)
+* [Block Elements](#block)
+ * [Paragraphs and Line Breaks](#p)
+ * [Headers](#header)
+ * [Blockquotes](#blockquote)
+ * [Lists](#list)
+ * [Code Blocks](#precode)
+ * [Horizontal Rules](#hr)
+* [Span Elements](#span)
+ * [Links](#link)
+ * [Emphasis](#em)
+ * [Code](#code)
+ * [Images](#img)
+* [Miscellaneous](#misc)
+ * [Backslash Escapes](#backslash)
+ * [Automatic Links](#autolink)
+
+
+**Note:** This document is itself written using Markdown; you
+can [see the source for it by adding '.text' to the URL][src].
+
+ [src]: /projects/markdown/syntax.text
+
+* * *
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
+
+Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],
+[Grutatext] [5], and [EtText] [6] -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.
+
+ [1]: http://docutils.sourceforge.net/mirror/setext.html
+ [2]: http://www.aaronsw.com/2002/atx/
+ [3]: http://textism.com/tools/textile/
+ [4]: http://docutils.sourceforge.net/rst.html
+ [5]: http://www.triptico.com/software/grutatxt.html
+ [6]: http://ettext.taint.org/doc/
+
+To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like \*emphasis\*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.
+
+
+
+<h3 id="html">Inline HTML</h3>
+
+Markdown's syntax is intended for one purpose: to be used as a
+format for *writing* for the web.
+
+Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is *not* to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a *publishing* format; Markdown is a *writing*
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.
+
+For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.
+
+The only restrictions are that block-level HTML elements -- e.g. `<div>`,
+`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) `<p>` tags around HTML block-level tags.
+
+For example, to add an HTML table to a Markdown article:
+
+ This is a regular paragraph.
+
+ <table>
+ <tr>
+ <td>Foo</td>
+ </tr>
+ </table>
+
+ This is another regular paragraph.
+
+Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an
+HTML block.
+
+Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's
+link or image syntax, go right ahead.
+
+Unlike block-level HTML tags, Markdown syntax *is* processed within
+span-level tags.
+
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+In HTML, there are two characters that demand special treatment: `<`
+and `&`. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. `<`, and
+`&`.
+
+Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&T', you need to write '`AT&T`'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:
+
+ http://images.google.com/images?num=30&q=larry+bird
+
+you need to encode the URL as:
+
+ http://images.google.com/images?num=30&q=larry+bird
+
+in your anchor tag `href` attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.
+
+Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into `&`.
+
+So, if you want to include a copyright symbol in your article, you can write:
+
+ ©
+
+and Markdown will leave it alone. But if you write:
+
+ AT&T
+
+Markdown will translate it to:
+
+ AT&T
+
+Similarly, because Markdown supports [inline HTML](#html), if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:
+
+ 4 < 5
+
+Markdown will translate it to:
+
+ 4 < 5
+
+However, inside Markdown code spans and blocks, angle brackets and
+ampersands are *always* encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single `<`
+and `&` in your example code needs to be escaped.)
+
+
+* * *
+
+
+<h2 id="block">Block Elements</h2>
+
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a `<br />` tag.
+
+When you *do* want to insert a `<br />` break tag using Markdown, you
+end a line with two or more spaces, then type return.
+
+Yes, this takes a tad more effort to create a `<br />`, but a simplistic
+"every line break is a `<br />`" rule wouldn't work for Markdown.
+Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]
+work best -- and look better -- when you format them with hard breaks.
+
+ [bq]: #blockquote
+ [l]: #list
+
+
+
+<h3 id="header">Headers</h3>
+
+Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
+
+Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:
+
+ This is an H1
+ =============
+
+ This is an H2
+ -------------
+
+Any number of underlining `=`'s or `-`'s will work.
+
+Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:
+
+ # This is an H1
+
+ ## This is an H2
+
+ ###### This is an H6
+
+Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :
+
+ # This is an H1 #
+
+ ## This is an H2 ##
+
+ ### This is an H3 ######
+
+
+<h3 id="blockquote">Blockquotes</h3>
+
+Markdown uses email-style `>` characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a `>` before every line:
+
+ > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+ > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+ > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+ >
+ > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+ > id sem consectetuer libero luctus adipiscing.
+
+Markdown allows you to be lazy and only put the `>` before the first
+line of a hard-wrapped paragraph:
+
+ > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+ Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+ > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+ id sem consectetuer libero luctus adipiscing.
+
+Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of `>`:
+
+ > This is the first level of quoting.
+ >
+ > > This is nested blockquote.
+ >
+ > Back to the first level.
+
+Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:
+
+ > ## This is a header.
+ >
+ > 1. This is the first list item.
+ > 2. This is the second list item.
+ >
+ > Here's some example code:
+ >
+ > return shell_exec("echo $input | $markdown_script");
+
+Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.
+
+
+<h3 id="list">Lists</h3>
+
+Markdown supports ordered (numbered) and unordered (bulleted) lists.
+
+Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:
+
+ * Red
+ * Green
+ * Blue
+
+is equivalent to:
+
+ + Red
+ + Green
+ + Blue
+
+and:
+
+ - Red
+ - Green
+ - Blue
+
+Ordered lists use numbers followed by periods:
+
+ 1. Bird
+ 2. McHale
+ 3. Parish
+
+It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:
+
+ <ol>
+ <li>Bird</li>
+ <li>McHale</li>
+ <li>Parish</li>
+ </ol>
+
+If you instead wrote the list in Markdown like this:
+
+ 1. Bird
+ 1. McHale
+ 1. Parish
+
+or even:
+
+ 3. Bird
+ 1. McHale
+ 8. Parish
+
+you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.
+
+If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.
+
+List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.
+
+To make lists look nice, you can wrap items with hanging indents:
+
+ * Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+ viverra nec, fringilla in, laoreet vitae, risus.
+ * Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+ Suspendisse id sem consectetuer libero luctus adipiscing.
+
+But if you want to be lazy, you don't have to:
+
+ * Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+ viverra nec, fringilla in, laoreet vitae, risus.
+ * Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+ Suspendisse id sem consectetuer libero luctus adipiscing.
+
+If list items are separated by blank lines, Markdown will wrap the
+items in `<p>` tags in the HTML output. For example, this input:
+
+ * Bird
+ * Magic
+
+will turn into:
+
+ <ul>
+ <li>Bird</li>
+ <li>Magic</li>
+ </ul>
+
+But this:
+
+ * Bird
+
+ * Magic
+
+will turn into:
+
+ <ul>
+ <li><p>Bird</p></li>
+ <li><p>Magic</p></li>
+ </ul>
+
+List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:
+
+ 1. This is a list item with two paragraphs. Lorem ipsum dolor
+ sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+ mi posuere lectus.
+
+ Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+ vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+ sit amet velit.
+
+ 2. Suspendisse id sem consectetuer libero luctus adipiscing.
+
+It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:
+
+ * This is a list item with two paragraphs.
+
+ This is the second paragraph in the list item. You're
+ only required to indent the first line. Lorem ipsum dolor
+ sit amet, consectetuer adipiscing elit.
+
+ * Another item in the same list.
+
+To put a blockquote within a list item, the blockquote's `>`
+delimiters need to be indented:
+
+ * A list item with a blockquote:
+
+ > This is a blockquote
+ > inside a list item.
+
+To put a code block within a list item, the code block needs
+to be indented *twice* -- 8 spaces or two tabs:
+
+ * A list item with a code block:
+
+ <code goes here>
+
+
+It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:
+
+ 1986. What a great season.
+
+In other words, a *number-period-space* sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:
+
+ 1986\. What a great season.
+
+
+
+<h3 id="precode">Code Blocks</h3>
+
+Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both `<pre>` and `<code>` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:
+
+ This is a normal paragraph:
+
+ This is a code block.
+
+Markdown will generate:
+
+ <p>This is a normal paragraph:</p>
+
+ <pre><code>This is a code block.
+ </code></pre>
+
+One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:
+
+ Here is an example of AppleScript:
+
+ tell application "Foo"
+ beep
+ end tell
+
+will turn into:
+
+ <p>Here is an example of AppleScript:</p>
+
+ <pre><code>tell application "Foo"
+ beep
+ end tell
+ </code></pre>
+
+A code block continues until it reaches a line that is not indented
+(or the end of the article).
+
+Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:
+
+ <div class="footer">
+ © 2004 Foo Corporation
+ </div>
+
+will turn into:
+
+ <pre><code><div class="footer">
+ &copy; 2004 Foo Corporation
+ </div>
+ </code></pre>
+
+Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.
+
+
+
+<h3 id="hr">Horizontal Rules</h3>
+
+You can produce a horizontal rule tag (`<hr />`) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:
+
+ * * *
+
+ ***
+
+ *****
+
+ - - -
+
+ ---------------------------------------
+
+ _ _ _
+
+
+* * *
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+Markdown supports two style of links: *inline* and *reference*.
+
+In both styles, the link text is delimited by [square brackets].
+
+To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an *optional*
+title for the link, surrounded in quotes. For example:
+
+ This is [an example](http://example.com/ "Title") inline link.
+
+ [This link](http://example.net/) has no title attribute.
+
+Will produce:
+
+ <p>This is <a href="http://example.com/" title="Title">
+ an example</a> inline link.</p>
+
+ <p><a href="http://example.net/">This link</a> has no
+ title attribute.</p>
+
+If you're referring to a local resource on the same server, you can
+use relative paths:
+
+ See my [About](/about/) page for details.
+
+Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:
+
+ This is [an example][id] reference-style link.
+
+You can optionally use a space to separate the sets of brackets:
+
+ This is [an example] [id] reference-style link.
+
+Then, anywhere in the document, you define your link label like this,
+on a line by itself:
+
+ [id]: http://example.com/ "Optional Title Here"
+
+That is:
+
+* Square brackets containing the link identifier (optionally
+ indented from the left margin using up to three spaces);
+* followed by a colon;
+* followed by one or more spaces (or tabs);
+* followed by the URL for the link;
+* optionally followed by a title attribute for the link, enclosed
+ in double or single quotes.
+
+The link URL may, optionally, be surrounded by angle brackets:
+
+ [id]: <http://example.com/> "Optional Title Here"
+
+You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:
+
+ [id]: http://example.com/longish/path/to/resource/here
+ "Optional Title Here"
+
+Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.
+
+Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:
+
+ [link text][a]
+ [link text][A]
+
+are equivalent.
+
+The *implicit link name* shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:
+
+ [Google][]
+
+And then define the link:
+
+ [Google]: http://google.com/
+
+Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:
+
+ Visit [Daring Fireball][] for more information.
+
+And then define the link:
+
+ [Daring Fireball]: http://daringfireball.net/
+
+Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.
+
+Here's an example of reference links in action:
+
+ I get 10 times more traffic from [Google] [1] than from
+ [Yahoo] [2] or [MSN] [3].
+
+ [1]: http://google.com/ "Google"
+ [2]: http://search.yahoo.com/ "Yahoo Search"
+ [3]: http://search.msn.com/ "MSN Search"
+
+Using the implicit link name shortcut, you could instead write:
+
+ I get 10 times more traffic from [Google][] than from
+ [Yahoo][] or [MSN][].
+
+ [google]: http://google.com/ "Google"
+ [yahoo]: http://search.yahoo.com/ "Yahoo Search"
+ [msn]: http://search.msn.com/ "MSN Search"
+
+Both of the above examples will produce the following HTML output:
+
+ <p>I get 10 times more traffic from <a href="http://google.com/"
+ title="Google">Google</a> than from
+ <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+ or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+
+For comparison, here is the same paragraph written using
+Markdown's inline link style:
+
+ I get 10 times more traffic from [Google](http://google.com/ "Google")
+ than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+ [MSN](http://search.msn.com/ "MSN Search").
+
+The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.
+
+With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.
+
+
+<h3 id="em">Emphasis</h3>
+
+Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
+emphasis. Text wrapped with one `*` or `_` will be wrapped with an
+HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
+`<strong>` tag. E.g., this input:
+
+ *single asterisks*
+
+ _single underscores_
+
+ **double asterisks**
+
+ __double underscores__
+
+will produce:
+
+ <em>single asterisks</em>
+
+ <em>single underscores</em>
+
+ <strong>double asterisks</strong>
+
+ <strong>double underscores</strong>
+
+You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.
+
+Emphasis can be used in the middle of a word:
+
+ un*fucking*believable
+
+But if you surround an `*` or `_` with spaces, it'll be treated as a
+literal asterisk or underscore.
+
+To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:
+
+ \*this text is surrounded by literal asterisks\*
+
+
+
+<h3 id="code">Code</h3>
+
+To indicate a span of code, wrap it with backtick quotes (`` ` ``).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:
+
+ Use the `printf()` function.
+
+will produce:
+
+ <p>Use the <code>printf()</code> function.</p>
+
+To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:
+
+ ``There is a literal backtick (`) here.``
+
+which will produce this:
+
+ <p><code>There is a literal backtick (`) here.</code></p>
+
+The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:
+
+ A single backtick in a code span: `` ` ``
+
+ A backtick-delimited string in a code span: `` `foo` ``
+
+will produce:
+
+ <p>A single backtick in a code span: <code>`</code></p>
+
+ <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+
+With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:
+
+ Please don't use any `<blink>` tags.
+
+into:
+
+ <p>Please don't use any <code><blink></code> tags.</p>
+
+You can write this:
+
+ `—` is the decimal-encoded equivalent of `—`.
+
+to produce:
+
+ <p><code>&#8212;</code> is the decimal-encoded
+ equivalent of <code>&mdash;</code>.</p>
+
+
+
+<h3 id="img">Images</h3>
+
+Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.
+
+Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: *inline* and *reference*.
+
+Inline image syntax looks like this:
+
+ 
+
+ 
+
+That is:
+
+* An exclamation mark: `!`;
+* followed by a set of square brackets, containing the `alt`
+ attribute text for the image;
+* followed by a set of parentheses, containing the URL or path to
+ the image, and an optional `title` attribute enclosed in double
+ or single quotes.
+
+Reference-style image syntax looks like this:
+
+ ![Alt text][id]
+
+Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:
+
+ [id]: url/to/image "Optional title attribute"
+
+As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML `<img>` tags.
+
+
+* * *
+
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:
+
+ <http://example.com/>
+
+Markdown will turn this into:
+
+ <a href="http://example.com/">http://example.com/</a>
+
+Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:
+
+ <address@example.com>
+
+into something like this:
+
+ <a href="mailto:addre
+ ss@example.co
+ m">address@exa
+ mple.com</a>
+
+which will render in a browser as a clickable link to "address@example.com".
+
+(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)
+
+
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML `<em>` tag), you can backslashes
+before the asterisks, like this:
+
+ \*literal asterisks\*
+
+Markdown provides backslash escapes for the following characters:
+
+ \ backslash
+ ` backtick
+ * asterisk
+ _ underscore
+ {} curly braces
+ [] square brackets
+ () parentheses
+ # hash mark
+ + plus sign
+ - minus sign (hyphen)
+ . dot
+ ! exclamation mark
+
diff --git a/core/src/test/resources/1.0/Nested blockquotes.html b/core/src/test/resources/1.0/Nested blockquotes.html
old mode 100644
new mode 100755
index d8ec7f8..2a36d9c
--- a/core/src/test/resources/1.0/Nested blockquotes.html
+++ b/core/src/test/resources/1.0/Nested blockquotes.html
@@ -1,9 +1,9 @@
-<blockquote>
- <p>foo</p>
-
- <blockquote>
- <p>bar</p>
- </blockquote>
-
- <p>foo</p>
-</blockquote>
+<blockquote>
+ <p>foo</p>
+
+ <blockquote>
+ <p>bar</p>
+ </blockquote>
+
+ <p>foo</p>
+</blockquote>
diff --git a/core/src/test/resources/1.0/Nested blockquotes.text b/core/src/test/resources/1.0/Nested blockquotes.text
old mode 100644
new mode 100755
index ed3c624..35917e9
--- a/core/src/test/resources/1.0/Nested blockquotes.text
+++ b/core/src/test/resources/1.0/Nested blockquotes.text
@@ -1,5 +1,5 @@
-> foo
->
-> > bar
->
-> foo
+> foo
+>
+> > bar
+>
+> foo
diff --git a/core/src/test/resources/1.0/Ordered and unordered lists.html b/core/src/test/resources/1.0/Ordered and unordered lists.html
old mode 100644
new mode 100755
index ce85c3a..81b97f7
--- a/core/src/test/resources/1.0/Ordered and unordered lists.html
+++ b/core/src/test/resources/1.0/Ordered and unordered lists.html
@@ -1,137 +1,137 @@
-<h2>Unordered</h2>
-
-<p>Asterisks tight:</p>
-
-<ul>
-<li>asterisk 1</li>
-<li>asterisk 2</li>
-<li>asterisk 3</li>
-</ul>
-
-<p>Asterisks loose:</p>
-
-<ul>
-<li><p>asterisk 1</p></li>
-<li><p>asterisk 2</p></li>
-<li><p>asterisk 3</p></li>
-</ul>
-
-<hr />
-
-<p>Pluses tight:</p>
-
-<ul>
-<li>Plus 1</li>
-<li>Plus 2</li>
-<li>Plus 3</li>
-</ul>
-
-<p>Pluses loose:</p>
-
-<ul>
-<li><p>Plus 1</p></li>
-<li><p>Plus 2</p></li>
-<li><p>Plus 3</p></li>
-</ul>
-
-<hr />
-
-<p>Minuses tight:</p>
-
-<ul>
-<li>Minus 1</li>
-<li>Minus 2</li>
-<li>Minus 3</li>
-</ul>
-
-<p>Minuses loose:</p>
-
-<ul>
-<li><p>Minus 1</p></li>
-<li><p>Minus 2</p></li>
-<li><p>Minus 3</p></li>
-</ul>
-
-<h2>Ordered</h2>
-
-<p>Tight:</p>
-
-<ol>
-<li>First</li>
-<li>Second</li>
-<li>Third</li>
-</ol>
-
-<p>and:</p>
-
-<ol>
-<li>One</li>
-<li>Two</li>
-<li>Three</li>
-</ol>
-
-<p>Loose using tabs:</p>
-
-<ol>
-<li><p>First</p></li>
-<li><p>Second</p></li>
-<li><p>Third</p></li>
-</ol>
-
-<p>and using spaces:</p>
-
-<ol>
-<li><p>One</p></li>
-<li><p>Two</p></li>
-<li><p>Three</p></li>
-</ol>
-
-<p>Multiple paragraphs:</p>
-
-<ol>
-<li><p>Item 1, graf one.</p>
-
-<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
-back.</p></li>
-<li><p>Item 2.</p></li>
-<li><p>Item 3.</p></li>
-</ol>
-
-<h2>Nested</h2>
-
-<ul>
-<li>Tab
-<ul>
-<li>Tab
-<ul>
-<li>Tab</li>
-</ul></li>
-</ul></li>
-</ul>
-
-<p>Here's another:</p>
-
-<ol>
-<li>First</li>
-<li>Second:
-<ul>
-<li>Fee</li>
-<li>Fie</li>
-<li>Foe</li>
-</ul></li>
-<li>Third</li>
-</ol>
-
-<p>Same thing but with paragraphs:</p>
-
-<ol>
-<li><p>First</p></li>
-<li><p>Second:</p>
-
-<ul>
-<li>Fee</li>
-<li>Fie</li>
-<li>Foe</li>
-</ul></li>
-<li><p>Third</p></li>
-</ol>
+<h2>Unordered</h2>
+
+<p>Asterisks tight:</p>
+
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+
+<p>Asterisks loose:</p>
+
+<ul>
+<li><p>asterisk 1</p></li>
+<li><p>asterisk 2</p></li>
+<li><p>asterisk 3</p></li>
+</ul>
+
+<hr />
+
+<p>Pluses tight:</p>
+
+<ul>
+<li>Plus 1</li>
+<li>Plus 2</li>
+<li>Plus 3</li>
+</ul>
+
+<p>Pluses loose:</p>
+
+<ul>
+<li><p>Plus 1</p></li>
+<li><p>Plus 2</p></li>
+<li><p>Plus 3</p></li>
+</ul>
+
+<hr />
+
+<p>Minuses tight:</p>
+
+<ul>
+<li>Minus 1</li>
+<li>Minus 2</li>
+<li>Minus 3</li>
+</ul>
+
+<p>Minuses loose:</p>
+
+<ul>
+<li><p>Minus 1</p></li>
+<li><p>Minus 2</p></li>
+<li><p>Minus 3</p></li>
+</ul>
+
+<h2>Ordered</h2>
+
+<p>Tight:</p>
+
+<ol>
+<li>First</li>
+<li>Second</li>
+<li>Third</li>
+</ol>
+
+<p>and:</p>
+
+<ol>
+<li>One</li>
+<li>Two</li>
+<li>Three</li>
+</ol>
+
+<p>Loose using tabs:</p>
+
+<ol>
+<li><p>First</p></li>
+<li><p>Second</p></li>
+<li><p>Third</p></li>
+</ol>
+
+<p>and using spaces:</p>
+
+<ol>
+<li><p>One</p></li>
+<li><p>Two</p></li>
+<li><p>Three</p></li>
+</ol>
+
+<p>Multiple paragraphs:</p>
+
+<ol>
+<li><p>Item 1, graf one.</p>
+
+<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
+back.</p></li>
+<li><p>Item 2.</p></li>
+<li><p>Item 3.</p></li>
+</ol>
+
+<h2>Nested</h2>
+
+<ul>
+<li>Tab
+<ul>
+<li>Tab
+<ul>
+<li>Tab</li>
+</ul></li>
+</ul></li>
+</ul>
+
+<p>Here's another:</p>
+
+<ol>
+<li>First</li>
+<li>Second:
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li>Third</li>
+</ol>
+
+<p>Same thing but with paragraphs:</p>
+
+<ol>
+<li><p>First</p></li>
+<li><p>Second:</p>
+
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li><p>Third</p></li>
+</ol>
diff --git a/core/src/test/resources/1.0/Ordered and unordered lists.text b/core/src/test/resources/1.0/Ordered and unordered lists.text
old mode 100644
new mode 100755
index 621db58..5f104d4
--- a/core/src/test/resources/1.0/Ordered and unordered lists.text
+++ b/core/src/test/resources/1.0/Ordered and unordered lists.text
@@ -1,122 +1,122 @@
-## Unordered
-
-Asterisks tight:
-
-* asterisk 1
-* asterisk 2
-* asterisk 3
-
-
-Asterisks loose:
-
-* asterisk 1
-
-* asterisk 2
-
-* asterisk 3
-
-* * *
-
-Pluses tight:
-
-+ Plus 1
-+ Plus 2
-+ Plus 3
-
-
-Pluses loose:
-
-+ Plus 1
-
-+ Plus 2
-
-+ Plus 3
-
-* * *
-
-
-Minuses tight:
-
-- Minus 1
-- Minus 2
-- Minus 3
-
-
-Minuses loose:
-
-- Minus 1
-
-- Minus 2
-
-- Minus 3
-
-
-## Ordered
-
-Tight:
-
-1. First
-2. Second
-3. Third
-
-and:
-
-1. One
-2. Two
-3. Three
-
-
-Loose using tabs:
-
-1. First
-
-2. Second
-
-3. Third
-
-and using spaces:
-
-1. One
-
-2. Two
-
-3. Three
-
-Multiple paragraphs:
-
-1. Item 1, graf one.
-
- Item 2. graf two. The quick brown fox jumped over the lazy dog's
- back.
-
-2. Item 2.
-
-3. Item 3.
-
-
-
-## Nested
-
-* Tab
- * Tab
- * Tab
-
-Here's another:
-
-1. First
-2. Second:
- * Fee
- * Fie
- * Foe
-3. Third
-
-Same thing but with paragraphs:
-
-1. First
-
-2. Second:
- * Fee
- * Fie
- * Foe
-
-3. Third
+## Unordered
+
+Asterisks tight:
+
+* asterisk 1
+* asterisk 2
+* asterisk 3
+
+
+Asterisks loose:
+
+* asterisk 1
+
+* asterisk 2
+
+* asterisk 3
+
+* * *
+
+Pluses tight:
+
++ Plus 1
++ Plus 2
++ Plus 3
+
+
+Pluses loose:
+
++ Plus 1
+
++ Plus 2
+
++ Plus 3
+
+* * *
+
+
+Minuses tight:
+
+- Minus 1
+- Minus 2
+- Minus 3
+
+
+Minuses loose:
+
+- Minus 1
+
+- Minus 2
+
+- Minus 3
+
+
+## Ordered
+
+Tight:
+
+1. First
+2. Second
+3. Third
+
+and:
+
+1. One
+2. Two
+3. Three
+
+
+Loose using tabs:
+
+1. First
+
+2. Second
+
+3. Third
+
+and using spaces:
+
+1. One
+
+2. Two
+
+3. Three
+
+Multiple paragraphs:
+
+1. Item 1, graf one.
+
+ Item 2. graf two. The quick brown fox jumped over the lazy dog's
+ back.
+
+2. Item 2.
+
+3. Item 3.
+
+
+
+## Nested
+
+* Tab
+ * Tab
+ * Tab
+
+Here's another:
+
+1. First
+2. Second:
+ * Fee
+ * Fie
+ * Foe
+3. Third
+
+Same thing but with paragraphs:
+
+1. First
+
+2. Second:
+ * Fee
+ * Fie
+ * Foe
+
+3. Third
diff --git a/core/src/test/resources/1.0/Strong and em together.html b/core/src/test/resources/1.0/Strong and em together.html
old mode 100644
new mode 100755
index 71ec78c..3404517
--- a/core/src/test/resources/1.0/Strong and em together.html
+++ b/core/src/test/resources/1.0/Strong and em together.html
@@ -1,7 +1,7 @@
-<p><strong><em>This is strong and em.</em></strong></p>
-
-<p>So is <strong><em>this</em></strong> word.</p>
-
-<p><strong><em>This is strong and em.</em></strong></p>
-
-<p>So is <strong><em>this</em></strong> word.</p>
+<p><strong><em>This is strong and em.</em></strong></p>
+
+<p>So is <strong><em>this</em></strong> word.</p>
+
+<p><strong><em>This is strong and em.</em></strong></p>
+
+<p>So is <strong><em>this</em></strong> word.</p>
diff --git a/core/src/test/resources/1.0/Strong and em together.text b/core/src/test/resources/1.0/Strong and em together.text
old mode 100644
new mode 100755
index 95ee690..cbb2883
--- a/core/src/test/resources/1.0/Strong and em together.text
+++ b/core/src/test/resources/1.0/Strong and em together.text
@@ -1,7 +1,7 @@
-***This is strong and em.***
-
-So is ***this*** word.
-
-___This is strong and em.___
-
-So is ___this___ word.
+***This is strong and em.***
+
+So is ***this*** word.
+
+___This is strong and em.___
+
+So is ___this___ word.
diff --git a/core/src/test/resources/1.0/Tabs.html b/core/src/test/resources/1.0/Tabs.html
old mode 100644
new mode 100755
index 3301ba8..c83fd98
--- a/core/src/test/resources/1.0/Tabs.html
+++ b/core/src/test/resources/1.0/Tabs.html
@@ -1,25 +1,25 @@
-<ul>
-<li><p>this is a list item
-indented with tabs</p></li>
-<li><p>this is a list item
-indented with spaces</p></li>
-</ul>
-
-<p>Code:</p>
-
-<pre><code>this code block is indented by one tab
-</code></pre>
-
-<p>And:</p>
-
-<pre><code> this code block is indented by two tabs
-</code></pre>
-
-<p>And:</p>
-
-<pre><code>+ this is an example list item
- indented with tabs
-
-+ this is an example list item
- indented with spaces
-</code></pre>
+<ul>
+<li><p>this is a list item
+indented with tabs</p></li>
+<li><p>this is a list item
+indented with spaces</p></li>
+</ul>
+
+<p>Code:</p>
+
+<pre><code>this code block is indented by one tab
+</code></pre>
+
+<p>And:</p>
+
+<pre><code> this code block is indented by two tabs
+</code></pre>
+
+<p>And:</p>
+
+<pre><code>+ this is an example list item
+ indented with tabs
+
++ this is an example list item
+ indented with spaces
+</code></pre>
diff --git a/core/src/test/resources/1.0/Tabs.text b/core/src/test/resources/1.0/Tabs.text
old mode 100644
new mode 100755
index 589d113..0240df3
--- a/core/src/test/resources/1.0/Tabs.text
+++ b/core/src/test/resources/1.0/Tabs.text
@@ -1,21 +1,21 @@
-+ this is a list item
- indented with tabs
-
-+ this is a list item
- indented with spaces
-
-Code:
-
- this code block is indented by one tab
-
-And:
-
- this code block is indented by two tabs
-
-And:
-
- + this is an example list item
- indented with tabs
-
- + this is an example list item
- indented with spaces
++ this is a list item
+ indented with tabs
+
++ this is a list item
+ indented with spaces
+
+Code:
+
+ this code block is indented by one tab
+
+And:
+
+ this code block is indented by two tabs
+
+And:
+
+ + this is an example list item
+ indented with tabs
+
+ + this is an example list item
+ indented with spaces
diff --git a/core/src/test/resources/1.0/Tidyness.html b/core/src/test/resources/1.0/Tidyness.html
old mode 100644
new mode 100755
index f2a8ce7..320efec
--- a/core/src/test/resources/1.0/Tidyness.html
+++ b/core/src/test/resources/1.0/Tidyness.html
@@ -1,8 +1,8 @@
-<blockquote>
-<p>A list within a blockquote:</p>
-<ul>
-<li>asterisk 1</li>
-<li>asterisk 2</li>
-<li>asterisk 3</li>
-</ul>
-</blockquote>
+<blockquote>
+<p>A list within a blockquote:</p>
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+</blockquote>
diff --git a/core/src/test/resources/1.0/Tidyness.text b/core/src/test/resources/1.0/Tidyness.text
old mode 100644
new mode 100755
index 5f18b8d..e811339
--- a/core/src/test/resources/1.0/Tidyness.text
+++ b/core/src/test/resources/1.0/Tidyness.text
@@ -1,5 +1,5 @@
-> A list within a blockquote:
->
-> * asterisk 1
-> * asterisk 2
-> * asterisk 3
+> A list within a blockquote:
+>
+> * asterisk 1
+> * asterisk 2
+> * asterisk 3
diff --git a/core/src/test/resources/1.1/basics/Amps and angle encoding.text b/core/src/test/resources/1.1/basics/Amps and angle encoding.text
old mode 100644
new mode 100755
index 0e9527f..d898199
--- a/core/src/test/resources/1.1/basics/Amps and angle encoding.text
+++ b/core/src/test/resources/1.1/basics/Amps and angle encoding.text
@@ -1,21 +1,21 @@
-AT&T has an ampersand in their name.
-
-AT&T is another way to write it.
-
-This & that.
-
-4 < 5.
-
-6 > 5.
-
-Here's a [link] [1] with an ampersand in the URL.
-
-Here's a link with an amersand in the link text: [AT&T] [2].
-
-Here's an inline [link](/script?foo=1&bar=2).
-
-Here's an inline [link](</script?foo=1&bar=2>).
-
-
-[1]: http://example.com/?foo=1&bar=2
+AT&T has an ampersand in their name.
+
+AT&T is another way to write it.
+
+This & that.
+
+4 < 5.
+
+6 > 5.
+
+Here's a [link] [1] with an ampersand in the URL.
+
+Here's a link with an amersand in the link text: [AT&T] [2].
+
+Here's an inline [link](/script?foo=1&bar=2).
+
+Here's an inline [link](</script?foo=1&bar=2>).
+
+
+[1]: http://example.com/?foo=1&bar=2
[2]: http://att.com/ "AT&T"
\ No newline at end of file
diff --git a/core/src/test/resources/1.1/basics/Amps and angle encoding.xhtml b/core/src/test/resources/1.1/basics/Amps and angle encoding.xhtml
old mode 100644
new mode 100755
index 9606860..9923605
--- a/core/src/test/resources/1.1/basics/Amps and angle encoding.xhtml
+++ b/core/src/test/resources/1.1/basics/Amps and angle encoding.xhtml
@@ -1,17 +1,17 @@
-<p>AT&T has an ampersand in their name.</p>
-
-<p>AT&T is another way to write it.</p>
-
-<p>This & that.</p>
-
-<p>4 < 5.</p>
-
-<p>6 > 5.</p>
-
-<p>Here's a <a href="http://example.com/?foo=1&bar=2">link</a> with an ampersand in the URL.</p>
-
-<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&T">AT&T</a>.</p>
-
-<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
-
-<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
+<p>AT&T has an ampersand in their name.</p>
+
+<p>AT&T is another way to write it.</p>
+
+<p>This & that.</p>
+
+<p>4 < 5.</p>
+
+<p>6 > 5.</p>
+
+<p>Here's a <a href="http://example.com/?foo=1&bar=2">link</a> with an ampersand in the URL.</p>
+
+<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&T">AT&T</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p>
diff --git a/core/src/test/resources/1.1/basics/Auto links.text b/core/src/test/resources/1.1/basics/Auto links.text
old mode 100644
new mode 100755
index abbc488..9e4380e
--- a/core/src/test/resources/1.1/basics/Auto links.text
+++ b/core/src/test/resources/1.1/basics/Auto links.text
@@ -1,13 +1,13 @@
-Link: <http://example.com/>.
-
-With an ampersand: <http://example.com/?foo=1&bar=2>
-
-* In a list?
-* <http://example.com/>
-* It should.
-
-> Blockquoted: <http://example.com/>
-
-Auto-links should not occur here: `<http://example.com/>`
-
+Link: <http://example.com/>.
+
+With an ampersand: <http://example.com/?foo=1&bar=2>
+
+* In a list?
+* <http://example.com/>
+* It should.
+
+> Blockquoted: <http://example.com/>
+
+Auto-links should not occur here: `<http://example.com/>`
+
or here: <http://example.com/>
\ No newline at end of file
diff --git a/core/src/test/resources/1.1/basics/Auto links.xhtml b/core/src/test/resources/1.1/basics/Auto links.xhtml
old mode 100644
new mode 100755
index f8df985..12800bc
--- a/core/src/test/resources/1.1/basics/Auto links.xhtml
+++ b/core/src/test/resources/1.1/basics/Auto links.xhtml
@@ -1,18 +1,18 @@
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
-
-<p>With an ampersand: <a href="http://example.com/?foo=1&bar=2">http://example.com/?foo=1&bar=2</a></p>
-
-<ul>
-<li>In a list?</li>
-<li><a href="http://example.com/">http://example.com/</a></li>
-<li>It should.</li>
-</ul>
-
-<blockquote>
- <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
-</blockquote>
-
-<p>Auto-links should not occur here: <code><http://example.com/></code></p>
-
-<pre><code>or here: <http://example.com/>
-</code></pre>
+<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
+
+<p>With an ampersand: <a href="http://example.com/?foo=1&bar=2">http://example.com/?foo=1&bar=2</a></p>
+
+<ul>
+<li>In a list?</li>
+<li><a href="http://example.com/">http://example.com/</a></li>
+<li>It should.</li>
+</ul>
+
+<blockquote>
+ <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
+</blockquote>
+
+<p>Auto-links should not occur here: <code><http://example.com/></code></p>
+
+<pre><code>or here: <http://example.com/>
+</code></pre>
diff --git a/core/src/test/resources/1.1/basics/Backslash escapes.text b/core/src/test/resources/1.1/basics/Backslash escapes.text
old mode 100644
new mode 100755
index 5b014cb..266bb48
--- a/core/src/test/resources/1.1/basics/Backslash escapes.text
+++ b/core/src/test/resources/1.1/basics/Backslash escapes.text
@@ -1,120 +1,120 @@
-These should all get escaped:
-
-Backslash: \\
-
-Backtick: \`
-
-Asterisk: \*
-
-Underscore: \_
-
-Left brace: \{
-
-Right brace: \}
-
-Left bracket: \[
-
-Right bracket: \]
-
-Left paren: \(
-
-Right paren: \)
-
-Greater-than: \>
-
-Hash: \#
-
-Period: \.
-
-Bang: \!
-
-Plus: \+
-
-Minus: \-
-
-
-
-These should not, because they occur within a code block:
-
- Backslash: \\
-
- Backtick: \`
-
- Asterisk: \*
-
- Underscore: \_
-
- Left brace: \{
-
- Right brace: \}
-
- Left bracket: \[
-
- Right bracket: \]
-
- Left paren: \(
-
- Right paren: \)
-
- Greater-than: \>
-
- Hash: \#
-
- Period: \.
-
- Bang: \!
-
- Plus: \+
-
- Minus: \-
-
-
-Nor should these, which occur in code spans:
-
-Backslash: `\\`
-
-Backtick: `` \` ``
-
-Asterisk: `\*`
-
-Underscore: `\_`
-
-Left brace: `\{`
-
-Right brace: `\}`
-
-Left bracket: `\[`
-
-Right bracket: `\]`
-
-Left paren: `\(`
-
-Right paren: `\)`
-
-Greater-than: `\>`
-
-Hash: `\#`
-
-Period: `\.`
-
-Bang: `\!`
-
-Plus: `\+`
-
-Minus: `\-`
-
-
-These should get escaped, even though they're matching pairs for
-other Markdown constructs:
-
-\*asterisks\*
-
-\_underscores\_
-
-\`backticks\`
-
-This is a code span with a literal backslash-backtick sequence: `` \` ``
-
-This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.
-
-This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.
+These should all get escaped:
+
+Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \>
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+
+
+
+These should not, because they occur within a code block:
+
+ Backslash: \\
+
+ Backtick: \`
+
+ Asterisk: \*
+
+ Underscore: \_
+
+ Left brace: \{
+
+ Right brace: \}
+
+ Left bracket: \[
+
+ Right bracket: \]
+
+ Left paren: \(
+
+ Right paren: \)
+
+ Greater-than: \>
+
+ Hash: \#
+
+ Period: \.
+
+ Bang: \!
+
+ Plus: \+
+
+ Minus: \-
+
+
+Nor should these, which occur in code spans:
+
+Backslash: `\\`
+
+Backtick: `` \` ``
+
+Asterisk: `\*`
+
+Underscore: `\_`
+
+Left brace: `\{`
+
+Right brace: `\}`
+
+Left bracket: `\[`
+
+Right bracket: `\]`
+
+Left paren: `\(`
+
+Right paren: `\)`
+
+Greater-than: `\>`
+
+Hash: `\#`
+
+Period: `\.`
+
+Bang: `\!`
+
+Plus: `\+`
+
+Minus: `\-`
+
+
+These should get escaped, even though they're matching pairs for
+other Markdown constructs:
+
+\*asterisks\*
+
+\_underscores\_
+
+\`backticks\`
+
+This is a code span with a literal backslash-backtick sequence: `` \` ``
+
+This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.
+
+This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.
diff --git a/core/src/test/resources/1.1/basics/Backslash escapes.xhtml b/core/src/test/resources/1.1/basics/Backslash escapes.xhtml
old mode 100644
new mode 100755
index 29870da..93e8ca9
--- a/core/src/test/resources/1.1/basics/Backslash escapes.xhtml
+++ b/core/src/test/resources/1.1/basics/Backslash escapes.xhtml
@@ -1,118 +1,118 @@
-<p>These should all get escaped:</p>
-
-<p>Backslash: \</p>
-
-<p>Backtick: `</p>
-
-<p>Asterisk: *</p>
-
-<p>Underscore: _</p>
-
-<p>Left brace: {</p>
-
-<p>Right brace: }</p>
-
-<p>Left bracket: [</p>
-
-<p>Right bracket: ]</p>
-
-<p>Left paren: (</p>
-
-<p>Right paren: )</p>
-
-<p>Greater-than: ></p>
-
-<p>Hash: #</p>
-
-<p>Period: .</p>
-
-<p>Bang: !</p>
-
-<p>Plus: +</p>
-
-<p>Minus: -</p>
-
-<p>These should not, because they occur within a code block:</p>
-
-<pre><code>Backslash: \\
-
-Backtick: \`
-
-Asterisk: \*
-
-Underscore: \_
-
-Left brace: \{
-
-Right brace: \}
-
-Left bracket: \[
-
-Right bracket: \]
-
-Left paren: \(
-
-Right paren: \)
-
-Greater-than: \>
-
-Hash: \#
-
-Period: \.
-
-Bang: \!
-
-Plus: \+
-
-Minus: \-
-</code></pre>
-
-<p>Nor should these, which occur in code spans:</p>
-
-<p>Backslash: <code>\\</code></p>
-
-<p>Backtick: <code>\`</code></p>
-
-<p>Asterisk: <code>\*</code></p>
-
-<p>Underscore: <code>\_</code></p>
-
-<p>Left brace: <code>\{</code></p>
-
-<p>Right brace: <code>\}</code></p>
-
-<p>Left bracket: <code>\[</code></p>
-
-<p>Right bracket: <code>\]</code></p>
-
-<p>Left paren: <code>\(</code></p>
-
-<p>Right paren: <code>\)</code></p>
-
-<p>Greater-than: <code>\></code></p>
-
-<p>Hash: <code>\#</code></p>
-
-<p>Period: <code>\.</code></p>
-
-<p>Bang: <code>\!</code></p>
-
-<p>Plus: <code>\+</code></p>
-
-<p>Minus: <code>\-</code></p>
-
-
-<p>These should get escaped, even though they're matching pairs for
-other Markdown constructs:</p>
-
-<p>*asterisks*</p>
-
-<p>_underscores_</p>
-
-<p>`backticks`</p>
-
-<p>This is a code span with a literal backslash-backtick sequence: <code>\`</code></p>
-
-<p>This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.</p>
-
-<p>This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.</p>
+<p>These should all get escaped:</p>
+
+<p>Backslash: \</p>
+
+<p>Backtick: `</p>
+
+<p>Asterisk: *</p>
+
+<p>Underscore: _</p>
+
+<p>Left brace: {</p>
+
+<p>Right brace: }</p>
+
+<p>Left bracket: [</p>
+
+<p>Right bracket: ]</p>
+
+<p>Left paren: (</p>
+
+<p>Right paren: )</p>
+
+<p>Greater-than: ></p>
+
+<p>Hash: #</p>
+
+<p>Period: .</p>
+
+<p>Bang: !</p>
+
+<p>Plus: +</p>
+
+<p>Minus: -</p>
+
+<p>These should not, because they occur within a code block:</p>
+
+<pre><code>Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \>
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+</code></pre>
+
+<p>Nor should these, which occur in code spans:</p>
+
+<p>Backslash: <code>\\</code></p>
+
+<p>Backtick: <code>\`</code></p>
+
+<p>Asterisk: <code>\*</code></p>
+
+<p>Underscore: <code>\_</code></p>
+
+<p>Left brace: <code>\{</code></p>
+
+<p>Right brace: <code>\}</code></p>
+
+<p>Left bracket: <code>\[</code></p>
+
+<p>Right bracket: <code>\]</code></p>
+
+<p>Left paren: <code>\(</code></p>
+
+<p>Right paren: <code>\)</code></p>
+
+<p>Greater-than: <code>\></code></p>
+
+<p>Hash: <code>\#</code></p>
+
+<p>Period: <code>\.</code></p>
+
+<p>Bang: <code>\!</code></p>
+
+<p>Plus: <code>\+</code></p>
+
+<p>Minus: <code>\-</code></p>
+
+
+<p>These should get escaped, even though they're matching pairs for
+other Markdown constructs:</p>
+
+<p>*asterisks*</p>
+
+<p>_underscores_</p>
+
+<p>`backticks`</p>
+
+<p>This is a code span with a literal backslash-backtick sequence: <code>\`</code></p>
+
+<p>This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.</p>
+
+<p>This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.</p>
diff --git a/core/src/test/resources/1.1/basics/Blockquotes with code blocks.text b/core/src/test/resources/1.1/basics/Blockquotes with code blocks.text
old mode 100644
new mode 100755
index c31d171..1132c95
--- a/core/src/test/resources/1.1/basics/Blockquotes with code blocks.text
+++ b/core/src/test/resources/1.1/basics/Blockquotes with code blocks.text
@@ -1,11 +1,11 @@
-> Example:
->
-> sub status {
-> print "working";
-> }
->
-> Or:
->
-> sub status {
-> return "working";
-> }
+> Example:
+>
+> sub status {
+> print "working";
+> }
+>
+> Or:
+>
+> sub status {
+> return "working";
+> }
diff --git a/core/src/test/resources/1.1/basics/Blockquotes with code blocks.xhtml b/core/src/test/resources/1.1/basics/Blockquotes with code blocks.xhtml
old mode 100644
new mode 100755
index 990202a..3bdb552
--- a/core/src/test/resources/1.1/basics/Blockquotes with code blocks.xhtml
+++ b/core/src/test/resources/1.1/basics/Blockquotes with code blocks.xhtml
@@ -1,15 +1,15 @@
-<blockquote>
- <p>Example:</p>
-
-<pre><code>sub status {
- print "working";
-}
-</code></pre>
-
- <p>Or:</p>
-
-<pre><code>sub status {
- return "working";
-}
-</code></pre>
-</blockquote>
+<blockquote>
+ <p>Example:</p>
+
+<pre><code>sub status {
+ print "working";
+}
+</code></pre>
+
+ <p>Or:</p>
+
+<pre><code>sub status {
+ return "working";
+}
+</code></pre>
+</blockquote>
diff --git a/core/src/test/resources/1.1/basics/Code Blocks.text b/core/src/test/resources/1.1/basics/Code Blocks.text
old mode 100644
new mode 100755
index b54b092..b9f7c23
--- a/core/src/test/resources/1.1/basics/Code Blocks.text
+++ b/core/src/test/resources/1.1/basics/Code Blocks.text
@@ -1,14 +1,14 @@
- code block on the first line
-
-Regular text.
-
- code block indented by spaces
-
-Regular text.
-
- the lines in this block
- all contain trailing spaces
-
-Regular Text.
-
+ code block on the first line
+
+Regular text.
+
+ code block indented by spaces
+
+Regular text.
+
+ the lines in this block
+ all contain trailing spaces
+
+Regular Text.
+
code block on the last line
\ No newline at end of file
diff --git a/core/src/test/resources/1.1/basics/Code Blocks.xhtml b/core/src/test/resources/1.1/basics/Code Blocks.xhtml
old mode 100644
new mode 100755
index 32703f5..806a203
--- a/core/src/test/resources/1.1/basics/Code Blocks.xhtml
+++ b/core/src/test/resources/1.1/basics/Code Blocks.xhtml
@@ -1,18 +1,18 @@
-<pre><code>code block on the first line
-</code></pre>
-
-<p>Regular text.</p>
-
-<pre><code>code block indented by spaces
-</code></pre>
-
-<p>Regular text.</p>
-
-<pre><code>the lines in this block
-all contain trailing spaces
-</code></pre>
-
-<p>Regular Text.</p>
-
-<pre><code>code block on the last line
-</code></pre>
+<pre><code>code block on the first line
+</code></pre>
+
+<p>Regular text.</p>
+
+<pre><code>code block indented by spaces
+</code></pre>
+
+<p>Regular text.</p>
+
+<pre><code>the lines in this block
+all contain trailing spaces
+</code></pre>
+
+<p>Regular Text.</p>
+
+<pre><code>code block on the last line
+</code></pre>
diff --git a/core/src/test/resources/1.1/basics/Code Spans.text b/core/src/test/resources/1.1/basics/Code Spans.text
old mode 100644
new mode 100755
index 5c229c7..8608c02
--- a/core/src/test/resources/1.1/basics/Code Spans.text
+++ b/core/src/test/resources/1.1/basics/Code Spans.text
@@ -1,5 +1,5 @@
-`<test a="` content of attribute `">`
-
-Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span>
-
+`<test a="` content of attribute `">`
+
+Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span>
+
Here's how you put `` `backticks` `` in a code span.
\ No newline at end of file
diff --git a/core/src/test/resources/1.1/basics/Code Spans.xhtml b/core/src/test/resources/1.1/basics/Code Spans.xhtml
old mode 100644
new mode 100755
index b057457..b6950fd
--- a/core/src/test/resources/1.1/basics/Code Spans.xhtml
+++ b/core/src/test/resources/1.1/basics/Code Spans.xhtml
@@ -1,5 +1,5 @@
-<p><code><test a="</code> content of attribute <code>"></code></p>
-
-<p>Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span></p>
-
-<p>Here's how you put <code>`backticks`</code> in a code span.</p>
+<p><code><test a="</code> content of attribute <code>"></code></p>
+
+<p>Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span></p>
+
+<p>Here's how you put <code>`backticks`</code> in a code span.</p>
diff --git a/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.text b/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.text
old mode 100644
new mode 100755
index f8a5b27..94acad8
--- a/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.text
+++ b/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.text
@@ -1,8 +1,8 @@
-In Markdown 1.0.0 and earlier. Version
-8. This line turns into a list item.
-Because a hard-wrapped line in the
-middle of a paragraph looked like a
-list item.
-
-Here's one with a bullet.
-* criminey.
+In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.
+
+Here's one with a bullet.
+* criminey.
diff --git a/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.xhtml b/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.xhtml
old mode 100644
new mode 100755
index e21ac79..c7a7277
--- a/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.xhtml
+++ b/core/src/test/resources/1.1/basics/Hard-wrapped paragraphs with list-like lines.xhtml
@@ -1,8 +1,8 @@
-<p>In Markdown 1.0.0 and earlier. Version
-8. This line turns into a list item.
-Because a hard-wrapped line in the
-middle of a paragraph looked like a
-list item.</p>
-
-<p>Here's one with a bullet.
-* criminey.</p>
+<p>In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.</p>
+
+<p>Here's one with a bullet.
+* criminey.</p>
diff --git a/core/src/test/resources/1.1/basics/Horizontal rules.text b/core/src/test/resources/1.1/basics/Horizontal rules.text
old mode 100644
new mode 100755
index 1594bda..6a51dac
--- a/core/src/test/resources/1.1/basics/Horizontal rules.text
+++ b/core/src/test/resources/1.1/basics/Horizontal rules.text
@@ -1,67 +1,67 @@
-Dashes:
-
----
-
- ---
-
- ---
-
- ---
-
- ---
-
-- - -
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
-
-Asterisks:
-
-***
-
- ***
-
- ***
-
- ***
-
- ***
-
-* * *
-
- * * *
-
- * * *
-
- * * *
-
- * * *
-
-
-Underscores:
-
-___
-
- ___
-
- ___
-
- ___
-
- ___
-
-_ _ _
-
- _ _ _
-
- _ _ _
-
- _ _ _
-
- _ _ _
+Dashes:
+
+---
+
+ ---
+
+ ---
+
+ ---
+
+ ---
+
+- - -
+
+ - - -
+
+ - - -
+
+ - - -
+
+ - - -
+
+
+Asterisks:
+
+***
+
+ ***
+
+ ***
+
+ ***
+
+ ***
+
+* * *
+
+ * * *
+
+ * * *
+
+ * * *
+
+ * * *
+
+
+Underscores:
+
+___
+
+ ___
+
+ ___
+
+ ___
+
+ ___
+
+_ _ _
+
+ _ _ _
+
+ _ _ _
+
+ _ _ _
+
+ _ _ _
diff --git a/core/src/test/resources/1.1/basics/Horizontal rules.xhtml b/core/src/test/resources/1.1/basics/Horizontal rules.xhtml
old mode 100644
new mode 100755
index 2dc2ab6..4b5574c
--- a/core/src/test/resources/1.1/basics/Horizontal rules.xhtml
+++ b/core/src/test/resources/1.1/basics/Horizontal rules.xhtml
@@ -1,71 +1,71 @@
-<p>Dashes:</p>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>---
-</code></pre>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>- - -
-</code></pre>
-
-<p>Asterisks:</p>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>***
-</code></pre>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>* * *
-</code></pre>
-
-<p>Underscores:</p>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>___
-</code></pre>
-
-<hr />
-
-<hr />
-
-<hr />
-
-<hr />
-
-<pre><code>_ _ _
-</code></pre>
+<p>Dashes:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>---
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>- - -
+</code></pre>
+
+<p>Asterisks:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>***
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>* * *
+</code></pre>
+
+<p>Underscores:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>___
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>_ _ _
+</code></pre>
diff --git a/core/src/test/resources/1.1/basics/Images.text b/core/src/test/resources/1.1/basics/Images.text
old mode 100644
new mode 100755
index 5707590..17dac72
--- a/core/src/test/resources/1.1/basics/Images.text
+++ b/core/src/test/resources/1.1/basics/Images.text
@@ -1,26 +1,26 @@
-
-
-
-
-Inline within a paragraph: [alt text](/url/).
-
-
-
-
-
-
-
-.
-
-![Empty]()
-
-.jpg)
-
-
-![alt text][foo]
-
- [foo]: /url/
-
-![alt text][bar]
-
+
+
+
+
+Inline within a paragraph: [alt text](/url/).
+
+
+
+
+
+
+
+.
+
+![Empty]()
+
+.jpg)
+
+
+![alt text][foo]
+
+ [foo]: /url/
+
+![alt text][bar]
+
[bar]: /url/ "Title here"
\ No newline at end of file
diff --git a/core/src/test/resources/1.1/basics/Images.xhtml b/core/src/test/resources/1.1/basics/Images.xhtml
old mode 100644
new mode 100755
index 925bc14..c57674c
--- a/core/src/test/resources/1.1/basics/Images.xhtml
+++ b/core/src/test/resources/1.1/basics/Images.xhtml
@@ -1,21 +1,21 @@
-<p><img src="/path/to/img.jpg" alt="Alt text" /></p>
-
-<p><img src="/path/to/img.jpg" alt="Alt text" title="Optional title" /></p>
-
-<p>Inline within a paragraph: <a href="/url/">alt text</a>.</p>
-
-<p><img src="/url/" alt="alt text" title="title preceded by two spaces" /></p>
-
-<p><img src="/url/" alt="alt text" title="title has spaces afterward" /></p>
-
-<p><img src="/url/" alt="alt text" /></p>
-
-<p><img src="/url/" alt="alt text" title="with a title" />.</p>
-
-<p><img src="" alt="Empty" /></p>
-
-<p><img src="http://example.com/(parens).jpg" alt="this is a stupid URL" /></p>
-
-<p><img src="/url/" alt="alt text" /></p>
-
-<p><img src="/url/" alt="alt text" title="Title here" /></p>
+<p><img src="/path/to/img.jpg" alt="Alt text" /></p>
+
+<p><img src="/path/to/img.jpg" alt="Alt text" title="Optional title" /></p>
+
+<p>Inline within a paragraph: <a href="/url/">alt text</a>.</p>
+
+<p><img src="/url/" alt="alt text" title="title preceded by two spaces" /></p>
+
+<p><img src="/url/" alt="alt text" title="title has spaces afterward" /></p>
+
+<p><img src="/url/" alt="alt text" /></p>
+
+<p><img src="/url/" alt="alt text" title="with a title" />.</p>
+
+<p><img src="" alt="Empty" /></p>
+
+<p><img src="http://example.com/(parens).jpg" alt="this is a stupid URL" /></p>
+
+<p><img src="/url/" alt="alt text" /></p>
+
+<p><img src="/url/" alt="alt text" title="Title here" /></p>
diff --git "a/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.text" "b/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.text"
old mode 100644
new mode 100755
index 3633f81..b151c68
--- "a/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.text"
+++ "b/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.text"
@@ -1,30 +1,30 @@
-Simple block on one line:
-
-<div>foo</div>
-
-And nested without indentation:
-
-<div>
-<div>
-<div>
-foo
-</div>
-<div style=">"/>
-</div>
-<div>bar</div>
-</div>
-
-And with attributes:
-
-<div>
- <div id="foo">
- </div>
-</div>
-
-This was broken in 1.0.2b7:
-
-<div class="inlinepage">
-<div class="toggleableend">
-foo
-</div>
-</div>
+Simple block on one line:
+
+<div>foo</div>
+
+And nested without indentation:
+
+<div>
+<div>
+<div>
+foo
+</div>
+<div style=">"/>
+</div>
+<div>bar</div>
+</div>
+
+And with attributes:
+
+<div>
+ <div id="foo">
+ </div>
+</div>
+
+This was broken in 1.0.2b7:
+
+<div class="inlinepage">
+<div class="toggleableend">
+foo
+</div>
+</div>
diff --git "a/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.xhtml" "b/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.xhtml"
old mode 100644
new mode 100755
index 884f14c..a67ff0a
--- "a/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.xhtml"
+++ "b/core/src/test/resources/1.1/basics/Inline HTML \050Advanced\051.xhtml"
@@ -1,30 +1,30 @@
-<p>Simple block on one line:</p>
-
-<div>foo</div>
-
-<p>And nested without indentation:</p>
-
-<div>
-<div>
-<div>
-foo
-</div>
-<div style=">"/>
-</div>
-<div>bar</div>
-</div>
-
-<p>And with attributes:</p>
-
-<div>
- <div id="foo">
- </div>
-</div>
-
-<p>This was broken in 1.0.2b7:</p>
-
-<div class="inlinepage">
-<div class="toggleableend">
-foo
-</div>
-</div>
+<p>Simple block on one line:</p>
+
+<div>foo</div>
+
+<p>And nested without indentation:</p>
+
+<div>
+<div>
+<div>
+foo
+</div>
+<div style=">"/>
+</div>
+<div>bar</div>
+</div>
+
+<p>And with attributes:</p>
+
+<div>
+ <div id="foo">
+ </div>
+</div>
+
+<p>This was broken in 1.0.2b7:</p>
+
+<div class="inlinepage">
+<div class="toggleableend">
+foo
+</div>
+</div>
diff --git "a/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.text" "b/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.text"
old mode 100644
new mode 100755
index 14aa2dc..3d2f820
--- "a/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.text"
+++ "b/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.text"
@@ -1,69 +1,69 @@
-Here's a simple block:
-
-<div>
- foo
-</div>
-
-This should be a code block, though:
-
- <div>
- foo
- </div>
-
-As should this:
-
- <div>foo</div>
-
-Now, nested:
-
-<div>
- <div>
- <div>
- foo
- </div>
- </div>
-</div>
-
-This should just be an HTML comment:
-
-<!-- Comment -->
-
-Multiline:
-
-<!--
-Blah
-Blah
--->
-
-Code block:
-
- <!-- Comment -->
-
-Just plain comment, with trailing spaces on the line:
-
-<!-- foo -->
-
-Code:
-
- <hr />
-
-Hr's:
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr class="foo" id="bar" />
-
-<hr class="foo" id="bar"/>
-
-<hr class="foo" id="bar" >
-
+Here's a simple block:
+
+<div>
+ foo
+</div>
+
+This should be a code block, though:
+
+ <div>
+ foo
+ </div>
+
+As should this:
+
+ <div>foo</div>
+
+Now, nested:
+
+<div>
+ <div>
+ <div>
+ foo
+ </div>
+ </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+ <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->
+
+Code:
+
+ <hr />
+
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
diff --git "a/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.xhtml" "b/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.xhtml"
old mode 100644
new mode 100755
index 6bf78f8..eeb873d
--- "a/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.xhtml"
+++ "b/core/src/test/resources/1.1/basics/Inline HTML \050Simple\051.xhtml"
@@ -1,72 +1,72 @@
-<p>Here's a simple block:</p>
-
-<div>
- foo
-</div>
-
-<p>This should be a code block, though:</p>
-
-<pre><code><div>
- foo
-</div>
-</code></pre>
-
-<p>As should this:</p>
-
-<pre><code><div>foo</div>
-</code></pre>
-
-<p>Now, nested:</p>
-
-<div>
- <div>
- <div>
- foo
- </div>
- </div>
-</div>
-
-<p>This should just be an HTML comment:</p>
-
-<!-- Comment -->
-
-<p>Multiline:</p>
-
-<!--
-Blah
-Blah
--->
-
-<p>Code block:</p>
-
-<pre><code><!-- Comment -->
-</code></pre>
-
-<p>Just plain comment, with trailing spaces on the line:</p>
-
-<!-- foo -->
-
-<p>Code:</p>
-
-<pre><code><hr />
-</code></pre>
-
-<p>Hr's:</p>
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr>
-
-<hr/>
-
-<hr />
-
-<hr class="foo" id="bar" />
-
-<hr class="foo" id="bar"/>
-
-<hr class="foo" id="bar" >
+<p>Here's a simple block:</p>
+
+<div>
+ foo
+</div>
+
+<p>This should be a code block, though:</p>
+
+<pre><code><div>
+ foo
+</div>
+</code></pre>
+
+<p>As should this:</p>
+
+<pre><code><div>foo</div>
+</code></pre>
+
+<p>Now, nested:</p>
+
+<div>
+ <div>
+ <div>
+ foo
+ </div>
+ </div>
+</div>
+
+<p>This should just be an HTML comment:</p>
+
+<!-- Comment -->
+
+<p>Multiline:</p>
+
+<!--
+Blah
+Blah
+-->
+
+<p>Code block:</p>
+
+<pre><code><!-- Comment -->
+</code></pre>
+
+<p>Just plain comment, with trailing spaces on the line:</p>
+
+<!-- foo -->
+
+<p>Code:</p>
+
+<pre><code><hr />
+</code></pre>
+
+<p>Hr's:</p>
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+&