diff --git a/QLMarkdown.xcodeproj/project.pbxproj b/QLMarkdown.xcodeproj/project.pbxproj index 0714b2a..e6a3e24 100644 --- a/QLMarkdown.xcodeproj/project.pbxproj +++ b/QLMarkdown.xcodeproj/project.pbxproj @@ -11,10 +11,11 @@ 0A80BFA70E21A2ED00C8BF14 /* markdown.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A80BFA60E21A2ED00C8BF14 /* markdown.m */; }; 0A80BFB20E21A90900C8BF14 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A80BFB10E21A90900C8BF14 /* Cocoa.framework */; }; 0A80BFCC0E21B61A00C8BF14 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A80BFCB0E21B61A00C8BF14 /* WebKit.framework */; }; + 0C8824D11E8FE4F600ED18A5 /* github.css in Resources */ = {isa = PBXBuildFile; fileRef = 0C8824D01E8FE4F600ED18A5 /* github.css */; }; 2C05A19C06CAA52B00D84F6F /* GeneratePreviewForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C05A19B06CAA52B00D84F6F /* GeneratePreviewForURL.m */; }; 4446D0050F41899C00BAC3F4 /* discount-wrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 4446CFF20F41899C00BAC3F4 /* discount-wrapper.c */; }; 4446D0060F41899C00BAC3F4 /* discount-wrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4446CFF30F41899C00BAC3F4 /* discount-wrapper.h */; }; - 4446D0240F41AD4700BAC3F4 /* styles.css in Resources */ = {isa = PBXBuildFile; fileRef = 4446D0230F41AD4700BAC3F4 /* styles.css */; }; + 4446D0240F41AD4700BAC3F4 /* old_github.css in Resources */ = {isa = PBXBuildFile; fileRef = 4446D0230F41AD4700BAC3F4 /* old_github.css */; }; 61E3BCFB0870B4F2002186A0 /* GenerateThumbnailForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 61E3BCFA0870B4F2002186A0 /* GenerateThumbnailForURL.m */; }; 8D576312048677EA00EA77CD /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FB77B6FE84183AC02AAC07 /* main.c */; settings = {ATTRIBUTES = (); }; }; 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */; }; @@ -50,10 +51,11 @@ 0A80BFB10E21A90900C8BF14 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 0A80BFCB0E21B61A00C8BF14 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = ""; }; 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; + 0C8824D01E8FE4F600ED18A5 /* github.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = github.css; sourceTree = ""; }; 2C05A19B06CAA52B00D84F6F /* GeneratePreviewForURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratePreviewForURL.m; sourceTree = ""; }; 4446CFF20F41899C00BAC3F4 /* discount-wrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "discount-wrapper.c"; sourceTree = ""; }; 4446CFF30F41899C00BAC3F4 /* discount-wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "discount-wrapper.h"; sourceTree = ""; }; - 4446D0230F41AD4700BAC3F4 /* styles.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = styles.css; sourceTree = ""; }; + 4446D0230F41AD4700BAC3F4 /* old_github.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = old_github.css; sourceTree = ""; }; 61E3BCFA0870B4F2002186A0 /* GenerateThumbnailForURL.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GenerateThumbnailForURL.m; sourceTree = ""; }; 8D576316048677EA00EA77CD /* QLMarkdown.qlgenerator */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QLMarkdown.qlgenerator; sourceTree = BUILT_PRODUCTS_DIR; }; 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; @@ -129,7 +131,8 @@ children = ( 8D576317048677EA00EA77CD /* Info.plist */, 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - 4446D0230F41AD4700BAC3F4 /* styles.css */, + 4446D0230F41AD4700BAC3F4 /* old_github.css */, + 0C8824D01E8FE4F600ED18A5 /* github.css */, ); name = Resources; sourceTree = ""; @@ -258,8 +261,9 @@ buildActionMask = 2147483647; files = ( 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - 4446D0240F41AD4700BAC3F4 /* styles.css in Resources */, + 4446D0240F41AD4700BAC3F4 /* old_github.css in Resources */, AB40554314D008B3009A583A /* blocktags in Resources */, + 0C8824D11E8FE4F600ED18A5 /* github.css in Resources */, AB40554614D008B3009A583A /* README.markdown in Resources */, AB40554714D008B3009A583A /* update.sh in Resources */, AB40554A14D00A6A009A583A /* update-discount.sh in Resources */, diff --git a/github.css b/github.css new file mode 100644 index 0000000..e56eb20 --- /dev/null +++ b/github.css @@ -0,0 +1,478 @@ +/* Extracted from github.com */ + +body { + -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"; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; + padding: 3rem 3rem 8rem 3rem; +} + +body a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +body a:active, +body a:hover { + outline-width: 0; +} + +body strong { + font-weight: inherit; +} + +body strong { + font-weight: bolder; +} + +body h1 { + font-size: 2em; + margin: 0.67em 0; +} + +body img { + border-style: none; +} + +body svg:not(:root) { + overflow: hidden; +} + +body code, +body kbd, +body pre { + font-family: monospace, monospace; + font-size: 1em; +} + +body hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +body input { + font: inherit; + margin: 0; +} + +body input { + overflow: visible; +} + +body [type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +body * { + box-sizing: border-box; +} + +body input { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +body a { + color: #4078c0; + text-decoration: none; +} + +body a:hover, +body a:active { + text-decoration: underline; +} + +body strong { + font-weight: 600; +} + +body hr { + height: 0; + margin: 15px 0; + overflow: hidden; + background: transparent; + border: 0; + border-bottom: 1px solid #ddd; +} + +body hr::before { + display: table; + content: ""; +} + +body hr::after { + display: table; + clear: both; + content: ""; +} + +body table { + border-spacing: 0; + border-collapse: collapse; +} + +body td, +body th { + padding: 0; +} + +body h1, +body h2, +body h3, +body h4, +body h5, +body h6 { + margin-top: 0; + margin-bottom: 0; +} + +body h1 { + font-size: 32px; + font-weight: 600; +} + +body h2 { + font-size: 24px; + font-weight: 600; +} + +body h3 { + font-size: 20px; + font-weight: 600; +} + +body h4 { + font-size: 16px; + font-weight: 600; +} + +body h5 { + font-size: 14px; + font-weight: 600; +} + +body h6 { + font-size: 12px; + font-weight: 600; +} + +body p { + margin-top: 0; + margin-bottom: 10px; +} + +body blockquote { + margin: 0; +} + +body ul, +body ol { + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} + +body ol ol, +body ul ol { + list-style-type: lower-roman; +} + +body ul ul ol, +body ul ol ol, +body ol ul ol, +body ol ol ol { + list-style-type: lower-alpha; +} + +body dd { + margin-left: 0; +} + +body code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; +} + +body pre { + margin-top: 0; + margin-bottom: 0; + font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; +} + +body input { + -webkit-font-feature-settings: "liga" 0; + font-feature-settings: "liga" 0; +} + +body::before { + display: table; + content: ""; +} + +body::after { + display: table; + clear: both; + content: ""; +} + +body>*:first-child { + margin-top: 0 !important; +} + +body>*:last-child { + margin-bottom: 0 !important; +} + +body a:not([href]) { + color: inherit; + text-decoration: none; +} + +body p, +body blockquote, +body ul, +body ol, +body dl, +body table, +body pre { + margin-top: 0; + margin-bottom: 16px; +} + +body hr { + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #e7e7e7; + border: 0; +} + +body blockquote { + padding: 0 1em; + color: #777; + border-left: 0.25em solid #ddd; +} + +body blockquote>:first-child { + margin-top: 0; +} + +body blockquote>:last-child { + margin-bottom: 0; +} + +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; +} + +body h1, +body h2, +body h3, +body h4, +body h5, +body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +body h1 { + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid #eee; +} + +body h2 { + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid #eee; +} + +body h3 { + font-size: 1.25em; +} + +body h4 { + font-size: 1em; +} + +body h5 { + font-size: 0.875em; +} + +body h6 { + font-size: 0.85em; + color: #777; +} + +body ul, +body ol { + padding-left: 2em; +} + +body ul ul, +body ul ol, +body ol ol, +body ol ul { + margin-top: 0; + margin-bottom: 0; +} + +body li>p { + margin-top: 16px; +} + +body li+li { + margin-top: 0.25em; +} + +body dl { + padding: 0; +} + +body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: bold; +} + +body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +body table { + display: block; + width: 100%; + overflow: auto; +} + +body table th { + font-weight: bold; +} + +body table th, +body table td { + padding: 6px 13px; + border: 1px solid #ddd; +} + +body table tr { + background-color: #fff; + border-top: 1px solid #ccc; +} + +body table tr:nth-child(2n) { + background-color: #f8f8f8; +} + +body img { + max-width: 100%; + box-sizing: content-box; + background-color: #fff; +} + +body code { + padding: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; + margin: 0; + font-size: 85%; + background-color: rgba(0,0,0,0.04); + border-radius: 3px; +} + +body code::before, +body code::after { + letter-spacing: -0.2em; + content: "\00a0"; +} + +body pre { + word-wrap: normal; +} + +body pre>code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +body .highlight { + margin-bottom: 16px; +} + +body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +body .highlight pre, +body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f7f7f7; + border-radius: 3px; +} + +body pre code { + display: inline; + max-width: auto; + padding: 0; + margin: 0; + overflow: visible; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +body pre code::before, +body pre code::after { + content: normal; +} + +body kbd { + display: inline-block; + padding: 3px 5px; + font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; + 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; +} + +body hr { + border-bottom-color: #eee; +} diff --git a/markdown.m b/markdown.m index a025c5f..e8049b2 100644 --- a/markdown.m +++ b/markdown.m @@ -4,35 +4,44 @@ NSData* renderMarkdown(NSURL* url) { @autoreleasepool { - NSString *styles = [[NSString alloc] initWithContentsOfFile:[[NSBundle bundleWithIdentifier: @"com.fiatdev.QLMarkdown"] - pathForResource:@"styles" ofType:@"css"] - encoding:NSUTF8StringEncoding - error:nil]; + NSString *domainName = @"com.fiatdev.QLMarkdown"; + + // command line switch theme + NSDictionary *defaults = [[NSUserDefaults standardUserDefaults] persistentDomainForName:domainName]; + NSString *styleName = [defaults valueForKey:@"theme"]; + + if (styleName == nil || [[styleName lowercaseString] isEqual:@"default"]) { + styleName = @"github"; + } + NSString *styles = [[NSString alloc] initWithContentsOfFile:[[NSBundle bundleWithIdentifier:domainName] + pathForResource:styleName ofType:@"css"] + encoding:NSUTF8StringEncoding + error:nil]; - NSStringEncoding usedEncoding = 0; - NSError *e = nil; + NSStringEncoding usedEncoding = 0; + NSError *e = nil; + + NSString *source = [[NSString alloc] initWithContentsOfURL:url usedEncoding:&usedEncoding error:&e]; + + if (usedEncoding == 0) { + NSLog(@"Wasn't able to determine encoding for file “%@”", [url path]); + } - NSString *source = [[NSString alloc] initWithContentsOfURL:url usedEncoding:&usedEncoding error:&e]; - - if (usedEncoding == 0) { - NSLog(@"Wasn't able to determine encoding for file “%@”", [url path]); - } - - char *output = convert_markdown_to_string([source UTF8String]); - NSString *html = [NSString stringWithFormat:@"\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "%@" - "\n" - "", - styles, url, [NSString stringWithUTF8String:output]]; - - free(output); - return [html dataUsingEncoding:NSUTF8StringEncoding]; + char *output = convert_markdown_to_string([source UTF8String]); + NSString *html = [NSString stringWithFormat:@"\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "%@" + "\n" + "", + styles, url, [NSString stringWithUTF8String:output]]; + + free(output); + return [html dataUsingEncoding:NSUTF8StringEncoding]; } -} \ No newline at end of file +} diff --git a/old_github.css b/old_github.css new file mode 100644 index 0000000..f613d18 --- /dev/null +++ b/old_github.css @@ -0,0 +1,238 @@ +/* Extracted and interpreted from adcstyle.css and frameset_styles.css */ + +/* body */ +body { + margin: 20px 40px; + background-color: #fff; + color: #000; + font: 13px -apple-system, "Helvetica Neue", "Myriad Pro", "Lucida Grande", Lucida, Verdana, sans-serif; + overflow: auto; + word-wrap: break-word; + -webkit-hyphens: auto; +} + +/* links */ +a:link { + color: #00f; + text-decoration: none; +} + +a:visited { + color: #00a; + text-decoration: none; +} + +a:hover { + color: #f60; + text-decoration: underline; +} + +a:active { + color: #f60; + text-decoration: underline; +} + + +/* html tags */ +/* Work around IE/Win code size bug - courtesy Jesper, waffle.wootest.net */ + +* html code{ + font-size: 101%; +} + +* html pre { + font-size: 101%; +} + +/* code */ + +pre, code { + font-size: 11px; font-family: monaco, courier, consolas, monospace; +} + +pre { + margin-top: 5px; + margin-bottom: 10px; + border: 1px solid #c7cfd5; + background: #f1f5f9; + margin: 20px 0; + padding: 8px; + text-align: left; + overflow: auto; + word-wrap: normal; +} + +hr { + color: #919699; + size: 1; + width: 100%; + noshade: "noshade"; +} + +/* headers */ + + +h1, h2, h3, h4, h5, h6 { + font-family: -apple-system, "Helvetica Neue", "Myriad Pro", "Lucida Grande", Lucida, Verdana, sans-serif; + font-weight: bold; +} + +h1 { + margin-top: 1em; + margin-bottom: 25px; + color: #000; + font-weight: bold; + font-size: 30px; +} + +h2 { + margin-top: 2.5em; + font-size: 24px; + color: #000; + padding-bottom: 2px; + border-bottom: 1px solid #919699; +} + +h3 { + margin-top: 2em; + margin-bottom: .5em; + font-size: 17px; + color: #000; +} + +h4 { + margin-top: 2em; + margin-bottom: .5em; + font-size: 15px; + color: #000; +} + +h5 { + margin-top: 20px; + margin-bottom: .5em; + padding: 0; + font-size: 13px; + color: #000; +} + +h6 { + margin-top: 20px; + margin-bottom: .5em; + padding: 0; + font-size: 11px; + color: #000; +} + +p { + margin-top: 0px; + margin-bottom: 10px; +} + +/* lists */ + +ul { + list-style: square outside; + margin: 0 0 0 30px; + padding: 0 0 12px 6px; +} + +li { + margin-top: 7px; +} + +ol { + list-style-type: decimal; + list-style-position: outside; + margin: 0 0 0 30px; + padding: 0 0 12px 6px; +} + +ol ol { + list-style-type: lower-alpha; + list-style-position: outside; + margin: 7px 0 0 30px; + padding: 0 0 0 10px; +} + +ul ul { + margin-left: 40px; + padding: 0 0 0 6px; +} + +li > p { display: inline } +li > p + p { display: block } +li > a + p { display: block } + + +/* table */ + +table { + border-top: 1px solid #919699; + border-left: 1px solid #919699; + border-spacing: 0; +} + +table th { + padding: 4px 8px 4px 8px; + background: #E2E2E2; + font-size: 12px; + border-bottom: 1px solid #919699; + border-right: 1px solid #919699; +} + +table th p { + font-weight: bold; + margin-bottom: 0px; +} + +table td { + padding: 8px; + font-size: 12px; + vertical-align: top; + border-bottom: 1px solid #919699; + border-right: 1px solid #919699; +} + +table td p { + margin-bottom: 0px; +} + +table td p + p { + margin-top: 5px; +} + +table td p + p + p { + margin-top: 5px; +} + +/* forms */ + +form { + margin: 0; +} + +button { + margin: 3px 0 10px 0; +} + +input { + vertical-align: middle; + padding: 0; + margin: 0 0 5px 0; +} + +select { + vertical-align: middle; + padding: 0; + margin: 0 0 3px 0; +} + +textarea { + margin: 0 0 10px 0; + width: 100%; +} + +img { + max-width: 100%; + height: auto; +} diff --git a/sample.xhtml b/sample.xhtml index 654f518..d13712b 100644 --- a/sample.xhtml +++ b/sample.xhtml @@ -7,15 +7,15 @@ - - + Sample MultiMarkdown Document - + @@ -155,7 +155,7 @@ http://creativecommons.org/licenses/by-sa/3.0/" />

Since we want the ampersand entry to be sorted with the a’s, and not with symbols, we put in the optional sort key ampersand to control sorting.

-
[^glossary]: glossary: Glossary 
+
[^glossary]: glossary: Glossary
     A section at the end ...
 
 [^amp]: glossary: & (ampersand)
@@ -205,7 +205,7 @@ http://creativecommons.org/licenses/by-sa/3.0/" />
 
 
  • I guess it depends on what kind of parties you go to… ↩

  • -
  • glossary: Glossary +

  • glossary: Glossary A section at the end … ↩

  • glossary: & (ampersand) @@ -224,4 +224,4 @@ A punctuation mark …  - \ No newline at end of file + diff --git a/styles.css b/styles.css deleted file mode 100644 index 62e4cdd..0000000 --- a/styles.css +++ /dev/null @@ -1,682 +0,0 @@ -@font-face { - font-family: octicons-link; - src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); -} - -body { - -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"; - font-size: 16px; - line-height: 1.5; - word-wrap: break-word; - padding: 3rem 3rem 8rem 3rem; -} - -body .pl-c { - color: #969896; -} - -body .pl-c1, -body .pl-s .pl-v { - color: #0086b3; -} - -body .pl-e, -body .pl-en { - color: #795da3; -} - -body .pl-smi, -body .pl-s .pl-s1 { - color: #333; -} - -body .pl-ent { - color: #63a35c; -} - -body .pl-k { - color: #a71d5d; -} - -body .pl-s, -body .pl-pds, -body .pl-s .pl-pse .pl-s1, -body .pl-sr, -body .pl-sr .pl-cce, -body .pl-sr .pl-sre, -body .pl-sr .pl-sra { - color: #183691; -} - -body .pl-v { - color: #ed6a43; -} - -body .pl-id { - color: #b52a1d; -} - -body .pl-ii { - color: #f8f8f8; - background-color: #b52a1d; -} - -body .pl-sr .pl-cce { - font-weight: bold; - color: #63a35c; -} - -body .pl-ml { - color: #693a17; -} - -body .pl-mh, -body .pl-mh .pl-en, -body .pl-ms { - font-weight: bold; - color: #1d3e81; -} - -body .pl-mq { - color: #008080; -} - -body .pl-mi { - font-style: italic; - color: #333; -} - -body .pl-mb { - font-weight: bold; - color: #333; -} - -body .pl-md { - color: #bd2c00; - background-color: #ffecec; -} - -body .pl-mi1 { - color: #55a532; - background-color: #eaffea; -} - -body .pl-mdr { - font-weight: bold; - color: #795da3; -} - -body .pl-mo { - color: #1d3e81; -} - -body .octicon { - display: inline-block; - vertical-align: text-top; - fill: currentColor; -} - -body a { - background-color: transparent; - -webkit-text-decoration-skip: objects; -} - -body a:active, -body a:hover { - outline-width: 0; -} - -body strong { - font-weight: inherit; -} - -body strong { - font-weight: bolder; -} - -body h1 { - font-size: 2em; - margin: 0.67em 0; -} - -body img { - border-style: none; -} - -body svg:not(:root) { - overflow: hidden; -} - -body code, -body kbd, -body pre { - font-family: monospace, monospace; - font-size: 1em; -} - -body hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} - -body input { - font: inherit; - margin: 0; -} - -body input { - overflow: visible; -} - -body [type="checkbox"] { - box-sizing: border-box; - padding: 0; -} - -body * { - box-sizing: border-box; -} - -body input { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -body a { - color: #4078c0; - text-decoration: none; -} - -body a:hover, -body a:active { - text-decoration: underline; -} - -body strong { - font-weight: 600; -} - -body hr { - height: 0; - margin: 15px 0; - overflow: hidden; - background: transparent; - border: 0; - border-bottom: 1px solid #ddd; -} - -body hr::before { - display: table; - content: ""; -} - -body hr::after { - display: table; - clear: both; - content: ""; -} - -body table { - border-spacing: 0; - border-collapse: collapse; -} - -body td, -body th { - padding: 0; -} - -body h1, -body h2, -body h3, -body h4, -body h5, -body h6 { - margin-top: 0; - margin-bottom: 0; -} - -body h1 { - font-size: 32px; - font-weight: 600; -} - -body h2 { - font-size: 24px; - font-weight: 600; -} - -body h3 { - font-size: 20px; - font-weight: 600; -} - -body h4 { - font-size: 16px; - font-weight: 600; -} - -body h5 { - font-size: 14px; - font-weight: 600; -} - -body h6 { - font-size: 12px; - font-weight: 600; -} - -body p { - margin-top: 0; - margin-bottom: 10px; -} - -body blockquote { - margin: 0; -} - -body ul, -body ol { - padding-left: 0; - margin-top: 0; - margin-bottom: 0; -} - -body ol ol, -body ul ol { - list-style-type: lower-roman; -} - -body ul ul ol, -body ul ol ol, -body ol ul ol, -body ol ol ol { - list-style-type: lower-alpha; -} - -body dd { - margin-left: 0; -} - -body code { - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 12px; -} - -body pre { - margin-top: 0; - margin-bottom: 0; - font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; -} - -body .octicon { - vertical-align: text-bottom; -} - -body input { - -webkit-font-feature-settings: "liga" 0; - font-feature-settings: "liga" 0; -} - -body::before { - display: table; - content: ""; -} - -body::after { - display: table; - clear: both; - content: ""; -} - -body>*:first-child { - margin-top: 0 !important; -} - -body>*:last-child { - margin-bottom: 0 !important; -} - -body a:not([href]) { - color: inherit; - text-decoration: none; -} - -body .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; -} - -body .anchor:focus { - outline: none; -} - -body p, -body blockquote, -body ul, -body ol, -body dl, -body table, -body pre { - margin-top: 0; - margin-bottom: 16px; -} - -body hr { - height: 0.25em; - padding: 0; - margin: 24px 0; - background-color: #e7e7e7; - border: 0; -} - -body blockquote { - padding: 0 1em; - color: #777; - border-left: 0.25em solid #ddd; -} - -body blockquote>:first-child { - margin-top: 0; -} - -body blockquote>:last-child { - margin-bottom: 0; -} - -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; -} - -body h1, -body h2, -body h3, -body h4, -body h5, -body h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; -} - -body h1 .octicon-link, -body h2 .octicon-link, -body h3 .octicon-link, -body h4 .octicon-link, -body h5 .octicon-link, -body h6 .octicon-link { - color: #000; - vertical-align: middle; - visibility: hidden; -} - -body h1:hover .anchor, -body h2:hover .anchor, -body h3:hover .anchor, -body h4:hover .anchor, -body h5:hover .anchor, -body h6:hover .anchor { - text-decoration: none; -} - -body h1:hover .anchor .octicon-link, -body h2:hover .anchor .octicon-link, -body h3:hover .anchor .octicon-link, -body h4:hover .anchor .octicon-link, -body h5:hover .anchor .octicon-link, -body h6:hover .anchor .octicon-link { - visibility: visible; -} - -body h1 { - padding-bottom: 0.3em; - font-size: 2em; - border-bottom: 1px solid #eee; -} - -body h2 { - padding-bottom: 0.3em; - font-size: 1.5em; - border-bottom: 1px solid #eee; -} - -body h3 { - font-size: 1.25em; -} - -body h4 { - font-size: 1em; -} - -body h5 { - font-size: 0.875em; -} - -body h6 { - font-size: 0.85em; - color: #777; -} - -body ul, -body ol { - padding-left: 2em; -} - -body ul ul, -body ul ol, -body ol ol, -body ol ul { - margin-top: 0; - margin-bottom: 0; -} - -body li>p { - margin-top: 16px; -} - -body li+li { - margin-top: 0.25em; -} - -body dl { - padding: 0; -} - -body dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: bold; -} - -body dl dd { - padding: 0 16px; - margin-bottom: 16px; -} - -body table { - display: block; - width: 100%; - overflow: auto; -} - -body table th { - font-weight: bold; -} - -body table th, -body table td { - padding: 6px 13px; - border: 1px solid #ddd; -} - -body table tr { - background-color: #fff; - border-top: 1px solid #ccc; -} - -body table tr:nth-child(2n) { - background-color: #f8f8f8; -} - -body img { - max-width: 100%; - box-sizing: content-box; - background-color: #fff; -} - -body code { - padding: 0; - padding-top: 0.2em; - padding-bottom: 0.2em; - margin: 0; - font-size: 85%; - background-color: rgba(0,0,0,0.04); - border-radius: 3px; -} - -body code::before, -body code::after { - letter-spacing: -0.2em; - content: "\00a0"; -} - -body pre { - word-wrap: normal; -} - -body pre>code { - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; -} - -body .highlight { - margin-bottom: 16px; -} - -body .highlight pre { - margin-bottom: 0; - word-break: normal; -} - -body .highlight pre, -body pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; - background-color: #f7f7f7; - border-radius: 3px; -} - -body pre code { - display: inline; - max-width: auto; - padding: 0; - margin: 0; - overflow: visible; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; -} - -body pre code::before, -body pre code::after { - content: normal; -} - -body .pl-0 { - padding-left: 0 !important; -} - -body .pl-1 { - padding-left: 3px !important; -} - -body .pl-2 { - padding-left: 6px !important; -} - -body .pl-3 { - padding-left: 12px !important; -} - -body .pl-4 { - padding-left: 24px !important; -} - -body .pl-5 { - padding-left: 36px !important; -} - -body .pl-6 { - padding-left: 48px !important; -} - -body .full-commit .btn-outline:not(:disabled):hover { - color: #4078c0; - border: 1px solid #4078c0; -} - -body kbd { - display: inline-block; - padding: 3px 5px; - font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; - 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; -} - -body :checked+.radio-label { - position: relative; - z-index: 1; - border-color: #4078c0; -} - -body .task-list-item { - list-style-type: none; -} - -body .task-list-item+.task-list-item { - margin-top: 3px; -} - -body .task-list-item input { - margin: 0 0.2em 0.25em -1.6em; - vertical-align: middle; -} - -body hr { - border-bottom-color: #eee; -}