Commit 6b37690da9336a54a0aeb185628db587a54ff533

Golmote 2014-12-10T22:54:29

Added Markdown language

diff --git a/components.js b/components.js
index 7bae569..c1156cd 100644
--- a/components.js
+++ b/components.js
@@ -206,6 +206,10 @@ var components = {
 		"handlebars": {
 			"title": "Handlebars",
 			"owner": "Golmote"
+		},
+		"markdown": {
+			"title": "Markdown",
+			"owner": "Golmote"
 		}
 	},
 	"plugins": {
diff --git a/components/prism-markdown.js b/components/prism-markdown.js
new file mode 100644
index 0000000..47cd45b
--- /dev/null
+++ b/components/prism-markdown.js
@@ -0,0 +1,103 @@
+Prism.languages.markdown = Prism.languages.extend('markup', {
+	'blockquote': {
+		// > ...
+		pattern: /(^|\n)>(?:[\t ]*>)*/,
+		lookbehind: true,
+		alias: 'operator'
+	},
+	'code': [
+		{
+			// Prefixed by 4 spaces or 1 tab
+			pattern: /(^|\n)(?: {4}|\t).+/,
+			lookbehind: true,
+			alias: 'keyword'
+		},
+		{
+			// `code`
+			// ``code``
+			pattern: /``.+?``|`[^`\n]+`/,
+			alias: 'keyword'
+		}
+	],
+	'title': [
+		{
+			// title 1
+			// =======
+
+			// title 2
+			// -------
+			pattern: /\w+.*\n(?:==+|--+)/,
+			alias: 'important'
+		},
+		{
+			// # title 1
+			// ###### title 6
+			pattern: /#+.+/,
+			alias: 'important'
+		}
+	],
+	'hr': {
+		// ***
+		// ---
+		// * * *
+		// -----------
+		pattern: /([*-])([\t ]*\1){2,}/,
+		alias: 'punctuation'
+	},
+	'list': {
+		// * item
+		// + item
+		// - item
+		// 1. item
+		pattern: /(?:[*+-]|\d+\.)(?=[\t ].)/,
+		alias: 'operator'
+	},
+	'link-reference': {
+		// [id]: http://example.com "Optional title"
+		// [id]: http://example.com 'Optional title'
+		// [id]: http://example.com (Optional title)
+		// [id]: <http://example.com> "Optional title"
+		pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:[^>]|\\>)+>)(?:[\t ]+(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\)))?/,
+		alias: 'symbol namespace'
+	},
+	'link': [
+		{
+			// [example](http://example.com "Optional title")
+			pattern: /!?\[[^\]]+\]\([^\s)]+(?:[\t ]+"(?:[^"]|\\")*")?\)/,
+			alias: 'symbol'
+		},
+		{
+			// [example] [id]
+			pattern: /!?\[[^\]]+\] ?\[[^\]\n]*\]/,
+			alias: 'symbol'
+		}
+	],
+	'strong': [
+		{
+			// **strong**
+			// __strong__
+			pattern: /(^|[^\\])\*\*[\s\S]+?\*\*/,
+			lookbehind: true,
+			alias: 'string'
+		},
+		{
+			pattern: /(^|[^\\])__[\s\S]+?__/,
+			lookbehind: true,
+			alias: 'string'
+		}
+	],
+	'em': [
+		{
+			// *em*
+			pattern: /(^|[^\\])\*[^*\t ][^*]*\*/,
+			lookbehind: true,
+			alias: 'string'
+		},
+		{
+			// _em_
+			pattern: /(^|[^\\])_[^_]+_/,
+			lookbehind: true,
+			alias: 'string'
+		}
+	]
+});
\ No newline at end of file
diff --git a/components/prism-markdown.min.js b/components/prism-markdown.min.js
new file mode 100644
index 0000000..f19c436
--- /dev/null
+++ b/components/prism-markdown.min.js
@@ -0,0 +1 @@
+Prism.languages.markdown=Prism.languages.extend("markup",{blockquote:{pattern:/(^|\n)>(?:[\t ]*>)*/,lookbehind:!0,alias:"operator"},code:[{pattern:/(^|\n)(?: {4}|\t).+/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*\n(?:==+|--+)/,alias:"important"},{pattern:/#+.+/,alias:"important"}],hr:{pattern:/([*-])([\t ]*\1){2,}/,alias:"punctuation"},list:{pattern:/(?:[*+-]|\d+\.)(?=[\t ].)/,alias:"operator"},"link-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:[^>]|\\>)+>)(?:[\t ]+(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\)))?/,alias:"symbol namespace"},link:[{pattern:/!?\[[^\]]+\]\([^\s)]+(?:[\t ]+"(?:[^"]|\\")*")?\)/,alias:"symbol"},{pattern:/!?\[[^\]]+\] ?\[[^\]\n]*\]/,alias:"symbol"}],strong:[{pattern:/(^|[^\\])\*\*[\s\S]+?\*\*/,lookbehind:!0,alias:"string"},{pattern:/(^|[^\\])__[\s\S]+?__/,lookbehind:!0,alias:"string"}],em:[{pattern:/(^|[^\\])\*[^*\t ][^*]*\*/,lookbehind:!0,alias:"string"},{pattern:/(^|[^\\])_[^_]+_/,lookbehind:!0,alias:"string"}]});
\ No newline at end of file