From e816f004729ad6e80de7c6ad3459cfeb108aad64 Mon Sep 17 00:00:00 2001 From: Johan Euphrosine Date: Wed, 30 Jul 2014 00:19:12 -0700 Subject: [PATCH 001/131] README: fix typo replace closing `
` by closing `
` --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index de9863e..3788a01 100644 --- a/readme.md +++ b/readme.md @@ -46,7 +46,7 @@ Import the `github-markdown.css` file and add a `markdown-body` class to the con

Unicorns

All the things

-
+ ``` From 9cac033c3a762d61735065ed1cad44c72e2d5198 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 5 Aug 2014 10:08:46 +0200 Subject: [PATCH 002/131] generate the new GitHub readme style https://twitter.com/mdo/status/496475496457072640 I just ran `npm run generate`. Yay programming. --- github-markdown.css | 139 ++++++++++++++++++++++++-------------------- screenshot.png | Bin 107637 -> 103486 bytes 2 files changed, 75 insertions(+), 64 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index f23fe99..d48bc04 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -2,12 +2,13 @@ font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; - font: 13px Helvetica, arial, freesans, clean, sans-serif; + font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 1.4; color: #333333; - font-size: 15px; - line-height: 1.7; overflow: hidden; + font-family: "Helvetica Neue", Helvetica, Arial, freesans, sans-serif; + font-size: 16px; + line-height: 1.6; word-wrap: break-word; } @@ -69,10 +70,7 @@ text-decoration: none; } -.markdown-body a:hover { - text-decoration: underline; -} - +.markdown-body a:hover, .markdown-body a:focus, .markdown-body a:active { text-decoration: underline; @@ -89,18 +87,14 @@ .markdown-body hr:before, .markdown-body hr:after { - content: " "; display: table; + content: " "; } .markdown-body hr:after { clear: both; } -.markdown-body ol ol { - list-style-type: lower-roman; -} - .markdown-body h1, .markdown-body h2, .markdown-body h3, @@ -147,6 +141,10 @@ margin-bottom: 0; } +.markdown-body ol ol { + list-style-type: lower-roman; +} + .markdown-body dd { margin-left: 0; } @@ -170,19 +168,18 @@ margin-bottom: 0 !important; } -.markdown-body a.anchor { +.markdown-body .anchor { + position: absolute; + top: 0; + bottom: 0; + left: 0; display: block; padding-right: 6px; padding-left: 30px; margin-left: -30px; - cursor: pointer; - position: absolute; - top: 0; - left: 0; - bottom: 0; } -.markdown-body a.anchor:focus { +.markdown-body .anchor:focus { outline: none; } @@ -192,39 +189,50 @@ .markdown-body h4, .markdown-body h5, .markdown-body h6 { - margin: 1em 0 15px; - padding: 0; - font-weight: bold; - line-height: 1.7; - cursor: text; position: relative; + margin-top: 1em; + font-weight: bold; + line-height: 1.4; } .markdown-body h1 { - font-size: 2.5em; - border-bottom: 1px solid #ddd; + padding-bottom: 0.3em; + margin-bottom: 16px; + font-size: 2.25em; + font-weight: normal; + line-height: 1.2; + border-bottom: 1px solid #eee; } .markdown-body h2 { - font-size: 2em; + padding-bottom: 0.3em; + margin-bottom: 16px; + font-size: 1.75em; + font-weight: normal; + line-height: 1.225; border-bottom: 1px solid #eee; } .markdown-body h3 { + margin-bottom: 0; font-size: 1.5em; + line-height: 1.43; } .markdown-body h4 { - font-size: 1.2em; + margin-bottom: 0.1em; + font-size: 1.25em; } .markdown-body h5 { + margin-bottom: 0.2em; font-size: 1em; } .markdown-body h6 { - color: #777; + margin-bottom: 0.2em; font-size: 1em; + color: #777; } .markdown-body p, @@ -234,21 +242,21 @@ .markdown-body dl, .markdown-body table, .markdown-body pre { - margin: 15px 0; + margin-top: 0; + margin-bottom: 16px; } .markdown-body hr { - background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0; - border: 0 none; - color: #ccc; height: 4px; padding: 0; - margin: 15px 0; + margin: 16px 0; + background-color: #e7e7e7; + border: 0 none; } .markdown-body ul, .markdown-body ol { - padding-left: 30px; + padding-left: 2em; } .markdown-body ol ol, @@ -262,36 +270,36 @@ } .markdown-body dl dt { - font-size: 14px; - font-weight: bold; - font-style: italic; padding: 0; - margin-top: 15px; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: bold; } .markdown-body dl dd { - margin-bottom: 15px; - padding: 0 15px; + padding: 0 16px; + margin-bottom: 16px; } .markdown-body blockquote { - border-left: 4px solid #DDD; padding: 0 15px; color: #777; + border-left: 4px solid #ddd; } .markdown-body blockquote>:first-child { - margin-top: 0px; + margin-top: 0; } .markdown-body blockquote>:last-child { - margin-bottom: 0px; + margin-bottom: 0; } .markdown-body table { + display: block; width: 100%; overflow: auto; - display: block; } .markdown-body table th { @@ -300,13 +308,13 @@ .markdown-body table th, .markdown-body table td { - border: 1px solid #ddd; padding: 6px 13px; + border: 1px solid #ddd; } .markdown-body table tr { - border-top: 1px solid #ccc; background-color: #fff; + border-top: 1px solid #ccc; } .markdown-body table tr:nth-child(2n) { @@ -320,35 +328,38 @@ } .markdown-body code { + padding: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; margin: 0; - border: 1px solid #ddd; - background-color: #f8f8f8; + font-size: 85%; + color: #555; + background-color: #f7f7f7; border-radius: 3px; - padding: 0; } .markdown-body code:before, .markdown-body code:after { - content: "\00a0"; letter-spacing: -0.2em; + content: "\00a0"; } .markdown-body pre>code { - margin: 0; padding: 0; + margin: 0; + font-size: 100%; white-space: pre; - border: none; background: transparent; + border: 0; } .markdown-body .highlight pre, .markdown-body pre { - background-color: #f8f8f8; - border: 1px solid #ddd; - font-size: 13px; - line-height: 19px; + padding: 16px; overflow: auto; - padding: 6px 10px; + font-size: 85%; + line-height: 1.45; + background-color: #f7f7f7; border-radius: 3px; } @@ -357,15 +368,15 @@ } .markdown-body pre code { - margin: 0; - padding: 0; - background-color: transparent; - border: none; - word-wrap: normal; - max-width: initial; display: inline; + max-width: initial; + padding: 0; + margin: 0; overflow: initial; line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; } .markdown-body pre code:before, diff --git a/screenshot.png b/screenshot.png index 92228b2373333d8898a19864c7d1964cb3bfbcd1..31a2dae7516a6fb21cdea3f4dd558e3e0ce64eab 100644 GIT binary patch literal 103486 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

2@+3>i4OGe1xt%lU@emE>VH#yT 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 Vaw+|z6@n>AUPc8_CiUjy{{jnM(UAZE literal 107637 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π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

pj71U8L!%2l7dgzDAFaJWen|x~gi-a{Ae8pvhz? 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

AQiHu=0 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 DB6U5W From bfa19de865306eb46c25531348a09bdf6f70b56f Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 5 Aug 2014 10:11:08 +0200 Subject: [PATCH 003/131] 1.0.0 --- component.json | 2 +- package.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/component.json b/component.json index 31c27ff..090fa3f 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "0.2.0", + "version": "1.0.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", diff --git a/package.json b/package.json index 5d37f03..44b816e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "0.2.0", + "version": "1.0.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", @@ -45,8 +45,8 @@ "cheerio": "^0.17.0", "css": "^2.0.0", "got": "^0.3.0", - "temp-write": "^0.3.0", - "uncss": "^0.8.1" + "temp-write": "^0.3.1", + "uncss": "^0.8.3" }, "devDependencies": { "mocha": "*" From 672d44b98ae24c12425d5eb781cbf9a7870fe7b9 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 8 Aug 2014 10:00:19 +0200 Subject: [PATCH 004/131] don't need to write to disk anymore UnCSS now accepts an HTML string as input --- index.js | 12 +++++++----- package.json | 3 +-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index b6c7145..741e067 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,6 @@ var got = require('got'); var cheerio = require('cheerio'); var uncss = require('uncss'); -var tempWrite = require('temp-write'); function getCss(cb) { got('https://github.com', function (err, data) { @@ -26,14 +25,17 @@ function getCss(cb) { } function getRenderedFixture(cb) { - got('https://github.com/sindresorhus/github-markdown-css/blob/gh-pages/fixture.md', function (err, data) { + var url = 'https://github.com/sindresorhus/github-markdown-css/blob/gh-pages/fixture.md'; + + got(url, function (err, data) { if (err) { return cb(err); } var $ = cheerio.load(data); + var html = $('.markdown-body').parent().html(); - cb(null, tempWrite.sync($('.markdown-body').parent().html())); + cb(null, html); }); } @@ -99,7 +101,7 @@ function cleanupCss(str) { } module.exports = function (cb) { - getRenderedFixture(function (err, fixture) { + getRenderedFixture(function (err, html) { if (err) { return cb(err); } @@ -109,7 +111,7 @@ module.exports = function (cb) { return cb(err); } - uncss([fixture], { + uncss(html, { stylesheets: stylesheets, ignore: [/^\.highlight/] }, function (err, css) { diff --git a/package.json b/package.json index 44b816e..c3eb4d0 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,7 @@ "dependencies": { "cheerio": "^0.17.0", "css": "^2.0.0", - "got": "^0.3.0", - "temp-write": "^0.3.1", + "got": "^1.0.0", "uncss": "^0.8.3" }, "devDependencies": { From fddc989ddc452b50280f9c53388d657aaeb6ea40 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 8 Aug 2014 10:06:21 +0200 Subject: [PATCH 005/131] regenerate github css --- github-markdown.css | 3 --- 1 file changed, 3 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index d48bc04..13cb983 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -199,7 +199,6 @@ padding-bottom: 0.3em; margin-bottom: 16px; font-size: 2.25em; - font-weight: normal; line-height: 1.2; border-bottom: 1px solid #eee; } @@ -208,7 +207,6 @@ padding-bottom: 0.3em; margin-bottom: 16px; font-size: 1.75em; - font-weight: normal; line-height: 1.225; border-bottom: 1px solid #eee; } @@ -333,7 +331,6 @@ padding-bottom: 0.2em; margin: 0; font-size: 85%; - color: #555; background-color: #f7f7f7; border-radius: 3px; } From 7f46eae3b3335fbab701b9d8e625bfababf4dad9 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 8 Aug 2014 10:07:22 +0200 Subject: [PATCH 006/131] 1.0.1 --- component.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/component.json b/component.json index 090fa3f..02bd63b 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.0.0", + "version": "1.0.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", diff --git a/package.json b/package.json index c3eb4d0..e9cb08e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.0.0", + "version": "1.0.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From e687a6b50d3a4a1e9a91541bae57053dc95e64f9 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 8 Aug 2014 14:06:13 +0200 Subject: [PATCH 007/131] Update index.html --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 6c11bff..3372279 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,7 @@

GitHub Markdown CSS demo

  • Foo
  • Bar
  • -

    Header 2

    +

    Header

    Swine short ribs turkey short loin doner pastrami biltong cow boudin. Kielbasa kevin turkey, landjaeger andouille chicken swine flank fatback frankfurter filet mignon spare ribs sausage porchetta shankle. Beef ribs tri-tip landjaeger turducken corned beef. Jerky meatloaf salami beef, beef ribs drumstick pork ribeye shankle strip steak pork chop. Meatloaf short ribs chicken strip steak bresaola ground round short loin ham leberkas turducken ball tip biltong turkey cow. Venison porchetta tail short ribs pastrami. Bresaola tail fatback drumstick kevin meatball pork loin.

    var gulp = require('gulp');
    @@ -38,5 +38,6 @@ 

    Header 2

    });
    + Fork me on GitHub From 9a39f007bac00e624b09ebbcb82d1f46352d424b Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 10 Aug 2014 18:31:28 +0200 Subject: [PATCH 008/131] regenerate github css fixes #5 --- github-markdown.css | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 13cb983..795f987 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -191,13 +191,13 @@ .markdown-body h6 { position: relative; margin-top: 1em; + margin-bottom: 16px; font-weight: bold; line-height: 1.4; } .markdown-body h1 { padding-bottom: 0.3em; - margin-bottom: 16px; font-size: 2.25em; line-height: 1.2; border-bottom: 1px solid #eee; @@ -205,30 +205,25 @@ .markdown-body h2 { padding-bottom: 0.3em; - margin-bottom: 16px; font-size: 1.75em; line-height: 1.225; border-bottom: 1px solid #eee; } .markdown-body h3 { - margin-bottom: 0; font-size: 1.5em; line-height: 1.43; } .markdown-body h4 { - margin-bottom: 0.1em; font-size: 1.25em; } .markdown-body h5 { - margin-bottom: 0.2em; font-size: 1em; } .markdown-body h6 { - margin-bottom: 0.2em; font-size: 1em; color: #777; } @@ -263,6 +258,10 @@ margin-bottom: 0; } +.markdown-body li>p { + margin-top: 16px; +} + .markdown-body dl { padding: 0; } @@ -331,7 +330,7 @@ padding-bottom: 0.2em; margin: 0; font-size: 85%; - background-color: #f7f7f7; + background-color: rgba(0,0,0,0.04); border-radius: 3px; } @@ -350,6 +349,10 @@ border: 0; } +.markdown-body .highlight { + margin-bottom: 16px; +} + .markdown-body .highlight pre, .markdown-body pre { padding: 16px; @@ -360,6 +363,10 @@ border-radius: 3px; } +.markdown-body .highlight pre { + margin-bottom: 0; +} + .markdown-body pre { word-wrap: normal; } From 0f506ebd70bc7fcb4a71c30d7e28439ee514f73b Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 10 Aug 2014 18:31:46 +0200 Subject: [PATCH 009/131] 1.0.2 --- component.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/component.json b/component.json index 02bd63b..8d85ffd 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.0.1", + "version": "1.0.2", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", diff --git a/package.json b/package.json index e9cb08e..36d6d11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.0.1", + "version": "1.0.2", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 8760bcb8c07fdd98982ab3febe712a7a18488b0a Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 19 Aug 2014 01:07:22 +0200 Subject: [PATCH 010/131] regenerate github css --- github-markdown.css | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/github-markdown.css b/github-markdown.css index 795f987..770ee6d 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -6,7 +6,7 @@ line-height: 1.4; color: #333333; overflow: hidden; - font-family: "Helvetica Neue", Helvetica, Arial, freesans, sans-serif; + font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; font-size: 16px; line-height: 1.6; word-wrap: break-word; @@ -297,6 +297,8 @@ display: block; width: 100%; overflow: auto; + word-break: normal; + word-break: keep-all; } .markdown-body table th { @@ -344,6 +346,7 @@ padding: 0; margin: 0; font-size: 100%; + word-break: normal; white-space: pre; background: transparent; border: 0; @@ -365,6 +368,7 @@ .markdown-body .highlight pre { margin-bottom: 0; + word-break: normal; } .markdown-body pre { From 1c2aacc7ceff91e1c79715ce01d23efd496203d1 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 19 Aug 2014 01:09:17 +0200 Subject: [PATCH 011/131] drop component --- component.json | 18 ------------------ readme.md | 4 ---- 2 files changed, 22 deletions(-) delete mode 100644 component.json diff --git a/component.json b/component.json deleted file mode 100644 index 8d85ffd..0000000 --- a/component.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "github-markdown-css", - "version": "1.0.2", - "description": "The minimal amount of CSS to replicate the GitHub Markdown style", - "license": "MIT", - "repository": "sindresorhus/github-markdown-css", - "styles": [ - "github-markdown.css" - ], - "keywords": [ - "github", - "markdown", - "md", - "css", - "style", - "stylesheet" - ] -} diff --git a/readme.md b/readme.md index 3788a01..d955236 100644 --- a/readme.md +++ b/readme.md @@ -24,10 +24,6 @@ $ npm install --save github-markdown-css $ bower install --save github-markdown-css ``` -```sh -$ component install sindresorhus/github-markdown-css -``` - ## Usage From 8f10b458e81657169aa963e1666b408a35bf0f23 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 19 Aug 2014 01:14:43 +0200 Subject: [PATCH 012/131] tweaks --- .editorconfig | 1 - .jshintrc | 10 ++-------- cli.js | 19 +++++++++++-------- index.js | 15 ++++++++++----- package.json | 6 +++--- 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8311fe1..86c8f59 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,3 @@ -# editorconfig.org root = true [*] diff --git a/.jshintrc b/.jshintrc index 39a8579..804f8af 100644 --- a/.jshintrc +++ b/.jshintrc @@ -4,16 +4,10 @@ "bitwise": true, "camelcase": true, "curly": true, - "eqeqeq": true, "immed": true, - "indent": 4, "newcap": true, "noarg": true, - "quotmark": "single", - "regexp": true, "undef": true, - "unused": true, - "strict": true, - "trailing": true, - "smarttabs": true + "unused": "vars", + "strict": true } diff --git a/cli.js b/cli.js index 55e8282..a7bb214 100755 --- a/cli.js +++ b/cli.js @@ -1,22 +1,25 @@ #!/usr/bin/env node 'use strict'; var pkg = require('./package.json'); -var githubMarkdownCss = require('./index'); -var input = process.argv[2]; +var githubMarkdownCss = require('./'); +var argv = process.argv.slice(2); function help() { - console.log(pkg.description); - console.log(''); - console.log('Usage'); - console.log(' $ github-markdown-css > '); + console.log([ + '', + ' ' + pkg.description, + '', + ' Usage', + ' github-markdown-css > ' + ].join('\n')); } -if (process.argv.indexOf('-h') !== -1 || process.argv.indexOf('--help') !== -1) { +if (argv.indexOf('--help') !== -1) { help(); return; } -if (process.argv.indexOf('-v') !== -1 || process.argv.indexOf('--version') !== -1) { +if (argv.indexOf('--version') !== -1) { console.log(pkg.version); return; } diff --git a/index.js b/index.js index 741e067..7331121 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,8 @@ var uncss = require('uncss'); function getCss(cb) { got('https://github.com', function (err, data) { if (err) { - return cb(err); + cb(err); + return; } var ret = []; @@ -17,7 +18,8 @@ function getCss(cb) { }); if (ret.length === 0) { - return cb(new Error('Could not find GitHub stylesheets')); + cb(new Error('Could not find GitHub stylesheets')); + return; } cb(null, ret); @@ -29,7 +31,8 @@ function getRenderedFixture(cb) { got(url, function (err, data) { if (err) { - return cb(err); + cb(err); + return; } var $ = cheerio.load(data); @@ -103,12 +106,14 @@ function cleanupCss(str) { module.exports = function (cb) { getRenderedFixture(function (err, html) { if (err) { - return cb(err); + cb(err); + return; } getCss(function (err, stylesheets) { if (err) { - return cb(err); + cb(err); + return; } uncss(html, { diff --git a/package.json b/package.json index 36d6d11..6df074f 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,14 @@ "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", - "bin": { - "github-markdown-css": "cli.js" - }, "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bin": { + "github-markdown-css": "cli.js" + }, "contributors": [ { "name": "Benjamin Tan", From 24c031f6a4da0d84c1d9531a191671e1a5b0df23 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Tue, 19 Aug 2014 01:14:58 +0200 Subject: [PATCH 013/131] 1.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6df074f..4d7df7f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.0.2", + "version": "1.0.3", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 51eeecc89424758d0b392d6675a056df26ccf63a Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 31 Aug 2014 17:08:55 +0200 Subject: [PATCH 014/131] more fixtures --- fixture.md | 1308 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1308 insertions(+) diff --git a/fixture.md b/fixture.md index 7e3e734..7377565 100644 --- a/fixture.md +++ b/fixture.md @@ -120,6 +120,69 @@ Strikethrough uses two tildes. ~~Scratch this.~~ - Or minuses + Or pluses + +1. foo + 1. bar + 1. baz + 1. faz +2. foo2 + + +- foo + - bar + - baz + - faz +- foo2 + + +1. foo + - bar + 1. baz + - faz + +- foo + 1. bar + - baz + 1. faz + + + +1. Lists in a list item: + - Indented four spaces. + * indented eight spaces. + - Four spaces again. +2. Multiple paragraphs in a list items: + It's best to indent the paragraphs four spaces + You can get away with three, but it can get + confusing when you nest other things. + Stick to four. + + We indented the first line an extra space to align + it with these paragraphs. In real use, we might do + that to the entire list so that all items line up. + + This paragraph is still part of the list item, but it looks messy to humans. So it's a good idea to wrap your nested paragraphs manually, as we did with the first two. + +3. Blockquotes in a list item: + + > Skip a line and + > indent the >'s four spaces. + +4. Preformatted text in a list item: + + Skip a line and indent eight spaces. + That's four spaces for the list + and four to trigger the code block. + + + + +## Inline HTML + +To reboot your computer, press ctrl+alt+del. + + + ## Links @@ -390,3 +453,1248 @@ Or, in pure Markdown, but losing the image sizing and border: ``` Referencing a bug by #bugID in your git commit links it to the slip. For example #1. + + + +## Task List + +- [ ] foo + - [ ] foo + - [x] foo +- [x] foo + + + + + + +[test]: http://google.com/ "Google" + +# A heading + +Just a note, I've found that I can't test my markdown parser vs others. +For example, both markdown.js and showdown code blocks in lists wrong. They're +also completely [inconsistent][test] with regards to paragraphs in list items. + +A link. Not anymore. + + + +* List Item 1 + +* List Item 2 + * New List Item 1 + Hi, this is a list item. + * New List Item 2 + Another item + Code goes here. + Lots of it... + * New List Item 3 + The last item + +* List Item 3 +The final item. + +* List Item 4 +The real final item. + +Paragraph. + +> * bq Item 1 +> * bq Item 2 +> * New bq Item 1 +> * New bq Item 2 +> Text here + +* * * + +> Another blockquote! +> I really need to get +> more creative with +> mockup text.. +> markdown.js breaks here again + +Another Heading +------------- + +Hello *world*. Here is a [link](//hello). +And an image ![alt](src). + + Code goes here. + Lots of it... + + + + +> A list within a blockquote: +> +> * asterisk 1 +> * asterisk 2 +> * asterisk 3 + + + + + +***This is strong and em.*** + +So is ***this*** word. + +___This is strong and em.___ + +So is ___this___ word. + + + + + +## 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 + + +This was an error in Markdown 1.0.1: + +* this + + * sub + + that + + + + + + +> foo +> +> > bar +> +> foo + + + + + + +Markdown: Syntax +================ + + + + +* [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 + +* * * + +

    Overview

    + +

    Philosophy

    + +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. + + + +

    Inline HTML

    + +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. `
    `, +``, `
    `, `

    `, 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) `

    ` tags around HTML block-level tags. + +For example, to add an HTML table to a Markdown article: + + This is a regular paragraph. + +

    + + + +
    Foo
    + + 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. ``, ``, or `` -- 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 `` or `` 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. + + +

    Automatic Escaping for Special Characters

    + +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.) + + +* * * + + +

    Block Elements

    + + +

    Paragraphs and Line Breaks

    + +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 `
    ` tag. + +When you *do* want to insert a `
    ` 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 `
    `, but a simplistic +"every line break is a `
    `" 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 + + + + + +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 ###### + + +

    Blockquotes

    + +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. + + +

    Lists

    + +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: + +
      +
    1. Bird
    2. +
    3. McHale
    4. +
    5. Parish
    6. +
    + +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 `

    ` tags in the HTML output. For example, this input: + + * Bird + * Magic + +will turn into: + +

      +
    • Bird
    • +
    • Magic
    • +
    + +But this: + + * Bird + + * Magic + +will turn into: + +
      +
    • Bird

    • +
    • Magic

    • +
    + +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: + + + + +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. + + + +

    Code Blocks

    + +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 `
    ` and `` 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:
    +
    +    

    This is a normal paragraph:

    + +
    This is a code block.
    +    
    + +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: + +

    Here is an example of AppleScript:

    + +
    tell application "Foo"
    +        beep
    +    end tell
    +    
    + +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: + + + +will turn into: + +
    <div class="footer">
    +        &copy; 2004 Foo Corporation
    +    </div>
    +    
    + +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. + + + +

    Horizontal Rules

    + +You can produce a horizontal rule tag (`
    `) 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: + + * * * + + *** + + ***** + + - - - + + --------------------------------------- + + _ _ _ + + +* * * + +

    Span Elements

    + + + +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: + +

    This is + an example inline link.

    + +

    This link has no + title attribute.

    + +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]: "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: + +

    I get 10 times more traffic from Google than from + Yahoo + or MSN.

    + +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. + + +

    Emphasis

    + +Markdown treats asterisks (`*`) and underscores (`_`) as indicators of +emphasis. Text wrapped with one `*` or `_` will be wrapped with an +HTML `` tag; double `*`'s or `_`'s will be wrapped with an HTML +`` tag. E.g., this input: + + *single asterisks* + + _single underscores_ + + **double asterisks** + + __double underscores__ + +will produce: + + single asterisks + + single underscores + + double asterisks + + double underscores + +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\* + + + +

    Code

    + +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: + +

    Use the printf() function.

    + +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: + +

    There is a literal backtick (`) here.

    + +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: + +

    A single backtick in a code span: `

    + +

    A backtick-delimited string in a code span: `foo`

    + +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 `` tags. + +into: + +

    Please don't use any <blink> tags.

    + +You can write this: + + `—` is the decimal-encoded equivalent of `—`. + +to produce: + +

    &#8212; is the decimal-encoded + equivalent of &mdash;.

    + + + +

    Images

    + +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: + + ![Alt text](/path/to/img.jpg) + + ![Alt text](/path/to/img.jpg "Optional title") + +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 `` tags. + + +* * * + + +

    Miscellaneous

    + + + +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: + + + +Markdown will turn this into: + + http://example.com/ + +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: + + + +into something like this: + + address@exa + mple.com + +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.) + + + +

    Backslash Escapes

    + +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 `` 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 + + + + + + + +Foo [bar][]. + +Foo [bar](/url/ "Title with "quotes" inside"). + + + [bar]: /url/ "Title with "quotes" inside" + + + + + + + + +This is the [simple case]. + +[simple case]: /simple + + + +This one has a [line +break]. + +This one has a [line +break] with a line-ending space. + +[line break]: /foo + + +[this] [that] and the [other] + +[this]: /this +[that]: /that +[other]: /other + + + + + +Here's a simple block: + +
    + foo +
    + +This should be a code block, though: + +
    + foo +
    + +As should this: + +
    foo
    + +Now, nested: + +
    +
    +
    + foo +
    +
    +
    + +This should just be an HTML comment: + + + +Multiline: + + + +Code block: + + + +Just plain comment, with trailing spaces on the line: + + + +Code: + +
    + +Hr's: + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    From 92f2c02151bd0cb215f3587aa72d8bc6243fd476 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 31 Aug 2014 17:22:11 +0200 Subject: [PATCH 015/131] add support for task list, more deeply nested lists and more --- github-markdown.css | 68 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 3 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 770ee6d..7d9cd13 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -2,8 +2,6 @@ font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; - font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; - line-height: 1.4; color: #333333; overflow: hidden; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; @@ -45,11 +43,31 @@ } .markdown-body code, +.markdown-body kbd, .markdown-body pre { font-family: monospace, monospace; font-size: 1em; } +.markdown-body input { + color: inherit; + font: inherit; + margin: 0; +} + +.markdown-body html input[disabled] { + cursor: default; +} + +.markdown-body input { + line-height: normal; +} + +.markdown-body input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + .markdown-body table { border-collapse: collapse; border-spacing: 0; @@ -65,6 +83,12 @@ box-sizing: border-box; } +.markdown-body, +.markdown-body input { + font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; + line-height: 1.4; +} + .markdown-body a { color: #4183c4; text-decoration: none; @@ -141,10 +165,18 @@ margin-bottom: 0; } -.markdown-body ol ol { +.markdown-body ol ol, +.markdown-body ul ol { list-style-type: lower-roman; } +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + .markdown-body dd { margin-left: 0; } @@ -160,6 +192,21 @@ margin-bottom: 0; } +.markdown-body kbd { + background-color: #e7e7e7; + background-image: -moz-linear-gradient(#fefefe, #e7e7e7); + background-image: -webkit-linear-gradient(#fefefe, #e7e7e7); + background-image: linear-gradient(#fefefe, #e7e7e7); + background-repeat: repeat-x; + border-radius: 2px; + border: 1px solid #cfcfcf; + color: #000; + padding: 3px 5px; + line-height: 10px; + font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; + display: inline-block; +} + .markdown-body>*:first-child { margin-top: 0 !important; } @@ -252,6 +299,8 @@ padding-left: 2em; } +.markdown-body ul ul, +.markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; @@ -660,3 +709,16 @@ color: #999; background-color: #EAF2F5; } + +.markdown-body .task-list-item { + list-style-type: none; +} + +.markdown-body .task-list-item+.task-list-item { + margin-top: 3px; +} + +.markdown-body .task-list-item-checkbox { + margin: 0 4px 0.25em -20px; + vertical-align: middle; +} From be22fbc5e02a99668222274f811cc8a9f563098d Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 31 Aug 2014 17:04:59 +0200 Subject: [PATCH 016/131] include link icon --- github-markdown.css | 55 +++++++++++++++++++++++++++++++++++++++++++++ index.js | 8 +++++-- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 7d9cd13..8d102b2 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -1,3 +1,8 @@ +@font-face { + font-family: octicons-anchor; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); +} + .markdown-body { font-family: sans-serif; -ms-text-size-adjust: 100%; @@ -243,6 +248,39 @@ line-height: 1.4; } +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + display: none; + color: #000; + vertical-align: middle; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + height: 1em; + padding-left: 8px; + margin-left: -30px; + line-height: 1; + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + display: inline-block; +} + .markdown-body h1 { padding-bottom: 0.3em; font-size: 2.25em; @@ -710,6 +748,23 @@ background-color: #EAF2F5; } +.markdown-body .octicon { + font: normal normal 16px octicons; + line-height: 1; + display: inline-block; + text-decoration: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.markdown-body .octicon-link:before { + content: '\f05c'; +} + .markdown-body .task-list-item { list-style-type: none; } diff --git a/index.js b/index.js index 7331121..e8d5e47 100644 --- a/index.js +++ b/index.js @@ -53,7 +53,7 @@ function cleanupCss(str) { } if (el.type ==='rule') { - if (/::-webkit-validation|:-moz-placeholder|^\.integrations-slide-content|^\.prose-diff|@font-face|^\.octicon|^button::|^\.markdown-body .+(:hover|\.octicon)|^article$/.test(el.selectors[0])) { + if (/::-webkit-validation|:-moz-placeholder|^\.integrations-slide-content|^\.prose-diff|@font-face|^button::|^article$/.test(el.selectors[0])) { return false; } @@ -100,7 +100,11 @@ function cleanupCss(str) { declarations: mdBodyProps }); - return css.stringify(style); + var ret = css.stringify(style); + + ret = '@font-face {\n font-family: octicons-anchor;\n src: url(data:font/woff;charset=utf-8;base64,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) format(\'woff\');\n}\n\n' + ret; + + return ret; } module.exports = function (cb) { From cbefe8761f2b23c173dea7aa11a7f4e37bc1849e Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 31 Aug 2014 23:28:11 +0200 Subject: [PATCH 017/131] 1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d7df7f..044cd97 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.0.3", + "version": "1.1.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 9bee1ac647be6aabf0a7423ea91964e830707c07 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 1 Sep 2014 00:41:10 +0200 Subject: [PATCH 018/131] fix body font size regression --- github-markdown.css | 1 - index.js | 13 ++++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 8d102b2..120994c 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -88,7 +88,6 @@ box-sizing: border-box; } -.markdown-body, .markdown-body input { font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; line-height: 1.4; diff --git a/index.js b/index.js index e8d5e47..de8f1c4 100644 --- a/index.js +++ b/index.js @@ -57,13 +57,19 @@ function cleanupCss(str) { return false; } + // remove `body` from `body, input {}` + if (el.selectors[0] === 'body' && el.selectors[1] === 'input') { + el.selectors.shift(); + } + if (el.selectors.length === 1 && /^(?:html|body)$/.test(el.selectors[0])) { el.declarations = el.declarations.filter(function (declaration) { - if (!/^font|^(?:line-height|color)$|text-size-adjust$/.test(declaration.property)) { - return false; + // remove everything from body/html other than these + if (/^font|^(?:line-height|color)$|text-size-adjust$/.test(declaration.property)) { + return true; } - return true; + return false; }); } @@ -72,6 +78,7 @@ function cleanupCss(str) { selector = '.markdown-body'; } + if (!/\.markdown-body/.test(selector)) { selector = '.markdown-body ' + selector; } From 8efcd68fd0e5646ce0cbffea8bacb0b88b734eeb Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 1 Sep 2014 01:13:09 +0200 Subject: [PATCH 019/131] fix .octoicons font name - fixes #9 --- github-markdown.css | 2 +- index.js | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 120994c..364c51f 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -748,7 +748,7 @@ } .markdown-body .octicon { - font: normal normal 16px octicons; + font: normal normal 16px octicons-anchor; line-height: 1; display: inline-block; text-decoration: none; diff --git a/index.js b/index.js index de8f1c4..a790a58 100644 --- a/index.js +++ b/index.js @@ -62,6 +62,17 @@ function cleanupCss(str) { el.selectors.shift(); } + // rename the .octoicons font + if (el.selectors[0] === '.octicon') { + el.declarations = el.declarations.map(function (el) { + if (el.property === 'font') { + el.value += '-anchor'; + } + + return el; + }); + } + if (el.selectors.length === 1 && /^(?:html|body)$/.test(el.selectors[0])) { el.declarations = el.declarations.filter(function (declaration) { // remove everything from body/html other than these @@ -78,7 +89,6 @@ function cleanupCss(str) { selector = '.markdown-body'; } - if (!/\.markdown-body/.test(selector)) { selector = '.markdown-body ' + selector; } From b2549d5d3b1644953942a5b4e059508ea835bec1 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 1 Sep 2014 01:14:13 +0200 Subject: [PATCH 020/131] 1.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 044cd97..a0a083c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.1.0", + "version": "1.1.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From fc92f0ec4281743d390230391f81d70c7c49b49b Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 5 Sep 2014 13:29:03 +0200 Subject: [PATCH 021/131] minor tweak --- test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test.js b/test.js index c83111a..48cdbbb 100644 --- a/test.js +++ b/test.js @@ -1,6 +1,6 @@ 'use strict'; var assert = require('assert'); -var githubMarkdownCss = require('./index'); +var githubMarkdownCss = require('./'); it('should get the GitHub Markdown CSS', function (cb) { this.timeout(20000); From de5f4f635a62ce0d5e39115bf283717792299d33 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 1 Oct 2014 17:42:21 +0200 Subject: [PATCH 022/131] bump uncss --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a0a083c..5d36220 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "cheerio": "^0.17.0", "css": "^2.0.0", "got": "^1.0.0", - "uncss": "^0.8.3" + "uncss": "^0.9.0" }, "devDependencies": { "mocha": "*" From 86b8356ba64a7fd052dda711525e14d1f6a55f5c Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 1 Oct 2014 17:56:16 +0200 Subject: [PATCH 023/131] don't inherit `font` from `body` --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index a790a58..59717b4 100644 --- a/index.js +++ b/index.js @@ -76,7 +76,7 @@ function cleanupCss(str) { if (el.selectors.length === 1 && /^(?:html|body)$/.test(el.selectors[0])) { el.declarations = el.declarations.filter(function (declaration) { // remove everything from body/html other than these - if (/^font|^(?:line-height|color)$|text-size-adjust$/.test(declaration.property)) { + if (/^(?:line-height|color)$|text-size-adjust$/.test(declaration.property)) { return true; } From b27601221267c4799974622c45f37bc8f37354f8 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 1 Oct 2014 17:57:18 +0200 Subject: [PATCH 024/131] regenerate github css --- github-markdown.css | 284 ++++++++++++++++---------------------------- 1 file changed, 101 insertions(+), 183 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 364c51f..1146596 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -4,10 +4,9 @@ } .markdown-body { - font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; - color: #333333; + color: #333; overflow: hidden; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; font-size: 16px; @@ -69,6 +68,7 @@ } .markdown-body input[type="checkbox"] { + -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; } @@ -89,8 +89,7 @@ } .markdown-body input { - font: 13px Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; - line-height: 1.4; + font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; } .markdown-body a { @@ -113,14 +112,15 @@ border-bottom: 1px solid #ddd; } -.markdown-body hr:before, -.markdown-body hr:after { +.markdown-body hr:before { display: table; - content: " "; + content: ""; } .markdown-body hr:after { + display: table; clear: both; + content: ""; } .markdown-body h1, @@ -185,20 +185,18 @@ margin-left: 0; } -.markdown-body code, -.markdown-body pre { - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 12px; +.markdown-body code { + font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } .markdown-body pre { margin-top: 0; margin-bottom: 0; + font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } .markdown-body kbd { background-color: #e7e7e7; - background-image: -moz-linear-gradient(#fefefe, #e7e7e7); background-image: -webkit-linear-gradient(#fefefe, #e7e7e7); background-image: linear-gradient(#fefefe, #e7e7e7); background-repeat: repeat-x; @@ -479,157 +477,90 @@ } .markdown-body .highlight { - background: #ffffff; -} - -.markdown-body .highlight .c { - color: #999988; - font-style: italic; + background: #fff; } -.markdown-body .highlight .err { - color: #a61717; - background-color: #e3d2d2; -} - -.markdown-body .highlight .k { - font-weight: bold; +.markdown-body .highlight .mf, +.markdown-body .highlight .mh, +.markdown-body .highlight .mi, +.markdown-body .highlight .mo, +.markdown-body .highlight .il, +.markdown-body .highlight .m { + color: #945277; +} + +.markdown-body .highlight .s, +.markdown-body .highlight .sb, +.markdown-body .highlight .sc, +.markdown-body .highlight .sd, +.markdown-body .highlight .s2, +.markdown-body .highlight .se, +.markdown-body .highlight .sh, +.markdown-body .highlight .si, +.markdown-body .highlight .sx, +.markdown-body .highlight .s1 { + color: #df5000; } +.markdown-body .highlight .kc, +.markdown-body .highlight .kd, +.markdown-body .highlight .kn, +.markdown-body .highlight .kp, +.markdown-body .highlight .kr, +.markdown-body .highlight .kt, +.markdown-body .highlight .k, .markdown-body .highlight .o { font-weight: bold; } -.markdown-body .highlight .cm { - color: #999988; - font-style: italic; -} - -.markdown-body .highlight .cp { - color: #999999; - font-weight: bold; +.markdown-body .highlight .kt { + color: #458; } +.markdown-body .highlight .c, +.markdown-body .highlight .cm, .markdown-body .highlight .c1 { - color: #999988; + color: #998; font-style: italic; } +.markdown-body .highlight .cp, .markdown-body .highlight .cs { - color: #999999; + color: #999; font-weight: bold; - font-style: italic; } -.markdown-body .highlight .gd { - color: #000000; - background-color: #ffdddd; -} - -.markdown-body .highlight .gd .x { - color: #000000; - background-color: #ffaaaa; -} - -.markdown-body .highlight .ge { +.markdown-body .highlight .cs { font-style: italic; } -.markdown-body .highlight .gr { - color: #aa0000; -} - -.markdown-body .highlight .gh { - color: #999999; -} - -.markdown-body .highlight .gi { - color: #000000; - background-color: #ddffdd; -} - -.markdown-body .highlight .gi .x { - color: #000000; - background-color: #aaffaa; -} - -.markdown-body .highlight .go { - color: #888888; -} - -.markdown-body .highlight .gp { - color: #555555; -} - -.markdown-body .highlight .gs { - font-weight: bold; -} - -.markdown-body .highlight .gu { - color: #800080; - font-weight: bold; -} - -.markdown-body .highlight .gt { - color: #aa0000; -} - -.markdown-body .highlight .kc { - font-weight: bold; -} - -.markdown-body .highlight .kd { - font-weight: bold; -} - -.markdown-body .highlight .kn { - font-weight: bold; -} - -.markdown-body .highlight .kp { - font-weight: bold; -} - -.markdown-body .highlight .kr { - font-weight: bold; -} - -.markdown-body .highlight .kt { - color: #445588; - font-weight: bold; -} - -.markdown-body .highlight .m { - color: #009999; -} - -.markdown-body .highlight .s { - color: #dd1144; -} - .markdown-body .highlight .n { - color: #333333; + color: #333; } -.markdown-body .highlight .na { - color: teal; +.markdown-body .highlight .na, +.markdown-body .highlight .nv, +.markdown-body .highlight .vc, +.markdown-body .highlight .vg, +.markdown-body .highlight .vi { + color: #008080; } .markdown-body .highlight .nb { - color: #0086b3; + color: #0086B3; } .markdown-body .highlight .nc { - color: #445588; + color: #458; font-weight: bold; } .markdown-body .highlight .no { - color: teal; + color: #094e99; } .markdown-body .highlight .ni { - color: purple; + color: #800080; } .markdown-body .highlight .ne { @@ -638,108 +569,94 @@ } .markdown-body .highlight .nf { - color: #990000; + color: #945277; font-weight: bold; } .markdown-body .highlight .nn { - color: #555555; + color: #555; } .markdown-body .highlight .nt { - color: navy; + color: #000080; } -.markdown-body .highlight .nv { - color: teal; +.markdown-body .highlight .err { + color: #a61717; + background-color: #e3d2d2; } -.markdown-body .highlight .ow { - font-weight: bold; +.markdown-body .highlight .gd { + color: #000; + background-color: #fdd; } -.markdown-body .highlight .w { - color: #bbbbbb; +.markdown-body .highlight .gd .x { + color: #000; + background-color: #faa; } -.markdown-body .highlight .mf { - color: #009999; +.markdown-body .highlight .ge { + font-style: italic; } -.markdown-body .highlight .mh { - color: #009999; +.markdown-body .highlight .gr { + color: #aa0000; } -.markdown-body .highlight .mi { - color: #009999; +.markdown-body .highlight .gh { + color: #999; } -.markdown-body .highlight .mo { - color: #009999; +.markdown-body .highlight .gi { + color: #000; + background-color: #dfd; } -.markdown-body .highlight .sb { - color: #dd1144; +.markdown-body .highlight .gi .x { + color: #000; + background-color: #afa; } -.markdown-body .highlight .sc { - color: #dd1144; +.markdown-body .highlight .go { + color: #888; } -.markdown-body .highlight .sd { - color: #dd1144; +.markdown-body .highlight .gp { + color: #555; } -.markdown-body .highlight .s2 { - color: #dd1144; +.markdown-body .highlight .gs { + font-weight: bold; } -.markdown-body .highlight .se { - color: #dd1144; +.markdown-body .highlight .gu { + color: #800080; + font-weight: bold; } -.markdown-body .highlight .sh { - color: #dd1144; +.markdown-body .highlight .gt { + color: #aa0000; } -.markdown-body .highlight .si { - color: #dd1144; +.markdown-body .highlight .ow { + font-weight: bold; } -.markdown-body .highlight .sx { - color: #dd1144; +.markdown-body .highlight .w { + color: #bbb; } .markdown-body .highlight .sr { - color: #009926; -} - -.markdown-body .highlight .s1 { - color: #dd1144; + color: #017936; } .markdown-body .highlight .ss { - color: #990073; + color: #8b467f; } .markdown-body .highlight .bp { - color: #999999; -} - -.markdown-body .highlight .vc { - color: teal; -} - -.markdown-body .highlight .vg { - color: teal; -} - -.markdown-body .highlight .vi { - color: teal; -} - -.markdown-body .highlight .il { - color: #009999; + color: #999; } .markdown-body .highlight .gc { @@ -773,6 +690,7 @@ } .markdown-body .task-list-item-checkbox { - margin: 0 4px 0.25em -20px; + float: left; + margin: 0.3em 0 0.25em -1.6em; vertical-align: middle; } From 67987bd089f62a1067faf2f6df1f6934a24bdfa7 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 1 Oct 2014 18:05:52 +0200 Subject: [PATCH 025/131] fix inconsistency with GitHub Markdown API output for tasklist fixes #10 --- github-markdown.css | 2 +- index.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/github-markdown.css b/github-markdown.css index 1146596..422151f 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -689,7 +689,7 @@ margin-top: 3px; } -.markdown-body .task-list-item-checkbox { +.markdown-body .task-list-item input { float: left; margin: 0.3em 0 0.25em -1.6em; vertical-align: middle; diff --git a/index.js b/index.js index 59717b4..35017b2 100644 --- a/index.js +++ b/index.js @@ -57,6 +57,11 @@ function cleanupCss(str) { return false; } + // work around GitHub Markdown API inconsistency #10 + if (el.selectors[0] === '.task-list-item-checkbox') { + el.selectors[0] = '.task-list-item input'; + } + // remove `body` from `body, input {}` if (el.selectors[0] === 'body' && el.selectors[1] === 'input') { el.selectors.shift(); From ac1788b64c5a1fc8c0a96dab711d768e92935aae Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 1 Oct 2014 18:06:31 +0200 Subject: [PATCH 026/131] 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5d36220..dbe7ed2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.1.1", + "version": "1.2.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From c11391e523d6169b9b9a39afc988bc083f89b614 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 10 Nov 2014 20:15:13 +0700 Subject: [PATCH 027/131] bump `cheerio` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dbe7ed2..86934d4 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "stylesheet" ], "dependencies": { - "cheerio": "^0.17.0", + "cheerio": "^0.18.0", "css": "^2.0.0", "got": "^1.0.0", "uncss": "^0.9.0" From 8038ae5ba8bdd6e9bda5f66d10f773ff47881307 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 10 Nov 2014 20:15:44 +0700 Subject: [PATCH 028/131] regenerate github css --- github-markdown.css | 60 +++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 422151f..e790265 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -195,18 +195,21 @@ font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } -.markdown-body kbd { - background-color: #e7e7e7; - background-image: -webkit-linear-gradient(#fefefe, #e7e7e7); - background-image: linear-gradient(#fefefe, #e7e7e7); - background-repeat: repeat-x; - border-radius: 2px; - border: 1px solid #cfcfcf; - color: #000; - padding: 3px 5px; - line-height: 10px; - font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; +.markdown-body .octicon { + font: normal normal 16px octicons-anchor; + line-height: 1; display: inline-block; + text-decoration: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.markdown-body .octicon-link:before { + content: '\f05c'; } .markdown-body>*:first-child { @@ -262,7 +265,6 @@ .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { - height: 1em; padding-left: 8px; margin-left: -30px; line-height: 1; @@ -480,6 +482,12 @@ background: #fff; } +.markdown-body .highlight .h { + color: #333; + font-style: normal; + font-weight: normal; +} + .markdown-body .highlight .mf, .markdown-body .highlight .mh, .markdown-body .highlight .mi, @@ -525,7 +533,8 @@ } .markdown-body .highlight .cp, -.markdown-body .highlight .cs { +.markdown-body .highlight .cs, +.markdown-body .highlight .cp .h { color: #999; font-weight: bold; } @@ -664,21 +673,18 @@ background-color: #EAF2F5; } -.markdown-body .octicon { - font: normal normal 16px octicons-anchor; - line-height: 1; +.markdown-body kbd { + background-color: #e7e7e7; + background-image: -webkit-linear-gradient(#fefefe, #e7e7e7); + background-image: linear-gradient(#fefefe, #e7e7e7); + background-repeat: repeat-x; display: inline-block; - text-decoration: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.markdown-body .octicon-link:before { - content: '\f05c'; + padding: 3px 5px; + font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; + line-height: 10px; + color: #000; + border: 1px solid #cfcfcf; + border-radius: 2px; } .markdown-body .task-list-item { From 5cc9e117dc691a9612617fae268807837c50dd86 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 10 Nov 2014 20:16:33 +0700 Subject: [PATCH 029/131] 1.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 86934d4..7a3ca43 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.2.0", + "version": "1.2.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 5c8476b185f44660d5cdd852d8e87d4841786f51 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 13 Nov 2014 00:40:01 +0700 Subject: [PATCH 030/131] regenerate github css fixes #12 --- github-markdown.css | 149 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) diff --git a/github-markdown.css b/github-markdown.css index e790265..703c5cd 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -687,6 +687,155 @@ border-radius: 2px; } +.markdown-body .highlight .pl-coc, +.markdown-body .highlight .pl-entm, +.markdown-body .highlight .pl-eoa, +.markdown-body .highlight .pl-mai .pl-sf, +.markdown-body .highlight .pl-pdv, +.markdown-body .highlight .pl-sc, +.markdown-body .highlight .pl-sr, +.markdown-body .highlight .pl-v, +.markdown-body .highlight .pl-vpf { + color: #0086b3; +} + +.markdown-body .highlight .pl-eoac, +.markdown-body .highlight .pl-mdht, +.markdown-body .highlight .pl-mi1, +.markdown-body .highlight .pl-mri, +.markdown-body .highlight .pl-va, +.markdown-body .highlight .pl-vpu { + color: #008080; +} + +.markdown-body .highlight .pl-c, +.markdown-body .highlight .pl-pdc { + color: #b4b7b4; + font-style: italic; +} + +.markdown-body .highlight .pl-k, +.markdown-body .highlight .pl-ko, +.markdown-body .highlight .pl-kolp, +.markdown-body .highlight .pl-mc, +.markdown-body .highlight .pl-mr, +.markdown-body .highlight .pl-ms, +.markdown-body .highlight .pl-s, +.markdown-body .highlight .pl-sok, +.markdown-body .highlight .pl-st { + color: #6e5494; +} + +.markdown-body .highlight .pl-ef, +.markdown-body .highlight .pl-enf, +.markdown-body .highlight .pl-enm, +.markdown-body .highlight .pl-entc, +.markdown-body .highlight .pl-eoi, +.markdown-body .highlight .pl-sf, +.markdown-body .highlight .pl-smc { + color: #d12089; +} + +.markdown-body .highlight .pl-ens, +.markdown-body .highlight .pl-eoai, +.markdown-body .highlight .pl-kos, +.markdown-body .highlight .pl-mh .pl-pdh, +.markdown-body .highlight .pl-mp, +.markdown-body .highlight .pl-pde, +.markdown-body .highlight .pl-stp { + color: #458; +} + +.markdown-body .highlight .pl-enti { + color: #d12089; + font-weight: bold; +} + +.markdown-body .highlight .pl-cce, +.markdown-body .highlight .pl-enc, +.markdown-body .highlight .pl-kou, +.markdown-body .highlight .pl-mq { + color: #f93; +} + +.markdown-body .highlight .pl-mp1 .pl-sf { + color: #458; + font-weight: bold; +} + +.markdown-body .highlight .pl-cos, +.markdown-body .highlight .pl-ent, +.markdown-body .highlight .pl-md, +.markdown-body .highlight .pl-mdhf, +.markdown-body .highlight .pl-ml, +.markdown-body .highlight .pl-pdc1, +.markdown-body .highlight .pl-pds, +.markdown-body .highlight .pl-s1, +.markdown-body .highlight .pl-scp, +.markdown-body .highlight .pl-sol { + color: #df5000; +} + +.markdown-body .highlight .pl-c1, +.markdown-body .highlight .pl-cn, +.markdown-body .highlight .pl-pse, +.markdown-body .highlight .pl-pse .pl-s2, +.markdown-body .highlight .pl-vi { + color: #a31515; +} + +.markdown-body .highlight .pl-mb, +.markdown-body .highlight .pl-pdb { + color: #df5000; + font-weight: bold; +} + +.markdown-body .highlight .pl-mi, +.markdown-body .highlight .pl-pdi { + color: #6e5494; + font-style: italic; +} + +.markdown-body .highlight .pl-ms1 { + background-color: #f5f5f5; +} + +.markdown-body .highlight .pl-mdh, +.markdown-body .highlight .pl-mdi { + font-weight: bold; +} + +.markdown-body .highlight .pl-mdr { + color: #0086b3; + font-weight: bold; +} + +.markdown-body .highlight .pl-s2 { + color: #333; +} + +.markdown-body .highlight .pl-ii { + background-color: #df5000; + color: #fff; +} + +.markdown-body .highlight .pl-ib { + background-color: #f93; +} + +.markdown-body .highlight .pl-id { + background-color: #a31515; + color: #fff; +} + +.markdown-body .highlight .pl-iu { + background-color: #b4b7b4; +} + +.markdown-body .highlight .pl-mo { + color: #969896; +} + .markdown-body .task-list-item { list-style-type: none; } From 78f4140103135e808bcaf595e791b679d8f45b73 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 13 Nov 2014 00:40:16 +0700 Subject: [PATCH 031/131] 1.2.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a3ca43..90122b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.2.1", + "version": "1.2.2", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From fe4922b3fe93969d460b70846828c243bf49a53b Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 27 Nov 2014 21:54:24 +0700 Subject: [PATCH 032/131] extract CSS generation into a separate module https://github.com/sindresorhus/generate-github-markdown-css --- .jshintrc | 13 - .travis.yml | 6 - bower.json | 8 +- cli.js | 33 - fixture.md | 1700 ------------------------------------------------ index.js | 157 ----- package.json | 26 +- readme.md | 39 +- screenshot.png | Bin 103486 -> 0 bytes test.js | 13 - 10 files changed, 10 insertions(+), 1985 deletions(-) delete mode 100644 .jshintrc delete mode 100644 .travis.yml delete mode 100755 cli.js delete mode 100644 fixture.md delete mode 100644 index.js delete mode 100644 screenshot.png delete mode 100644 test.js diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 804f8af..0000000 --- a/.jshintrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "node": true, - "esnext": true, - "bitwise": true, - "camelcase": true, - "curly": true, - "immed": true, - "newcap": true, - "noarg": true, - "undef": true, - "unused": "vars", - "strict": true -} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1605581..0000000 --- a/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js -node_js: - - '0.10' -branches: - only: - - gh-pages diff --git a/bower.json b/bower.json index ef8d719..6b16432 100644 --- a/bower.json +++ b/bower.json @@ -13,13 +13,7 @@ ], "ignore": [ "**/.*", - "component.json", "package.json", - "test.js", - "index.js", - "cli.js", - "index.html", - "screenshot.png", - "fixture.md" + "index.html" ] } diff --git a/cli.js b/cli.js deleted file mode 100755 index a7bb214..0000000 --- a/cli.js +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env node -'use strict'; -var pkg = require('./package.json'); -var githubMarkdownCss = require('./'); -var argv = process.argv.slice(2); - -function help() { - console.log([ - '', - ' ' + pkg.description, - '', - ' Usage', - ' github-markdown-css > ' - ].join('\n')); -} - -if (argv.indexOf('--help') !== -1) { - help(); - return; -} - -if (argv.indexOf('--version') !== -1) { - console.log(pkg.version); - return; -} - -githubMarkdownCss(function (err, css) { - if (err) { - throw err; - } - - console.log(css); -}); diff --git a/fixture.md b/fixture.md deleted file mode 100644 index 7377565..0000000 --- a/fixture.md +++ /dev/null @@ -1,1700 +0,0 @@ -Borrowed from https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet - ---- - -This is intended as a quick reference and showcase. For more complete info, see [John Gruber's original spec](http://daringfireball.net/projects/markdown/) and the [Github-flavored Markdown info page](http://github.github.com/github-flavored-markdown/). - -Note that there is also a [Cheatsheet specific to Markdown Here](./Markdown-Here-Cheatsheet) if that's what you're looking for. - -PLEASE DO NOT EDIT THIS PAGE! You can play around with Markdown on our [live demo page](http://www.markdown-here.com/livedemo.html). - -##### Table of Contents -[Headers](#headers) -[Emphasis](#emphasis) -[Lists](#lists) -[Links](#links) -[Images](#images) -[Code and Syntax Highlighting](#code) -[Tables](#tables) -[Blockquotes](#blockquotes) -[Inline HTML](#html) -[Horizontal Rule](#hr) -[Line Breaks](#lines) -[Youtube videos](#videos) - - -## Headers - -```no-highlight -# H1 -## H2 -### H3 -#### H4 -##### H5 -###### H6 - -Alternatively, for H1 and H2, an underline-ish style: - -Alt-H1 -====== - -Alt-H2 ------- -``` - -# H1 -## H2 -### H3 -#### H4 -##### H5 -###### H6 - -Alternatively, for H1 and H2, an underline-ish style: - -Alt-H1 -====== - -Alt-H2 ------- - - -## Emphasis - -```no-highlight -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with **asterisks** or __underscores__. - -Combined emphasis with **asterisks and _underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ -``` - -Emphasis, aka italics, with *asterisks* or _underscores_. - -Strong emphasis, aka bold, with **asterisks** or __underscores__. - -Combined emphasis with **asterisks and _underscores_**. - -Strikethrough uses two tildes. ~~Scratch this.~~ - - - -## Lists - -(In this example, leading and trailing spaces are shown with with dots: â‹…) - -```no-highlight -1. First ordered list item -2. Another item -â‹…â‹…* Unordered sub-list. -1. Actual numbers don't matter, just that it's a number -â‹…â‹…1. Ordered sub-list -4. And another item. - -â‹…â‹…â‹…You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown). - -â‹…â‹…â‹…To have a line break without a paragraph, you will need to use two trailing spaces.â‹…â‹… -â‹…â‹…â‹…Note that this line is separate, but within the same paragraph.â‹…â‹… -â‹…â‹…â‹…(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.) - -* Unordered list can use asterisks -- Or minuses -+ Or pluses -``` - -1. First ordered list item -2. Another item - * Unordered sub-list. -1. Actual numbers don't matter, just that it's a number - 1. Ordered sub-list -4. And another item. - - You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown). - - To have a line break without a paragraph, you will need to use two trailing spaces. - Note that this line is separate, but within the same paragraph. - (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.) - -* Unordered list can use asterisks -- Or minuses -+ Or pluses - - -1. foo - 1. bar - 1. baz - 1. faz -2. foo2 - - -- foo - - bar - - baz - - faz -- foo2 - - -1. foo - - bar - 1. baz - - faz - -- foo - 1. bar - - baz - 1. faz - - - -1. Lists in a list item: - - Indented four spaces. - * indented eight spaces. - - Four spaces again. -2. Multiple paragraphs in a list items: - It's best to indent the paragraphs four spaces - You can get away with three, but it can get - confusing when you nest other things. - Stick to four. - - We indented the first line an extra space to align - it with these paragraphs. In real use, we might do - that to the entire list so that all items line up. - - This paragraph is still part of the list item, but it looks messy to humans. So it's a good idea to wrap your nested paragraphs manually, as we did with the first two. - -3. Blockquotes in a list item: - - > Skip a line and - > indent the >'s four spaces. - -4. Preformatted text in a list item: - - Skip a line and indent eight spaces. - That's four spaces for the list - and four to trigger the code block. - - - - -## Inline HTML - -To reboot your computer, press ctrl+alt+del. - - - - -## Links - -There are two ways to create links. - -```no-highlight -[I'm an inline-style link](https://www.google.com) - -[I'm an inline-style link with title](https://www.google.com "Google's Homepage") - -[I'm a reference-style link][Arbitrary case-insensitive reference text] - -[I'm a relative reference to a repository file](../blob/master/LICENSE) - -[You can use numbers for reference-style link definitions][1] - -Or leave it empty and use the [link text itself] - -Some text to show that the reference links can follow later. - -[arbitrary case-insensitive reference text]: https://www.mozilla.org -[1]: http://slashdot.org -[link text itself]: http://www.reddit.com -``` - -[I'm an inline-style link](https://www.google.com) - -[I'm an inline-style link with title](https://www.google.com "Google's Homepage") - -[I'm a reference-style link][Arbitrary case-insensitive reference text] - -[I'm a relative reference to a repository file](../blob/master/LICENSE) - -[You can use numbers for reference-style link definitions][1] - -Or leave it empty and use the [link text itself] - -Some text to show that the reference links can follow later. - -[arbitrary case-insensitive reference text]: https://www.mozilla.org -[1]: http://slashdot.org -[link text itself]: http://www.reddit.com - - -## Images - -```no-highlight -Here's our logo (hover to see the title text): - -Inline-style: -![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1") - -Reference-style: -![alt text][logo] - -[logo]: https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 2" -``` - -Here's our logo (hover to see the title text): - -Inline-style: -![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1") - -Reference-style: -![alt text][logo] - -[logo]: https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 2" - - -## Code and Syntax Highlighting - -Code blocks are part of the Markdown spec, but syntax highlighting isn't. However, many renderers -- like Github's and *Markdown Here* -- support syntax highlighting. Which languages are supported and how those language names should be written will vary from renderer to renderer. *Markdown Here* supports highlighting for dozens of languages (and not-really-languages, like diffs and HTTP headers); to see the complete list, and how to write the language names, see the [highlight.js demo page](http://softwaremaniacs.org/media/soft/highlight/test.html). - -```no-highlight -Inline `code` has `back-ticks around` it. -``` - -Inline `code` has `back-ticks around` it. - -Blocks of code are either fenced by lines with three back-ticks ```, or are indented with four spaces. I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting. - -
    ```javascript
    -var s = "JavaScript syntax highlighting";
    -alert(s);
    -```
    -
    -```python
    -s = "Python syntax highlighting"
    -print s
    -```
    -
    -```
    -No language indicated, so no syntax highlighting.
    -But let's throw in a <b>tag</b>.
    -```
    -
    - - - -```javascript -var s = "JavaScript syntax highlighting"; -alert(s); -``` - -```python -s = "Python syntax highlighting" -print s -``` - -``` -No language indicated, so no syntax highlighting in Markdown Here (varies on Github). -But let's throw in a tag. -``` - - -
    -## Tables - -Tables aren't part of the core Markdown spec, but they are part of GFM and *Markdown Here* supports them. They are an easy way of adding tables to your email -- a task that would otherwise require copy-pasting from another application. - -```no-highlight -Colons can be used to align columns. - -| Tables | Are | Cool | -| ------------- |:-------------:| -----:| -| col 3 is | right-aligned | | -| col 2 is | centered | | -| zebra stripes | are neat | | - -The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown. - -Markdown | Less | Pretty ---- | --- | --- -*Still* | `renders` | **nicely** -1 | 2 | 3 -``` - -Colons can be used to align columns. - -| Tables | Are | Cool | -| ------------- |:-------------:| -----:| -| col 3 is | right-aligned | | -| col 2 is | centered | | -| zebra stripes | are neat | | - -The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown. - -Markdown | Less | Pretty ---- | --- | --- -*Still* | `renders` | **nicely** -1 | 2 | 3 - - -## Blockquotes - -```no-highlight -> Blockquotes are very handy in email to emulate reply text. -> This line is part of the same quote. - -Quote break. - -> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote. -``` - -> Blockquotes are very handy in email to emulate reply text. -> This line is part of the same quote. - -Quote break. - -> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote. - - -## Inline HTML - -You can also use raw HTML in your Markdown, and it'll mostly work pretty well. - -```no-highlight -
    -
    Definition list
    -
    Is something people use sometimes.
    - -
    Markdown in HTML
    -
    Does *not* work **very** well. Use HTML tags.
    -
    -``` - -
    -
    Definition list
    -
    Is something people use sometimes.
    - -
    Markdown in HTML
    -
    Does *not* work **very** well. Use HTML tags.
    -
    - -
    -## Horizontal Rule - -``` -Three or more... - ---- - -Hyphens - -*** - -Asterisks - -___ - -Underscores -``` - -Three or more... - ---- - -Hyphens - -*** - -Asterisks - -___ - -Underscores - - -## Line Breaks - -My basic recommendation for learning how line breaks work is to experiment and discover -- hit <Enter> once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), see what happens. You'll soon learn to get what you want. "Markdown Toggle" is your friend. - -Here are some things to try out: - -``` -Here's a line for us to start with. - -This line is separated from the one above by two newlines, so it will be a *separate paragraph*. - -This line is also a separate paragraph, but... -This line is only separated by a single newline, so it's a separate line in the *same paragraph*. -``` - -Here's a line for us to start with. - -This line is separated from the one above by two newlines, so it will be a *separate paragraph*. - -This line is also begins a separate paragraph, but... -This line is only separated by a single newline, so it's a separate line in the *same paragraph*. - -(Technical note: *Markdown Here* uses GFM line breaks, so there's no need to use MD's two-space line breaks.) - - -## Youtube videos - -They can't be added directly but you can add an image with a link to the video like this: - -```no-highlight - -``` - -Or, in pure Markdown, but losing the image sizing and border: - -```no-highlight -[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](http://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE) -``` - -Referencing a bug by #bugID in your git commit links it to the slip. For example #1. - - - -## Task List - -- [ ] foo - - [ ] foo - - [x] foo -- [x] foo - - - - - - -[test]: http://google.com/ "Google" - -# A heading - -Just a note, I've found that I can't test my markdown parser vs others. -For example, both markdown.js and showdown code blocks in lists wrong. They're -also completely [inconsistent][test] with regards to paragraphs in list items. - -A link. Not anymore. - - - -* List Item 1 - -* List Item 2 - * New List Item 1 - Hi, this is a list item. - * New List Item 2 - Another item - Code goes here. - Lots of it... - * New List Item 3 - The last item - -* List Item 3 -The final item. - -* List Item 4 -The real final item. - -Paragraph. - -> * bq Item 1 -> * bq Item 2 -> * New bq Item 1 -> * New bq Item 2 -> Text here - -* * * - -> Another blockquote! -> I really need to get -> more creative with -> mockup text.. -> markdown.js breaks here again - -Another Heading -------------- - -Hello *world*. Here is a [link](//hello). -And an image ![alt](src). - - Code goes here. - Lots of it... - - - - -> A list within a blockquote: -> -> * asterisk 1 -> * asterisk 2 -> * asterisk 3 - - - - - -***This is strong and em.*** - -So is ***this*** word. - -___This is strong and em.___ - -So is ___this___ word. - - - - - -## 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 - - -This was an error in Markdown 1.0.1: - -* this - - * sub - - that - - - - - - -> foo -> -> > bar -> -> foo - - - - - - -Markdown: Syntax -================ - - - - -* [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 - -* * * - -

    Overview

    - -

    Philosophy

    - -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. - - - -

    Inline HTML

    - -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. `
    `, -``, `
    `, `

    `, 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) `

    ` tags around HTML block-level tags. - -For example, to add an HTML table to a Markdown article: - - This is a regular paragraph. - -

    - - - -
    Foo
    - - 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. ``, ``, or `` -- 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 `` or `` 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. - - -

    Automatic Escaping for Special Characters

    - -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.) - - -* * * - - -

    Block Elements

    - - -

    Paragraphs and Line Breaks

    - -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 `
    ` tag. - -When you *do* want to insert a `
    ` 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 `
    `, but a simplistic -"every line break is a `
    `" 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 - - - - - -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 ###### - - -

    Blockquotes

    - -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. - - -

    Lists

    - -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: - -
      -
    1. Bird
    2. -
    3. McHale
    4. -
    5. Parish
    6. -
    - -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 `

    ` tags in the HTML output. For example, this input: - - * Bird - * Magic - -will turn into: - -

      -
    • Bird
    • -
    • Magic
    • -
    - -But this: - - * Bird - - * Magic - -will turn into: - -
      -
    • Bird

    • -
    • Magic

    • -
    - -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: - - - - -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. - - - -

    Code Blocks

    - -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 `
    ` and `` 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:
    -
    -    

    This is a normal paragraph:

    - -
    This is a code block.
    -    
    - -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: - -

    Here is an example of AppleScript:

    - -
    tell application "Foo"
    -        beep
    -    end tell
    -    
    - -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: - - - -will turn into: - -
    <div class="footer">
    -        &copy; 2004 Foo Corporation
    -    </div>
    -    
    - -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. - - - -

    Horizontal Rules

    - -You can produce a horizontal rule tag (`
    `) 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: - - * * * - - *** - - ***** - - - - - - - --------------------------------------- - - _ _ _ - - -* * * - -

    Span Elements

    - - - -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: - -

    This is - an example inline link.

    - -

    This link has no - title attribute.

    - -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]: "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: - -

    I get 10 times more traffic from Google than from - Yahoo - or MSN.

    - -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. - - -

    Emphasis

    - -Markdown treats asterisks (`*`) and underscores (`_`) as indicators of -emphasis. Text wrapped with one `*` or `_` will be wrapped with an -HTML `` tag; double `*`'s or `_`'s will be wrapped with an HTML -`` tag. E.g., this input: - - *single asterisks* - - _single underscores_ - - **double asterisks** - - __double underscores__ - -will produce: - - single asterisks - - single underscores - - double asterisks - - double underscores - -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\* - - - -

    Code

    - -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: - -

    Use the printf() function.

    - -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: - -

    There is a literal backtick (`) here.

    - -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: - -

    A single backtick in a code span: `

    - -

    A backtick-delimited string in a code span: `foo`

    - -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 `` tags. - -into: - -

    Please don't use any <blink> tags.

    - -You can write this: - - `—` is the decimal-encoded equivalent of `—`. - -to produce: - -

    &#8212; is the decimal-encoded - equivalent of &mdash;.

    - - - -

    Images

    - -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: - - ![Alt text](/path/to/img.jpg) - - ![Alt text](/path/to/img.jpg "Optional title") - -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 `` tags. - - -* * * - - -

    Miscellaneous

    - - - -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: - - - -Markdown will turn this into: - - http://example.com/ - -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: - - - -into something like this: - - address@exa - mple.com - -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.) - - - -

    Backslash Escapes

    - -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 `` 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 - - - - - - - -Foo [bar][]. - -Foo [bar](/url/ "Title with "quotes" inside"). - - - [bar]: /url/ "Title with "quotes" inside" - - - - - - - - -This is the [simple case]. - -[simple case]: /simple - - - -This one has a [line -break]. - -This one has a [line -break] with a line-ending space. - -[line break]: /foo - - -[this] [that] and the [other] - -[this]: /this -[that]: /that -[other]: /other - - - - - -Here's a simple block: - -
    - foo -
    - -This should be a code block, though: - -
    - foo -
    - -As should this: - -
    foo
    - -Now, nested: - -
    -
    -
    - foo -
    -
    -
    - -This should just be an HTML comment: - - - -Multiline: - - - -Code block: - - - -Just plain comment, with trailing spaces on the line: - - - -Code: - -
    - -Hr's: - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    diff --git a/index.js b/index.js deleted file mode 100644 index 35017b2..0000000 --- a/index.js +++ /dev/null @@ -1,157 +0,0 @@ -'use strict'; -var got = require('got'); -var cheerio = require('cheerio'); -var uncss = require('uncss'); - -function getCss(cb) { - got('https://github.com', function (err, data) { - if (err) { - cb(err); - return; - } - - var ret = []; - var $ = cheerio.load(data); - - $('link[href*="assets/github"]').each(function (i, el) { - ret.push(el.attribs.href); - }); - - if (ret.length === 0) { - cb(new Error('Could not find GitHub stylesheets')); - return; - } - - cb(null, ret); - }); -} - -function getRenderedFixture(cb) { - var url = 'https://github.com/sindresorhus/github-markdown-css/blob/gh-pages/fixture.md'; - - got(url, function (err, data) { - if (err) { - cb(err); - return; - } - - var $ = cheerio.load(data); - var html = $('.markdown-body').parent().html(); - - cb(null, html); - }); -} - -function cleanupCss(str) { - var css = require('css'); - var style = css.parse(str); - var mdBodyProps = []; - - style.stylesheet.rules = style.stylesheet.rules.filter(function (el) { - if (el.type === 'keyframes' || el.type === 'comment' || el.type === 'font-face') { - return false; - } - - if (el.type ==='rule') { - if (/::-webkit-validation|:-moz-placeholder|^\.integrations-slide-content|^\.prose-diff|@font-face|^button::|^article$/.test(el.selectors[0])) { - return false; - } - - // work around GitHub Markdown API inconsistency #10 - if (el.selectors[0] === '.task-list-item-checkbox') { - el.selectors[0] = '.task-list-item input'; - } - - // remove `body` from `body, input {}` - if (el.selectors[0] === 'body' && el.selectors[1] === 'input') { - el.selectors.shift(); - } - - // rename the .octoicons font - if (el.selectors[0] === '.octicon') { - el.declarations = el.declarations.map(function (el) { - if (el.property === 'font') { - el.value += '-anchor'; - } - - return el; - }); - } - - if (el.selectors.length === 1 && /^(?:html|body)$/.test(el.selectors[0])) { - el.declarations = el.declarations.filter(function (declaration) { - // remove everything from body/html other than these - if (/^(?:line-height|color)$|text-size-adjust$/.test(declaration.property)) { - return true; - } - - return false; - }); - } - - el.selectors = el.selectors.map(function (selector) { - if (/^(?:body|html)$/.test(selector)) { - selector = '.markdown-body'; - } - - if (!/\.markdown-body/.test(selector)) { - selector = '.markdown-body ' + selector; - } - - return selector; - }); - - // collect `.markdown-body` rules - if (el.selectors.length === 1 && el.selectors[0] === '.markdown-body') { - [].push.apply(mdBodyProps, el.declarations); - return false; - } - } - - if (el.declarations.length === 0) { - return false; - } - - return true; - }); - - // merge `.markdown-body` rules - style.stylesheet.rules.unshift({ - type: 'rule', - selectors: ['.markdown-body'], - declarations: mdBodyProps - }); - - var ret = css.stringify(style); - - ret = '@font-face {\n font-family: octicons-anchor;\n src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(\'woff\');\n}\n\n' + ret; - - return ret; -} - -module.exports = function (cb) { - getRenderedFixture(function (err, html) { - if (err) { - cb(err); - return; - } - - getCss(function (err, stylesheets) { - if (err) { - cb(err); - return; - } - - uncss(html, { - stylesheets: stylesheets, - ignore: [/^\.highlight/] - }, function (err, css) { - if (err) { - throw err; - } - - cb(null, cleanupCss(css)); - }); - }); - }); -}; diff --git a/package.json b/package.json index 90122b1..f8ac068 100644 --- a/package.json +++ b/package.json @@ -9,31 +9,17 @@ "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, - "bin": { - "github-markdown-css": "cli.js" - }, - "contributors": [ - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "url": "http://d10.github.io/" - } - ], "engines": { "node": ">=0.10.0" }, "scripts": { - "test": "mocha", - "generate": "node cli.js !> github-markdown.css" + "generate": "github-markdown-css !> github-markdown-css" }, "files": [ - "index.js", - "cli.js", "github-markdown.css" ], "keywords": [ - "cli", - "bin", + "browser", "github", "markdown", "md", @@ -41,13 +27,7 @@ "style", "stylesheet" ], - "dependencies": { - "cheerio": "^0.18.0", - "css": "^2.0.0", - "got": "^1.0.0", - "uncss": "^0.9.0" - }, "devDependencies": { - "mocha": "*" + "generate-github-markdown-css": "^1.0.0" } } diff --git a/readme.md b/readme.md index d955236..0a6650e 100644 --- a/readme.md +++ b/readme.md @@ -1,17 +1,12 @@ -# github-markdown-css [![Build Status](https://travis-ci.org/sindresorhus/github-markdown-css.svg?branch=gh-pages)](https://travis-ci.org/sindresorhus/github-markdown-css) +# github-markdown-css > The minimal amount of CSS to replicate the GitHub Markdown style -[](http://sindresorhus.com/github-markdown-css) +[](http://sindresorhus.com/github-markdown-css) ## [Demo](http://sindresorhus.com/github-markdown-css) -## How - -First a [rendered Markdown](fixture.md) with all possible syntax is fetched from GitHub. Then the GitHub.com CSS is fetched and both are run through [UnCSS](https://github.com/giakki/uncss), which extracts only the used styles, and then through a custom cleanup. - - ## Install Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css) or with a package-manager. @@ -46,36 +41,14 @@ Import the `github-markdown.css` file and add a `markdown-body` class to the con ``` -## Programmatic usage - -I will try to keep it up to date, but you're free to fetch the CSS yourself either through the API or CLI. - -```js -var githubMarkdownCss = require('github-markdown-css'); - -githubMarkdownCss(function (err, css) { - if (err) { - throw err; - } - - console.log(css); - //=> .markdown-body { ... -}); -``` - +## How -## CLI +See [`generate-github-markdown-css`](https://github.com/sindresorhus/generate-github-markdown-css) for how it's generated and ability to generate your own. -```sh -$ npm install --global github-markdown-css -``` -```sh -$ github-markdown-css --help +## Dev -Usage - $ github-markdown-css > -``` +Run `npm run generate` to update the CSS. ## License diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 31a2dae7516a6fb21cdea3f4dd558e3e0ce64eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103486 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

    2@+3>i4OGe1xt%lU@emE>VH#yT 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 Vaw+|z6@n>AUPc8_CiUjy{{jnM(UAZE diff --git a/test.js b/test.js deleted file mode 100644 index 48cdbbb..0000000 --- a/test.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -var assert = require('assert'); -var githubMarkdownCss = require('./'); - -it('should get the GitHub Markdown CSS', function (cb) { - this.timeout(20000); - - githubMarkdownCss(function (err, css) { - assert(!err, err); - assert(/markdown-body/.test(css)); - cb(); - }); -}); From 95c103bfb2959d5e49fe12f74eded1e96cf6a2a0 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 27 Nov 2014 22:03:43 +0700 Subject: [PATCH 033/131] 2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f8ac068..17de93e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "1.2.2", + "version": "2.0.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 85784cc7b2309f3973f1f6918149b8b72971373a Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 27 Nov 2014 22:20:18 +0700 Subject: [PATCH 034/131] regenerate github css fixes #13 --- github-markdown.css | 370 +++++++++----------------------------------- index.html | 15 +- package.json | 4 +- readme.md | 2 +- 4 files changed, 79 insertions(+), 312 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 703c5cd..019fd59 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -478,199 +478,116 @@ content: normal; } -.markdown-body .highlight { - background: #fff; -} - -.markdown-body .highlight .h { - color: #333; - font-style: normal; - font-weight: normal; -} - -.markdown-body .highlight .mf, -.markdown-body .highlight .mh, -.markdown-body .highlight .mi, -.markdown-body .highlight .mo, -.markdown-body .highlight .il, -.markdown-body .highlight .m { - color: #945277; -} - -.markdown-body .highlight .s, -.markdown-body .highlight .sb, -.markdown-body .highlight .sc, -.markdown-body .highlight .sd, -.markdown-body .highlight .s2, -.markdown-body .highlight .se, -.markdown-body .highlight .sh, -.markdown-body .highlight .si, -.markdown-body .highlight .sx, -.markdown-body .highlight .s1 { - color: #df5000; -} - -.markdown-body .highlight .kc, -.markdown-body .highlight .kd, -.markdown-body .highlight .kn, -.markdown-body .highlight .kp, -.markdown-body .highlight .kr, -.markdown-body .highlight .kt, -.markdown-body .highlight .k, -.markdown-body .highlight .o { - font-weight: bold; -} - -.markdown-body .highlight .kt { - color: #458; -} - -.markdown-body .highlight .c, -.markdown-body .highlight .cm, -.markdown-body .highlight .c1 { - color: #998; - font-style: italic; +.markdown-body .pl-c { + color: #969896; } -.markdown-body .highlight .cp, -.markdown-body .highlight .cs, -.markdown-body .highlight .cp .h { - color: #999; - font-weight: bold; +.markdown-body .pl-c1, +.markdown-body .pl-mdh, +.markdown-body .pl-mm, +.markdown-body .pl-mp, +.markdown-body .pl-mr, +.markdown-body .pl-s1 .pl-v, +.markdown-body .pl-s3, +.markdown-body .pl-sc, +.markdown-body .pl-sv { + color: #0086b3; } -.markdown-body .highlight .cs { - font-style: italic; +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #795da3; } -.markdown-body .highlight .n { +.markdown-body .pl-s1 .pl-s2, +.markdown-body .pl-smi, +.markdown-body .pl-smp, +.markdown-body .pl-stj, +.markdown-body .pl-vo, +.markdown-body .pl-vpf { color: #333; } -.markdown-body .highlight .na, -.markdown-body .highlight .nv, -.markdown-body .highlight .vc, -.markdown-body .highlight .vg, -.markdown-body .highlight .vi { - color: #008080; +.markdown-body .pl-ent { + color: #63a35c; } -.markdown-body .highlight .nb { - color: #0086B3; -} - -.markdown-body .highlight .nc { - color: #458; - font-weight: bold; +.markdown-body .pl-k, +.markdown-body .pl-s, +.markdown-body .pl-st { + color: #a71d5d; } -.markdown-body .highlight .no { - color: #094e99; +.markdown-body .pl-pds, +.markdown-body .pl-s1, +.markdown-body .pl-s1 .pl-pse .pl-s2, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sra, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-src, +.markdown-body .pl-v { + color: #df5000; } -.markdown-body .highlight .ni { - color: #800080; +.markdown-body .pl-id { + color: #b52a1d; } -.markdown-body .highlight .ne { - color: #990000; - font-weight: bold; +.markdown-body .pl-ii { + background-color: #b52a1d; + color: #f8f8f8; } -.markdown-body .highlight .nf { - color: #945277; +.markdown-body .pl-sr .pl-cce { + color: #63a35c; font-weight: bold; } -.markdown-body .highlight .nn { - color: #555; -} - -.markdown-body .highlight .nt { - color: #000080; -} - -.markdown-body .highlight .err { - color: #a61717; - background-color: #e3d2d2; +.markdown-body .pl-ml { + color: #693a17; } -.markdown-body .highlight .gd { - color: #000; - background-color: #fdd; +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + color: #1d3e81; + font-weight: bold; } -.markdown-body .highlight .gd .x { - color: #000; - background-color: #faa; +.markdown-body .pl-mq { + color: #008080; } -.markdown-body .highlight .ge { +.markdown-body .pl-mi { + color: #333; font-style: italic; } -.markdown-body .highlight .gr { - color: #aa0000; -} - -.markdown-body .highlight .gh { - color: #999; -} - -.markdown-body .highlight .gi { - color: #000; - background-color: #dfd; -} - -.markdown-body .highlight .gi .x { - color: #000; - background-color: #afa; -} - -.markdown-body .highlight .go { - color: #888; -} - -.markdown-body .highlight .gp { - color: #555; -} - -.markdown-body .highlight .gs { +.markdown-body .pl-mb { + color: #333; font-weight: bold; } -.markdown-body .highlight .gu { - color: #800080; - font-weight: bold; +.markdown-body .pl-md, +.markdown-body .pl-mdhf { + background-color: #ffecec; + color: #bd2c00; } -.markdown-body .highlight .gt { - color: #aa0000; +.markdown-body .pl-mdht, +.markdown-body .pl-mi1 { + background-color: #eaffea; + color: #55a532; } -.markdown-body .highlight .ow { +.markdown-body .pl-mdr { + color: #795da3; font-weight: bold; } -.markdown-body .highlight .w { - color: #bbb; -} - -.markdown-body .highlight .sr { - color: #017936; -} - -.markdown-body .highlight .ss { - color: #8b467f; -} - -.markdown-body .highlight .bp { - color: #999; -} - -.markdown-body .highlight .gc { - color: #999; - background-color: #EAF2F5; +.markdown-body .pl-mo { + color: #1d3e81; } .markdown-body kbd { @@ -687,155 +604,6 @@ border-radius: 2px; } -.markdown-body .highlight .pl-coc, -.markdown-body .highlight .pl-entm, -.markdown-body .highlight .pl-eoa, -.markdown-body .highlight .pl-mai .pl-sf, -.markdown-body .highlight .pl-pdv, -.markdown-body .highlight .pl-sc, -.markdown-body .highlight .pl-sr, -.markdown-body .highlight .pl-v, -.markdown-body .highlight .pl-vpf { - color: #0086b3; -} - -.markdown-body .highlight .pl-eoac, -.markdown-body .highlight .pl-mdht, -.markdown-body .highlight .pl-mi1, -.markdown-body .highlight .pl-mri, -.markdown-body .highlight .pl-va, -.markdown-body .highlight .pl-vpu { - color: #008080; -} - -.markdown-body .highlight .pl-c, -.markdown-body .highlight .pl-pdc { - color: #b4b7b4; - font-style: italic; -} - -.markdown-body .highlight .pl-k, -.markdown-body .highlight .pl-ko, -.markdown-body .highlight .pl-kolp, -.markdown-body .highlight .pl-mc, -.markdown-body .highlight .pl-mr, -.markdown-body .highlight .pl-ms, -.markdown-body .highlight .pl-s, -.markdown-body .highlight .pl-sok, -.markdown-body .highlight .pl-st { - color: #6e5494; -} - -.markdown-body .highlight .pl-ef, -.markdown-body .highlight .pl-enf, -.markdown-body .highlight .pl-enm, -.markdown-body .highlight .pl-entc, -.markdown-body .highlight .pl-eoi, -.markdown-body .highlight .pl-sf, -.markdown-body .highlight .pl-smc { - color: #d12089; -} - -.markdown-body .highlight .pl-ens, -.markdown-body .highlight .pl-eoai, -.markdown-body .highlight .pl-kos, -.markdown-body .highlight .pl-mh .pl-pdh, -.markdown-body .highlight .pl-mp, -.markdown-body .highlight .pl-pde, -.markdown-body .highlight .pl-stp { - color: #458; -} - -.markdown-body .highlight .pl-enti { - color: #d12089; - font-weight: bold; -} - -.markdown-body .highlight .pl-cce, -.markdown-body .highlight .pl-enc, -.markdown-body .highlight .pl-kou, -.markdown-body .highlight .pl-mq { - color: #f93; -} - -.markdown-body .highlight .pl-mp1 .pl-sf { - color: #458; - font-weight: bold; -} - -.markdown-body .highlight .pl-cos, -.markdown-body .highlight .pl-ent, -.markdown-body .highlight .pl-md, -.markdown-body .highlight .pl-mdhf, -.markdown-body .highlight .pl-ml, -.markdown-body .highlight .pl-pdc1, -.markdown-body .highlight .pl-pds, -.markdown-body .highlight .pl-s1, -.markdown-body .highlight .pl-scp, -.markdown-body .highlight .pl-sol { - color: #df5000; -} - -.markdown-body .highlight .pl-c1, -.markdown-body .highlight .pl-cn, -.markdown-body .highlight .pl-pse, -.markdown-body .highlight .pl-pse .pl-s2, -.markdown-body .highlight .pl-vi { - color: #a31515; -} - -.markdown-body .highlight .pl-mb, -.markdown-body .highlight .pl-pdb { - color: #df5000; - font-weight: bold; -} - -.markdown-body .highlight .pl-mi, -.markdown-body .highlight .pl-pdi { - color: #6e5494; - font-style: italic; -} - -.markdown-body .highlight .pl-ms1 { - background-color: #f5f5f5; -} - -.markdown-body .highlight .pl-mdh, -.markdown-body .highlight .pl-mdi { - font-weight: bold; -} - -.markdown-body .highlight .pl-mdr { - color: #0086b3; - font-weight: bold; -} - -.markdown-body .highlight .pl-s2 { - color: #333; -} - -.markdown-body .highlight .pl-ii { - background-color: #df5000; - color: #fff; -} - -.markdown-body .highlight .pl-ib { - background-color: #f93; -} - -.markdown-body .highlight .pl-id { - background-color: #a31515; - color: #fff; -} - -.markdown-body .highlight .pl-iu { - background-color: #b4b7b4; -} - -.markdown-body .highlight .pl-mo { - color: #969896; -} - .markdown-body .task-list-item { list-style-type: none; } diff --git a/index.html b/index.html index 3372279..715d8ca 100644 --- a/index.html +++ b/index.html @@ -28,15 +28,14 @@

    GitHub Markdown CSS demo

    Header

    Swine short ribs turkey short loin doner pastrami biltong cow boudin. Kielbasa kevin turkey, landjaeger andouille chicken swine flank fatback frankfurter filet mignon spare ribs sausage porchetta shankle. Beef ribs tri-tip landjaeger turducken corned beef. Jerky meatloaf salami beef, beef ribs drumstick pork ribeye shankle strip steak pork chop. Meatloaf short ribs chicken strip steak bresaola ground round short loin ham leberkas turducken ball tip biltong turkey cow. Venison porchetta tail short ribs pastrami. Bresaola tail fatback drumstick kevin meatball pork loin.

    -
    var gulp = require('gulp');
    -var myth = require('gulp-myth');
    +
    var gulp = require('gulp');
    +var myth = require('gulp-myth');
     
    -gulp.task('default', function () {
    -    return gulp.src('src/app.css')
    -        .pipe(myth())
    -        .pipe(gulp.dest('dist'));
    -});
    -
    +gulp.task('default', function () { + return gulp.src('src/app.css') + .pipe(myth()) + .pipe(gulp.dest('dist')); +});
    Fork me on GitHub diff --git a/package.json b/package.json index 17de93e..4d96b83 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "node": ">=0.10.0" }, "scripts": { - "generate": "github-markdown-css !> github-markdown-css" + "generate": "github-markdown-css !> github-markdown.css" }, "files": [ "github-markdown.css" @@ -28,6 +28,6 @@ "stylesheet" ], "devDependencies": { - "generate-github-markdown-css": "^1.0.0" + "generate-github-markdown-css": "^1.0.1" } } diff --git a/readme.md b/readme.md index 0a6650e..a58fe34 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ > The minimal amount of CSS to replicate the GitHub Markdown style -[](http://sindresorhus.com/github-markdown-css) +[](http://sindresorhus.com/github-markdown-css) ## [Demo](http://sindresorhus.com/github-markdown-css) From df880b74a19b719b23ca0a54712319d2b03bcab8 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 27 Nov 2014 22:43:15 +0700 Subject: [PATCH 035/131] 2.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d96b83..fd546a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.0", + "version": "2.0.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From efc0dc1a3be1bc3494f66d3ef2b14e175551ef41 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 25 Dec 2014 18:03:44 +0700 Subject: [PATCH 036/131] regenerate github css --- github-markdown.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/github-markdown.css b/github-markdown.css index 019fd59..6d9c129 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -617,3 +617,9 @@ margin: 0.3em 0 0.25em -1.6em; vertical-align: middle; } + +.markdown-body :checked+.radio-label { + z-index: 1; + position: relative; + border-color: #4183c4; +} From bfc9fa896f486570f97eb1d800fa9b9e227d5af9 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 25 Dec 2014 18:03:59 +0700 Subject: [PATCH 037/131] 2.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fd546a2..f021004 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.1", + "version": "2.0.2", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 3279deef1f19fa6778bbe1e9adb754cd94372746 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 22 Jan 2015 21:09:20 +0800 Subject: [PATCH 038/131] regenerate github css --- github-markdown.css | 70 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 17 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 6d9c129..342b23e 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -98,7 +98,6 @@ } .markdown-body a:hover, -.markdown-body a:focus, .markdown-body a:active { text-decoration: underline; } @@ -186,7 +185,8 @@ } .markdown-body code { - font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; } .markdown-body pre { @@ -223,7 +223,6 @@ .markdown-body .anchor { position: absolute; top: 0; - bottom: 0; left: 0; display: block; padding-right: 6px; @@ -267,7 +266,6 @@ .markdown-body h6:hover .anchor { padding-left: 8px; margin-left: -30px; - line-height: 1; text-decoration: none; } @@ -287,6 +285,10 @@ border-bottom: 1px solid #eee; } +.markdown-body h1 .anchor { + line-height: 1; +} + .markdown-body h2 { padding-bottom: 0.3em; font-size: 1.75em; @@ -294,24 +296,44 @@ border-bottom: 1px solid #eee; } +.markdown-body h2 .anchor { + line-height: 1; +} + .markdown-body h3 { font-size: 1.5em; line-height: 1.43; } +.markdown-body h3 .anchor { + line-height: 1.2; +} + .markdown-body h4 { font-size: 1.25em; } +.markdown-body h4 .anchor { + line-height: 1.2; +} + .markdown-body h5 { font-size: 1em; } +.markdown-body h5 .anchor { + line-height: 1.1; +} + .markdown-body h6 { font-size: 1em; color: #777; } +.markdown-body h6 .anchor { + line-height: 1.1; +} + .markdown-body p, .markdown-body blockquote, .markdown-body ul, @@ -478,6 +500,20 @@ content: normal; } +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font-size: 11px; + line-height: 10px; + color: #555; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #ccc; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb; +} + .markdown-body .pl-c { color: #969896; } @@ -525,11 +561,15 @@ .markdown-body .pl-sr .pl-cce, .markdown-body .pl-sr .pl-sra, .markdown-body .pl-sr .pl-sre, -.markdown-body .pl-src, -.markdown-body .pl-v { +.markdown-body .pl-src { color: #df5000; } +.markdown-body .pl-mo, +.markdown-body .pl-v { + color: #1d3e81; +} + .markdown-body .pl-id { color: #b52a1d; } @@ -586,22 +626,18 @@ font-weight: bold; } -.markdown-body .pl-mo { - color: #1d3e81; -} - .markdown-body kbd { - background-color: #e7e7e7; - background-image: -webkit-linear-gradient(#fefefe, #e7e7e7); - background-image: linear-gradient(#fefefe, #e7e7e7); - background-repeat: repeat-x; display: inline-block; padding: 3px 5px; font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; line-height: 10px; - color: #000; - border: 1px solid #cfcfcf; - border-radius: 2px; + color: #555; + vertical-align: middle; + background-color: #fcfcfc; + border: solid 1px #ccc; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb; } .markdown-body .task-list-item { From 60c35525af380b6f833d96b1194c0bb71e184088 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 22 Jan 2015 21:09:46 +0800 Subject: [PATCH 039/131] 2.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f021004..bd25bdf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.2", + "version": "2.0.3", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 0b80b8b90f0f2ec18a179f285c457d97d98dfd49 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 16 Feb 2015 23:26:01 +0700 Subject: [PATCH 040/131] regenerate github css --- github-markdown.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 342b23e..f5c77e2 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -37,7 +37,6 @@ } .markdown-body hr { - -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } @@ -68,7 +67,6 @@ } .markdown-body input[type="checkbox"] { - -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; } @@ -84,7 +82,6 @@ } .markdown-body * { - -moz-box-sizing: border-box; box-sizing: border-box; } @@ -430,7 +427,6 @@ .markdown-body img { max-width: 100%; - -moz-box-sizing: border-box; box-sizing: border-box; } From 6d80489c09fe17e48bdd9cef62027f19c4dbca0a Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 16 Feb 2015 23:31:52 +0700 Subject: [PATCH 041/131] 2.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bd25bdf..577fbf3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.3", + "version": "2.0.4", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 667cc2dd9db488e6dff56c1a0892db8ff8f9d0f2 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 27 Feb 2015 16:36:45 +0800 Subject: [PATCH 042/131] regenerate github css --- github-markdown.css | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index f5c77e2..13384c9 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -193,10 +193,10 @@ } .markdown-body .octicon { - font: normal normal 16px octicons-anchor; - line-height: 1; + font: normal normal normal 16px/1 octicons-anchor; display: inline-block; text-decoration: none; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-user-select: none; @@ -428,6 +428,7 @@ .markdown-body img { max-width: 100%; box-sizing: border-box; + -moz-box-sizing: border-box; } .markdown-body code { @@ -558,12 +559,11 @@ .markdown-body .pl-sr .pl-sra, .markdown-body .pl-sr .pl-sre, .markdown-body .pl-src { - color: #df5000; + color: #183691; } -.markdown-body .pl-mo, .markdown-body .pl-v { - color: #1d3e81; + color: #ed6a43; } .markdown-body .pl-id { @@ -622,6 +622,10 @@ font-weight: bold; } +.markdown-body .pl-mo { + color: #1d3e81; +} + .markdown-body kbd { display: inline-block; padding: 3px 5px; From e907e1c79600b7dfad786c38b5c6bb87a666f2f6 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 27 Feb 2015 17:12:26 +0800 Subject: [PATCH 043/131] 2.0.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 577fbf3..bdc94fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.4", + "version": "2.0.5", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 80183241e1cda37a9ba84b4b5f9196d18c40ccdd Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sat, 7 Mar 2015 13:33:29 +0800 Subject: [PATCH 044/131] regenerate github css --- github-markdown.css | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 13384c9..ff431cd 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -217,6 +217,11 @@ margin-bottom: 0 !important; } +.markdown-body a:not(:link):not(:visited) { + color: inherit; + text-decoration: none; +} + .markdown-body .anchor { position: absolute; top: 0; @@ -428,7 +433,6 @@ .markdown-body img { max-width: 100%; box-sizing: border-box; - -moz-box-sizing: border-box; } .markdown-body code { @@ -649,8 +653,7 @@ } .markdown-body .task-list-item input { - float: left; - margin: 0.3em 0 0.25em -1.6em; + margin: 0 0.35em 0.25em -1.6em; vertical-align: middle; } From a5fd2bc5c8aac6b62f463aa7c995f544fe632c77 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sat, 7 Mar 2015 13:34:11 +0800 Subject: [PATCH 045/131] 2.0.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bdc94fe..bcf66ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.5", + "version": "2.0.6", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 8ea32e927fcb96964a4aca3c0cfccb6269500701 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 11 Mar 2015 02:46:29 +0800 Subject: [PATCH 046/131] regenerate github css --- github-markdown.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github-markdown.css b/github-markdown.css index ff431cd..44de9a6 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -86,7 +86,7 @@ } .markdown-body input { - font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; + font: 13px/1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; } .markdown-body a { From 4cac7ec8c60d942e3bbc5327a397557ac4b3cda3 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 11 Mar 2015 02:46:59 +0800 Subject: [PATCH 047/131] 2.0.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bcf66ba..9e5933e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.6", + "version": "2.0.7", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 1f877b65224704e6ac5fed1d94194f50e3936f42 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 15 Apr 2015 12:56:20 +0700 Subject: [PATCH 048/131] regenerate github css --- github-markdown.css | 34 +++++++++------------------------- index.html | 10 +++++----- 2 files changed, 14 insertions(+), 30 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 44de9a6..8adb5c9 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -217,7 +217,7 @@ margin-bottom: 0 !important; } -.markdown-body a:not(:link):not(:visited) { +.markdown-body a:not([href]) { color: inherit; text-decoration: none; } @@ -520,14 +520,7 @@ } .markdown-body .pl-c1, -.markdown-body .pl-mdh, -.markdown-body .pl-mm, -.markdown-body .pl-mp, -.markdown-body .pl-mr, -.markdown-body .pl-s1 .pl-v, -.markdown-body .pl-s3, -.markdown-body .pl-sc, -.markdown-body .pl-sv { +.markdown-body .pl-s .pl-v { color: #0086b3; } @@ -536,12 +529,8 @@ color: #795da3; } -.markdown-body .pl-s1 .pl-s2, -.markdown-body .pl-smi, -.markdown-body .pl-smp, -.markdown-body .pl-stj, -.markdown-body .pl-vo, -.markdown-body .pl-vpf { +.markdown-body .pl-s .pl-s1, +.markdown-body .pl-smi { color: #333; } @@ -549,20 +538,17 @@ color: #63a35c; } -.markdown-body .pl-k, -.markdown-body .pl-s, -.markdown-body .pl-st { +.markdown-body .pl-k { color: #a71d5d; } .markdown-body .pl-pds, -.markdown-body .pl-s1, -.markdown-body .pl-s1 .pl-pse .pl-s2, +.markdown-body .pl-s, +.markdown-body .pl-s .pl-pse .pl-s1, .markdown-body .pl-sr, .markdown-body .pl-sr .pl-cce, .markdown-body .pl-sr .pl-sra, -.markdown-body .pl-sr .pl-sre, -.markdown-body .pl-src { +.markdown-body .pl-sr .pl-sre { color: #183691; } @@ -609,13 +595,11 @@ font-weight: bold; } -.markdown-body .pl-md, -.markdown-body .pl-mdhf { +.markdown-body .pl-md { background-color: #ffecec; color: #bd2c00; } -.markdown-body .pl-mdht, .markdown-body .pl-mi1 { background-color: #eaffea; color: #55a532; diff --git a/index.html b/index.html index 715d8ca..d9ecb8f 100644 --- a/index.html +++ b/index.html @@ -28,13 +28,13 @@

    GitHub Markdown CSS demo

    Header

    Swine short ribs turkey short loin doner pastrami biltong cow boudin. Kielbasa kevin turkey, landjaeger andouille chicken swine flank fatback frankfurter filet mignon spare ribs sausage porchetta shankle. Beef ribs tri-tip landjaeger turducken corned beef. Jerky meatloaf salami beef, beef ribs drumstick pork ribeye shankle strip steak pork chop. Meatloaf short ribs chicken strip steak bresaola ground round short loin ham leberkas turducken ball tip biltong turkey cow. Venison porchetta tail short ribs pastrami. Bresaola tail fatback drumstick kevin meatball pork loin.

    -
    var gulp = require('gulp');
    -var myth = require('gulp-myth');
    +
    var gulp = require('gulp');
    +var myth = require('gulp-myth');
     
    -gulp.task('default', function () {
    -    return gulp.src('src/app.css')
    +gulp.task('default', function () {
    +    return gulp.src('src/app.css')
             .pipe(myth())
    -        .pipe(gulp.dest('dist'));
    +        .pipe(gulp.dest('dist'));
     });
    Fork me on GitHub From ef6bc860e874c298ed84902acdb048cc7cb0797a Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 15 Apr 2015 12:57:33 +0700 Subject: [PATCH 049/131] 2.0.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e5933e..89707fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.7", + "version": "2.0.8", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From bb90abdda894850e94fb78d9097dad0f322e48b6 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 5 Jun 2015 03:12:57 +0200 Subject: [PATCH 050/131] regenerate github css --- github-markdown.css | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 8adb5c9..5d9445c 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -4,8 +4,9 @@ } .markdown-body { - -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + text-size-adjust: 100%; color: #333; overflow: hidden; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; @@ -15,7 +16,7 @@ } .markdown-body a { - background: transparent; + background-color: transparent; } .markdown-body a:active, @@ -90,7 +91,7 @@ } .markdown-body a { - color: #4183c4; + color: #4078c0; text-decoration: none; } @@ -644,5 +645,5 @@ .markdown-body :checked+.radio-label { z-index: 1; position: relative; - border-color: #4183c4; + border-color: #4078c0; } From 66bde9cbf98f6526cf7eaba56aa83c4684402d90 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 5 Jun 2015 03:13:14 +0200 Subject: [PATCH 051/131] 2.0.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 89707fe..7e70417 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.8", + "version": "2.0.9", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 77612f1aaba66ed2c42434443c6882e0bbfd3be3 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 2 Sep 2015 14:21:25 +0700 Subject: [PATCH 052/131] regenerate github css --- github-markdown.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/github-markdown.css b/github-markdown.css index 5d9445c..1bd00d8 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -5,7 +5,6 @@ .markdown-body { -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; text-size-adjust: 100%; color: #333; overflow: hidden; @@ -193,6 +192,10 @@ font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } +.markdown-body .select::-ms-expand { + opacity: 0; +} + .markdown-body .octicon { font: normal normal normal 16px/1 octicons-anchor; display: inline-block; From 5c797a57e8fb1cc721f8dbaf30327372afaa2e7e Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Wed, 2 Sep 2015 14:21:34 +0700 Subject: [PATCH 053/131] 2.0.10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e70417..97c1b62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.9", + "version": "2.0.10", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 1829d3972e29bc1e75c7ab3787d53a725332325f Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 4 Oct 2015 21:08:27 +0700 Subject: [PATCH 054/131] regenerate github css --- github-markdown.css | 1 - 1 file changed, 1 deletion(-) diff --git a/github-markdown.css b/github-markdown.css index 1bd00d8..9b68d8c 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -7,7 +7,6 @@ -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color: #333; - overflow: hidden; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; font-size: 16px; line-height: 1.6; From 897c52802efdad340293693b6e4b83bf5c6ef59d Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 4 Oct 2015 21:08:36 +0700 Subject: [PATCH 055/131] 2.0.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 97c1b62..035a648 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.10", + "version": "2.0.11", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 1c6099e340b454f6a79b6becb52b88ac16220949 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 19 Oct 2015 01:36:45 +0700 Subject: [PATCH 056/131] regenerate github css --- github-markdown.css | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 9b68d8c..60261e8 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -226,13 +226,9 @@ } .markdown-body .anchor { - position: absolute; - top: 0; - left: 0; - display: block; - padding-right: 6px; - padding-left: 30px; - margin-left: -30px; + display: inline-block; + padding-right: 2px; + margin-left: -18px; } .markdown-body .anchor:focus { @@ -245,7 +241,6 @@ .markdown-body h4, .markdown-body h5, .markdown-body h6 { - position: relative; margin-top: 1em; margin-bottom: 16px; font-weight: bold; @@ -258,9 +253,9 @@ .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { - display: none; color: #000; vertical-align: middle; + visibility: hidden; } .markdown-body h1:hover .anchor, @@ -269,8 +264,6 @@ .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { - padding-left: 8px; - margin-left: -30px; text-decoration: none; } @@ -280,7 +273,7 @@ .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link { - display: inline-block; + visibility: visible; } .markdown-body h1 { @@ -435,7 +428,8 @@ .markdown-body img { max-width: 100%; - box-sizing: border-box; + box-sizing: content-box; + background-color: #fff; } .markdown-body code { @@ -631,6 +625,17 @@ box-shadow: inset 0 -1px 0 #bbb; } +.markdown-body:before { + display: table; + content: ""; +} + +.markdown-body:after { + display: table; + clear: both; + content: ""; +} + .markdown-body .task-list-item { list-style-type: none; } From 8da2badcd5063ed6956db92b2a145b6979ee5287 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 19 Oct 2015 01:36:54 +0700 Subject: [PATCH 057/131] 2.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 035a648..817cf89 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.0.11", + "version": "2.1.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 33f885115b3d8ceb2047b17f932bf3b9aa5b3f7f Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 30 Nov 2015 14:13:54 +0700 Subject: [PATCH 058/131] regenerate github css --- github-markdown.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 60261e8..f1a9b28 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -7,7 +7,7 @@ -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color: #333; - font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif; + font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 1.6; word-wrap: break-word; @@ -85,7 +85,7 @@ } .markdown-body input { - font: 13px/1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"; + font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } .markdown-body a { From ac2b917fc34133886eff3ced3833d04d76161217 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Mon, 30 Nov 2015 14:14:16 +0700 Subject: [PATCH 059/131] 2.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 817cf89..c3862d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.1.0", + "version": "2.1.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 2120fb447ba6b27373b925136f494fff3e9e92ee Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 6 Dec 2015 19:56:04 +0100 Subject: [PATCH 060/131] update to new GitHub readme width --- index.html | 5 +++-- package.json | 2 +- readme.md | 15 ++++++--------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/index.html b/index.html index d9ecb8f..d43e4de 100644 --- a/index.html +++ b/index.html @@ -7,10 +7,11 @@ diff --git a/package.json b/package.json index c3862d1..de354c1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", - "url": "http://sindresorhus.com" + "url": "sindresorhus.com" }, "engines": { "node": ">=0.10.0" diff --git a/readme.md b/readme.md index a58fe34..58ce1e4 100644 --- a/readme.md +++ b/readme.md @@ -9,29 +9,26 @@ ## Install -Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css) or with a package-manager. +Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css) or with npm: -```sh -$ npm install --save github-markdown-css ``` - -```sh -$ bower install --save github-markdown-css +$ npm install --save github-markdown-css ``` ## Usage -Import the `github-markdown.css` file and add a `markdown-body` class to the container of your rendered Markdown and set a width for it. GitHub uses `790px` width and `30px` padding. +Import the `github-markdown.css` file and add a `markdown-body` class to the container of your rendered Markdown and set a width for it. GitHub uses `980px` width and `45px` padding. ```html
    From 029b30908fdc53b8216e9068b57bd5758a743840 Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Sat, 9 Jan 2016 16:38:08 +0100 Subject: [PATCH 061/131] Close #22 PR: Fix octicons issue & More comprehensive demo page. --- github-markdown.css | 28 +- index.html | 1833 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 1836 insertions(+), 25 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index f1a9b28..b74016b 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -1,6 +1,6 @@ @font-face { - font-family: octicons-anchor; - src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); + font-family: octicons-link; + src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); } .markdown-body { @@ -196,7 +196,7 @@ } .markdown-body .octicon { - font: normal normal normal 16px/1 octicons-anchor; + font: normal normal normal 16px/1 octicons-link; display: inline-block; text-decoration: none; text-rendering: auto; @@ -212,6 +212,17 @@ content: '\f05c'; } +.markdown-body:before { + display: table; + content: ""; +} + +.markdown-body:after { + display: table; + clear: both; + content: ""; +} + .markdown-body>*:first-child { margin-top: 0 !important; } @@ -625,17 +636,6 @@ box-shadow: inset 0 -1px 0 #bbb; } -.markdown-body:before { - display: table; - content: ""; -} - -.markdown-body:after { - display: table; - clear: both; - content: ""; -} - .markdown-body .task-list-item { list-style-type: none; } diff --git a/index.html b/index.html index d43e4de..83e82d8 100644 --- a/index.html +++ b/index.html @@ -17,17 +17,1828 @@
    -

    GitHub Markdown CSS demo

    -
    -

    Bacon ipsum dolor sit amet filet mignon ribeye swine jerky porchetta beef ribs.

    -
    -

    Bacon pastrami ham hock tongue t-bone, ham shankle capicola biltong fatback shoulder pork tenderloin boudin. Pastrami sausage short ribs, pig bacon shoulder biltong ham. Sausage shankle meatball pork loin, pancetta flank pork frankfurter pig pork chop ham hock chicken ribeye capicola.

    -
      -
    • Foo
    • -
    • Bar
    • -
    -

    Header

    -

    Swine short ribs turkey short loin doner pastrami biltong cow boudin. Kielbasa kevin turkey, landjaeger andouille chicken swine flank fatback frankfurter filet mignon spare ribs sausage porchetta shankle. Beef ribs tri-tip landjaeger turducken corned beef. Jerky meatloaf salami beef, beef ribs drumstick pork ribeye shankle strip steak pork chop. Meatloaf short ribs chicken strip steak bresaola ground round short loin ham leberkas turducken ball tip biltong turkey cow. Venison porchetta tail short ribs pastrami. Bresaola tail fatback drumstick kevin meatball pork loin.

    +

    GitHub Markdown CSS demo

    + +

    + +

    Headers

    + +
    # H1
    +## H2
    +### H3
    +#### H4
    +##### H5
    +###### H6
    +
    +Alternatively, for H1 and H2, an underline-ish style:
    +
    +Alt-H1
    +======
    +
    +Alt-H2
    +------
    +
    + +

    H1

    + +

    H2

    + +

    H3

    + +

    H4

    + +
    H5
    + +
    H6
    + +

    Alternatively, for H1 and H2, an underline-ish style:

    + +

    Alt-H1

    + +

    Alt-H2

    + +

    + +

    Emphasis

    + +
    Emphasis, aka italics, with *asterisks* or _underscores_.
    +
    +Strong emphasis, aka bold, with **asterisks** or __underscores__.
    +
    +Combined emphasis with **asterisks and _underscores_**.
    +
    +Strikethrough uses two tildes. ~~Scratch this.~~
    +
    + +

    Emphasis, aka italics, with asterisks or underscores.

    + +

    Strong emphasis, aka bold, with asterisks or underscores.

    + +

    Combined emphasis with asterisks and underscores.

    + +

    Strikethrough uses two tildes. Scratch this.

    + +

    + +

    Lists

    + +

    (In this example, leading and trailing spaces are shown with with dots: â‹…)

    + +
    1. First ordered list item
    +2. Another item
    +â‹…â‹…* Unordered sub-list.
    +1. Actual numbers don't matter, just that it's a number
    +â‹…â‹…1. Ordered sub-list
    +4. And another item.
    +
    +â‹…â‹…â‹…You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).
    +
    +â‹…â‹…â‹…To have a line break without a paragraph, you will need to use two trailing spaces.â‹…â‹…
    +â‹…â‹…â‹…Note that this line is separate, but within the same paragraph.â‹…â‹…
    +â‹…â‹…â‹…(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)
    +
    +* Unordered list can use asterisks
    +- Or minuses
    ++ Or pluses
    +
    + +
      +
    1. First ordered list item
    2. +
    3. Another item + +
        +
      • Unordered sub-list.
      • +
    4. +
    5. Actual numbers don't matter, just that it's a number + +
        +
      1. Ordered sub-list
      2. +
    6. +
    7. And another item.

      + +

      You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).

      + +

      To have a line break without a paragraph, you will need to use two trailing spaces. + Note that this line is separate, but within the same paragraph. + (This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)

    8. +
    + +
      +
    • Unordered list can use asterisks
    • +
    • Or minuses
    • +
    • Or pluses

    • +
    + +
      +
    1. foo + +
        +
      1. bar + +
          +
        1. baz + +
            +
          1. faz
          2. +
        2. +
      2. +
    2. +
    3. foo2

    4. +
    + +
      +
    • foo + +
        +
      • bar + +
          +
        • baz + +
            +
          • faz
          • +
        • +
      • +
    • +
    • foo2

    • +
    + +
      +
    1. foo

      + +
        +
      • bar + +
          +
        1. baz + +
            +
          • faz
          • +
        2. +
      • +
    2. +
    + +
      +
    • foo

      + +
        +
      1. bar + +
          +
        • baz + +
            +
          1. faz
          2. +
        • +
      2. +
    • +
    + +
      +
    1. Lists in a list item: + +
        +
      • Indented four spaces. + +
          +
        • indented eight spaces.
        • +
      • +
      • Four spaces again.
      • +
    2. +
    3. Multiple paragraphs in a list items: +It's best to indent the paragraphs four spaces +You can get away with three, but it can get +confusing when you nest other things. +Stick to four.

      + +

      We indented the first line an extra space to align +it with these paragraphs. In real use, we might do +that to the entire list so that all items line up.

      + +

      This paragraph is still part of the list item, but it looks messy to humans. So it's a good idea to wrap your nested paragraphs manually, as we did with the first two.

    4. +
    5. Blockquotes in a list item:

      + +
      +

      Skip a line and +indent the >'s four spaces.

      +
    6. +
    7. Preformatted text in a list item:

      + +
      Skip a line and indent eight spaces.
      +That's four spaces for the list
      +and four to trigger the code block.
      +
    8. +
    + +

    Inline HTML

    + +

    To reboot your computer, press ctrl+alt+del.

    + +

    + +

    Links

    + +

    There are two ways to create links.

    + +
    [I'm an inline-style link](https://www.google.com)
    +
    +[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
    +
    +[I'm a reference-style link][Arbitrary case-insensitive reference text]
    +
    +[I'm a relative reference to a repository file](../blob/master/LICENSE)
    +
    +[You can use numbers for reference-style link definitions][1]
    +
    +Or leave it empty and use the [link text itself]
    +
    +Some text to show that the reference links can follow later.
    +
    +[arbitrary case-insensitive reference text]: https://www.mozilla.org
    +[1]: http://slashdot.org
    +[link text itself]: http://www.reddit.com
    +
    + +

    I'm an inline-style link

    + +

    I'm an inline-style link with title

    + +

    I'm a reference-style link

    + +

    I'm a relative reference to a repository file

    + +

    You can use numbers for reference-style link definitions

    + +

    Or leave it empty and use the link text itself

    + +

    Some text to show that the reference links can follow later.

    + +

    + +

    Images

    + +
    Here's our logo (hover to see the title text):
    +
    +Inline-style:
    +![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 1")
    +
    +Reference-style:
    +![alt text][logo]
    +
    +[logo]: https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "Logo Title Text 2"
    +
    + +

    Here's our logo (hover to see the title text):

    + +

    Inline-style: +alt text

    + +

    Reference-style: +alt text

    + +

    + +

    Code and Syntax Highlighting

    + +

    Code blocks are part of the Markdown spec, but syntax highlighting isn't. However, many renderers -- like Github's and Markdown Here -- support syntax highlighting. Which languages are supported and how those language names should be written will vary from renderer to renderer. Markdown Here supports highlighting for dozens of languages (and not-really-languages, like diffs and HTTP headers); to see the complete list, and how to write the language names, see the highlight.js demo page.

    + +
    Inline `code` has `back-ticks around` it.
    +
    + +

    Inline code has back-ticks around it.

    + +

    Blocks of code are either fenced by lines with three back-ticks ```, or are indented with four spaces. I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting.

    + +
    ```javascript
    +var s = "JavaScript syntax highlighting";
    +alert(s);
    +```
    +
    +```python
    +s = "Python syntax highlighting"
    +print s
    +```
    +
    +```
    +No language indicated, so no syntax highlighting.
    +But let's throw in a <b>tag</b>.
    +```
    +
    + +
    var s = "JavaScript syntax highlighting";
    +alert(s);
    + +
    s = "Python syntax highlighting"
    +print s
    + +
    No language indicated, so no syntax highlighting in Markdown Here (varies on Github).
    +But let's throw in a <b>tag</b>.
    +
    + +

    + +

    Tables

    + +

    Tables aren't part of the core Markdown spec, but they are part of GFM and Markdown Here supports them. They are an easy way of adding tables to your email -- a task that would otherwise require copy-pasting from another application.

    + +
    Colons can be used to align columns.
    +
    +| Tables        | Are           | Cool  |
    +| ------------- |:-------------:| -----:|
    +| col 3 is      | right-aligned |  |
    +| col 2 is      | centered      |    |
    +| zebra stripes | are neat      |     |
    +
    +The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.
    +
    +Markdown | Less | Pretty
    +--- | --- | ---
    +*Still* | `renders` | **nicely**
    +1 | 2 | 3
    +
    + +

    Colons can be used to align columns.

    + + + + + + + + + + + + + + + + + + + + + + + +
    TablesAreCool
    col 3 isright-aligned
    col 2 iscentered
    zebra stripesare neat
    + +

    The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.

    + + + + + + + + + + + + + + + + + + +
    MarkdownLessPretty
    Stillrendersnicely
    123
    + +

    + +

    Blockquotes

    + +
    > Blockquotes are very handy in email to emulate reply text.
    +> This line is part of the same quote.
    +
    +Quote break.
    +
    +> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
    +
    + +
    +

    Blockquotes are very handy in email to emulate reply text. +This line is part of the same quote.

    +
    + +

    Quote break.

    + +
    +

    This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can put Markdown into a blockquote.

    +
    + +

    + +

    Inline HTML

    + +

    You can also use raw HTML in your Markdown, and it'll mostly work pretty well.

    + +
    <dl>
    +    <dt>Definition list</dt>
    +    <dd>Is something people use sometimes.</dd>
    +
    +    <dt>Markdown in HTML</dt>
    +    <dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
    +</dl>
    +
    + +
    +
    Definition list
    +
    Is something people use sometimes.
    + +
    Markdown in HTML
    +
    Does *not* work **very** well. Use HTML tags.
    +
    + +

    + +

    Horizontal Rule

    + +
    Three or more...
    +
    +---
    +
    +Hyphens
    +
    +***
    +
    +Asterisks
    +
    +___
    +
    +Underscores
    +
    + +

    Three or more...

    + +
    + +

    Hyphens

    + +
    + +

    Asterisks

    + +
    + +

    Underscores

    + +

    + +

    Line Breaks

    + +

    My basic recommendation for learning how line breaks work is to experiment and discover -- hit <Enter> once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), see what happens. You'll soon learn to get what you want. "Markdown Toggle" is your friend.

    + +

    Here are some things to try out:

    + +
    Here's a line for us to start with.
    +
    +This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
    +
    +This line is also a separate paragraph, but...
    +This line is only separated by a single newline, so it's a separate line in the *same paragraph*.
    +
    + +

    Here's a line for us to start with.

    + +

    This line is separated from the one above by two newlines, so it will be a separate paragraph.

    + +

    This line is also begins a separate paragraph, but... +This line is only separated by a single newline, so it's a separate line in the same paragraph.

    + +

    (Technical note: Markdown Here uses GFM line breaks, so there's no need to use MD's two-space line breaks.)

    + +

    + +

    Youtube videos

    + +

    They can't be added directly but you can add an image with a link to the video like this:

    + +
    <a href="http://www.youtube.com/watch?feature=player_embedded&v=YOUTUBE_VIDEO_ID_HERE
    +" target="_blank"><img src="http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg"
    +alt="IMAGE ALT TEXT HERE" width="240" height="180" border="10" /></a>
    +
    + +

    Or, in pure Markdown, but losing the image sizing and border:

    + +
    [![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](http://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE)
    +
    + +

    Referencing a bug by #bugID in your git commit links it to the slip. For example #1.

    + +

    Task List

    + +
      +
    • foo + +
        +
      • foo
      • +
      • foo
      • +
    • +
    • foo
    • +
    + +

    [test]: http://google.com/ "Google"

    + +

    A heading

    + +

    Just a note, I've found that I can't test my markdown parser vs others. +For example, both markdown.js and showdown code blocks in lists wrong. They're +also completely [inconsistent][test] with regards to paragraphs in list items.

    + +

    A link. Not anymore.

    + +

    This will make me fail the test because +markdown.js doesnt acknowledge arbitrary html blocks =/

    + +
      +
    • List Item 1

    • +
    • List Item 2

      + +
        +
      • New List Item 1 +Hi, this is a list item.
      • +
      • New List Item 2 +Another item + Code goes here. + Lots of it...
      • +
      • New List Item 3 +The last item
      • +
    • +
    • List Item 3 +The final item.

    • +
    • List Item 4 +The real final item.

    • +
    + +

    Paragraph.

    + +
    +
      +
    • bq Item 1
    • +
    • bq Item 2 + +
        +
      • New bq Item 1
      • +
      • New bq Item 2 +Text here
      • +
    • +
    +
    + +
    + +
    +

    Another blockquote! +I really need to get +more creative with +mockup text.. +markdown.js breaks here again

    +
    + +

    Another Heading

    + +

    Hello world. Here is a link. +And an image alt.

    + +
    Code goes here.
    +Lots of it...
    +
    + +
    +

    A list within a blockquote:

    + +
      +
    • asterisk 1
    • +
    • asterisk 2
    • +
    • asterisk 3
    • +
    +
    + +

    This is strong and em.

    + +

    So is this word.

    + +

    This is strong and em.

    + +

    So is this word.

    + +

    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. +
    3. Second
    4. +
    5. Third
    6. +
    + +

    and:

    + +
      +
    1. One
    2. +
    3. Two
    4. +
    5. Three
    6. +
    + +

    Loose using tabs:

    + +
      +
    1. First

    2. +
    3. Second

    4. +
    5. Third

    6. +
    + +

    and using spaces:

    + +
      +
    1. One

    2. +
    3. Two

    4. +
    5. Three

    6. +
    + +

    Multiple paragraphs:

    + +
      +
    1. Item 1, graf one.

      + +

      Item 2. graf two. The quick brown fox jumped over the lazy dog's +back.

    2. +
    3. Item 2.

    4. +
    5. Item 3.

    6. +
    + +

    Nested

    + +
      +
    • Tab + +
        +
      • Tab + +
          +
        • Tab
        • +
      • +
    • +
    + +

    Here's another:

    + +
      +
    1. First
    2. +
    3. Second: + +
        +
      • Fee
      • +
      • Fie
      • +
      • Foe
      • +
    4. +
    5. Third
    6. +
    + +

    Same thing but with paragraphs:

    + +
      +
    1. First

    2. +
    3. Second:

      + +
        +
      • Fee
      • +
      • Fie
      • +
      • Foe
      • +
    4. +
    5. Third

    6. +
    + +

    This was an error in Markdown 1.0.1:

    + +
      +
    • this

      + +
        +
      • sub
      • +
      + +

      that

    • +
    + +
    +

    foo

    + +
    +

    bar

    +
    + +

    foo

    +
    + +

    Markdown: Syntax

    + + + + + +

    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

    + +
    + +

    Overview

    + +

    Philosophy

    + +

    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, [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.

    + +

    Inline HTML

    + +

    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.

    + +

    Automatic Escaping for Special Characters

    + +

    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. &lt;, and +&amp;.

    + +

    Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write 'AT&amp;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&amp;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 &amp;.

    + +

    So, if you want to include a copyright symbol in your article, you can write:

    + +
    &copy;
    +
    + +

    and Markdown will leave it alone. But if you write:

    + +
    AT&T
    +
    + +

    Markdown will translate it to:

    + +
    AT&amp;T
    +
    + +

    Similarly, because Markdown supports inline 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 &lt; 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.)

    + +
    + +

    Block Elements

    + +

    Paragraphs and Line Breaks

    + +

    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

    + +

    Headers

    + +

    Markdown supports two styles of headers, Setext 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 ######
    +
    + +

    Blockquotes

    + +

    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.

    + +

    Lists

    + +

    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.
    +
    + +

    Code Blocks

    + +

    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">
    +        &copy; 2004 Foo Corporation
    +    </div>
    +
    + +

    will turn into:

    + +
    <pre><code>&lt;div class="footer"&gt;
    +    &amp;copy; 2004 Foo Corporation
    +&lt;/div&gt;
    +</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.

    + +

    Horizontal Rules

    + +

    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:

    + +
    * * *
    +
    +***
    +
    +*****
    +
    +- - -
    +
    +---------------------------------------
    +
    +_ _ _
    +
    + +
    + +

    Span Elements

    + + + +

    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.

    + +

    Emphasis

    + +

    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\*
    +
    + +

    Code

    + +

    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>&lt;blink&gt;</code> tags.</p>
    +
    + +

    You can write this:

    + +
    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
    +
    + +

    to produce:

    + +
    <p><code>&amp;#8212;</code> is the decimal-encoded
    +equivalent of <code>&amp;mdash;</code>.</p>
    +
    + +

    Images

    + +

    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:

    + +
    ![Alt text](/path/to/img.jpg)
    +
    +![Alt text](/path/to/img.jpg "Optional title")
    +
    + +

    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.

    + +
    + +

    Miscellaneous

    + + + +

    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="&#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>
    +
    + +

    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.)

    + +

    Backslash Escapes

    + +

    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
    +
    + +

    Foo [bar][].

    + +

    Foo bar.

    + +

    [bar]: /url/ "Title with "quotes" inside"

    + +

    This is the [simple case].

    + +

    [simple case]: /simple

    + +

    This one has a [line +break].

    + +

    This one has a [line +break] with a line-ending space.

    + +

    [line break]: /foo

    + +

    [this] [that] and the [other]

    + +

    [this]: /this +[that]: /that +[other]: /other

    + +

    Here's a simple block:

    + +
    + foo +
    + +

    This should be a code block, though:

    + +
    <div>
    +    foo
    +</div>
    +
    + +

    As should this:

    + +
    <div>foo</div>
    +
    + +

    Now, nested:

    + +
    +
    +
    + foo +
    +
    +
    + +

    This should just be an HTML comment:

    + + + +

    Multiline:

    + + + +

    Code block:

    + +
    <!-- Comment -->
    +
    + +

    Just plain comment, with trailing spaces on the line:

    + + + +

    Code:

    + +
    <hr />
    +
    + +

    Hr's:

    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    var gulp = require('gulp');
     var myth = require('gulp-myth');
    
    From 263950475656d1c6623f7e790d6086e762a28bcb Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sat, 9 Jan 2016 16:41:08 +0100
    Subject: [PATCH 062/131] 2.2.0
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index de354c1..696e035 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.1.1",
    +  "version": "2.2.0",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From b99cdc49a3bbc66fcc4cda336f440c6c20c1d5c6 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sat, 23 Jan 2016 13:15:24 +0100
    Subject: [PATCH 063/131] change generation command name
    
    ---
     package.json | 2 +-
     readme.md    | 2 +-
     2 files changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/package.json b/package.json
    index 696e035..8fc5636 100644
    --- a/package.json
    +++ b/package.json
    @@ -13,7 +13,7 @@
         "node": ">=0.10.0"
       },
       "scripts": {
    -    "generate": "github-markdown-css !> github-markdown.css"
    +    "make": "github-markdown-css !> github-markdown.css"
       },
       "files": [
         "github-markdown.css"
    diff --git a/readme.md b/readme.md
    index 58ce1e4..2e00e1d 100644
    --- a/readme.md
    +++ b/readme.md
    @@ -45,7 +45,7 @@ See [`generate-github-markdown-css`](https://github.com/sindresorhus/generate-gi
     
     ## Dev
     
    -Run `npm run generate` to update the CSS.
    +Run `npm run make` to update the CSS.
     
     
     ## License
    
    From a16c76cfcb06130a8539c6d6f24a86624b925bdc Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sat, 23 Jan 2016 13:16:13 +0100
    Subject: [PATCH 064/131] add "main" field in package.json - fixes #23
    
    ---
     package.json | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/package.json b/package.json
    index 8fc5636..ca00daf 100644
    --- a/package.json
    +++ b/package.json
    @@ -9,6 +9,7 @@
         "email": "sindresorhus@gmail.com",
         "url": "sindresorhus.com"
       },
    +  "main": "github-markdown.css",
       "engines": {
         "node": ">=0.10.0"
       },
    
    From 033e86abcb007c3f103b33324945f5ce845617cf Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sat, 23 Jan 2016 13:16:39 +0100
    Subject: [PATCH 065/131] 2.2.1
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index ca00daf..9df133b 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.2.0",
    +  "version": "2.2.1",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From ac5e7d1dcfac280ce384a0800a38754d76e5dd30 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Tue, 3 May 2016 17:15:50 +0700
    Subject: [PATCH 066/131] bump dependencies
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index 9df133b..83a6af2 100644
    --- a/package.json
    +++ b/package.json
    @@ -29,6 +29,6 @@
         "stylesheet"
       ],
       "devDependencies": {
    -    "generate-github-markdown-css": "^1.0.1"
    +    "generate-github-markdown-css": "^2.0.0"
       }
     }
    
    From b6428abecd9cb66beed4302425804f12fc592eb6 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Tue, 3 May 2016 17:20:43 +0700
    Subject: [PATCH 067/131] regenerate github css
    
    ---
     github-markdown.css | 129 ++++++++++++++++++++++++++++----------------
     1 file changed, 84 insertions(+), 45 deletions(-)
    
    diff --git a/github-markdown.css b/github-markdown.css
    index b74016b..dd9dac3 100644
    --- a/github-markdown.css
    +++ b/github-markdown.css
    @@ -4,8 +4,8 @@
     }
     
     .markdown-body {
    +  -ms-text-size-adjust: 100%;
       -webkit-text-size-adjust: 100%;
    -  text-size-adjust: 100%;
       color: #333;
       font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
       font-size: 16px;
    @@ -15,15 +15,20 @@
     
     .markdown-body a {
       background-color: transparent;
    +  -webkit-text-decoration-skip: objects;
     }
     
     .markdown-body a:active,
     .markdown-body a:hover {
    -  outline: 0;
    +  outline-width: 0;
     }
     
     .markdown-body strong {
    -  font-weight: bold;
    +  font-weight: inherit;
    +}
    +
    +.markdown-body strong {
    +  font-weight: bolder;
     }
     
     .markdown-body h1 {
    @@ -32,16 +37,11 @@
     }
     
     .markdown-body img {
    -  border: 0;
    -}
    -
    -.markdown-body hr {
    -  box-sizing: content-box;
    -  height: 0;
    +  border-style: none;
     }
     
    -.markdown-body pre {
    -  overflow: auto;
    +.markdown-body svg:not(:root) {
    +  overflow: hidden;
     }
     
     .markdown-body code,
    @@ -51,28 +51,36 @@
       font-size: 1em;
     }
     
    +.markdown-body hr {
    +  box-sizing: content-box;
    +  height: 0;
    +  overflow: visible;
    +}
    +
     .markdown-body input {
    -  color: inherit;
       font: inherit;
       margin: 0;
     }
     
    -.markdown-body html input[disabled] {
    -  cursor: default;
    +.markdown-body input {
    +  overflow: visible;
     }
     
    -.markdown-body input {
    -  line-height: normal;
    +.markdown-body button:-moz-focusring,
    +.markdown-body [type="button"]:-moz-focusring,
    +.markdown-body [type="reset"]:-moz-focusring,
    +.markdown-body [type="submit"]:-moz-focusring {
    +  outline: 1px dotted ButtonText;
     }
     
    -.markdown-body input[type="checkbox"] {
    +.markdown-body [type="checkbox"] {
       box-sizing: border-box;
       padding: 0;
     }
     
     .markdown-body table {
    -  border-collapse: collapse;
       border-spacing: 0;
    +  border-collapse: collapse;
     }
     
     .markdown-body td,
    @@ -85,7 +93,7 @@
     }
     
     .markdown-body input {
    -  font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    +  font: 13px/1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
     }
     
     .markdown-body a {
    @@ -107,12 +115,12 @@
       border-bottom: 1px solid #ddd;
     }
     
    -.markdown-body hr:before {
    +.markdown-body hr::before {
       display: table;
       content: "";
     }
     
    -.markdown-body hr:after {
    +.markdown-body hr::after {
       display: table;
       clear: both;
       content: "";
    @@ -124,9 +132,9 @@
     .markdown-body h4,
     .markdown-body h5,
     .markdown-body h6 {
    -  margin-top: 15px;
    -  margin-bottom: 15px;
    -  line-height: 1.1;
    +  margin-top: 0;
    +  margin-bottom: 0;
    +  line-height: 1.5;
     }
     
     .markdown-body h1 {
    @@ -153,13 +161,18 @@
       font-size: 11px;
     }
     
    +.markdown-body p {
    +  margin-top: 0;
    +  margin-bottom: 10px;
    +}
    +
     .markdown-body blockquote {
       margin: 0;
     }
     
     .markdown-body ul,
     .markdown-body ol {
    -  padding: 0;
    +  padding-left: 0;
       margin-top: 0;
       margin-bottom: 0;
     }
    @@ -191,25 +204,36 @@
       font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
     }
     
    -.markdown-body .select::-ms-expand {
    -  opacity: 0;
    +.markdown-body .pl-0 {
    +  padding-left: 0 !important;
     }
     
    -.markdown-body .octicon {
    -  font: normal normal normal 16px/1 octicons-link;
    -  display: inline-block;
    -  text-decoration: none;
    -  text-rendering: auto;
    -  -webkit-font-smoothing: antialiased;
    -  -moz-osx-font-smoothing: grayscale;
    -  -webkit-user-select: none;
    -  -moz-user-select: none;
    -  -ms-user-select: none;
    -  user-select: none;
    +.markdown-body .pl-1 {
    +  padding-left: 3px !important;
    +}
    +
    +.markdown-body .pl-2 {
    +  padding-left: 6px !important;
    +}
    +
    +.markdown-body .pl-3 {
    +  padding-left: 12px !important;
    +}
    +
    +.markdown-body .pl-4 {
    +  padding-left: 24px !important;
     }
     
    -.markdown-body .octicon-link:before {
    -  content: '\f05c';
    +.markdown-body .pl-5 {
    +  padding-left: 36px !important;
    +}
    +
    +.markdown-body .pl-6 {
    +  padding-left: 48px !important;
    +}
    +
    +.markdown-body .form-select::-ms-expand {
    +  opacity: 0;
     }
     
     .markdown-body:before {
    @@ -636,6 +660,23 @@
       box-shadow: inset 0 -1px 0 #bbb;
     }
     
    +.markdown-body .full-commit .btn-outline:not(:disabled):hover {
    +  color: #4078c0;
    +  border: 1px solid #4078c0;
    +}
    +
    +.markdown-body :checked+.radio-label {
    +  position: relative;
    +  z-index: 1;
    +  border-color: #4078c0;
    +}
    +
    +.markdown-body .octicon {
    +  display: inline-block;
    +  vertical-align: text-top;
    +  fill: currentColor;
    +}
    +
     .markdown-body .task-list-item {
       list-style-type: none;
     }
    @@ -645,12 +686,10 @@
     }
     
     .markdown-body .task-list-item input {
    -  margin: 0 0.35em 0.25em -1.6em;
    +  margin: 0 0.2em 0.25em -1.6em;
       vertical-align: middle;
     }
     
    -.markdown-body :checked+.radio-label {
    -  z-index: 1;
    -  position: relative;
    -  border-color: #4078c0;
    +.markdown-body hr {
    +  border-bottom-color: #eee;
     }
    
    From dece7585bb53cd17039dedce5e0b888f28220456 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Tue, 3 May 2016 17:20:53 +0700
    Subject: [PATCH 068/131] 2.3.0
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index 83a6af2..29ff241 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.2.1",
    +  "version": "2.3.0",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From b526564124ad3fcea5e789b1d8636da2a8a8c543 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Tue, 3 May 2016 19:48:47 +0700
    Subject: [PATCH 069/131] remove moot `!` in build script
    
    #27
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index 29ff241..a7b2b5a 100644
    --- a/package.json
    +++ b/package.json
    @@ -14,7 +14,7 @@
         "node": ">=0.10.0"
       },
       "scripts": {
    -    "make": "github-markdown-css !> github-markdown.css"
    +    "make": "github-markdown-css > github-markdown.css"
       },
       "files": [
         "github-markdown.css"
    
    From d666bcdd419de524982c4f8181745fa62c65dc12 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Thu, 4 Aug 2016 12:37:31 +0200
    Subject: [PATCH 070/131] regenerate GitHub CSS to the new style
    
    fixes #30
    ---
     github-markdown.css | 481 ++++++++++++++++++++++----------------------
     1 file changed, 240 insertions(+), 241 deletions(-)
    
    diff --git a/github-markdown.css b/github-markdown.css
    index dd9dac3..00d4848 100644
    --- a/github-markdown.css
    +++ b/github-markdown.css
    @@ -6,13 +6,119 @@
     .markdown-body {
       -ms-text-size-adjust: 100%;
       -webkit-text-size-adjust: 100%;
    +  line-height: 1.5;
       color: #333;
    -  font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    +  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
       font-size: 16px;
    -  line-height: 1.6;
    +  line-height: 1.5;
       word-wrap: break-word;
     }
     
    +.markdown-body .pl-c {
    +  color: #969896;
    +}
    +
    +.markdown-body .pl-c1,
    +.markdown-body .pl-s .pl-v {
    +  color: #0086b3;
    +}
    +
    +.markdown-body .pl-e,
    +.markdown-body .pl-en {
    +  color: #795da3;
    +}
    +
    +.markdown-body .pl-smi,
    +.markdown-body .pl-s .pl-s1 {
    +  color: #333;
    +}
    +
    +.markdown-body .pl-ent {
    +  color: #63a35c;
    +}
    +
    +.markdown-body .pl-k {
    +  color: #a71d5d;
    +}
    +
    +.markdown-body .pl-s,
    +.markdown-body .pl-pds,
    +.markdown-body .pl-s .pl-pse .pl-s1,
    +.markdown-body .pl-sr,
    +.markdown-body .pl-sr .pl-cce,
    +.markdown-body .pl-sr .pl-sre,
    +.markdown-body .pl-sr .pl-sra {
    +  color: #183691;
    +}
    +
    +.markdown-body .pl-v {
    +  color: #ed6a43;
    +}
    +
    +.markdown-body .pl-id {
    +  color: #b52a1d;
    +}
    +
    +.markdown-body .pl-ii {
    +  color: #f8f8f8;
    +  background-color: #b52a1d;
    +}
    +
    +.markdown-body .pl-sr .pl-cce {
    +  font-weight: bold;
    +  color: #63a35c;
    +}
    +
    +.markdown-body .pl-ml {
    +  color: #693a17;
    +}
    +
    +.markdown-body .pl-mh,
    +.markdown-body .pl-mh .pl-en,
    +.markdown-body .pl-ms {
    +  font-weight: bold;
    +  color: #1d3e81;
    +}
    +
    +.markdown-body .pl-mq {
    +  color: #008080;
    +}
    +
    +.markdown-body .pl-mi {
    +  font-style: italic;
    +  color: #333;
    +}
    +
    +.markdown-body .pl-mb {
    +  font-weight: bold;
    +  color: #333;
    +}
    +
    +.markdown-body .pl-md {
    +  color: #bd2c00;
    +  background-color: #ffecec;
    +}
    +
    +.markdown-body .pl-mi1 {
    +  color: #55a532;
    +  background-color: #eaffea;
    +}
    +
    +.markdown-body .pl-mdr {
    +  font-weight: bold;
    +  color: #795da3;
    +}
    +
    +.markdown-body .pl-mo {
    +  color: #1d3e81;
    +}
    +
    +.markdown-body .octicon {
    +  display: inline-block;
    +  vertical-align: text-top;
    +  fill: currentColor;
    +}
    +
     .markdown-body a {
       background-color: transparent;
       -webkit-text-decoration-skip: objects;
    @@ -78,22 +184,14 @@
       padding: 0;
     }
     
    -.markdown-body table {
    -  border-spacing: 0;
    -  border-collapse: collapse;
    -}
    -
    -.markdown-body td,
    -.markdown-body th {
    -  padding: 0;
    -}
    -
     .markdown-body * {
       box-sizing: border-box;
     }
     
     .markdown-body input {
    -  font: 13px/1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    +  font-family: inherit;
    +  font-size: inherit;
    +  line-height: inherit;
     }
     
     .markdown-body a {
    @@ -106,6 +204,10 @@
       text-decoration: underline;
     }
     
    +.markdown-body strong {
    +  font-weight: 600;
    +}
    +
     .markdown-body hr {
       height: 0;
       margin: 15px 0;
    @@ -126,6 +228,16 @@
       content: "";
     }
     
    +.markdown-body table {
    +  border-spacing: 0;
    +  border-collapse: collapse;
    +}
    +
    +.markdown-body td,
    +.markdown-body th {
    +  padding: 0;
    +}
    +
     .markdown-body h1,
     .markdown-body h2,
     .markdown-body h3,
    @@ -134,31 +246,36 @@
     .markdown-body h6 {
       margin-top: 0;
       margin-bottom: 0;
    -  line-height: 1.5;
     }
     
     .markdown-body h1 {
    -  font-size: 30px;
    +  font-size: 32px;
    +  font-weight: 600;
     }
     
     .markdown-body h2 {
    -  font-size: 21px;
    +  font-size: 24px;
    +  font-weight: 600;
     }
     
     .markdown-body h3 {
    -  font-size: 16px;
    +  font-size: 20px;
    +  font-weight: 600;
     }
     
     .markdown-body h4 {
    -  font-size: 14px;
    +  font-size: 16px;
    +  font-weight: 600;
     }
     
     .markdown-body h5 {
    -  font-size: 12px;
    +  font-size: 14px;
    +  font-weight: 600;
     }
     
     .markdown-body h6 {
    -  font-size: 11px;
    +  font-size: 12px;
    +  font-weight: 600;
     }
     
     .markdown-body p {
    @@ -204,44 +321,25 @@
       font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
     }
     
    -.markdown-body .pl-0 {
    -  padding-left: 0 !important;
    -}
    -
    -.markdown-body .pl-1 {
    -  padding-left: 3px !important;
    -}
    -
    -.markdown-body .pl-2 {
    -  padding-left: 6px !important;
    -}
    -
    -.markdown-body .pl-3 {
    -  padding-left: 12px !important;
    -}
    -
    -.markdown-body .pl-4 {
    -  padding-left: 24px !important;
    -}
    -
    -.markdown-body .pl-5 {
    -  padding-left: 36px !important;
    +.markdown-body .octicon {
    +  vertical-align: text-bottom;
     }
     
    -.markdown-body .pl-6 {
    -  padding-left: 48px !important;
    +.markdown-body input {
    +  -webkit-font-feature-settings: "liga" 0;
    +  font-feature-settings: "liga" 0;
     }
     
     .markdown-body .form-select::-ms-expand {
       opacity: 0;
     }
     
    -.markdown-body:before {
    +.markdown-body::before {
       display: table;
       content: "";
     }
     
    -.markdown-body:after {
    +.markdown-body::after {
       display: table;
       clear: both;
       content: "";
    @@ -261,25 +359,73 @@
     }
     
     .markdown-body .anchor {
    -  display: inline-block;
    -  padding-right: 2px;
    -  margin-left: -18px;
    +  float: left;
    +  padding-right: 4px;
    +  margin-left: -20px;
    +  line-height: 1;
     }
     
     .markdown-body .anchor:focus {
       outline: none;
     }
     
    +.markdown-body p,
    +.markdown-body blockquote,
    +.markdown-body ul,
    +.markdown-body ol,
    +.markdown-body dl,
    +.markdown-body table,
    +.markdown-body pre {
    +  margin-top: 0;
    +  margin-bottom: 16px;
    +}
    +
    +.markdown-body hr {
    +  height: 0.25em;
    +  padding: 0;
    +  margin: 24px 0;
    +  background-color: #e7e7e7;
    +  border: 0;
    +}
    +
    +.markdown-body blockquote {
    +  padding: 0 1em;
    +  color: #777;
    +  border-left: 0.25em solid #ddd;
    +}
    +
    +.markdown-body blockquote>:first-child {
    +  margin-top: 0;
    +}
    +
    +.markdown-body blockquote>:last-child {
    +  margin-bottom: 0;
    +}
    +
    +.markdown-body kbd {
    +  display: inline-block;
    +  padding: 3px 5px;
    +  font-size: 11px;
    +  line-height: 10px;
    +  color: #555;
    +  vertical-align: middle;
    +  background-color: #fcfcfc;
    +  border: solid 1px #ccc;
    +  border-bottom-color: #bbb;
    +  border-radius: 3px;
    +  box-shadow: inset 0 -1px 0 #bbb;
    +}
    +
     .markdown-body h1,
     .markdown-body h2,
     .markdown-body h3,
     .markdown-body h4,
     .markdown-body h5,
     .markdown-body h6 {
    -  margin-top: 1em;
    +  margin-top: 24px;
       margin-bottom: 16px;
    -  font-weight: bold;
    -  line-height: 1.4;
    +  font-weight: 600;
    +  line-height: 1.25;
     }
     
     .markdown-body h1 .octicon-link,
    @@ -313,79 +459,33 @@
     
     .markdown-body h1 {
       padding-bottom: 0.3em;
    -  font-size: 2.25em;
    -  line-height: 1.2;
    +  font-size: 2em;
       border-bottom: 1px solid #eee;
     }
     
    -.markdown-body h1 .anchor {
    -  line-height: 1;
    -}
    -
     .markdown-body h2 {
       padding-bottom: 0.3em;
    -  font-size: 1.75em;
    -  line-height: 1.225;
    +  font-size: 1.5em;
       border-bottom: 1px solid #eee;
     }
     
    -.markdown-body h2 .anchor {
    -  line-height: 1;
    -}
    -
     .markdown-body h3 {
    -  font-size: 1.5em;
    -  line-height: 1.43;
    -}
    -
    -.markdown-body h3 .anchor {
    -  line-height: 1.2;
    -}
    -
    -.markdown-body h4 {
       font-size: 1.25em;
     }
     
    -.markdown-body h4 .anchor {
    -  line-height: 1.2;
    -}
    -
    -.markdown-body h5 {
    +.markdown-body h4 {
       font-size: 1em;
     }
     
    -.markdown-body h5 .anchor {
    -  line-height: 1.1;
    +.markdown-body h5 {
    +  font-size: 0.875em;
     }
     
     .markdown-body h6 {
    -  font-size: 1em;
    +  font-size: 0.85em;
       color: #777;
     }
     
    -.markdown-body h6 .anchor {
    -  line-height: 1.1;
    -}
    -
    -.markdown-body p,
    -.markdown-body blockquote,
    -.markdown-body ul,
    -.markdown-body ol,
    -.markdown-body dl,
    -.markdown-body table,
    -.markdown-body pre {
    -  margin-top: 0;
    -  margin-bottom: 16px;
    -}
    -
    -.markdown-body hr {
    -  height: 4px;
    -  padding: 0;
    -  margin: 16px 0;
    -  background-color: #e7e7e7;
    -  border: 0 none;
    -}
    -
     .markdown-body ul,
     .markdown-body ol {
       padding-left: 2em;
    @@ -403,6 +503,10 @@
       margin-top: 16px;
     }
     
    +.markdown-body li+li {
    +  margin-top: 0.25em;
    +}
    +
     .markdown-body dl {
       padding: 0;
     }
    @@ -420,20 +524,6 @@
       margin-bottom: 16px;
     }
     
    -.markdown-body blockquote {
    -  padding: 0 15px;
    -  color: #777;
    -  border-left: 4px solid #ddd;
    -}
    -
    -.markdown-body blockquote>:first-child {
    -  margin-top: 0;
    -}
    -
    -.markdown-body blockquote>:last-child {
    -  margin-bottom: 0;
    -}
    -
     .markdown-body table {
       display: block;
       width: 100%;
    @@ -477,12 +567,16 @@
       border-radius: 3px;
     }
     
    -.markdown-body code:before,
    -.markdown-body code:after {
    +.markdown-body code::before,
    +.markdown-body code::after {
       letter-spacing: -0.2em;
       content: "\00a0";
     }
     
    +.markdown-body pre {
    +  word-wrap: normal;
    +}
    +
     .markdown-body pre>code {
       padding: 0;
       margin: 0;
    @@ -497,6 +591,11 @@
       margin-bottom: 16px;
     }
     
    +.markdown-body .highlight pre {
    +  margin-bottom: 0;
    +  word-break: normal;
    +}
    +
     .markdown-body .highlight pre,
     .markdown-body pre {
       padding: 16px;
    @@ -507,143 +606,54 @@
       border-radius: 3px;
     }
     
    -.markdown-body .highlight pre {
    -  margin-bottom: 0;
    -  word-break: normal;
    -}
    -
    -.markdown-body pre {
    -  word-wrap: normal;
    -}
    -
     .markdown-body pre code {
       display: inline;
    -  max-width: initial;
    +  max-width: auto;
       padding: 0;
       margin: 0;
    -  overflow: initial;
    +  overflow: visible;
       line-height: inherit;
       word-wrap: normal;
       background-color: transparent;
       border: 0;
     }
     
    -.markdown-body pre code:before,
    -.markdown-body pre code:after {
    +.markdown-body pre code::before,
    +.markdown-body pre code::after {
       content: normal;
     }
     
    -.markdown-body kbd {
    -  display: inline-block;
    -  padding: 3px 5px;
    -  font-size: 11px;
    -  line-height: 10px;
    -  color: #555;
    -  vertical-align: middle;
    -  background-color: #fcfcfc;
    -  border: solid 1px #ccc;
    -  border-bottom-color: #bbb;
    -  border-radius: 3px;
    -  box-shadow: inset 0 -1px 0 #bbb;
    -}
    -
    -.markdown-body .pl-c {
    -  color: #969896;
    -}
    -
    -.markdown-body .pl-c1,
    -.markdown-body .pl-s .pl-v {
    -  color: #0086b3;
    -}
    -
    -.markdown-body .pl-e,
    -.markdown-body .pl-en {
    -  color: #795da3;
    -}
    -
    -.markdown-body .pl-s .pl-s1,
    -.markdown-body .pl-smi {
    -  color: #333;
    -}
    -
    -.markdown-body .pl-ent {
    -  color: #63a35c;
    -}
    -
    -.markdown-body .pl-k {
    -  color: #a71d5d;
    -}
    -
    -.markdown-body .pl-pds,
    -.markdown-body .pl-s,
    -.markdown-body .pl-s .pl-pse .pl-s1,
    -.markdown-body .pl-sr,
    -.markdown-body .pl-sr .pl-cce,
    -.markdown-body .pl-sr .pl-sra,
    -.markdown-body .pl-sr .pl-sre {
    -  color: #183691;
    -}
    -
    -.markdown-body .pl-v {
    -  color: #ed6a43;
    -}
    -
    -.markdown-body .pl-id {
    -  color: #b52a1d;
    -}
    -
    -.markdown-body .pl-ii {
    -  background-color: #b52a1d;
    -  color: #f8f8f8;
    -}
    -
    -.markdown-body .pl-sr .pl-cce {
    -  color: #63a35c;
    -  font-weight: bold;
    -}
    -
    -.markdown-body .pl-ml {
    -  color: #693a17;
    -}
    -
    -.markdown-body .pl-mh,
    -.markdown-body .pl-mh .pl-en,
    -.markdown-body .pl-ms {
    -  color: #1d3e81;
    -  font-weight: bold;
    +.markdown-body .pl-0 {
    +  padding-left: 0 !important;
     }
     
    -.markdown-body .pl-mq {
    -  color: #008080;
    +.markdown-body .pl-1 {
    +  padding-left: 3px !important;
     }
     
    -.markdown-body .pl-mi {
    -  color: #333;
    -  font-style: italic;
    +.markdown-body .pl-2 {
    +  padding-left: 6px !important;
     }
     
    -.markdown-body .pl-mb {
    -  color: #333;
    -  font-weight: bold;
    +.markdown-body .pl-3 {
    +  padding-left: 12px !important;
     }
     
    -.markdown-body .pl-md {
    -  background-color: #ffecec;
    -  color: #bd2c00;
    +.markdown-body .pl-4 {
    +  padding-left: 24px !important;
     }
     
    -.markdown-body .pl-mi1 {
    -  background-color: #eaffea;
    -  color: #55a532;
    +.markdown-body .pl-5 {
    +  padding-left: 36px !important;
     }
     
    -.markdown-body .pl-mdr {
    -  color: #795da3;
    -  font-weight: bold;
    +.markdown-body .pl-6 {
    +  padding-left: 48px !important;
     }
     
    -.markdown-body .pl-mo {
    -  color: #1d3e81;
    +.markdown-body .full-commit .btn-outline:not(:disabled):hover {
    +  color: #4078c0;
    +  border: 1px solid #4078c0;
     }
     
     .markdown-body kbd {
    @@ -660,23 +670,12 @@
       box-shadow: inset 0 -1px 0 #bbb;
     }
     
    -.markdown-body .full-commit .btn-outline:not(:disabled):hover {
    -  color: #4078c0;
    -  border: 1px solid #4078c0;
    -}
    -
     .markdown-body :checked+.radio-label {
       position: relative;
       z-index: 1;
       border-color: #4078c0;
     }
     
    -.markdown-body .octicon {
    -  display: inline-block;
    -  vertical-align: text-top;
    -  fill: currentColor;
    -}
    -
     .markdown-body .task-list-item {
       list-style-type: none;
     }
    
    From f73e0a064daf4c3e37674d625ff81895c25c03f4 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Thu, 4 Aug 2016 13:03:36 +0200
    Subject: [PATCH 071/131] 2.4.0
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index a7b2b5a..f4a58fd 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.3.0",
    +  "version": "2.4.0",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From 016093225b6d4f324fa10bd91332c8cf19bcd019 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Thu, 22 Sep 2016 23:38:28 +0700
    Subject: [PATCH 072/131] regenerate GitHub CSS
    
    ---
     github-markdown.css | 13 -------------
     1 file changed, 13 deletions(-)
    
    diff --git a/github-markdown.css b/github-markdown.css
    index 00d4848..42e38eb 100644
    --- a/github-markdown.css
    +++ b/github-markdown.css
    @@ -172,13 +172,6 @@
       overflow: visible;
     }
     
    -.markdown-body button:-moz-focusring,
    -.markdown-body [type="button"]:-moz-focusring,
    -.markdown-body [type="reset"]:-moz-focusring,
    -.markdown-body [type="submit"]:-moz-focusring {
    -  outline: 1px dotted ButtonText;
    -}
    -
     .markdown-body [type="checkbox"] {
       box-sizing: border-box;
       padding: 0;
    @@ -330,10 +323,6 @@
       font-feature-settings: "liga" 0;
     }
     
    -.markdown-body .form-select::-ms-expand {
    -  opacity: 0;
    -}
    -
     .markdown-body::before {
       display: table;
       content: "";
    @@ -528,8 +517,6 @@
       display: block;
       width: 100%;
       overflow: auto;
    -  word-break: normal;
    -  word-break: keep-all;
     }
     
     .markdown-body table th {
    
    From 7b86e65de4fdd353afb2b4f1989c7c9e4163424a Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Thu, 22 Sep 2016 23:39:31 +0700
    Subject: [PATCH 073/131] 2.4.1
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index f4a58fd..213bc66 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.4.0",
    +  "version": "2.4.1",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From 34876406f51ef11242b187bccb250c2cd94b47fa Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sun, 26 Mar 2017 15:34:32 +0700
    Subject: [PATCH 074/131] Regenerate GitHub CSS
    
    ---
     github-markdown.css | 163 ++++++++++++++++++++++++++------------------
     package.json        |   2 +-
     2 files changed, 96 insertions(+), 69 deletions(-)
    
    diff --git a/github-markdown.css b/github-markdown.css
    index 42e38eb..3f4a3dd 100644
    --- a/github-markdown.css
    +++ b/github-markdown.css
    @@ -7,8 +7,8 @@
       -ms-text-size-adjust: 100%;
       -webkit-text-size-adjust: 100%;
       line-height: 1.5;
    -  color: #333;
    -  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    +  color: #24292e;
    +  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
       font-size: 16px;
       line-height: 1.5;
       word-wrap: break-word;
    @@ -51,11 +51,12 @@
       color: #183691;
     }
     
    -.markdown-body .pl-v {
    +.markdown-body .pl-v,
    +.markdown-body .pl-smw {
       color: #ed6a43;
     }
     
    -.markdown-body .pl-id {
    +.markdown-body .pl-bu {
       color: #b52a1d;
     }
     
    @@ -64,6 +65,15 @@
       background-color: #b52a1d;
     }
     
    +.markdown-body .pl-c2 {
    +  color: #f8f8f8;
    +  background-color: #b52a1d;
    +}
    +
    +.markdown-body .pl-c2::before {
    +  content: "^M";
    +}
    +
     .markdown-body .pl-sr .pl-cce {
       font-weight: bold;
       color: #63a35c;
    @@ -104,6 +114,16 @@
       background-color: #eaffea;
     }
     
    +.markdown-body .pl-mc {
    +  color: #ef9700;
    +  background-color: #ffe3b4;
    +}
    +
    +.markdown-body .pl-mi2 {
    +  color: #d8d8d8;
    +  background-color: #808080;
    +}
    +
     .markdown-body .pl-mdr {
       font-weight: bold;
       color: #795da3;
    @@ -113,6 +133,19 @@
       color: #1d3e81;
     }
     
    +.markdown-body .pl-ba {
    +  color: #595e62;
    +}
    +
    +.markdown-body .pl-sg {
    +  color: #c0c0c0;
    +}
    +
    +.markdown-body .pl-corl {
    +  text-decoration: underline;
    +  color: #183691;
    +}
    +
     .markdown-body .octicon {
       display: inline-block;
       vertical-align: text-top;
    @@ -188,12 +221,11 @@
     }
     
     .markdown-body a {
    -  color: #4078c0;
    +  color: #0366d6;
       text-decoration: none;
     }
     
    -.markdown-body a:hover,
    -.markdown-body a:active {
    +.markdown-body a:hover {
       text-decoration: underline;
     }
     
    @@ -207,7 +239,7 @@
       overflow: hidden;
       background: transparent;
       border: 0;
    -  border-bottom: 1px solid #ddd;
    +  border-bottom: 1px solid #dfe2e5;
     }
     
     .markdown-body hr::before {
    @@ -304,23 +336,46 @@
     }
     
     .markdown-body code {
    -  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
    +  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
       font-size: 12px;
     }
     
     .markdown-body pre {
       margin-top: 0;
       margin-bottom: 0;
    -  font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
    +  font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
     }
     
     .markdown-body .octicon {
       vertical-align: text-bottom;
     }
     
    -.markdown-body input {
    -  -webkit-font-feature-settings: "liga" 0;
    -  font-feature-settings: "liga" 0;
    +.markdown-body .pl-0 {
    +  padding-left: 0 !important;
    +}
    +
    +.markdown-body .pl-1 {
    +  padding-left: 4px !important;
    +}
    +
    +.markdown-body .pl-2 {
    +  padding-left: 8px !important;
    +}
    +
    +.markdown-body .pl-3 {
    +  padding-left: 16px !important;
    +}
    +
    +.markdown-body .pl-4 {
    +  padding-left: 24px !important;
    +}
    +
    +.markdown-body .pl-5 {
    +  padding-left: 32px !important;
    +}
    +
    +.markdown-body .pl-6 {
    +  padding-left: 40px !important;
     }
     
     .markdown-body::before {
    @@ -373,14 +428,14 @@
       height: 0.25em;
       padding: 0;
       margin: 24px 0;
    -  background-color: #e7e7e7;
    +  background-color: #e1e4e8;
       border: 0;
     }
     
     .markdown-body blockquote {
       padding: 0 1em;
    -  color: #777;
    -  border-left: 0.25em solid #ddd;
    +  color: #6a737d;
    +  border-left: 0.25em solid #dfe2e5;
     }
     
     .markdown-body blockquote>:first-child {
    @@ -396,13 +451,13 @@
       padding: 3px 5px;
       font-size: 11px;
       line-height: 10px;
    -  color: #555;
    +  color: #444d56;
       vertical-align: middle;
    -  background-color: #fcfcfc;
    -  border: solid 1px #ccc;
    -  border-bottom-color: #bbb;
    +  background-color: #fafbfc;
    +  border: solid 1px #c6cbd1;
    +  border-bottom-color: #959da5;
       border-radius: 3px;
    -  box-shadow: inset 0 -1px 0 #bbb;
    +  box-shadow: inset 0 -1px 0 #959da5;
     }
     
     .markdown-body h1,
    @@ -423,7 +478,7 @@
     .markdown-body h4 .octicon-link,
     .markdown-body h5 .octicon-link,
     .markdown-body h6 .octicon-link {
    -  color: #000;
    +  color: #1b1f23;
       vertical-align: middle;
       visibility: hidden;
     }
    @@ -449,13 +504,13 @@
     .markdown-body h1 {
       padding-bottom: 0.3em;
       font-size: 2em;
    -  border-bottom: 1px solid #eee;
    +  border-bottom: 1px solid #eaecef;
     }
     
     .markdown-body h2 {
       padding-bottom: 0.3em;
       font-size: 1.5em;
    -  border-bottom: 1px solid #eee;
    +  border-bottom: 1px solid #eaecef;
     }
     
     .markdown-body h3 {
    @@ -472,7 +527,7 @@
     
     .markdown-body h6 {
       font-size: 0.85em;
    -  color: #777;
    +  color: #6a737d;
     }
     
     .markdown-body ul,
    @@ -505,7 +560,7 @@
       margin-top: 16px;
       font-size: 1em;
       font-style: italic;
    -  font-weight: bold;
    +  font-weight: 600;
     }
     
     .markdown-body dl dd {
    @@ -520,22 +575,22 @@
     }
     
     .markdown-body table th {
    -  font-weight: bold;
    +  font-weight: 600;
     }
     
     .markdown-body table th,
     .markdown-body table td {
       padding: 6px 13px;
    -  border: 1px solid #ddd;
    +  border: 1px solid #dfe2e5;
     }
     
     .markdown-body table tr {
       background-color: #fff;
    -  border-top: 1px solid #ccc;
    +  border-top: 1px solid #c6cbd1;
     }
     
     .markdown-body table tr:nth-child(2n) {
    -  background-color: #f8f8f8;
    +  background-color: #f6f8fa;
     }
     
     .markdown-body img {
    @@ -550,7 +605,7 @@
       padding-bottom: 0.2em;
       margin: 0;
       font-size: 85%;
    -  background-color: rgba(0,0,0,0.04);
    +  background-color: rgba(27,31,35,0.05);
       border-radius: 3px;
     }
     
    @@ -589,7 +644,7 @@
       overflow: auto;
       font-size: 85%;
       line-height: 1.45;
    -  background-color: #f7f7f7;
    +  background-color: #f6f8fa;
       border-radius: 3px;
     }
     
    @@ -610,57 +665,29 @@
       content: normal;
     }
     
    -.markdown-body .pl-0 {
    -  padding-left: 0 !important;
    -}
    -
    -.markdown-body .pl-1 {
    -  padding-left: 3px !important;
    -}
    -
    -.markdown-body .pl-2 {
    -  padding-left: 6px !important;
    -}
    -
    -.markdown-body .pl-3 {
    -  padding-left: 12px !important;
    -}
    -
    -.markdown-body .pl-4 {
    -  padding-left: 24px !important;
    -}
    -
    -.markdown-body .pl-5 {
    -  padding-left: 36px !important;
    -}
    -
    -.markdown-body .pl-6 {
    -  padding-left: 48px !important;
    -}
    -
     .markdown-body .full-commit .btn-outline:not(:disabled):hover {
    -  color: #4078c0;
    -  border: 1px solid #4078c0;
    +  color: #005cc5;
    +  border-color: #005cc5;
     }
     
     .markdown-body kbd {
       display: inline-block;
       padding: 3px 5px;
    -  font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
    +  font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
       line-height: 10px;
    -  color: #555;
    +  color: #444d56;
       vertical-align: middle;
       background-color: #fcfcfc;
    -  border: solid 1px #ccc;
    -  border-bottom-color: #bbb;
    +  border: solid 1px #c6cbd1;
    +  border-bottom-color: #959da5;
       border-radius: 3px;
    -  box-shadow: inset 0 -1px 0 #bbb;
    +  box-shadow: inset 0 -1px 0 #959da5;
     }
     
     .markdown-body :checked+.radio-label {
       position: relative;
       z-index: 1;
    -  border-color: #4078c0;
    +  border-color: #0366d6;
     }
     
     .markdown-body .task-list-item {
    diff --git a/package.json b/package.json
    index 213bc66..4678155 100644
    --- a/package.json
    +++ b/package.json
    @@ -29,6 +29,6 @@
         "stylesheet"
       ],
       "devDependencies": {
    -    "generate-github-markdown-css": "^2.0.0"
    +    "generate-github-markdown-css": "^2.1.0"
       }
     }
    
    From 322382b0504213e608cba0449c95b3fe98ca8ec9 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sun, 26 Mar 2017 15:34:58 +0700
    Subject: [PATCH 075/131] 2.5.0
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index 4678155..77c6951 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.4.1",
    +  "version": "2.5.0",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From f7cd505bfae3468764cff97dd788ad4162b4cb9d Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sun, 2 Apr 2017 10:37:09 +0700
    Subject: [PATCH 076/131] Regenerate GitHub CSS
    
    Fixes #43
    ---
     github-markdown.css | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/github-markdown.css b/github-markdown.css
    index 3f4a3dd..ed8ab9e 100644
    --- a/github-markdown.css
    +++ b/github-markdown.css
    @@ -8,7 +8,7 @@
       -webkit-text-size-adjust: 100%;
       line-height: 1.5;
       color: #24292e;
    -  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    +  font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
       font-size: 16px;
       line-height: 1.5;
       word-wrap: break-word;
    
    From 9981e776899a8dad2cb4c066362e622d7dd03a6a Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sun, 2 Apr 2017 10:43:19 +0700
    Subject: [PATCH 077/131] 2.6.0
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index 77c6951..4e14276 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.5.0",
    +  "version": "2.6.0",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From 65728029255b04e7d2cdc1d26d0c3807dcb091e3 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sun, 11 Jun 2017 22:51:09 +0200
    Subject: [PATCH 078/131] Regenerate GitHub CSS
    
    ---
     github-markdown.css | 10 +++++-----
     1 file changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/github-markdown.css b/github-markdown.css
    index ed8ab9e..43da7b9 100644
    --- a/github-markdown.css
    +++ b/github-markdown.css
    @@ -8,7 +8,7 @@
       -webkit-text-size-adjust: 100%;
       line-height: 1.5;
       color: #24292e;
    -  font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    +  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
       font-size: 16px;
       line-height: 1.5;
       word-wrap: break-word;
    @@ -677,11 +677,11 @@
       line-height: 10px;
       color: #444d56;
       vertical-align: middle;
    -  background-color: #fcfcfc;
    -  border: solid 1px #c6cbd1;
    -  border-bottom-color: #959da5;
    +  background-color: #fafbfc;
    +  border: solid 1px #d1d5da;
    +  border-bottom-color: #c6cbd1;
       border-radius: 3px;
    -  box-shadow: inset 0 -1px 0 #959da5;
    +  box-shadow: inset 0 -1px 0 #c6cbd1;
     }
     
     .markdown-body :checked+.radio-label {
    
    From 576e8f647915d6783d7b0479b565fab92d6eac57 Mon Sep 17 00:00:00 2001
    From: Sindre Sorhus 
    Date: Sun, 11 Jun 2017 22:53:56 +0200
    Subject: [PATCH 079/131] 2.7.0
    
    ---
     package.json | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package.json b/package.json
    index 4e14276..40835f0 100644
    --- a/package.json
    +++ b/package.json
    @@ -1,6 +1,6 @@
     {
       "name": "github-markdown-css",
    -  "version": "2.6.0",
    +  "version": "2.7.0",
       "description": "The minimal amount of CSS to replicate the GitHub Markdown style",
       "license": "MIT",
       "repository": "sindresorhus/github-markdown-css",
    
    From c59b17b20d92513fb75ef4fb4a68a685839a9d23 Mon Sep 17 00:00:00 2001
    From: Jeff Puckett 
    Date: Thu, 15 Jun 2017 10:43:33 +0000
    Subject: [PATCH 080/131] Document mobile responsiveness (#45)
    
    ---
     readme.md | 9 ++++++++-
     1 file changed, 8 insertions(+), 1 deletion(-)
    
    diff --git a/readme.md b/readme.md
    index 2e00e1d..5d148e2 100644
    --- a/readme.md
    +++ b/readme.md
    @@ -18,9 +18,10 @@ $ npm install --save github-markdown-css
     
     ## Usage
     
    -Import the `github-markdown.css` file and add a `markdown-body` class to the container of your rendered Markdown and set a width for it. GitHub uses `980px` width and `45px` padding.
    +Import the `github-markdown.css` file and add a `markdown-body` class to the container of your rendered Markdown and set a width for it. GitHub uses `980px` width and `45px` padding, and `15px` padding for mobile.
     
     ```html
    +
     
     
     

    Unicorns

    From db0ab249ce3e93ce2096ddc266ce4d0b1fbc3b76 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 15 Jun 2017 12:45:30 +0200 Subject: [PATCH 081/131] Regenerate GitHub CSS --- github-markdown.css | 68 ++++++++++++++++++++------------------------- readme.md | 2 +- 2 files changed, 31 insertions(+), 39 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 43da7b9..57c63c7 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -15,30 +15,30 @@ } .markdown-body .pl-c { - color: #969896; + color: #6a737d; } .markdown-body .pl-c1, .markdown-body .pl-s .pl-v { - color: #0086b3; + color: #005cc5; } .markdown-body .pl-e, .markdown-body .pl-en { - color: #795da3; + color: #6f42c1; } .markdown-body .pl-smi, .markdown-body .pl-s .pl-s1 { - color: #333; + color: #24292e; } .markdown-body .pl-ent { - color: #63a35c; + color: #22863a; } .markdown-body .pl-k { - color: #a71d5d; + color: #d73a49; } .markdown-body .pl-s, @@ -48,26 +48,26 @@ .markdown-body .pl-sr .pl-cce, .markdown-body .pl-sr .pl-sre, .markdown-body .pl-sr .pl-sra { - color: #183691; + color: #032f62; } .markdown-body .pl-v, .markdown-body .pl-smw { - color: #ed6a43; + color: #e36209; } .markdown-body .pl-bu { - color: #b52a1d; + color: #b31d28; } .markdown-body .pl-ii { - color: #f8f8f8; - background-color: #b52a1d; + color: #fafbfc; + background-color: #b31d28; } .markdown-body .pl-c2 { - color: #f8f8f8; - background-color: #b52a1d; + color: #fafbfc; + background-color: #d73a49; } .markdown-body .pl-c2::before { @@ -76,74 +76,66 @@ .markdown-body .pl-sr .pl-cce { font-weight: bold; - color: #63a35c; + color: #22863a; } .markdown-body .pl-ml { - color: #693a17; + color: #735c0f; } .markdown-body .pl-mh, .markdown-body .pl-mh .pl-en, .markdown-body .pl-ms { font-weight: bold; - color: #1d3e81; -} - -.markdown-body .pl-mq { - color: #008080; + color: #005cc5; } .markdown-body .pl-mi { font-style: italic; - color: #333; + color: #24292e; } .markdown-body .pl-mb { font-weight: bold; - color: #333; + color: #24292e; } .markdown-body .pl-md { - color: #bd2c00; - background-color: #ffecec; + color: #b31d28; + background-color: #ffeef0; } .markdown-body .pl-mi1 { - color: #55a532; - background-color: #eaffea; + color: #22863a; + background-color: #f0fff4; } .markdown-body .pl-mc { - color: #ef9700; - background-color: #ffe3b4; + color: #e36209; + background-color: #ffebda; } .markdown-body .pl-mi2 { - color: #d8d8d8; - background-color: #808080; + color: #f6f8fa; + background-color: #005cc5; } .markdown-body .pl-mdr { font-weight: bold; - color: #795da3; -} - -.markdown-body .pl-mo { - color: #1d3e81; + color: #6f42c1; } .markdown-body .pl-ba { - color: #595e62; + color: #586069; } .markdown-body .pl-sg { - color: #c0c0c0; + color: #959da5; } .markdown-body .pl-corl { text-decoration: underline; - color: #183691; + color: #032f62; } .markdown-body .octicon { diff --git a/readme.md b/readme.md index 5d148e2..3779d14 100644 --- a/readme.md +++ b/readme.md @@ -31,7 +31,7 @@ Import the `github-markdown.css` file and add a `markdown-body` class to the con margin: 0 auto; padding: 45px; } - + @media (max-width: 767px) { .markdown-body { padding: 15px; From 3fc8bc8a14eabf40448027b56e82238220050300 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 15 Jun 2017 12:47:16 +0200 Subject: [PATCH 082/131] 2.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 40835f0..f1ad9e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.7.0", + "version": "2.8.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 3d272011a5da44de87a8a8bcb8605b6ab12e49f3 Mon Sep 17 00:00:00 2001 From: Danny Guo Date: Thu, 17 Aug 2017 21:17:17 -0500 Subject: [PATCH 083/131] Add a link to the CDNJS page (#47) --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 3779d14..d7ef7d1 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ ## Install -Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css) or with npm: +Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css), from [CDNJS](https://cdnjs.com/libraries/github-markdown-css), or with npm: ``` $ npm install --save github-markdown-css From a5b85d18214c07f492ff73bdf4c2a5fc88138e89 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 15 Oct 2017 13:43:38 +0700 Subject: [PATCH 084/131] Regenerate GitHub CSS Closes #49 --- github-markdown.css | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/github-markdown.css b/github-markdown.css index 57c63c7..e197e59 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -335,7 +335,8 @@ .markdown-body pre { margin-top: 0; margin-bottom: 0; - font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; } .markdown-body .octicon { @@ -591,6 +592,14 @@ background-color: #fff; } +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + .markdown-body code { padding: 0; padding-top: 0.2em; From 09cdf605dac341e359fd828463a79face98a265e Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 15 Oct 2017 13:55:26 +0700 Subject: [PATCH 085/131] Meta tweaks --- .editorconfig | 5 +--- .gitattributes | 1 + .gitignore | 1 + .npmrc | 1 + license | 20 ++++------------ package.json | 64 +++++++++++++++++++++++++------------------------- readme.md | 4 ++-- 7 files changed, 42 insertions(+), 54 deletions(-) create mode 100644 .npmrc diff --git a/.editorconfig b/.editorconfig index 86c8f59..1c6314a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,9 +7,6 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[package.json] +[*.yml] indent_style = space indent_size = 2 - -[*.md] -trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes index 176a458..391f0a4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ * text=auto +*.js text eol=lf diff --git a/.gitignore b/.gitignore index 3c3629e..239ecff 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +yarn.lock diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..43c97e7 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +package-lock=false diff --git a/license b/license index 654d0bf..e7af2f7 100644 --- a/license +++ b/license @@ -1,21 +1,9 @@ -The MIT License (MIT) +MIT License Copyright (c) Sindre Sorhus (sindresorhus.com) -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/package.json b/package.json index f1ad9e6..883e697 100644 --- a/package.json +++ b/package.json @@ -1,34 +1,34 @@ { - "name": "github-markdown-css", - "version": "2.8.0", - "description": "The minimal amount of CSS to replicate the GitHub Markdown style", - "license": "MIT", - "repository": "sindresorhus/github-markdown-css", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "main": "github-markdown.css", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "make": "github-markdown-css > github-markdown.css" - }, - "files": [ - "github-markdown.css" - ], - "keywords": [ - "browser", - "github", - "markdown", - "md", - "css", - "style", - "stylesheet" - ], - "devDependencies": { - "generate-github-markdown-css": "^2.1.0" - } + "name": "github-markdown-css", + "version": "2.8.0", + "description": "The minimal amount of CSS to replicate the GitHub Markdown style", + "license": "MIT", + "repository": "sindresorhus/github-markdown-css", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "main": "github-markdown.css", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "make": "github-markdown-css > github-markdown.css" + }, + "files": [ + "github-markdown.css" + ], + "keywords": [ + "browser", + "github", + "markdown", + "md", + "css", + "style", + "stylesheet" + ], + "devDependencies": { + "generate-github-markdown-css": "^2.1.0" + } } diff --git a/readme.md b/readme.md index d7ef7d1..790cef5 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdown-css/gh-pages/github-markdown.css), from [CDNJS](https://cdnjs.com/libraries/github-markdown-css), or with npm: ``` -$ npm install --save github-markdown-css +$ npm install github-markdown-css ``` @@ -57,4 +57,4 @@ Run `npm run make` to update the CSS. ## License -MIT © [Sindre Sorhus](http://sindresorhus.com) +MIT © [Sindre Sorhus](https://sindresorhus.com) From 7308c9ab9a5b019a2ebd52d59d9b2ca1df5cc2a4 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 15 Oct 2017 13:56:03 +0700 Subject: [PATCH 086/131] 2.9.0 --- package.json | 64 ++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 883e697..a652bcf 100644 --- a/package.json +++ b/package.json @@ -1,34 +1,34 @@ { - "name": "github-markdown-css", - "version": "2.8.0", - "description": "The minimal amount of CSS to replicate the GitHub Markdown style", - "license": "MIT", - "repository": "sindresorhus/github-markdown-css", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "main": "github-markdown.css", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "make": "github-markdown-css > github-markdown.css" - }, - "files": [ - "github-markdown.css" - ], - "keywords": [ - "browser", - "github", - "markdown", - "md", - "css", - "style", - "stylesheet" - ], - "devDependencies": { - "generate-github-markdown-css": "^2.1.0" - } + "name": "github-markdown-css", + "version": "2.9.0", + "description": "The minimal amount of CSS to replicate the GitHub Markdown style", + "license": "MIT", + "repository": "sindresorhus/github-markdown-css", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "main": "github-markdown.css", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "make": "github-markdown-css > github-markdown.css" + }, + "files": [ + "github-markdown.css" + ], + "keywords": [ + "browser", + "github", + "markdown", + "md", + "css", + "style", + "stylesheet" + ], + "devDependencies": { + "generate-github-markdown-css": "^2.1.0" + } } From e91ece348fd1828c1890c06df59a499214e455b7 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 31 Dec 2017 13:54:15 +0100 Subject: [PATCH 087/131] Regenerate GitHub CSS --- github-markdown.css | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index e197e59..c5f9777 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -146,7 +146,6 @@ .markdown-body a { background-color: transparent; - -webkit-text-decoration-skip: objects; } .markdown-body a:active, @@ -171,10 +170,6 @@ border-style: none; } -.markdown-body svg:not(:root) { - overflow: hidden; -} - .markdown-body code, .markdown-body kbd, .markdown-body pre { @@ -536,6 +531,10 @@ margin-bottom: 0; } +.markdown-body li { + word-wrap: break-all; +} + .markdown-body li>p { margin-top: 16px; } @@ -601,21 +600,13 @@ } .markdown-body code { - padding: 0; - padding-top: 0.2em; - padding-bottom: 0.2em; + padding: 0.2em 0.4em; margin: 0; font-size: 85%; background-color: rgba(27,31,35,0.05); border-radius: 3px; } -.markdown-body code::before, -.markdown-body code::after { - letter-spacing: -0.2em; - content: "\00a0"; -} - .markdown-body pre { word-wrap: normal; } @@ -661,11 +652,6 @@ border: 0; } -.markdown-body pre code::before, -.markdown-body pre code::after { - content: normal; -} - .markdown-body .full-commit .btn-outline:not(:disabled):hover { color: #005cc5; border-color: #005cc5; From 4d639a534aa9b8856a3b8bcc43239ea48d68d1fc Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 31 Dec 2017 13:55:32 +0100 Subject: [PATCH 088/131] 2.10.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a652bcf..62e402d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.9.0", + "version": "2.10.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 0d25bb4525eab80cbe95a2d18977a2ad91a7299e Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 31 Jan 2019 19:49:28 +0700 Subject: [PATCH 089/131] Regenerate GitHub CSS --- github-markdown.css | 633 +++++++++++++++++++++++++++++++------------- package.json | 64 ++--- 2 files changed, 479 insertions(+), 218 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index c5f9777..aa85199 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -1,14 +1,59 @@ -@font-face { - font-family: octicons-link; + +font-family: octicons-link; src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); } +.markdown-body .octicon { + display: inline-block; + fill: currentColor; + vertical-align: text-bottom; +} + +.markdown-body .anchor { + float: left; + line-height: 1; + margin-left: -20px; + padding-right: 4px; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #1b1f23; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} .markdown-body { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; - line-height: 1.5; color: #24292e; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + line-height: 1.5; + font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; font-size: 16px; line-height: 1.5; word-wrap: break-word; @@ -28,8 +73,8 @@ color: #6f42c1; } -.markdown-body .pl-smi, -.markdown-body .pl-s .pl-s1 { +.markdown-body .pl-s .pl-s1, +.markdown-body .pl-smi { color: #24292e; } @@ -41,18 +86,18 @@ color: #d73a49; } -.markdown-body .pl-s, .markdown-body .pl-pds, +.markdown-body .pl-s, .markdown-body .pl-s .pl-pse .pl-s1, .markdown-body .pl-sr, .markdown-body .pl-sr .pl-cce, -.markdown-body .pl-sr .pl-sre, -.markdown-body .pl-sr .pl-sra { +.markdown-body .pl-sr .pl-sra, +.markdown-body .pl-sr .pl-sre { color: #032f62; } -.markdown-body .pl-v, -.markdown-body .pl-smw { +.markdown-body .pl-smw, +.markdown-body .pl-v { color: #e36209; } @@ -61,22 +106,22 @@ } .markdown-body .pl-ii { - color: #fafbfc; background-color: #b31d28; + color: #fafbfc; } .markdown-body .pl-c2 { - color: #fafbfc; background-color: #d73a49; + color: #fafbfc; } -.markdown-body .pl-c2::before { +.markdown-body .pl-c2:before { content: "^M"; } .markdown-body .pl-sr .pl-cce { - font-weight: bold; color: #22863a; + font-weight: 700; } .markdown-body .pl-ml { @@ -86,43 +131,43 @@ .markdown-body .pl-mh, .markdown-body .pl-mh .pl-en, .markdown-body .pl-ms { - font-weight: bold; color: #005cc5; + font-weight: 700; } .markdown-body .pl-mi { - font-style: italic; color: #24292e; + font-style: italic; } .markdown-body .pl-mb { - font-weight: bold; color: #24292e; + font-weight: 700; } .markdown-body .pl-md { - color: #b31d28; background-color: #ffeef0; + color: #b31d28; } .markdown-body .pl-mi1 { - color: #22863a; background-color: #f0fff4; + color: #22863a; } .markdown-body .pl-mc { - color: #e36209; background-color: #ffebda; + color: #e36209; } .markdown-body .pl-mi2 { - color: #f6f8fa; background-color: #005cc5; + color: #f6f8fa; } .markdown-body .pl-mdr { - font-weight: bold; color: #6f42c1; + font-weight: 700; } .markdown-body .pl-ba { @@ -134,14 +179,16 @@ } .markdown-body .pl-corl { - text-decoration: underline; color: #032f62; + text-decoration: underline; } -.markdown-body .octicon { - display: inline-block; - vertical-align: text-top; - fill: currentColor; +.markdown-body details { + display: block; +} + +.markdown-body summary { + display: list-item; } .markdown-body a { @@ -155,15 +202,12 @@ .markdown-body strong { font-weight: inherit; -} - -.markdown-body strong { font-weight: bolder; } .markdown-body h1 { font-size: 2em; - margin: 0.67em 0; + margin: .67em 0; } .markdown-body img { @@ -173,7 +217,7 @@ .markdown-body code, .markdown-body kbd, .markdown-body pre { - font-family: monospace, monospace; + font-family: monospace,monospace; font-size: 1em; } @@ -192,7 +236,7 @@ overflow: visible; } -.markdown-body [type="checkbox"] { +.markdown-body [type=checkbox] { box-sizing: border-box; padding: 0; } @@ -221,28 +265,28 @@ } .markdown-body hr { - height: 0; - margin: 15px 0; - overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #dfe2e5; + height: 0; + margin: 15px 0; + overflow: hidden; } -.markdown-body hr::before { - display: table; +.markdown-body hr:before { content: ""; + display: table; } -.markdown-body hr::after { - display: table; +.markdown-body hr:after { clear: both; content: ""; + display: table; } .markdown-body table { - border-spacing: 0; border-collapse: collapse; + border-spacing: 0; } .markdown-body td, @@ -250,60 +294,73 @@ padding: 0; } +.markdown-body details summary { + cursor: pointer; +} + .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { - margin-top: 0; margin-bottom: 0; + margin-top: 0; } .markdown-body h1 { font-size: 32px; +} + +.markdown-body h1, +.markdown-body h2 { font-weight: 600; } .markdown-body h2 { font-size: 24px; - font-weight: 600; } .markdown-body h3 { font-size: 20px; +} + +.markdown-body h3, +.markdown-body h4 { font-weight: 600; } .markdown-body h4 { font-size: 16px; - font-weight: 600; } .markdown-body h5 { font-size: 14px; +} + +.markdown-body h5, +.markdown-body h6 { font-weight: 600; } .markdown-body h6 { font-size: 12px; - font-weight: 600; } .markdown-body p { - margin-top: 0; margin-bottom: 10px; + margin-top: 0; } .markdown-body blockquote { margin: 0; } -.markdown-body ul, -.markdown-body ol { - padding-left: 0; - margin-top: 0; +.markdown-body ol, +.markdown-body ul { margin-bottom: 0; + margin-top: 0; + padding-left: 0; } .markdown-body ol ol, @@ -311,10 +368,10 @@ list-style-type: lower-roman; } -.markdown-body ul ul ol, -.markdown-body ul ol ol, +.markdown-body ol ol ol, .markdown-body ol ul ol, -.markdown-body ol ol ol { +.markdown-body ul ol ol, +.markdown-body ul ul ol { list-style-type: lower-alpha; } @@ -322,67 +379,133 @@ margin-left: 0; } -.markdown-body code { - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; +.markdown-body code, +.markdown-body pre { + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; font-size: 12px; } .markdown-body pre { - margin-top: 0; margin-bottom: 0; - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 12px; + margin-top: 0; } -.markdown-body .octicon { - vertical-align: text-bottom; +.markdown-body input::-webkit-inner-spin-button, +.markdown-body input::-webkit-outer-spin-button { + -webkit-appearance: none; + appearance: none; + margin: 0; +} + +.markdown-body .border { + border: 1px solid #e1e4e8!important; +} + +.markdown-body .border-0 { + border: 0!important; +} + +.markdown-body .border-bottom { + border-bottom: 1px solid #e1e4e8!important; +} + +.markdown-body .rounded-1 { + border-radius: 3px!important; +} + +.markdown-body .bg-white { + background-color: #fff!important; +} + +.markdown-body .bg-gray-light { + background-color: #fafbfc!important; +} + +.markdown-body .text-gray-light { + color: #6a737d!important; +} + +.markdown-body .mb-0 { + margin-bottom: 0!important; +} + +.markdown-body .my-2 { + margin-bottom: 8px!important; + margin-top: 8px!important; } .markdown-body .pl-0 { - padding-left: 0 !important; + padding-left: 0!important; +} + +.markdown-body .py-0 { + padding-bottom: 0!important; + padding-top: 0!important; } .markdown-body .pl-1 { - padding-left: 4px !important; + padding-left: 4px!important; } .markdown-body .pl-2 { - padding-left: 8px !important; + padding-left: 8px!important; } -.markdown-body .pl-3 { - padding-left: 16px !important; +.markdown-body .py-2 { + padding-bottom: 8px!important; + padding-top: 8px!important; +} + +.markdown-body .pl-3, +.markdown-body .px-3 { + padding-left: 16px!important; +} + +.markdown-body .px-3 { + padding-right: 16px!important; } .markdown-body .pl-4 { - padding-left: 24px !important; + padding-left: 24px!important; } .markdown-body .pl-5 { - padding-left: 32px !important; + padding-left: 32px!important; } .markdown-body .pl-6 { - padding-left: 40px !important; + padding-left: 40px!important; } -.markdown-body::before { - display: table; - content: ""; +.markdown-body .f6 { + font-size: 12px!important; +} + +.markdown-body .lh-condensed { + line-height: 1.25!important; +} + +.markdown-body .text-bold { + font-weight: 600!important; } -.markdown-body::after { +.markdown-body:before { + content: ""; display: table; +} + +.markdown-body:after { clear: both; content: ""; + display: table; } -.markdown-body>*:first-child { - margin-top: 0 !important; +.markdown-body>:first-child { + margin-top: 0!important; } -.markdown-body>*:last-child { - margin-bottom: 0 !important; +.markdown-body>:last-child { + margin-bottom: 0!important; } .markdown-body a:not([href]) { @@ -390,40 +513,29 @@ text-decoration: none; } -.markdown-body .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; -} - -.markdown-body .anchor:focus { - outline: none; -} - -.markdown-body p, .markdown-body blockquote, -.markdown-body ul, -.markdown-body ol, .markdown-body dl, +.markdown-body ol, +.markdown-body p, +.markdown-body pre, .markdown-body table, -.markdown-body pre { - margin-top: 0; +.markdown-body ul { margin-bottom: 16px; + margin-top: 0; } .markdown-body hr { - height: 0.25em; - padding: 0; - margin: 24px 0; background-color: #e1e4e8; border: 0; + height: .25em; + margin: 24px 0; + padding: 0; } .markdown-body blockquote { - padding: 0 1em; + border-left: .25em solid #dfe2e5; color: #6a737d; - border-left: 0.25em solid #dfe2e5; + padding: 0 1em; } .markdown-body blockquote>:first-child { @@ -435,17 +547,17 @@ } .markdown-body kbd { - display: inline-block; - padding: 3px 5px; - font-size: 11px; - line-height: 10px; - color: #444d56; - vertical-align: middle; background-color: #fafbfc; - border: solid 1px #c6cbd1; + border: 1px solid #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; + color: #444d56; + display: inline-block; + font-size: 11px; + line-height: 10px; + padding: 3px 5px; + vertical-align: middle; } .markdown-body h1, @@ -454,51 +566,24 @@ .markdown-body h4, .markdown-body h5, .markdown-body h6 { - margin-top: 24px; - margin-bottom: 16px; font-weight: 600; line-height: 1.25; -} - -.markdown-body h1 .octicon-link, -.markdown-body h2 .octicon-link, -.markdown-body h3 .octicon-link, -.markdown-body h4 .octicon-link, -.markdown-body h5 .octicon-link, -.markdown-body h6 .octicon-link { - color: #1b1f23; - vertical-align: middle; - visibility: hidden; -} - -.markdown-body h1:hover .anchor, -.markdown-body h2:hover .anchor, -.markdown-body h3:hover .anchor, -.markdown-body h4:hover .anchor, -.markdown-body h5:hover .anchor, -.markdown-body h6:hover .anchor { - text-decoration: none; -} - -.markdown-body h1:hover .anchor .octicon-link, -.markdown-body h2:hover .anchor .octicon-link, -.markdown-body h3:hover .anchor .octicon-link, -.markdown-body h4:hover .anchor .octicon-link, -.markdown-body h5:hover .anchor .octicon-link, -.markdown-body h6:hover .anchor .octicon-link { - visibility: visible; + margin-bottom: 16px; + margin-top: 24px; } .markdown-body h1 { - padding-bottom: 0.3em; font-size: 2em; +} + +.markdown-body h1, +.markdown-body h2 { border-bottom: 1px solid #eaecef; + padding-bottom: .3em; } .markdown-body h2 { - padding-bottom: 0.3em; font-size: 1.5em; - border-bottom: 1px solid #eaecef; } .markdown-body h3 { @@ -510,25 +595,25 @@ } .markdown-body h5 { - font-size: 0.875em; + font-size: .875em; } .markdown-body h6 { - font-size: 0.85em; color: #6a737d; + font-size: .85em; } -.markdown-body ul, -.markdown-body ol { +.markdown-body ol, +.markdown-body ul { padding-left: 2em; } -.markdown-body ul ul, -.markdown-body ul ol, .markdown-body ol ol, -.markdown-body ol ul { - margin-top: 0; +.markdown-body ol ul, +.markdown-body ul ol, +.markdown-body ul ul { margin-bottom: 0; + margin-top: 0; } .markdown-body li { @@ -540,7 +625,7 @@ } .markdown-body li+li { - margin-top: 0.25em; + margin-top: .25em; } .markdown-body dl { @@ -548,32 +633,32 @@ } .markdown-body dl dt { - padding: 0; - margin-top: 16px; font-size: 1em; font-style: italic; font-weight: 600; + margin-top: 16px; + padding: 0; } .markdown-body dl dd { - padding: 0 16px; margin-bottom: 16px; + padding: 0 16px; } .markdown-body table { display: block; - width: 100%; overflow: auto; + width: 100%; } .markdown-body table th { font-weight: 600; } -.markdown-body table th, -.markdown-body table td { - padding: 6px 13px; +.markdown-body table td, +.markdown-body table th { border: 1px solid #dfe2e5; + padding: 6px 13px; } .markdown-body table tr { @@ -586,9 +671,9 @@ } .markdown-body img { - max-width: 100%; - box-sizing: content-box; background-color: #fff; + box-sizing: content-box; + max-width: 100%; } .markdown-body img[align=right] { @@ -600,11 +685,11 @@ } .markdown-body code { - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - background-color: rgba(27,31,35,0.05); + background-color: rgba(27,31,35,.05); border-radius: 3px; + font-size: 85%; + margin: 0; + padding: .2em .4em; } .markdown-body pre { @@ -612,13 +697,13 @@ } .markdown-body pre>code { - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; background: transparent; border: 0; + font-size: 100%; + margin: 0; + padding: 0; + white-space: pre; + word-break: normal; } .markdown-body .highlight { @@ -632,49 +717,173 @@ .markdown-body .highlight pre, .markdown-body pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; background-color: #f6f8fa; border-radius: 3px; + font-size: 85%; + line-height: 1.45; + overflow: auto; + padding: 16px; } .markdown-body pre code { + background-color: transparent; + border: 0; display: inline; + line-height: inherit; + margin: 0; max-width: auto; + overflow: visible; padding: 0; - margin: 0; + word-wrap: normal; +} + +.markdown-body .commit-tease-sha { + color: #444d56; + display: inline-block; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; + font-size: 90%; +} + +.markdown-body .blob-wrapper { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + overflow-x: auto; + overflow-y: hidden; +} + +.markdown-body .blob-wrapper-embedded { + max-height: 240px; + overflow-y: auto; +} + +.markdown-body .blob-num { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + color: rgba(27,31,35,.3); + cursor: pointer; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; + font-size: 12px; + line-height: 20px; + min-width: 50px; + padding-left: 10px; + padding-right: 10px; + text-align: right; + user-select: none; + vertical-align: top; + white-space: nowrap; + width: 1%; +} + +.markdown-body .blob-num:hover { + color: rgba(27,31,35,.6); +} + +.markdown-body .blob-num:before { + content: attr(data-line-number); +} + +.markdown-body .blob-code { + line-height: 20px; + padding-left: 10px; + padding-right: 10px; + position: relative; + vertical-align: top; +} + +.markdown-body .blob-code-inner { + color: #24292e; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; + font-size: 12px; overflow: visible; - line-height: inherit; + white-space: pre; word-wrap: normal; - background-color: transparent; - border: 0; } -.markdown-body .full-commit .btn-outline:not(:disabled):hover { - color: #005cc5; - border-color: #005cc5; +.markdown-body .pl-token.active, +.markdown-body .pl-token:hover { + background: #ffea7f; + cursor: pointer; } .markdown-body kbd { - display: inline-block; - padding: 3px 5px; - font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - line-height: 10px; - color: #444d56; - vertical-align: middle; background-color: #fafbfc; - border: solid 1px #d1d5da; + border: 1px solid #d1d5da; border-bottom-color: #c6cbd1; border-radius: 3px; box-shadow: inset 0 -1px 0 #c6cbd1; + color: #444d56; + display: inline-block; + font: 11px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; + line-height: 10px; + padding: 3px 5px; + vertical-align: middle; } .markdown-body :checked+.radio-label { + border-color: #0366d6; position: relative; z-index: 1; - border-color: #0366d6; +} + +.markdown-body .tab-size[data-tab-size="1"] { + -moz-tab-size: 1; + tab-size: 1; +} + +.markdown-body .tab-size[data-tab-size="2"] { + -moz-tab-size: 2; + tab-size: 2; +} + +.markdown-body .tab-size[data-tab-size="3"] { + -moz-tab-size: 3; + tab-size: 3; +} + +.markdown-body .tab-size[data-tab-size="4"] { + -moz-tab-size: 4; + tab-size: 4; +} + +.markdown-body .tab-size[data-tab-size="5"] { + -moz-tab-size: 5; + tab-size: 5; +} + +.markdown-body .tab-size[data-tab-size="6"] { + -moz-tab-size: 6; + tab-size: 6; +} + +.markdown-body .tab-size[data-tab-size="7"] { + -moz-tab-size: 7; + tab-size: 7; +} + +.markdown-body .tab-size[data-tab-size="8"] { + -moz-tab-size: 8; + tab-size: 8; +} + +.markdown-body .tab-size[data-tab-size="9"] { + -moz-tab-size: 9; + tab-size: 9; +} + +.markdown-body .tab-size[data-tab-size="10"] { + -moz-tab-size: 10; + tab-size: 10; +} + +.markdown-body .tab-size[data-tab-size="11"] { + -moz-tab-size: 11; + tab-size: 11; +} + +.markdown-body .tab-size[data-tab-size="12"] { + -moz-tab-size: 12; + tab-size: 12; } .markdown-body .task-list-item { @@ -686,10 +895,62 @@ } .markdown-body .task-list-item input { - margin: 0 0.2em 0.25em -1.6em; + margin: 0 .2em .25em -1.6em; vertical-align: middle; } .markdown-body hr { border-bottom-color: #eee; } + +.markdown-body .pl-0 { + padding-left: 0!important; +} + +.markdown-body .pl-1 { + padding-left: 4px!important; +} + +.markdown-body .pl-2 { + padding-left: 8px!important; +} + +.markdown-body .pl-3 { + padding-left: 16px!important; +} + +.markdown-body .pl-4 { + padding-left: 24px!important; +} + +.markdown-body .pl-5 { + padding-left: 32px!important; +} + +.markdown-body .pl-6 { + padding-left: 40px!important; +} + +.markdown-body .pl-7 { + padding-left: 48px!important; +} + +.markdown-body .pl-8 { + padding-left: 64px!important; +} + +.markdown-body .pl-9 { + padding-left: 80px!important; +} + +.markdown-body .pl-10 { + padding-left: 96px!important; +} + +.markdown-body .pl-11 { + padding-left: 112px!important; +} + +.markdown-body .pl-12 { + padding-left: 128px!important; +} diff --git a/package.json b/package.json index 62e402d..bdfc5f3 100644 --- a/package.json +++ b/package.json @@ -1,34 +1,34 @@ { - "name": "github-markdown-css", - "version": "2.10.0", - "description": "The minimal amount of CSS to replicate the GitHub Markdown style", - "license": "MIT", - "repository": "sindresorhus/github-markdown-css", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "main": "github-markdown.css", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "make": "github-markdown-css > github-markdown.css" - }, - "files": [ - "github-markdown.css" - ], - "keywords": [ - "browser", - "github", - "markdown", - "md", - "css", - "style", - "stylesheet" - ], - "devDependencies": { - "generate-github-markdown-css": "^2.1.0" - } + "name": "github-markdown-css", + "version": "2.10.0", + "description": "The minimal amount of CSS to replicate the GitHub Markdown style", + "license": "MIT", + "repository": "sindresorhus/github-markdown-css", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "main": "github-markdown.css", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "make": "github-markdown-css > github-markdown.css" + }, + "files": [ + "github-markdown.css" + ], + "keywords": [ + "browser", + "github", + "markdown", + "md", + "css", + "style", + "stylesheet" + ], + "devDependencies": { + "generate-github-markdown-css": "^3.0.1" + } } From 7b0d2e1014d316853bf52312314ab0c02cf93529 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 31 Jan 2019 23:39:10 +0700 Subject: [PATCH 090/131] Drop support for Bower --- .gitattributes | 3 +-- bower.json | 19 ------------------- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 bower.json diff --git a/.gitattributes b/.gitattributes index 391f0a4..6313b56 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ -* text=auto -*.js text eol=lf +* text=auto eol=lf diff --git a/bower.json b/bower.json deleted file mode 100644 index 6b16432..0000000 --- a/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "github-markdown-css", - "description": "The minimal amount of CSS to replicate the GitHub Markdown style", - "license": "MIT", - "main": "github-markdown.css", - "keywords": [ - "github", - "markdown", - "md", - "css", - "style", - "stylesheet" - ], - "ignore": [ - "**/.*", - "package.json", - "index.html" - ] -} From e3c7e7f89d7a76a516a1f2902c560683b07dadb0 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 31 Jan 2019 23:41:47 +0700 Subject: [PATCH 091/131] 3.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bdfc5f3..85924af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "2.10.0", + "version": "3.0.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 12ab1315532a378ee547269442813fae131912df Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 1 Feb 2019 16:38:11 +0700 Subject: [PATCH 092/131] Fix invalid CSS caused by copy-paste mistake Fixes #63 --- github-markdown.css | 5 +++-- package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index aa85199..6085db2 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -1,5 +1,5 @@ - -font-family: octicons-link; +@font-face { + font-family: octicons-link; src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); } @@ -48,6 +48,7 @@ font-family: octicons-link; .markdown-body h6:hover .anchor .octicon-link { visibility: visible; } + .markdown-body { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; diff --git a/package.json b/package.json index 85924af..4a415a7 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,6 @@ "stylesheet" ], "devDependencies": { - "generate-github-markdown-css": "^3.0.1" + "generate-github-markdown-css": "^3.0.2" } } From 6616212a2a469d1c1a127d793788dc440c7e3197 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Fri, 1 Feb 2019 16:38:35 +0700 Subject: [PATCH 093/131] 3.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a415a7..e666dd6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "3.0.0", + "version": "3.0.1", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 8e8d8570e8ec15013134cacddbebedebfb5b3876 Mon Sep 17 00:00:00 2001 From: Atsushi Yamamoto Date: Wed, 19 Jun 2019 23:17:48 +0900 Subject: [PATCH 094/131] Add render instruction for code syntax highlighting (#66) Co-authored-by: Sindre Sorhus --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index 790cef5..a289872 100644 --- a/readme.md +++ b/readme.md @@ -44,6 +44,8 @@ Import the `github-markdown.css` file and add a `markdown-body` class to the con
    ``` +If you want code syntax highlighted, use GitHub Flavored Markdown rendered from [GitHub's `/markdown` API](https://developer.github.com/v3/markdown/). + ## How From 28b11434c1355a09e32b1d169ae2e0b49bcf3896 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sat, 22 Feb 2020 17:31:42 +0700 Subject: [PATCH 095/131] Regenerate GitHub CSS --- github-markdown.css | 664 +++++++++++++++++++++++--------------------- license | 2 +- package.json | 8 +- readme.md | 11 +- 4 files changed, 351 insertions(+), 334 deletions(-) diff --git a/github-markdown.css b/github-markdown.css index 6085db2..7c6cd78 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -1,8 +1,3 @@ -@font-face { - font-family: octicons-link; - src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); -} - .markdown-body .octicon { display: inline-block; fill: currentColor; @@ -49,141 +44,28 @@ visibility: visible; } -.markdown-body { +.markdown-body h1:hover .anchor .octicon-link:before, +.markdown-body h2:hover .anchor .octicon-link:before, +.markdown-body h3:hover .anchor .octicon-link:before, +.markdown-body h4:hover .anchor .octicon-link:before, +.markdown-body h5:hover .anchor .octicon-link:before, +.markdown-body h6:hover .anchor .octicon-link:before { + width: 16px; + height: 16px; + content: ' '; + display: inline-block; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'%3E%3C/path%3E%3C/svg%3E"); +}.markdown-body { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; - color: #24292e; line-height: 1.5; - font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol; + color: #24292e; + font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji; font-size: 16px; line-height: 1.5; word-wrap: break-word; } -.markdown-body .pl-c { - color: #6a737d; -} - -.markdown-body .pl-c1, -.markdown-body .pl-s .pl-v { - color: #005cc5; -} - -.markdown-body .pl-e, -.markdown-body .pl-en { - color: #6f42c1; -} - -.markdown-body .pl-s .pl-s1, -.markdown-body .pl-smi { - color: #24292e; -} - -.markdown-body .pl-ent { - color: #22863a; -} - -.markdown-body .pl-k { - color: #d73a49; -} - -.markdown-body .pl-pds, -.markdown-body .pl-s, -.markdown-body .pl-s .pl-pse .pl-s1, -.markdown-body .pl-sr, -.markdown-body .pl-sr .pl-cce, -.markdown-body .pl-sr .pl-sra, -.markdown-body .pl-sr .pl-sre { - color: #032f62; -} - -.markdown-body .pl-smw, -.markdown-body .pl-v { - color: #e36209; -} - -.markdown-body .pl-bu { - color: #b31d28; -} - -.markdown-body .pl-ii { - background-color: #b31d28; - color: #fafbfc; -} - -.markdown-body .pl-c2 { - background-color: #d73a49; - color: #fafbfc; -} - -.markdown-body .pl-c2:before { - content: "^M"; -} - -.markdown-body .pl-sr .pl-cce { - color: #22863a; - font-weight: 700; -} - -.markdown-body .pl-ml { - color: #735c0f; -} - -.markdown-body .pl-mh, -.markdown-body .pl-mh .pl-en, -.markdown-body .pl-ms { - color: #005cc5; - font-weight: 700; -} - -.markdown-body .pl-mi { - color: #24292e; - font-style: italic; -} - -.markdown-body .pl-mb { - color: #24292e; - font-weight: 700; -} - -.markdown-body .pl-md { - background-color: #ffeef0; - color: #b31d28; -} - -.markdown-body .pl-mi1 { - background-color: #f0fff4; - color: #22863a; -} - -.markdown-body .pl-mc { - background-color: #ffebda; - color: #e36209; -} - -.markdown-body .pl-mi2 { - background-color: #005cc5; - color: #f6f8fa; -} - -.markdown-body .pl-mdr { - color: #6f42c1; - font-weight: 700; -} - -.markdown-body .pl-ba { - color: #586069; -} - -.markdown-body .pl-sg { - color: #959da5; -} - -.markdown-body .pl-corl { - color: #032f62; - text-decoration: underline; -} - .markdown-body details { display: block; } @@ -193,7 +75,7 @@ } .markdown-body a { - background-color: transparent; + background-color: initial; } .markdown-body a:active, @@ -223,7 +105,7 @@ } .markdown-body hr { - box-sizing: content-box; + box-sizing: initial; height: 0; overflow: visible; } @@ -266,28 +148,27 @@ } .markdown-body hr { - background: transparent; - border: 0; - border-bottom: 1px solid #dfe2e5; height: 0; margin: 15px 0; overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #dfe2e5; } +.markdown-body hr:after, .markdown-body hr:before { - content: ""; display: table; + content: ""; } .markdown-body hr:after { clear: both; - content: ""; - display: table; } .markdown-body table { - border-collapse: collapse; border-spacing: 0; + border-collapse: collapse; } .markdown-body td, @@ -299,14 +180,27 @@ cursor: pointer; } +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: 1px solid #d1d5da; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #d1d5da; +} + .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { - margin-bottom: 0; margin-top: 0; + margin-bottom: 0; } .markdown-body h1 { @@ -349,8 +243,8 @@ } .markdown-body p { - margin-bottom: 10px; margin-top: 0; + margin-bottom: 10px; } .markdown-body blockquote { @@ -359,9 +253,9 @@ .markdown-body ol, .markdown-body ul { - margin-bottom: 0; - margin-top: 0; padding-left: 0; + margin-top: 0; + margin-bottom: 0; } .markdown-body ol ol, @@ -382,20 +276,26 @@ .markdown-body code, .markdown-body pre { - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; font-size: 12px; } .markdown-body pre { - margin-bottom: 0; margin-top: 0; + margin-bottom: 0; } .markdown-body input::-webkit-inner-spin-button, .markdown-body input::-webkit-outer-spin-button { + margin: 0; -webkit-appearance: none; appearance: none; - margin: 0; +} + +.markdown-body :checked+.radio-label { + position: relative; + z-index: 1; + border-color: #0366d6; } .markdown-body .border { @@ -418,12 +318,200 @@ background-color: #fff!important; } -.markdown-body .bg-gray-light { - background-color: #fafbfc!important; +.markdown-body .bg-gray-light { + background-color: #fafbfc!important; +} + +.markdown-body .text-gray-light { + color: #6a737d!important; +} + +.markdown-body .mb-0 { + margin-bottom: 0!important; +} + +.markdown-body .my-2 { + margin-top: 8px!important; + margin-bottom: 8px!important; +} + +.markdown-body .pl-0 { + padding-left: 0!important; +} + +.markdown-body .py-0 { + padding-top: 0!important; + padding-bottom: 0!important; +} + +.markdown-body .pl-1 { + padding-left: 4px!important; +} + +.markdown-body .pl-2 { + padding-left: 8px!important; +} + +.markdown-body .py-2 { + padding-top: 8px!important; + padding-bottom: 8px!important; +} + +.markdown-body .pl-3, +.markdown-body .px-3 { + padding-left: 16px!important; +} + +.markdown-body .px-3 { + padding-right: 16px!important; +} + +.markdown-body .pl-4 { + padding-left: 24px!important; +} + +.markdown-body .pl-5 { + padding-left: 32px!important; +} + +.markdown-body .pl-6 { + padding-left: 40px!important; +} + +.markdown-body .f6 { + font-size: 12px!important; +} + +.markdown-body .lh-condensed { + line-height: 1.25!important; +} + +.markdown-body .text-bold { + font-weight: 600!important; +} + +.markdown-body .pl-c { + color: #6a737d; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #005cc5; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #6f42c1; +} + +.markdown-body .pl-s .pl-s1, +.markdown-body .pl-smi { + color: #24292e; +} + +.markdown-body .pl-ent { + color: #22863a; +} + +.markdown-body .pl-k { + color: #d73a49; +} + +.markdown-body .pl-pds, +.markdown-body .pl-s, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sra, +.markdown-body .pl-sr .pl-sre { + color: #032f62; +} + +.markdown-body .pl-smw, +.markdown-body .pl-v { + color: #e36209; +} + +.markdown-body .pl-bu { + color: #b31d28; +} + +.markdown-body .pl-ii { + color: #fafbfc; + background-color: #b31d28; +} + +.markdown-body .pl-c2 { + color: #fafbfc; + background-color: #d73a49; +} + +.markdown-body .pl-c2:before { + content: "^M"; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: 700; + color: #22863a; +} + +.markdown-body .pl-ml { + color: #735c0f; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: 700; + color: #005cc5; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292e; +} + +.markdown-body .pl-mb { + font-weight: 700; + color: #24292e; +} + +.markdown-body .pl-md { + color: #b31d28; + background-color: #ffeef0; +} + +.markdown-body .pl-mi1 { + color: #22863a; + background-color: #f0fff4; +} + +.markdown-body .pl-mc { + color: #e36209; + background-color: #ffebda; +} + +.markdown-body .pl-mi2 { + color: #f6f8fa; + background-color: #005cc5; +} + +.markdown-body .pl-mdr { + font-weight: 700; + color: #6f42c1; +} + +.markdown-body .pl-ba { + color: #586069; +} + +.markdown-body .pl-sg { + color: #959da5; } -.markdown-body .text-gray-light { - color: #6a737d!important; +.markdown-body .pl-corl { + text-decoration: underline; + color: #032f62; } .markdown-body .mb-0 { @@ -432,6 +520,9 @@ .markdown-body .my-2 { margin-bottom: 8px!important; +} + +.markdown-body .my-2 { margin-top: 8px!important; } @@ -440,8 +531,8 @@ } .markdown-body .py-0 { - padding-bottom: 0!important; padding-top: 0!important; + padding-bottom: 0!important; } .markdown-body .pl-1 { @@ -453,19 +544,14 @@ } .markdown-body .py-2 { - padding-bottom: 8px!important; padding-top: 8px!important; + padding-bottom: 8px!important; } -.markdown-body .pl-3, -.markdown-body .px-3 { +.markdown-body .pl-3 { padding-left: 16px!important; } -.markdown-body .px-3 { - padding-right: 16px!important; -} - .markdown-body .pl-4 { padding-left: 24px!important; } @@ -478,27 +564,55 @@ padding-left: 40px!important; } -.markdown-body .f6 { - font-size: 12px!important; +.markdown-body .pl-7 { + padding-left: 48px!important; } -.markdown-body .lh-condensed { - line-height: 1.25!important; +.markdown-body .pl-8 { + padding-left: 64px!important; } -.markdown-body .text-bold { - font-weight: 600!important; +.markdown-body .pl-9 { + padding-left: 80px!important; +} + +.markdown-body .pl-10 { + padding-left: 96px!important; +} + +.markdown-body .pl-11 { + padding-left: 112px!important; +} + +.markdown-body .pl-12 { + padding-left: 128px!important; +} + +.markdown-body hr { + border-bottom-color: #eee; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; + line-height: 10px; + color: #444d56; + vertical-align: middle; + background-color: #fafbfc; + border: 1px solid #d1d5da; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #d1d5da; } +.markdown-body:after, .markdown-body:before { - content: ""; display: table; + content: ""; } .markdown-body:after { clear: both; - content: ""; - display: table; } .markdown-body>:first-child { @@ -515,28 +629,29 @@ } .markdown-body blockquote, +.markdown-body details, .markdown-body dl, .markdown-body ol, .markdown-body p, .markdown-body pre, .markdown-body table, .markdown-body ul { - margin-bottom: 16px; margin-top: 0; + margin-bottom: 16px; } .markdown-body hr { - background-color: #e1e4e8; - border: 0; height: .25em; - margin: 24px 0; padding: 0; + margin: 24px 0; + background-color: #e1e4e8; + border: 0; } .markdown-body blockquote { - border-left: .25em solid #dfe2e5; - color: #6a737d; padding: 0 1em; + color: #6a737d; + border-left: .25em solid #dfe2e5; } .markdown-body blockquote>:first-child { @@ -547,30 +662,16 @@ margin-bottom: 0; } -.markdown-body kbd { - background-color: #fafbfc; - border: 1px solid #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #959da5; - color: #444d56; - display: inline-block; - font-size: 11px; - line-height: 10px; - padding: 3px 5px; - vertical-align: middle; -} - .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; font-weight: 600; line-height: 1.25; - margin-bottom: 16px; - margin-top: 24px; } .markdown-body h1 { @@ -579,8 +680,8 @@ .markdown-body h1, .markdown-body h2 { - border-bottom: 1px solid #eaecef; padding-bottom: .3em; + border-bottom: 1px solid #eaecef; } .markdown-body h2 { @@ -600,8 +701,8 @@ } .markdown-body h6 { - color: #6a737d; font-size: .85em; + color: #6a737d; } .markdown-body ol, @@ -613,8 +714,8 @@ .markdown-body ol ul, .markdown-body ul ol, .markdown-body ul ul { - margin-bottom: 0; margin-top: 0; + margin-bottom: 0; } .markdown-body li { @@ -634,22 +735,22 @@ } .markdown-body dl dt { + padding: 0; + margin-top: 16px; font-size: 1em; font-style: italic; font-weight: 600; - margin-top: 16px; - padding: 0; } .markdown-body dl dd { - margin-bottom: 16px; padding: 0 16px; + margin-bottom: 16px; } .markdown-body table { display: block; - overflow: auto; width: 100%; + overflow: auto; } .markdown-body table th { @@ -658,8 +759,8 @@ .markdown-body table td, .markdown-body table th { - border: 1px solid #dfe2e5; padding: 6px 13px; + border: 1px solid #dfe2e5; } .markdown-body table tr { @@ -672,9 +773,9 @@ } .markdown-body img { - background-color: #fff; - box-sizing: content-box; max-width: 100%; + box-sizing: initial; + background-color: #fff; } .markdown-body img[align=right] { @@ -686,11 +787,11 @@ } .markdown-body code { + padding: .2em .4em; + margin: 0; + font-size: 85%; background-color: rgba(27,31,35,.05); border-radius: 3px; - font-size: 85%; - margin: 0; - padding: .2em .4em; } .markdown-body pre { @@ -698,13 +799,13 @@ } .markdown-body pre>code { - background: transparent; - border: 0; - font-size: 100%; - margin: 0; padding: 0; - white-space: pre; + margin: 0; + font-size: 100%; word-break: normal; + white-space: pre; + background: transparent; + border: 0; } .markdown-body .highlight { @@ -718,36 +819,39 @@ .markdown-body .highlight pre, .markdown-body pre { - background-color: #f6f8fa; - border-radius: 3px; + padding: 16px; + overflow: auto; font-size: 85%; line-height: 1.45; - overflow: auto; - padding: 16px; + background-color: #f6f8fa; + border-radius: 3px; } .markdown-body pre code { - background-color: transparent; - border: 0; display: inline; - line-height: inherit; - margin: 0; max-width: auto; - overflow: visible; padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; word-wrap: normal; + background-color: initial; + border: 0; } .markdown-body .commit-tease-sha { - color: #444d56; display: inline-block; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; font-size: 90%; + color: #444d56; +} + +.markdown-body .full-commit .btn-outline:not(:disabled):hover { + color: #005cc5; + border-color: #005cc5; } .markdown-body .blob-wrapper { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; overflow-x: auto; overflow-y: hidden; } @@ -758,22 +862,22 @@ } .markdown-body .blob-num { - -moz-user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - color: rgba(27,31,35,.3); - cursor: pointer; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; - font-size: 12px; - line-height: 20px; + width: 1%; min-width: 50px; - padding-left: 10px; padding-right: 10px; + padding-left: 10px; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; + font-size: 12px; + line-height: 20px; + color: rgba(27,31,35,.3); text-align: right; - user-select: none; - vertical-align: top; white-space: nowrap; - width: 1%; + vertical-align: top; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .markdown-body .blob-num:hover { @@ -785,46 +889,26 @@ } .markdown-body .blob-code { - line-height: 20px; - padding-left: 10px; - padding-right: 10px; position: relative; + padding-right: 10px; + padding-left: 10px; + line-height: 20px; vertical-align: top; } .markdown-body .blob-code-inner { - color: #24292e; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; - font-size: 12px; overflow: visible; - white-space: pre; + font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; + font-size: 12px; + color: #24292e; word-wrap: normal; + white-space: pre; } .markdown-body .pl-token.active, .markdown-body .pl-token:hover { - background: #ffea7f; cursor: pointer; -} - -.markdown-body kbd { - background-color: #fafbfc; - border: 1px solid #d1d5da; - border-bottom-color: #c6cbd1; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #c6cbd1; - color: #444d56; - display: inline-block; - font: 11px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace; - line-height: 10px; - padding: 3px 5px; - vertical-align: middle; -} - -.markdown-body :checked+.radio-label { - border-color: #0366d6; - position: relative; - z-index: 1; + background: #ffea7f; } .markdown-body .tab-size[data-tab-size="1"] { @@ -899,59 +983,3 @@ margin: 0 .2em .25em -1.6em; vertical-align: middle; } - -.markdown-body hr { - border-bottom-color: #eee; -} - -.markdown-body .pl-0 { - padding-left: 0!important; -} - -.markdown-body .pl-1 { - padding-left: 4px!important; -} - -.markdown-body .pl-2 { - padding-left: 8px!important; -} - -.markdown-body .pl-3 { - padding-left: 16px!important; -} - -.markdown-body .pl-4 { - padding-left: 24px!important; -} - -.markdown-body .pl-5 { - padding-left: 32px!important; -} - -.markdown-body .pl-6 { - padding-left: 40px!important; -} - -.markdown-body .pl-7 { - padding-left: 48px!important; -} - -.markdown-body .pl-8 { - padding-left: 64px!important; -} - -.markdown-body .pl-9 { - padding-left: 80px!important; -} - -.markdown-body .pl-10 { - padding-left: 96px!important; -} - -.markdown-body .pl-11 { - padding-left: 112px!important; -} - -.markdown-body .pl-12 { - padding-left: 128px!important; -} diff --git a/license b/license index e7af2f7..fa7ceba 100644 --- a/license +++ b/license @@ -1,6 +1,6 @@ MIT License -Copyright (c) Sindre Sorhus (sindresorhus.com) +Copyright (c) Sindre Sorhus (https://sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/package.json b/package.json index e666dd6..80b6604 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,13 @@ "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", + "funding": "https://github.com/sponsors/sindresorhus", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" + "url": "https://sindresorhus.com" }, "main": "github-markdown.css", - "engines": { - "node": ">=0.10.0" - }, "scripts": { "make": "github-markdown-css > github-markdown.css" }, @@ -29,6 +27,6 @@ "stylesheet" ], "devDependencies": { - "generate-github-markdown-css": "^3.0.2" + "generate-github-markdown-css": "^4.0.0" } } diff --git a/readme.md b/readme.md index a289872..bc73f37 100644 --- a/readme.md +++ b/readme.md @@ -4,8 +4,7 @@ [](http://sindresorhus.com/github-markdown-css) -## [Demo](http://sindresorhus.com/github-markdown-css) - +## [Demo](https://sindresorhus.com/github-markdown-css) ## Install @@ -15,7 +14,6 @@ Download [manually](https://raw.githubusercontent.com/sindresorhus/github-markdo $ npm install github-markdown-css ``` - ## Usage Import the `github-markdown.css` file and add a `markdown-body` class to the container of your rendered Markdown and set a width for it. GitHub uses `980px` width and `45px` padding, and `15px` padding for mobile. @@ -46,17 +44,10 @@ Import the `github-markdown.css` file and add a `markdown-body` class to the con If you want code syntax highlighted, use GitHub Flavored Markdown rendered from [GitHub's `/markdown` API](https://developer.github.com/v3/markdown/). - ## How See [`generate-github-markdown-css`](https://github.com/sindresorhus/generate-github-markdown-css) for how it's generated and ability to generate your own. - ## Dev Run `npm run make` to update the CSS. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) From 1485dd78f5e744ef36e946e5ae44838e3906f9d8 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sat, 22 Feb 2020 18:41:22 +0700 Subject: [PATCH 096/131] 4.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 80b6604..ad95233 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "github-markdown-css", - "version": "3.0.1", + "version": "4.0.0", "description": "The minimal amount of CSS to replicate the GitHub Markdown style", "license": "MIT", "repository": "sindresorhus/github-markdown-css", From 888d5a03223a2c14a8d3eb40e90a22f62469a46b Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Tue, 20 Oct 2020 20:24:11 +0800 Subject: [PATCH 097/131] Update GFM render API link (#75) --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index bc73f37..d1d32a6 100644 --- a/readme.md +++ b/readme.md @@ -42,7 +42,7 @@ Import the `github-markdown.css` file and add a `markdown-body` class to the con
    ``` -If you want code syntax highlighted, use GitHub Flavored Markdown rendered from [GitHub's `/markdown` API](https://developer.github.com/v3/markdown/). +If you want code syntax highlighted, use GitHub Flavored Markdown rendered from [GitHub's `/markdown` API](https://docs.github.com/en/free-pro-team@latest/rest/reference/markdown). ## How From 4869cfc43314775195e4e5dc3e9c3eae2a447b0e Mon Sep 17 00:00:00 2001 From: haru <61040486+haru0017@users.noreply.github.com> Date: Sun, 8 Aug 2021 18:55:05 +0900 Subject: [PATCH 098/131] Fix "Fork me on Github" image (#83) Co-authored-by: Sindre Sorhus --- index.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 83e82d8..ec9d64d 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,12 @@ padding: 45px; } + +
    - Fork me on GitHub + Fork me on GitHub From b1d8b9fc0d5ac2b0458de1bd5057792d20d96e49 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sun, 5 Sep 2021 11:19:21 +0200 Subject: [PATCH 099/131] Update readme.md --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index d1d32a6..d0f9371 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,8 @@ > The minimal amount of CSS to replicate the GitHub Markdown style +**The CSS is generated. Contributions should go to [this repo](https://github.com/sindresorhus/generate-github-markdown-css).** + [](http://sindresorhus.com/github-markdown-css) ## [Demo](https://sindresorhus.com/github-markdown-css) From 5a667d574911bc1592abe3520524485609de1b13 Mon Sep 17 00:00:00 2001 From: hyrious Date: Sun, 17 Oct 2021 20:15:46 +0800 Subject: [PATCH 100/131] Support GitHub dark theme (#89) --- github-markdown-dark.css | 900 +++++++++++++++++++++++++++++ github-markdown-light.css | 899 +++++++++++++++++++++++++++++ github-markdown.css | 1130 +++++++++++++++++++------------------ index.html | 7 + package.json | 11 +- readme.md | 8 + 6 files changed, 2391 insertions(+), 564 deletions(-) create mode 100644 github-markdown-dark.css create mode 100644 github-markdown-light.css diff --git a/github-markdown-dark.css b/github-markdown-dark.css new file mode 100644 index 0000000..9966c60 --- /dev/null +++ b/github-markdown-dark.css @@ -0,0 +1,900 @@ +.markdown-body { + color-scheme: dark; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + margin: 0; + color: #c9d1d9; + background-color: #0d1117; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .octicon { + display: inline-block; + fill: currentColor; + vertical-align: text-bottom; +} + +.markdown-body h1:hover .anchor .octicon-link:before, +.markdown-body h2:hover .anchor .octicon-link:before, +.markdown-body h3:hover .anchor .octicon-link:before, +.markdown-body h4:hover .anchor .octicon-link:before, +.markdown-body h5:hover .anchor .octicon-link:before, +.markdown-body h6:hover .anchor .octicon-link:before { + width: 16px; + height: 16px; + content: ' '; + display: inline-block; + background-color: currentColor; + -webkit-mask-image: url("data:image/svg+xml,"); + mask-image: url("data:image/svg+xml,"); +} + +.markdown-body details, +.markdown-body figcaption, +.markdown-body figure { + display: block; +} + +.markdown-body summary { + display: list-item; +} + +.markdown-body a { + background-color: transparent; + color: #58a6ff; + text-decoration: none; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body abbr[title] { + border-bottom: none; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +.markdown-body b, +.markdown-body strong { + font-weight: 600; +} + +.markdown-body dfn { + font-style: italic; +} + +.markdown-body h1 { + margin: .67em 0; + font-weight: 600; + padding-bottom: .3em; + font-size: 2em; + border-bottom: 1px solid #21262d; +} + +.markdown-body mark { + background-color: #ff0; + color: #c9d1d9; +} + +.markdown-body small { + font-size: 90%; +} + +.markdown-body sub, +.markdown-body sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +.markdown-body sub { + bottom: -0.25em; +} + +.markdown-body sup { + top: -0.5em; +} + +.markdown-body img { + border-style: none; + max-width: 100%; + box-sizing: content-box; + background-color: #0d1117; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre, +.markdown-body samp { + font-family: monospace,monospace; + font-size: 1em; +} + +.markdown-body figure { + margin: 1em 40px; +} + +.markdown-body hr { + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid #21262d; + height: .25em; + padding: 0; + margin: 24px 0; + background-color: #30363d; + border: 0; +} + +.markdown-body html [type=button], +.markdown-body [type=reset], +.markdown-body [type=submit] { + -webkit-appearance: button; +} + +.markdown-body [type=button]::-moz-focus-inner, +.markdown-body [type=reset]::-moz-focus-inner, +.markdown-body [type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +.markdown-body [type=button]:-moz-focusring, +.markdown-body [type=reset]:-moz-focusring, +.markdown-body [type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +.markdown-body [type=checkbox], +.markdown-body [type=radio] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body [type=number]::-webkit-inner-spin-button, +.markdown-body [type=number]::-webkit-outer-spin-button { + height: auto; +} + +.markdown-body [type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +.markdown-body [type=search]::-webkit-search-cancel-button, +.markdown-body [type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +.markdown-body ::-webkit-input-placeholder { + color: inherit; + opacity: .54; +} + +.markdown-body ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; + display: block; + width: max-content; + max-width: 100%; + overflow: auto; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body details summary { + cursor: pointer; +} + +.markdown-body details:not([open])>*:not(summary) { + display: none !important; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + line-height: 10px; + color: #c9d1d9; + vertical-align: middle; + background-color: #161b22; + border: solid 1px rgba(110,118,129,0.4); + border-bottom-color: rgba(110,118,129,0.4); + border-radius: 6px; + box-shadow: inset 0 -1px 0 rgba(110,118,129,0.4); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h2 { + font-weight: 600; + padding-bottom: .3em; + font-size: 1.5em; + border-bottom: 1px solid #21262d; +} + +.markdown-body h3 { + font-weight: 600; + font-size: 1.25em; +} + +.markdown-body h4 { + font-weight: 600; + font-size: 1em; +} + +.markdown-body h5 { + font-weight: 600; + font-size: .875em; +} + +.markdown-body h6 { + font-weight: 600; + font-size: .85em; + color: #8b949e; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; + padding: 0 1em; + color: #8b949e; + border-left: .25em solid #30363d; +} + +.markdown-body ul, +.markdown-body ol { + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body tt, +.markdown-body code { + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; + word-wrap: normal; +} + +.markdown-body :-ms-input-placeholder { + color: #484f58; + opacity: 1; +} + +.markdown-body ::-ms-input-placeholder { + color: #484f58; + opacity: 1; +} + +.markdown-body ::placeholder { + color: #484f58; + opacity: 1; +} + +.markdown-body .pl-c { + color: #8b949e; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #79c0ff; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #d2a8ff; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #c9d1d9; +} + +.markdown-body .pl-ent { + color: #7ee787; +} + +.markdown-body .pl-k { + color: #ff7b72; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #a5d6ff; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #ffa657; +} + +.markdown-body .pl-bu { + color: #f85149; +} + +.markdown-body .pl-ii { + color: #f0f6fc; + background-color: #8e1519; +} + +.markdown-body .pl-c2 { + color: #f0f6fc; + background-color: #b62324; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #7ee787; +} + +.markdown-body .pl-ml { + color: #f2cc60; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #1f6feb; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #c9d1d9; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #c9d1d9; +} + +.markdown-body .pl-md { + color: #ffdcd7; + background-color: #67060c; +} + +.markdown-body .pl-mi1 { + color: #aff5b4; + background-color: #033a16; +} + +.markdown-body .pl-mc { + color: #ffdfb6; + background-color: #5a1e02; +} + +.markdown-body .pl-mi2 { + color: #c9d1d9; + background-color: #1158c7; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #d2a8ff; +} + +.markdown-body .pl-ba { + color: #8b949e; +} + +.markdown-body .pl-sg { + color: #484f58; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #a5d6ff; +} + +.markdown-body [data-catalyst] { + display: block; +} + +.markdown-body g-emoji { + font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; + font-size: 1em; + font-style: normal !important; + font-weight: 400; + line-height: 1; + vertical-align: -0.075em; +} + +.markdown-body g-emoji img { + width: 1em; + height: 1em; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .absent { + color: #f85149; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre, +.markdown-body details { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body sup>a::before { + content: "["; +} + +.markdown-body sup>a::after { + content: "]"; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #c9d1d9; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 tt, +.markdown-body h1 code, +.markdown-body h2 tt, +.markdown-body h2 code, +.markdown-body h3 tt, +.markdown-body h3 code, +.markdown-body h4 tt, +.markdown-body h4 code, +.markdown-body h5 tt, +.markdown-body h5 code, +.markdown-body h6 tt, +.markdown-body h6 code { + padding: 0 .2em; + font-size: inherit; +} + +.markdown-body ul.no-list, +.markdown-body ol.no-list { + padding: 0; + list-style-type: none; +} + +.markdown-body ol[type="1"] { + list-style-type: decimal; +} + +.markdown-body ol[type=a] { + list-style-type: lower-alpha; +} + +.markdown-body ol[type=i] { + list-style-type: lower-roman; +} + +.markdown-body div>ol:not([type]) { + list-style-type: decimal; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: .25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #30363d; +} + +.markdown-body table tr { + background-color: #0d1117; + border-top: 1px solid #21262d; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #161b22; +} + +.markdown-body table img { + background-color: transparent; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body .emoji { + max-width: none; + vertical-align: text-top; + background-color: transparent; +} + +.markdown-body span.frame { + display: block; + overflow: hidden; +} + +.markdown-body span.frame>span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid #30363d; +} + +.markdown-body span.frame span img { + display: block; + float: left; +} + +.markdown-body span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: #c9d1d9; +} + +.markdown-body span.align-center { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-center>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} + +.markdown-body span.align-center span img { + margin: 0 auto; + text-align: center; +} + +.markdown-body span.align-right { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-right>span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} + +.markdown-body span.align-right span img { + margin: 0; + text-align: right; +} + +.markdown-body span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; +} + +.markdown-body span.float-left span { + margin: 13px 0 0; +} + +.markdown-body span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; +} + +.markdown-body span.float-right>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} + +.markdown-body code, +.markdown-body tt { + padding: .2em .4em; + margin: 0; + font-size: 85%; + background-color: rgba(110,118,129,0.4); + border-radius: 6px; +} + +.markdown-body code br, +.markdown-body tt br { + display: none; +} + +.markdown-body del code { + text-decoration: inherit; +} + +.markdown-body pre code { + font-size: 100%; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #161b22; + border-radius: 6px; +} + +.markdown-body pre code, +.markdown-body pre tt { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .csv-data td, +.markdown-body .csv-data th { + padding: 5px; + overflow: hidden; + font-size: 12px; + line-height: 1; + text-align: left; + white-space: nowrap; +} + +.markdown-body .csv-data .blob-num { + padding: 10px 8px 9px; + text-align: right; + background: #0d1117; + border: 0; +} + +.markdown-body .csv-data tr { + border-top: 0; +} + +.markdown-body .csv-data th { + font-weight: 600; + background: #161b22; + border-top: 0; +} + +.markdown-body .footnotes { + font-size: 12px; + color: #8b949e; + border-top: 1px solid #30363d; +} + +.markdown-body .footnotes ol { + padding-left: 16px; +} + +.markdown-body .footnotes li { + position: relative; +} + +.markdown-body .footnotes li:target::before { + position: absolute; + top: -8px; + right: -8px; + bottom: -8px; + left: -24px; + pointer-events: none; + content: ""; + border: 2px solid #1f6feb; + border-radius: 6px; +} + +.markdown-body .footnotes li:target { + color: #c9d1d9; +} + +.markdown-body .footnotes .data-footnote-backref g-emoji { + font-family: monospace; +} + +.markdown-body [hidden] { + display: none !important; +} + +.markdown-body ::-webkit-calendar-picker-indicator { + filter: invert(50%); +} diff --git a/github-markdown-light.css b/github-markdown-light.css new file mode 100644 index 0000000..2e2783c --- /dev/null +++ b/github-markdown-light.css @@ -0,0 +1,899 @@ +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + margin: 0; + color: #24292f; + background-color: #ffffff; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body .octicon { + display: inline-block; + fill: currentColor; + vertical-align: text-bottom; +} + +.markdown-body h1:hover .anchor .octicon-link:before, +.markdown-body h2:hover .anchor .octicon-link:before, +.markdown-body h3:hover .anchor .octicon-link:before, +.markdown-body h4:hover .anchor .octicon-link:before, +.markdown-body h5:hover .anchor .octicon-link:before, +.markdown-body h6:hover .anchor .octicon-link:before { + width: 16px; + height: 16px; + content: ' '; + display: inline-block; + background-color: currentColor; + -webkit-mask-image: url("data:image/svg+xml,"); + mask-image: url("data:image/svg+xml,"); +} + +.markdown-body details, +.markdown-body figcaption, +.markdown-body figure { + display: block; +} + +.markdown-body summary { + display: list-item; +} + +.markdown-body a { + background-color: transparent; + color: #0969da; + text-decoration: none; +} + +.markdown-body a:active, +.markdown-body a:hover { + outline-width: 0; +} + +.markdown-body abbr[title] { + border-bottom: none; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +.markdown-body b, +.markdown-body strong { + font-weight: 600; +} + +.markdown-body dfn { + font-style: italic; +} + +.markdown-body h1 { + margin: .67em 0; + font-weight: 600; + padding-bottom: .3em; + font-size: 2em; + border-bottom: 1px solid hsla(210,18%,87%,1); +} + +.markdown-body mark { + background-color: #ff0; + color: #24292f; +} + +.markdown-body small { + font-size: 90%; +} + +.markdown-body sub, +.markdown-body sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +.markdown-body sub { + bottom: -0.25em; +} + +.markdown-body sup { + top: -0.5em; +} + +.markdown-body img { + border-style: none; + max-width: 100%; + box-sizing: content-box; + background-color: #ffffff; +} + +.markdown-body code, +.markdown-body kbd, +.markdown-body pre, +.markdown-body samp { + font-family: monospace,monospace; + font-size: 1em; +} + +.markdown-body figure { + margin: 1em 40px; +} + +.markdown-body hr { + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid hsla(210,18%,87%,1); + height: .25em; + padding: 0; + margin: 24px 0; + background-color: #d0d7de; + border: 0; +} + +.markdown-body html [type=button], +.markdown-body [type=reset], +.markdown-body [type=submit] { + -webkit-appearance: button; +} + +.markdown-body [type=button]::-moz-focus-inner, +.markdown-body [type=reset]::-moz-focus-inner, +.markdown-body [type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +.markdown-body [type=button]:-moz-focusring, +.markdown-body [type=reset]:-moz-focusring, +.markdown-body [type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +.markdown-body [type=checkbox], +.markdown-body [type=radio] { + box-sizing: border-box; + padding: 0; +} + +.markdown-body [type=number]::-webkit-inner-spin-button, +.markdown-body [type=number]::-webkit-outer-spin-button { + height: auto; +} + +.markdown-body [type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +.markdown-body [type=search]::-webkit-search-cancel-button, +.markdown-body [type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} + +.markdown-body ::-webkit-input-placeholder { + color: inherit; + opacity: .54; +} + +.markdown-body ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +.markdown-body a:hover { + text-decoration: underline; +} + +.markdown-body hr::before { + display: table; + content: ""; +} + +.markdown-body hr::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body table { + border-spacing: 0; + border-collapse: collapse; + display: block; + width: max-content; + max-width: 100%; + overflow: auto; +} + +.markdown-body td, +.markdown-body th { + padding: 0; +} + +.markdown-body details summary { + cursor: pointer; +} + +.markdown-body details:not([open])>*:not(summary) { + display: none !important; +} + +.markdown-body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + line-height: 10px; + color: #24292f; + vertical-align: middle; + background-color: #f6f8fa; + border: solid 1px rgba(175,184,193,0.2); + border-bottom-color: rgba(175,184,193,0.2); + border-radius: 6px; + box-shadow: inset 0 -1px 0 rgba(175,184,193,0.2); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h2 { + font-weight: 600; + padding-bottom: .3em; + font-size: 1.5em; + border-bottom: 1px solid hsla(210,18%,87%,1); +} + +.markdown-body h3 { + font-weight: 600; + font-size: 1.25em; +} + +.markdown-body h4 { + font-weight: 600; + font-size: 1em; +} + +.markdown-body h5 { + font-weight: 600; + font-size: .875em; +} + +.markdown-body h6 { + font-weight: 600; + font-size: .85em; + color: #57606a; +} + +.markdown-body p { + margin-top: 0; + margin-bottom: 10px; +} + +.markdown-body blockquote { + margin: 0; + padding: 0 1em; + color: #57606a; + border-left: .25em solid #d0d7de; +} + +.markdown-body ul, +.markdown-body ol { + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; +} + +.markdown-body ol ol, +.markdown-body ul ol { + list-style-type: lower-roman; +} + +.markdown-body ul ul ol, +.markdown-body ul ol ol, +.markdown-body ol ul ol, +.markdown-body ol ol ol { + list-style-type: lower-alpha; +} + +.markdown-body dd { + margin-left: 0; +} + +.markdown-body tt, +.markdown-body code { + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; +} + +.markdown-body pre { + margin-top: 0; + margin-bottom: 0; + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; + word-wrap: normal; +} + +.markdown-body :-ms-input-placeholder { + color: #6e7781; + opacity: 1; +} + +.markdown-body ::-ms-input-placeholder { + color: #6e7781; + opacity: 1; +} + +.markdown-body ::placeholder { + color: #6e7781; + opacity: 1; +} + +.markdown-body .pl-c { + color: #6e7781; +} + +.markdown-body .pl-c1, +.markdown-body .pl-s .pl-v { + color: #0550ae; +} + +.markdown-body .pl-e, +.markdown-body .pl-en { + color: #8250df; +} + +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: #24292f; +} + +.markdown-body .pl-ent { + color: #116329; +} + +.markdown-body .pl-k { + color: #cf222e; +} + +.markdown-body .pl-s, +.markdown-body .pl-pds, +.markdown-body .pl-s .pl-pse .pl-s1, +.markdown-body .pl-sr, +.markdown-body .pl-sr .pl-cce, +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: #0a3069; +} + +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: #953800; +} + +.markdown-body .pl-bu { + color: #82071e; +} + +.markdown-body .pl-ii { + color: #f6f8fa; + background-color: #82071e; +} + +.markdown-body .pl-c2 { + color: #f6f8fa; + background-color: #cf222e; +} + +.markdown-body .pl-sr .pl-cce { + font-weight: bold; + color: #116329; +} + +.markdown-body .pl-ml { + color: #3b2300; +} + +.markdown-body .pl-mh, +.markdown-body .pl-mh .pl-en, +.markdown-body .pl-ms { + font-weight: bold; + color: #0550ae; +} + +.markdown-body .pl-mi { + font-style: italic; + color: #24292f; +} + +.markdown-body .pl-mb { + font-weight: bold; + color: #24292f; +} + +.markdown-body .pl-md { + color: #82071e; + background-color: #FFEBE9; +} + +.markdown-body .pl-mi1 { + color: #116329; + background-color: #dafbe1; +} + +.markdown-body .pl-mc { + color: #953800; + background-color: #ffd8b5; +} + +.markdown-body .pl-mi2 { + color: #eaeef2; + background-color: #0550ae; +} + +.markdown-body .pl-mdr { + font-weight: bold; + color: #8250df; +} + +.markdown-body .pl-ba { + color: #57606a; +} + +.markdown-body .pl-sg { + color: #8c959f; +} + +.markdown-body .pl-corl { + text-decoration: underline; + color: #0a3069; +} + +.markdown-body [data-catalyst] { + display: block; +} + +.markdown-body g-emoji { + font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; + font-size: 1em; + font-style: normal !important; + font-weight: 400; + line-height: 1; + vertical-align: -0.075em; +} + +.markdown-body g-emoji img { + width: 1em; + height: 1em; +} + +.markdown-body::before { + display: table; + content: ""; +} + +.markdown-body::after { + display: table; + clear: both; + content: ""; +} + +.markdown-body>*:first-child { + margin-top: 0 !important; +} + +.markdown-body>*:last-child { + margin-bottom: 0 !important; +} + +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; +} + +.markdown-body .absent { + color: #cf222e; +} + +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; +} + +.markdown-body .anchor:focus { + outline: none; +} + +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre, +.markdown-body details { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body blockquote>:first-child { + margin-top: 0; +} + +.markdown-body blockquote>:last-child { + margin-bottom: 0; +} + +.markdown-body sup>a::before { + content: "["; +} + +.markdown-body sup>a::after { + content: "]"; +} + +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: #24292f; + vertical-align: middle; + visibility: hidden; +} + +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; +} + +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; +} + +.markdown-body h1 tt, +.markdown-body h1 code, +.markdown-body h2 tt, +.markdown-body h2 code, +.markdown-body h3 tt, +.markdown-body h3 code, +.markdown-body h4 tt, +.markdown-body h4 code, +.markdown-body h5 tt, +.markdown-body h5 code, +.markdown-body h6 tt, +.markdown-body h6 code { + padding: 0 .2em; + font-size: inherit; +} + +.markdown-body ul.no-list, +.markdown-body ol.no-list { + padding: 0; + list-style-type: none; +} + +.markdown-body ol[type="1"] { + list-style-type: decimal; +} + +.markdown-body ol[type=a] { + list-style-type: lower-alpha; +} + +.markdown-body ol[type=i] { + list-style-type: lower-roman; +} + +.markdown-body div>ol:not([type]) { + list-style-type: decimal; +} + +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +.markdown-body li>p { + margin-top: 16px; +} + +.markdown-body li+li { + margin-top: .25em; +} + +.markdown-body dl { + padding: 0; +} + +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; +} + +.markdown-body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #d0d7de; +} + +.markdown-body table tr { + background-color: #ffffff; + border-top: 1px solid hsla(210,18%,87%,1); +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} + +.markdown-body table img { + background-color: transparent; +} + +.markdown-body img[align=right] { + padding-left: 20px; +} + +.markdown-body img[align=left] { + padding-right: 20px; +} + +.markdown-body .emoji { + max-width: none; + vertical-align: text-top; + background-color: transparent; +} + +.markdown-body span.frame { + display: block; + overflow: hidden; +} + +.markdown-body span.frame>span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid #d0d7de; +} + +.markdown-body span.frame span img { + display: block; + float: left; +} + +.markdown-body span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: #24292f; +} + +.markdown-body span.align-center { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-center>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; +} + +.markdown-body span.align-center span img { + margin: 0 auto; + text-align: center; +} + +.markdown-body span.align-right { + display: block; + overflow: hidden; + clear: both; +} + +.markdown-body span.align-right>span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; +} + +.markdown-body span.align-right span img { + margin: 0; + text-align: right; +} + +.markdown-body span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; +} + +.markdown-body span.float-left span { + margin: 13px 0 0; +} + +.markdown-body span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; +} + +.markdown-body span.float-right>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; +} + +.markdown-body code, +.markdown-body tt { + padding: .2em .4em; + margin: 0; + font-size: 85%; + background-color: rgba(175,184,193,0.2); + border-radius: 6px; +} + +.markdown-body code br, +.markdown-body tt br { + display: none; +} + +.markdown-body del code { + text-decoration: inherit; +} + +.markdown-body pre code { + font-size: 100%; +} + +.markdown-body pre>code { + padding: 0; + margin: 0; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body .highlight { + margin-bottom: 16px; +} + +.markdown-body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +.markdown-body .highlight pre, +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 6px; +} + +.markdown-body pre code, +.markdown-body pre tt { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +.markdown-body .csv-data td, +.markdown-body .csv-data th { + padding: 5px; + overflow: hidden; + font-size: 12px; + line-height: 1; + text-align: left; + white-space: nowrap; +} + +.markdown-body .csv-data .blob-num { + padding: 10px 8px 9px; + text-align: right; + background: #ffffff; + border: 0; +} + +.markdown-body .csv-data tr { + border-top: 0; +} + +.markdown-body .csv-data th { + font-weight: 600; + background: #f6f8fa; + border-top: 0; +} + +.markdown-body .footnotes { + font-size: 12px; + color: #57606a; + border-top: 1px solid #d0d7de; +} + +.markdown-body .footnotes ol { + padding-left: 16px; +} + +.markdown-body .footnotes li { + position: relative; +} + +.markdown-body .footnotes li:target::before { + position: absolute; + top: -8px; + right: -8px; + bottom: -8px; + left: -24px; + pointer-events: none; + content: ""; + border: 2px solid #0969da; + border-radius: 6px; +} + +.markdown-body .footnotes li:target { + color: #24292f; +} + +.markdown-body .footnotes .data-footnote-backref g-emoji { + font-family: monospace; +} + +.markdown-body [hidden] { + display: none !important; +} + +.markdown-body ::-webkit-calendar-picker-indicator { + filter: invert(50%); +} diff --git a/github-markdown.css b/github-markdown.css index 7c6cd78..1e6d127 100644 --- a/github-markdown.css +++ b/github-markdown.css @@ -1,49 +1,115 @@ +@media (prefers-color-scheme: dark) { + .markdown-body { + color-scheme: dark; + --color-prettylights-syntax-comment: #8b949e; + --color-prettylights-syntax-constant: #79c0ff; + --color-prettylights-syntax-entity: #d2a8ff; + --color-prettylights-syntax-storage-modifier-import: #c9d1d9; + --color-prettylights-syntax-entity-tag: #7ee787; + --color-prettylights-syntax-keyword: #ff7b72; + --color-prettylights-syntax-string: #a5d6ff; + --color-prettylights-syntax-variable: #ffa657; + --color-prettylights-syntax-brackethighlighter-unmatched: #f85149; + --color-prettylights-syntax-invalid-illegal-text: #f0f6fc; + --color-prettylights-syntax-invalid-illegal-bg: #8e1519; + --color-prettylights-syntax-carriage-return-text: #f0f6fc; + --color-prettylights-syntax-carriage-return-bg: #b62324; + --color-prettylights-syntax-string-regexp: #7ee787; + --color-prettylights-syntax-markup-list: #f2cc60; + --color-prettylights-syntax-markup-heading: #1f6feb; + --color-prettylights-syntax-markup-italic: #c9d1d9; + --color-prettylights-syntax-markup-bold: #c9d1d9; + --color-prettylights-syntax-markup-deleted-text: #ffdcd7; + --color-prettylights-syntax-markup-deleted-bg: #67060c; + --color-prettylights-syntax-markup-inserted-text: #aff5b4; + --color-prettylights-syntax-markup-inserted-bg: #033a16; + --color-prettylights-syntax-markup-changed-text: #ffdfb6; + --color-prettylights-syntax-markup-changed-bg: #5a1e02; + --color-prettylights-syntax-markup-ignored-text: #c9d1d9; + --color-prettylights-syntax-markup-ignored-bg: #1158c7; + --color-prettylights-syntax-meta-diff-range: #d2a8ff; + --color-prettylights-syntax-brackethighlighter-angle: #8b949e; + --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58; + --color-prettylights-syntax-constant-other-reference-link: #a5d6ff; + --color-fg-default: #c9d1d9; + --color-fg-muted: #8b949e; + --color-fg-subtle: #484f58; + --color-canvas-default: #0d1117; + --color-canvas-subtle: #161b22; + --color-border-default: #30363d; + --color-border-muted: #21262d; + --color-neutral-muted: rgba(110,118,129,0.4); + --color-accent-fg: #58a6ff; + --color-accent-emphasis: #1f6feb; + --color-danger-fg: #f85149; + } +} + +@media (prefers-color-scheme: light) { + .markdown-body { + color-scheme: light; + --color-prettylights-syntax-comment: #6e7781; + --color-prettylights-syntax-constant: #0550ae; + --color-prettylights-syntax-entity: #8250df; + --color-prettylights-syntax-storage-modifier-import: #24292f; + --color-prettylights-syntax-entity-tag: #116329; + --color-prettylights-syntax-keyword: #cf222e; + --color-prettylights-syntax-string: #0a3069; + --color-prettylights-syntax-variable: #953800; + --color-prettylights-syntax-brackethighlighter-unmatched: #82071e; + --color-prettylights-syntax-invalid-illegal-text: #f6f8fa; + --color-prettylights-syntax-invalid-illegal-bg: #82071e; + --color-prettylights-syntax-carriage-return-text: #f6f8fa; + --color-prettylights-syntax-carriage-return-bg: #cf222e; + --color-prettylights-syntax-string-regexp: #116329; + --color-prettylights-syntax-markup-list: #3b2300; + --color-prettylights-syntax-markup-heading: #0550ae; + --color-prettylights-syntax-markup-italic: #24292f; + --color-prettylights-syntax-markup-bold: #24292f; + --color-prettylights-syntax-markup-deleted-text: #82071e; + --color-prettylights-syntax-markup-deleted-bg: #FFEBE9; + --color-prettylights-syntax-markup-inserted-text: #116329; + --color-prettylights-syntax-markup-inserted-bg: #dafbe1; + --color-prettylights-syntax-markup-changed-text: #953800; + --color-prettylights-syntax-markup-changed-bg: #ffd8b5; + --color-prettylights-syntax-markup-ignored-text: #eaeef2; + --color-prettylights-syntax-markup-ignored-bg: #0550ae; + --color-prettylights-syntax-meta-diff-range: #8250df; + --color-prettylights-syntax-brackethighlighter-angle: #57606a; + --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f; + --color-prettylights-syntax-constant-other-reference-link: #0a3069; + --color-fg-default: #24292f; + --color-fg-muted: #57606a; + --color-fg-subtle: #6e7781; + --color-canvas-default: #ffffff; + --color-canvas-subtle: #f6f8fa; + --color-border-default: #d0d7de; + --color-border-muted: hsla(210,18%,87%,1); + --color-neutral-muted: rgba(175,184,193,0.2); + --color-accent-fg: #0969da; + --color-accent-emphasis: #0969da; + --color-danger-fg: #cf222e; + } +} + +.markdown-body { + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + margin: 0; + color: var(--color-fg-default); + background-color: var(--color-canvas-default); + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + .markdown-body .octicon { display: inline-block; fill: currentColor; vertical-align: text-bottom; } -.markdown-body .anchor { - float: left; - line-height: 1; - margin-left: -20px; - padding-right: 4px; -} - -.markdown-body .anchor:focus { - outline: none; -} - -.markdown-body h1 .octicon-link, -.markdown-body h2 .octicon-link, -.markdown-body h3 .octicon-link, -.markdown-body h4 .octicon-link, -.markdown-body h5 .octicon-link, -.markdown-body h6 .octicon-link { - color: #1b1f23; - vertical-align: middle; - visibility: hidden; -} - -.markdown-body h1:hover .anchor, -.markdown-body h2:hover .anchor, -.markdown-body h3:hover .anchor, -.markdown-body h4:hover .anchor, -.markdown-body h5:hover .anchor, -.markdown-body h6:hover .anchor { - text-decoration: none; -} - -.markdown-body h1:hover .anchor .octicon-link, -.markdown-body h2:hover .anchor .octicon-link, -.markdown-body h3:hover .anchor .octicon-link, -.markdown-body h4:hover .anchor .octicon-link, -.markdown-body h5:hover .anchor .octicon-link, -.markdown-body h6:hover .anchor .octicon-link { - visibility: visible; -} - .markdown-body h1:hover .anchor .octicon-link:before, .markdown-body h2:hover .anchor .octicon-link:before, .markdown-body h3:hover .anchor .octicon-link:before, @@ -54,19 +120,14 @@ height: 16px; content: ' '; display: inline-block; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'%3E%3C/path%3E%3C/svg%3E"); -}.markdown-body { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - line-height: 1.5; - color: #24292e; - font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji; - font-size: 16px; - line-height: 1.5; - word-wrap: break-word; + background-color: currentColor; + -webkit-mask-image: url("data:image/svg+xml,"); + mask-image: url("data:image/svg+xml,"); } -.markdown-body details { +.markdown-body details, +.markdown-body figcaption, +.markdown-body figure { display: block; } @@ -75,7 +136,9 @@ } .markdown-body a { - background-color: initial; + background-color: transparent; + color: var(--color-accent-fg); + text-decoration: none; } .markdown-body a:active, @@ -83,92 +146,157 @@ outline-width: 0; } +.markdown-body abbr[title] { + border-bottom: none; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +.markdown-body b, .markdown-body strong { - font-weight: inherit; - font-weight: bolder; + font-weight: 600; +} + +.markdown-body dfn { + font-style: italic; } .markdown-body h1 { - font-size: 2em; margin: .67em 0; + font-weight: 600; + padding-bottom: .3em; + font-size: 2em; + border-bottom: 1px solid var(--color-border-muted); +} + +.markdown-body mark { + background-color: #ff0; + color: var(--color-text-primary); +} + +.markdown-body small { + font-size: 90%; +} + +.markdown-body sub, +.markdown-body sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +.markdown-body sub { + bottom: -0.25em; +} + +.markdown-body sup { + top: -0.5em; } .markdown-body img { border-style: none; + max-width: 100%; + box-sizing: content-box; + background-color: var(--color-canvas-default); } .markdown-body code, .markdown-body kbd, -.markdown-body pre { +.markdown-body pre, +.markdown-body samp { font-family: monospace,monospace; font-size: 1em; } +.markdown-body figure { + margin: 1em 40px; +} + .markdown-body hr { - box-sizing: initial; - height: 0; - overflow: visible; + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid var(--color-border-muted); + height: .25em; + padding: 0; + margin: 24px 0; + background-color: var(--color-border-default); + border: 0; } -.markdown-body input { - font: inherit; - margin: 0; +.markdown-body html [type=button], +.markdown-body [type=reset], +.markdown-body [type=submit] { + -webkit-appearance: button; } -.markdown-body input { - overflow: visible; +.markdown-body [type=button]::-moz-focus-inner, +.markdown-body [type=reset]::-moz-focus-inner, +.markdown-body [type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +.markdown-body [type=button]:-moz-focusring, +.markdown-body [type=reset]:-moz-focusring, +.markdown-body [type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; } -.markdown-body [type=checkbox] { +.markdown-body [type=checkbox], +.markdown-body [type=radio] { box-sizing: border-box; padding: 0; } -.markdown-body * { - box-sizing: border-box; +.markdown-body [type=number]::-webkit-inner-spin-button, +.markdown-body [type=number]::-webkit-outer-spin-button { + height: auto; } -.markdown-body input { - font-family: inherit; - font-size: inherit; - line-height: inherit; +.markdown-body [type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; } -.markdown-body a { - color: #0366d6; - text-decoration: none; +.markdown-body [type=search]::-webkit-search-cancel-button, +.markdown-body [type=search]::-webkit-search-decoration { + -webkit-appearance: none; } -.markdown-body a:hover { - text-decoration: underline; +.markdown-body ::-webkit-input-placeholder { + color: inherit; + opacity: .54; } -.markdown-body strong { - font-weight: 600; +.markdown-body ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; } -.markdown-body hr { - height: 0; - margin: 15px 0; - overflow: hidden; - background: transparent; - border: 0; - border-bottom: 1px solid #dfe2e5; +.markdown-body a:hover { + text-decoration: underline; } -.markdown-body hr:after, -.markdown-body hr:before { +.markdown-body hr::before { display: table; content: ""; } -.markdown-body hr:after { +.markdown-body hr::after { + display: table; clear: both; + content: ""; } .markdown-body table { border-spacing: 0; border-collapse: collapse; + display: block; + width: max-content; + max-width: 100%; + overflow: auto; } .markdown-body td, @@ -180,17 +308,22 @@ cursor: pointer; } +.markdown-body details:not([open])>*:not(summary) { + display: none !important; +} + .markdown-body kbd { display: inline-block; padding: 3px 5px; - font: 11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; + font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; line-height: 10px; - color: #444d56; + color: var(--color-fg-default); vertical-align: middle; - background-color: #fafbfc; - border: 1px solid #d1d5da; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #d1d5da; + background-color: var(--color-canvas-subtle); + border: solid 1px var(--color-neutral-muted); + border-bottom-color: var(--color-neutral-muted); + border-radius: 6px; + box-shadow: inset 0 -1px 0 var(--color-neutral-muted); } .markdown-body h1, @@ -199,47 +332,38 @@ .markdown-body h4, .markdown-body h5, .markdown-body h6 { - margin-top: 0; - margin-bottom: 0; -} - -.markdown-body h1 { - font-size: 32px; -} - -.markdown-body h1, -.markdown-body h2 { + margin-top: 24px; + margin-bottom: 16px; font-weight: 600; + line-height: 1.25; } .markdown-body h2 { - font-size: 24px; + font-weight: 600; + padding-bottom: .3em; + font-size: 1.5em; + border-bottom: 1px solid var(--color-border-muted); } .markdown-body h3 { - font-size: 20px; -} - -.markdown-body h3, -.markdown-body h4 { font-weight: 600; + font-size: 1.25em; } .markdown-body h4 { - font-size: 16px; + font-weight: 600; + font-size: 1em; } .markdown-body h5 { - font-size: 14px; -} - -.markdown-body h5, -.markdown-body h6 { font-weight: 600; + font-size: .875em; } .markdown-body h6 { - font-size: 12px; + font-weight: 600; + font-size: .85em; + color: var(--color-fg-muted); } .markdown-body p { @@ -249,13 +373,16 @@ .markdown-body blockquote { margin: 0; + padding: 0 1em; + color: var(--color-fg-muted); + border-left: .25em solid var(--color-border-default); } -.markdown-body ol, -.markdown-body ul { - padding-left: 0; +.markdown-body ul, +.markdown-body ol { margin-top: 0; margin-bottom: 0; + padding-left: 2em; } .markdown-body ol ol, @@ -263,10 +390,10 @@ list-style-type: lower-roman; } -.markdown-body ol ol ol, -.markdown-body ol ul ol, +.markdown-body ul ul ol, .markdown-body ul ol ol, -.markdown-body ul ul ol { +.markdown-body ol ul ol, +.markdown-body ol ol ol { list-style-type: lower-alpha; } @@ -274,534 +401,490 @@ margin-left: 0; } -.markdown-body code, -.markdown-body pre { - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; +.markdown-body tt, +.markdown-body code { + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; font-size: 12px; } .markdown-body pre { margin-top: 0; margin-bottom: 0; + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + font-size: 12px; + word-wrap: normal; } -.markdown-body input::-webkit-inner-spin-button, -.markdown-body input::-webkit-outer-spin-button { - margin: 0; - -webkit-appearance: none; - appearance: none; -} - -.markdown-body :checked+.radio-label { - position: relative; - z-index: 1; - border-color: #0366d6; -} - -.markdown-body .border { - border: 1px solid #e1e4e8!important; -} - -.markdown-body .border-0 { - border: 0!important; -} - -.markdown-body .border-bottom { - border-bottom: 1px solid #e1e4e8!important; -} - -.markdown-body .rounded-1 { - border-radius: 3px!important; -} - -.markdown-body .bg-white { - background-color: #fff!important; -} - -.markdown-body .bg-gray-light { - background-color: #fafbfc!important; -} - -.markdown-body .text-gray-light { - color: #6a737d!important; -} - -.markdown-body .mb-0 { - margin-bottom: 0!important; -} - -.markdown-body .my-2 { - margin-top: 8px!important; - margin-bottom: 8px!important; -} - -.markdown-body .pl-0 { - padding-left: 0!important; -} - -.markdown-body .py-0 { - padding-top: 0!important; - padding-bottom: 0!important; -} - -.markdown-body .pl-1 { - padding-left: 4px!important; -} - -.markdown-body .pl-2 { - padding-left: 8px!important; -} - -.markdown-body .py-2 { - padding-top: 8px!important; - padding-bottom: 8px!important; -} - -.markdown-body .pl-3, -.markdown-body .px-3 { - padding-left: 16px!important; -} - -.markdown-body .px-3 { - padding-right: 16px!important; -} - -.markdown-body .pl-4 { - padding-left: 24px!important; -} - -.markdown-body .pl-5 { - padding-left: 32px!important; -} - -.markdown-body .pl-6 { - padding-left: 40px!important; -} - -.markdown-body .f6 { - font-size: 12px!important; +.markdown-body :-ms-input-placeholder { + color: var(--color-fg-subtle); + opacity: 1; } -.markdown-body .lh-condensed { - line-height: 1.25!important; +.markdown-body ::-ms-input-placeholder { + color: var(--color-fg-subtle); + opacity: 1; } -.markdown-body .text-bold { - font-weight: 600!important; +.markdown-body ::placeholder { + color: var(--color-fg-subtle); + opacity: 1; } .markdown-body .pl-c { - color: #6a737d; + color: var(--color-prettylights-syntax-comment); } .markdown-body .pl-c1, .markdown-body .pl-s .pl-v { - color: #005cc5; + color: var(--color-prettylights-syntax-constant); } .markdown-body .pl-e, .markdown-body .pl-en { - color: #6f42c1; + color: var(--color-prettylights-syntax-entity); } -.markdown-body .pl-s .pl-s1, -.markdown-body .pl-smi { - color: #24292e; +.markdown-body .pl-smi, +.markdown-body .pl-s .pl-s1 { + color: var(--color-prettylights-syntax-storage-modifier-import); } .markdown-body .pl-ent { - color: #22863a; + color: var(--color-prettylights-syntax-entity-tag); } .markdown-body .pl-k { - color: #d73a49; + color: var(--color-prettylights-syntax-keyword); } -.markdown-body .pl-pds, .markdown-body .pl-s, +.markdown-body .pl-pds, .markdown-body .pl-s .pl-pse .pl-s1, .markdown-body .pl-sr, .markdown-body .pl-sr .pl-cce, -.markdown-body .pl-sr .pl-sra, -.markdown-body .pl-sr .pl-sre { - color: #032f62; +.markdown-body .pl-sr .pl-sre, +.markdown-body .pl-sr .pl-sra { + color: var(--color-prettylights-syntax-string); } -.markdown-body .pl-smw, -.markdown-body .pl-v { - color: #e36209; +.markdown-body .pl-v, +.markdown-body .pl-smw { + color: var(--color-prettylights-syntax-variable); } .markdown-body .pl-bu { - color: #b31d28; + color: var(--color-prettylights-syntax-brackethighlighter-unmatched); } .markdown-body .pl-ii { - color: #fafbfc; - background-color: #b31d28; + color: var(--color-prettylights-syntax-invalid-illegal-text); + background-color: var(--color-prettylights-syntax-invalid-illegal-bg); } .markdown-body .pl-c2 { - color: #fafbfc; - background-color: #d73a49; -} - -.markdown-body .pl-c2:before { - content: "^M"; + color: var(--color-prettylights-syntax-carriage-return-text); + background-color: var(--color-prettylights-syntax-carriage-return-bg); } .markdown-body .pl-sr .pl-cce { - font-weight: 700; - color: #22863a; + font-weight: bold; + color: var(--color-prettylights-syntax-string-regexp); } .markdown-body .pl-ml { - color: #735c0f; + color: var(--color-prettylights-syntax-markup-list); } .markdown-body .pl-mh, .markdown-body .pl-mh .pl-en, .markdown-body .pl-ms { - font-weight: 700; - color: #005cc5; + font-weight: bold; + color: var(--color-prettylights-syntax-markup-heading); } .markdown-body .pl-mi { font-style: italic; - color: #24292e; + color: var(--color-prettylights-syntax-markup-italic); } .markdown-body .pl-mb { - font-weight: 700; - color: #24292e; + font-weight: bold; + color: var(--color-prettylights-syntax-markup-bold); } .markdown-body .pl-md { - color: #b31d28; - background-color: #ffeef0; + color: var(--color-prettylights-syntax-markup-deleted-text); + background-color: var(--color-prettylights-syntax-markup-deleted-bg); } .markdown-body .pl-mi1 { - color: #22863a; - background-color: #f0fff4; + color: var(--color-prettylights-syntax-markup-inserted-text); + background-color: var(--color-prettylights-syntax-markup-inserted-bg); } .markdown-body .pl-mc { - color: #e36209; - background-color: #ffebda; + color: var(--color-prettylights-syntax-markup-changed-text); + background-color: var(--color-prettylights-syntax-markup-changed-bg); } .markdown-body .pl-mi2 { - color: #f6f8fa; - background-color: #005cc5; + color: var(--color-prettylights-syntax-markup-ignored-text); + background-color: var(--color-prettylights-syntax-markup-ignored-bg); } .markdown-body .pl-mdr { - font-weight: 700; - color: #6f42c1; + font-weight: bold; + color: var(--color-prettylights-syntax-meta-diff-range); } .markdown-body .pl-ba { - color: #586069; + color: var(--color-prettylights-syntax-brackethighlighter-angle); } .markdown-body .pl-sg { - color: #959da5; + color: var(--color-prettylights-syntax-sublimelinter-gutter-mark); } .markdown-body .pl-corl { text-decoration: underline; - color: #032f62; + color: var(--color-prettylights-syntax-constant-other-reference-link); } -.markdown-body .mb-0 { - margin-bottom: 0!important; +.markdown-body [data-catalyst] { + display: block; } -.markdown-body .my-2 { - margin-bottom: 8px!important; +.markdown-body g-emoji { + font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; + font-size: 1em; + font-style: normal !important; + font-weight: 400; + line-height: 1; + vertical-align: -0.075em; } -.markdown-body .my-2 { - margin-top: 8px!important; +.markdown-body g-emoji img { + width: 1em; + height: 1em; } -.markdown-body .pl-0 { - padding-left: 0!important; +.markdown-body::before { + display: table; + content: ""; } -.markdown-body .py-0 { - padding-top: 0!important; - padding-bottom: 0!important; +.markdown-body::after { + display: table; + clear: both; + content: ""; } -.markdown-body .pl-1 { - padding-left: 4px!important; +.markdown-body>*:first-child { + margin-top: 0 !important; } -.markdown-body .pl-2 { - padding-left: 8px!important; +.markdown-body>*:last-child { + margin-bottom: 0 !important; } -.markdown-body .py-2 { - padding-top: 8px!important; - padding-bottom: 8px!important; +.markdown-body a:not([href]) { + color: inherit; + text-decoration: none; } -.markdown-body .pl-3 { - padding-left: 16px!important; +.markdown-body .absent { + color: var(--color-danger-fg); } -.markdown-body .pl-4 { - padding-left: 24px!important; +.markdown-body .anchor { + float: left; + padding-right: 4px; + margin-left: -20px; + line-height: 1; } -.markdown-body .pl-5 { - padding-left: 32px!important; +.markdown-body .anchor:focus { + outline: none; } -.markdown-body .pl-6 { - padding-left: 40px!important; +.markdown-body p, +.markdown-body blockquote, +.markdown-body ul, +.markdown-body ol, +.markdown-body dl, +.markdown-body table, +.markdown-body pre, +.markdown-body details { + margin-top: 0; + margin-bottom: 16px; } -.markdown-body .pl-7 { - padding-left: 48px!important; +.markdown-body blockquote>:first-child { + margin-top: 0; } -.markdown-body .pl-8 { - padding-left: 64px!important; +.markdown-body blockquote>:last-child { + margin-bottom: 0; } -.markdown-body .pl-9 { - padding-left: 80px!important; +.markdown-body sup>a::before { + content: "["; } -.markdown-body .pl-10 { - padding-left: 96px!important; +.markdown-body sup>a::after { + content: "]"; } -.markdown-body .pl-11 { - padding-left: 112px!important; +.markdown-body h1 .octicon-link, +.markdown-body h2 .octicon-link, +.markdown-body h3 .octicon-link, +.markdown-body h4 .octicon-link, +.markdown-body h5 .octicon-link, +.markdown-body h6 .octicon-link { + color: var(--color-fg-default); + vertical-align: middle; + visibility: hidden; } -.markdown-body .pl-12 { - padding-left: 128px!important; +.markdown-body h1:hover .anchor, +.markdown-body h2:hover .anchor, +.markdown-body h3:hover .anchor, +.markdown-body h4:hover .anchor, +.markdown-body h5:hover .anchor, +.markdown-body h6:hover .anchor { + text-decoration: none; } -.markdown-body hr { - border-bottom-color: #eee; +.markdown-body h1:hover .anchor .octicon-link, +.markdown-body h2:hover .anchor .octicon-link, +.markdown-body h3:hover .anchor .octicon-link, +.markdown-body h4:hover .anchor .octicon-link, +.markdown-body h5:hover .anchor .octicon-link, +.markdown-body h6:hover .anchor .octicon-link { + visibility: visible; } -.markdown-body kbd { - display: inline-block; - padding: 3px 5px; - font: 11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: 1px solid #d1d5da; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #d1d5da; +.markdown-body h1 tt, +.markdown-body h1 code, +.markdown-body h2 tt, +.markdown-body h2 code, +.markdown-body h3 tt, +.markdown-body h3 code, +.markdown-body h4 tt, +.markdown-body h4 code, +.markdown-body h5 tt, +.markdown-body h5 code, +.markdown-body h6 tt, +.markdown-body h6 code { + padding: 0 .2em; + font-size: inherit; } -.markdown-body:after, -.markdown-body:before { - display: table; - content: ""; +.markdown-body ul.no-list, +.markdown-body ol.no-list { + padding: 0; + list-style-type: none; } -.markdown-body:after { - clear: both; +.markdown-body ol[type="1"] { + list-style-type: decimal; } -.markdown-body>:first-child { - margin-top: 0!important; +.markdown-body ol[type=a] { + list-style-type: lower-alpha; } -.markdown-body>:last-child { - margin-bottom: 0!important; +.markdown-body ol[type=i] { + list-style-type: lower-roman; } -.markdown-body a:not([href]) { - color: inherit; - text-decoration: none; +.markdown-body div>ol:not([type]) { + list-style-type: decimal; } -.markdown-body blockquote, -.markdown-body details, -.markdown-body dl, -.markdown-body ol, -.markdown-body p, -.markdown-body pre, -.markdown-body table, -.markdown-body ul { +.markdown-body ul ul, +.markdown-body ul ol, +.markdown-body ol ol, +.markdown-body ol ul { margin-top: 0; - margin-bottom: 16px; + margin-bottom: 0; } -.markdown-body hr { - height: .25em; - padding: 0; - margin: 24px 0; - background-color: #e1e4e8; - border: 0; +.markdown-body li>p { + margin-top: 16px; } -.markdown-body blockquote { - padding: 0 1em; - color: #6a737d; - border-left: .25em solid #dfe2e5; +.markdown-body li+li { + margin-top: .25em; } -.markdown-body blockquote>:first-child { - margin-top: 0; +.markdown-body dl { + padding: 0; } -.markdown-body blockquote>:last-child { - margin-bottom: 0; +.markdown-body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 600; } -.markdown-body h1, -.markdown-body h2, -.markdown-body h3, -.markdown-body h4, -.markdown-body h5, -.markdown-body h6 { - margin-top: 24px; +.markdown-body dl dd { + padding: 0 16px; margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; } -.markdown-body h1 { - font-size: 2em; +.markdown-body table th { + font-weight: 600; } -.markdown-body h1, -.markdown-body h2 { - padding-bottom: .3em; - border-bottom: 1px solid #eaecef; +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid var(--color-border-default); } -.markdown-body h2 { - font-size: 1.5em; +.markdown-body table tr { + background-color: var(--color-canvas-default); + border-top: 1px solid var(--color-border-muted); } -.markdown-body h3 { - font-size: 1.25em; +.markdown-body table tr:nth-child(2n) { + background-color: var(--color-canvas-subtle); } -.markdown-body h4 { - font-size: 1em; +.markdown-body table img { + background-color: transparent; } -.markdown-body h5 { - font-size: .875em; +.markdown-body img[align=right] { + padding-left: 20px; } -.markdown-body h6 { - font-size: .85em; - color: #6a737d; +.markdown-body img[align=left] { + padding-right: 20px; } -.markdown-body ol, -.markdown-body ul { - padding-left: 2em; +.markdown-body .emoji { + max-width: none; + vertical-align: text-top; + background-color: transparent; } -.markdown-body ol ol, -.markdown-body ol ul, -.markdown-body ul ol, -.markdown-body ul ul { - margin-top: 0; - margin-bottom: 0; +.markdown-body span.frame { + display: block; + overflow: hidden; } -.markdown-body li { - word-wrap: break-all; +.markdown-body span.frame>span { + display: block; + float: left; + width: auto; + padding: 7px; + margin: 13px 0 0; + overflow: hidden; + border: 1px solid var(--color-border-default); } -.markdown-body li>p { - margin-top: 16px; +.markdown-body span.frame span img { + display: block; + float: left; } -.markdown-body li+li { - margin-top: .25em; +.markdown-body span.frame span span { + display: block; + padding: 5px 0 0; + clear: both; + color: var(--color-fg-default); } -.markdown-body dl { - padding: 0; +.markdown-body span.align-center { + display: block; + overflow: hidden; + clear: both; } -.markdown-body dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; +.markdown-body span.align-center>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: center; } -.markdown-body dl dd { - padding: 0 16px; - margin-bottom: 16px; +.markdown-body span.align-center span img { + margin: 0 auto; + text-align: center; } -.markdown-body table { +.markdown-body span.align-right { display: block; - width: 100%; - overflow: auto; -} - -.markdown-body table th { - font-weight: 600; + overflow: hidden; + clear: both; } -.markdown-body table td, -.markdown-body table th { - padding: 6px 13px; - border: 1px solid #dfe2e5; +.markdown-body span.align-right>span { + display: block; + margin: 13px 0 0; + overflow: hidden; + text-align: right; } -.markdown-body table tr { - background-color: #fff; - border-top: 1px solid #c6cbd1; +.markdown-body span.align-right span img { + margin: 0; + text-align: right; } -.markdown-body table tr:nth-child(2n) { - background-color: #f6f8fa; +.markdown-body span.float-left { + display: block; + float: left; + margin-right: 13px; + overflow: hidden; } -.markdown-body img { - max-width: 100%; - box-sizing: initial; - background-color: #fff; +.markdown-body span.float-left span { + margin: 13px 0 0; } -.markdown-body img[align=right] { - padding-left: 20px; +.markdown-body span.float-right { + display: block; + float: right; + margin-left: 13px; + overflow: hidden; } -.markdown-body img[align=left] { - padding-right: 20px; +.markdown-body span.float-right>span { + display: block; + margin: 13px auto 0; + overflow: hidden; + text-align: right; } -.markdown-body code { +.markdown-body code, +.markdown-body tt { padding: .2em .4em; margin: 0; font-size: 85%; - background-color: rgba(27,31,35,.05); - border-radius: 3px; + background-color: var(--color-neutral-muted); + border-radius: 6px; } -.markdown-body pre { - word-wrap: normal; +.markdown-body code br, +.markdown-body tt br { + display: none; +} + +.markdown-body del code { + text-decoration: inherit; +} + +.markdown-body pre code { + font-size: 100%; } .markdown-body pre>code { padding: 0; margin: 0; - font-size: 100%; word-break: normal; white-space: pre; background: transparent; @@ -823,11 +906,12 @@ overflow: auto; font-size: 85%; line-height: 1.45; - background-color: #f6f8fa; - border-radius: 3px; + background-color: var(--color-canvas-subtle); + border-radius: 6px; } -.markdown-body pre code { +.markdown-body pre code, +.markdown-body pre tt { display: inline; max-width: auto; padding: 0; @@ -835,151 +919,75 @@ overflow: visible; line-height: inherit; word-wrap: normal; - background-color: initial; + background-color: transparent; border: 0; } -.markdown-body .commit-tease-sha { - display: inline-block; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; - font-size: 90%; - color: #444d56; -} - -.markdown-body .full-commit .btn-outline:not(:disabled):hover { - color: #005cc5; - border-color: #005cc5; -} - -.markdown-body .blob-wrapper { - overflow-x: auto; - overflow-y: hidden; -} - -.markdown-body .blob-wrapper-embedded { - max-height: 240px; - overflow-y: auto; -} - -.markdown-body .blob-num { - width: 1%; - min-width: 50px; - padding-right: 10px; - padding-left: 10px; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; +.markdown-body .csv-data td, +.markdown-body .csv-data th { + padding: 5px; + overflow: hidden; font-size: 12px; - line-height: 20px; - color: rgba(27,31,35,.3); - text-align: right; + line-height: 1; + text-align: left; white-space: nowrap; - vertical-align: top; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } -.markdown-body .blob-num:hover { - color: rgba(27,31,35,.6); +.markdown-body .csv-data .blob-num { + padding: 10px 8px 9px; + text-align: right; + background: var(--color-canvas-default); + border: 0; } -.markdown-body .blob-num:before { - content: attr(data-line-number); +.markdown-body .csv-data tr { + border-top: 0; } -.markdown-body .blob-code { - position: relative; - padding-right: 10px; - padding-left: 10px; - line-height: 20px; - vertical-align: top; +.markdown-body .csv-data th { + font-weight: 600; + background: var(--color-canvas-subtle); + border-top: 0; } -.markdown-body .blob-code-inner { - overflow: visible; - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; +.markdown-body .footnotes { font-size: 12px; - color: #24292e; - word-wrap: normal; - white-space: pre; -} - -.markdown-body .pl-token.active, -.markdown-body .pl-token:hover { - cursor: pointer; - background: #ffea7f; -} - -.markdown-body .tab-size[data-tab-size="1"] { - -moz-tab-size: 1; - tab-size: 1; -} - -.markdown-body .tab-size[data-tab-size="2"] { - -moz-tab-size: 2; - tab-size: 2; -} - -.markdown-body .tab-size[data-tab-size="3"] { - -moz-tab-size: 3; - tab-size: 3; + color: var(--color-fg-muted); + border-top: 1px solid var(--color-border-default); } -.markdown-body .tab-size[data-tab-size="4"] { - -moz-tab-size: 4; - tab-size: 4; +.markdown-body .footnotes ol { + padding-left: 16px; } -.markdown-body .tab-size[data-tab-size="5"] { - -moz-tab-size: 5; - tab-size: 5; -} - -.markdown-body .tab-size[data-tab-size="6"] { - -moz-tab-size: 6; - tab-size: 6; -} - -.markdown-body .tab-size[data-tab-size="7"] { - -moz-tab-size: 7; - tab-size: 7; -} - -.markdown-body .tab-size[data-tab-size="8"] { - -moz-tab-size: 8; - tab-size: 8; -} - -.markdown-body .tab-size[data-tab-size="9"] { - -moz-tab-size: 9; - tab-size: 9; -} - -.markdown-body .tab-size[data-tab-size="10"] { - -moz-tab-size: 10; - tab-size: 10; +.markdown-body .footnotes li { + position: relative; } -.markdown-body .tab-size[data-tab-size="11"] { - -moz-tab-size: 11; - tab-size: 11; +.markdown-body .footnotes li:target::before { + position: absolute; + top: -8px; + right: -8px; + bottom: -8px; + left: -24px; + pointer-events: none; + content: ""; + border: 2px solid var(--color-accent-emphasis); + border-radius: 6px; } -.markdown-body .tab-size[data-tab-size="12"] { - -moz-tab-size: 12; - tab-size: 12; +.markdown-body .footnotes li:target { + color: var(--color-fg-default); } -.markdown-body .task-list-item { - list-style-type: none; +.markdown-body .footnotes .data-footnote-backref g-emoji { + font-family: monospace; } -.markdown-body .task-list-item+.task-list-item { - margin-top: 3px; +.markdown-body [hidden] { + display: none !important; } -.markdown-body .task-list-item input { - margin: 0 .2em .25em -1.6em; - vertical-align: middle; +.markdown-body ::-webkit-calendar-picker-indicator { + filter: invert(50%); } diff --git a/index.html b/index.html index ec9d64d..8b54af2 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,7 @@ GitHub Markdown CSS demo +

    Unicorns

    From 7f38dcb9054bc5d860fac65291f5c98fef47932c Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Sat, 19 Sep 2026 02:06:40 +0700 Subject: [PATCH 131/131] Meta tweaks --- .github/security.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/security.md b/.github/security.md index 5358dc5..92e453c 100644 --- a/.github/security.md +++ b/.github/security.md @@ -1,3 +1,5 @@ # Security Policy -To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. +To report a security vulnerability, please submit it [here](https://github.com/sindresorhus/github-markdown-css/security/advisories/new). + +No AI slop will be accepted.