diff --git a/_assets/stylesheets/includes/syntax.css.sass b/_assets/stylesheets/includes/syntax.css.sass deleted file mode 100644 index c756a4b..0000000 --- a/_assets/stylesheets/includes/syntax.css.sass +++ /dev/null @@ -1,160 +0,0 @@ -.highlight - background: #ffffff - .c - color: #999988 - font-style: italic - .err - color: #a61717 - background-color: #e3d2d2 - .k, .o - font-weight: bold - .cm - color: #999988 - font-style: italic - .cp - color: #999999 - font-weight: bold - .c1 - color: #999988 - font-style: italic - .cs - color: #999999 - font-weight: bold - font-style: italic - .gd - color: #000000 - background-color: #ffdddd - .x - color: #000000 - background-color: #ffaaaa - .ge - font-style: italic - .gr - color: #aa0000 - .gh - color: #999999 - .gi - color: #000000 - background-color: #ddffdd - .x - color: #000000 - background-color: #aaffaa - .go - color: #888888 - .gp - color: #555555 - .gs - font-weight: bold - .gu - color: #aaaaaa - .gt - color: #aa0000 - .kc, .kd, .kp, .kr - font-weight: bold - .kt - color: #445588 - font-weight: bold - .m - color: #009999 - .s - color: #dd1144 - .na - color: teal - .nb - color: #0086b3 - .nc - color: #445588 - font-weight: bold - .no - color: teal - .ni - color: purple - .ne, .nf - color: #990000 - font-weight: bold - .nn - color: #555555 - .nt - color: navy - .nv - color: teal - .ow - font-weight: bold - .w - color: #bbbbbb - .mf, .mh, .mi, .mo - color: #009999 - .sb, .sc, .sd, .s2, .se, .sh, .si, .sx - color: #dd1144 - .sr - color: #009926 - .s1 - color: #dd1144 - .ss - color: #990073 - .bp - color: #999999 - .vc, .vg, .vi - color: teal - .il - color: #009999 - -/* Comment -/* Error -/* Keyword -/* Operator -/* Comment.Multiline -/* Comment.Preproc -/* Comment.Single -/* Comment.Special -/* Generic.Deleted -/* Generic.Deleted.Specific -/* Generic.Emph -/* Generic.Error -/* Generic.Heading -/* Generic.Inserted -/* Generic.Inserted.Specific -/* Generic.Output -/* Generic.Prompt -/* Generic.Strong -/* Generic.Subheading -/* Generic.Traceback -/* Keyword.Constant -/* Keyword.Declaration -/* Keyword.Pseudo -/* Keyword.Reserved -/* Keyword.Type -/* Literal.Number -/* Literal.String -/* Name.Attribute -/* Name.Builtin -/* Name.Class -/* Name.Constant -/* Name.Entity -/* Name.Exception -/* Name.Function -/* Name.Namespace -/* Name.Tag -/* Name.Variable -/* Operator.Word -/* Text.Whitespace -/* Literal.Number.Float -/* Literal.Number.Hex -/* Literal.Number.Integer -/* Literal.Number.Oct -/* Literal.String.Backtick -/* Literal.String.Char -/* Literal.String.Doc -/* Literal.String.Double -/* Literal.String.Escape -/* Literal.String.Heredoc -/* Literal.String.Interpol -/* Literal.String.Other -/* Literal.String.Regex -/* Literal.String.Single -/* Literal.String.Symbol -/* Name.Builtin.Pseudo -/* Name.Variable.Class -/* Name.Variable.Global -/* Name.Variable.Instance -/* Literal.Number.Integer.Long diff --git a/_assets/stylesheets/includes/typography.css.sass b/_assets/stylesheets/includes/typography.css.sass index 9bb7578..e02e42a 100644 --- a/_assets/stylesheets/includes/typography.css.sass +++ b/_assets/stylesheets/includes/typography.css.sass @@ -16,10 +16,10 @@ $header-subtitle-font-family: $heading-font-family !default *Though I'd like a smidgeon of credit, so just leave this bit in here. K? /*Pick Your Fonts -body, h4, h5, h6, .run-in, dt +body, h5, h6, .run-in, dt font-family: $serif -h1, h2, h3, .pullquote, .sidenote h1, aside h1, .pullquote, .drop-cap, cite +h1, h2, h3, h4, .pullquote, .sidenote h1, aside h1, .pullquote, .drop-cap, cite font-family: $heading-font-family /*Nav Fonts @@ -54,13 +54,16 @@ h3 font-size: 1.125em h4 - font-weight: bold font-size: 1em -h1, h2, h3, h4, h5, h6 +h1, h2, h3 font-weight: 500 text-rendering: optimizelegibility +h4, h5, h6 + font-weight: 700 + text-rendering: optimizelegibility + article h1 font-size: 1.5em @@ -127,10 +130,25 @@ cite:before pre,code,tt font-family: $mono - font-weight: 300 + font-weight: 500 -pre - margin: 1.5em +code + border: 1px solid #ddd + border-radius: 0.25em + display: inline-block + font-size: 0.75em + line-height: 1.5em + padding: 0 0.3em + +.highlight + margin: 1.5em 0 + overflow: auto + padding: 0.5em 0.75em + border-radius: 0.25em + pre + margin: 0 + code + border: none dl margin: 1.75em 0 1.75em diff --git a/_assets/stylesheets/lib/solarized-dark.css.scss b/_assets/stylesheets/lib/solarized-dark.css.scss new file mode 100644 index 0000000..8aa3694 --- /dev/null +++ b/_assets/stylesheets/lib/solarized-dark.css.scss @@ -0,0 +1,117 @@ +/* Solarized Dark + +For use with Jekyll and Pygments + +http://ethanschoonover.com/solarized + +SOLARIZED HEX ROLE +--------- -------- ------------------------------------------ +base03 #002b36 background +base01 #586e75 comments / secondary content +base1 #93a1a1 body text / default code / primary content +orange #cb4b16 constants +red #dc322f regex, special keywords +blue #268bd2 reserved keywords +cyan #2aa198 strings, numbers +green #859900 operators, other keywords +*/ + +$base03: #002b36 !default; //darkest blue +$base02: #073642 !default; //dark blue +$base01: #586e75 !default; //darkest gray +$base00: #657b83 !default; //dark gray +$base0: #839496 !default; //medium gray +$base1: #93a1a1 !default; //medium light gray +$base2: #eee8d5 !default; //cream +$base3: #fdf6e3 !default; //white + +$solar-yellow: #b58900 !default; +$solar-orange: #cb4b16 !default; +$solar-red: #dc322f !default; +$solar-magenta: #d33682 !default; +$solar-violet: #6c71c4 !default; +$solar-blue: #268bd2 !default; +$solar-cyan: #2aa198 !default; +$solar-green: #859900 !default; + +$solarized: dark !default; + +@if $solarized == light { + $_base03: $base03; $_base02: $base02; $_base01: $base01; $_base00: $base00; $_base0: $base0; $_base1: $base1; $_base2: $base2; $_base3: $base3; + $base03: $_base3; $base02: $_base2; $base01: $_base1; $base00: $_base0; $base0: $_base00; $base1: $_base01; $base2: $_base02; $base3: $_base03; +} + +/* non highlighted code colors */ +$pre-bg: $base03 !default; +$pre-border: darken($base02, 5) !default; +$pre-color: $base1 !default; + +.highlight { background-color: $base03; color: $base1 } +.highlight .c { color: $base01 } /* Comment */ +.highlight .err { color: $base1 } /* Error */ +.highlight .g { color: $base1 } /* Generic */ +.highlight .k { color: $solar-green } /* Keyword */ +.highlight .l { color: $base1 } /* Literal */ +.highlight .n { color: $base1 } /* Name */ +.highlight .o { color: $solar-green } /* Operator */ +.highlight .x { color: $solar-orange } /* Other */ +.highlight .p { color: $base1 } /* Punctuation */ +.highlight .cm { color: $base01 } /* Comment.Multiline */ +.highlight .cp { color: $solar-green } /* Comment.Preproc */ +.highlight .c1 { color: $base01 } /* Comment.Single */ +.highlight .cs { color: $solar-green } /* Comment.Special */ +.highlight .gd { color: $solar-cyan } /* Generic.Deleted */ +.highlight .ge { color: $base1; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: $solar-red } /* Generic.Error */ +.highlight .gh { color: $solar-orange } /* Generic.Heading */ +.highlight .gi { color: $solar-green } /* Generic.Inserted */ +.highlight .go { color: $base1 } /* Generic.Output */ +.highlight .gp { color: $base1 } /* Generic.Prompt */ +.highlight .gs { color: $base1; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: $solar-orange } /* Generic.Subheading */ +.highlight .gt { color: $base1 } /* Generic.Traceback */ +.highlight .kc { color: $solar-orange } /* Keyword.Constant */ +.highlight .kd { color: $solar-blue } /* Keyword.Declaration */ +.highlight .kn { color: $solar-green } /* Keyword.Namespace */ +.highlight .kp { color: $solar-green } /* Keyword.Pseudo */ +.highlight .kr { color: $solar-blue } /* Keyword.Reserved */ +.highlight .kt { color: $solar-red } /* Keyword.Type */ +.highlight .ld { color: $base1 } /* Literal.Date */ +.highlight .m { color: $solar-cyan } /* Literal.Number */ +.highlight .s { color: $solar-cyan } /* Literal.String */ +.highlight .na { color: $base1 } /* Name.Attribute */ +.highlight .nb { color: $solar-yellow } /* Name.Builtin */ +.highlight .nc { color: $solar-blue } /* Name.Class */ +.highlight .no { color: $solar-orange } /* Name.Constant */ +.highlight .nd { color: $solar-blue } /* Name.Decorator */ +.highlight .ni { color: $solar-orange } /* Name.Entity */ +.highlight .ne { color: $solar-orange } /* Name.Exception */ +.highlight .nf { color: $solar-blue } /* Name.Function */ +.highlight .nl { color: $base1 } /* Name.Label */ +.highlight .nn { color: $base1 } /* Name.Namespace */ +.highlight .nx { color: $base1 } /* Name.Other */ +.highlight .py { color: $base1 } /* Name.Property */ +.highlight .nt { color: $solar-blue } /* Name.Tag */ +.highlight .nv { color: $solar-blue } /* Name.Variable */ +.highlight .ow { color: $solar-green } /* Operator.Word */ +.highlight .w { color: $base1 } /* Text.Whitespace */ +.highlight .mf { color: $solar-cyan } /* Literal.Number.Float */ +.highlight .mh { color: $solar-cyan } /* Literal.Number.Hex */ +.highlight .mi { color: $solar-cyan } /* Literal.Number.Integer */ +.highlight .mo { color: $solar-cyan } /* Literal.Number.Oct */ +.highlight .sb { color: $base01 } /* Literal.String.Backtick */ +.highlight .sc { color: $solar-cyan } /* Literal.String.Char */ +.highlight .sd { color: $base1 } /* Literal.String.Doc */ +.highlight .s2 { color: $solar-cyan } /* Literal.String.Double */ +.highlight .se { color: $solar-orange } /* Literal.String.Escape */ +.highlight .sh { color: $base1 } /* Literal.String.Heredoc */ +.highlight .si { color: $solar-cyan } /* Literal.String.Interpol */ +.highlight .sx { color: $solar-cyan } /* Literal.String.Other */ +.highlight .sr { color: $solar-red } /* Literal.String.Regex */ +.highlight .s1 { color: $solar-cyan } /* Literal.String.Single */ +.highlight .ss { color: $solar-cyan } /* Literal.String.Symbol */ +.highlight .bp { color: $solar-blue } /* Name.Builtin.Pseudo */ +.highlight .vc { color: $solar-blue } /* Name.Variable.Class */ +.highlight .vg { color: $solar-blue } /* Name.Variable.Global */ +.highlight .vi { color: $solar-blue } /* Name.Variable.Instance */ +.highlight .il { color: $solar-cyan } /* Literal.Number.Integer.Long */ diff --git a/_assets/stylesheets/lib/solarized.css.sass b/_assets/stylesheets/lib/solarized.css.sass deleted file mode 100644 index 390b7cf..0000000 --- a/_assets/stylesheets/lib/solarized.css.sass +++ /dev/null @@ -1,57 +0,0 @@ -$base03: #002b36 !default - -//darkest blue -$base02: #073642 !default - -//dark blue -$base01: #586e75 !default - -//darkest gray -$base00: #657b83 !default - -//dark gray -$base0: #839496 !default - -//medium gray -$base1: #93a1a1 !default - -//medium light gray -$base2: #eee8d5 !default - -//cream -$base3: #fdf6e3 !default - -//white -$solar-yellow: #b58900 !default -$solar-orange: #cb4b16 !default -$solar-red: #dc322f !default -$solar-magenta: #d33682 !default -$solar-violet: #6c71c4 !default -$solar-blue: #268bd2 !default -$solar-cyan: #2aa198 !default -$solar-green: #859900 !default - -$solarized: dark !default - -@if $solarized == light - $_base03: $base03 - $_base02: $base02 - $_base01: $base01 - $_base00: $base00 - $_base0: $base0 - $_base1: $base1 - $_base2: $base2 - $_base3: $base3 - $base03: $_base3 - $base02: $_base2 - $base01: $_base1 - $base00: $_base0 - $base0: $_base00 - $base1: $_base01 - $base2: $_base02 - $base3: $_base03 - -/* non highlighted code colors -$pre-bg: $base03 !default -$pre-border: darken($base02, 5) !default -$pre-color: $base1 !default diff --git a/_assets/stylesheets/styles.css.sass b/_assets/stylesheets/styles.css.sass index 992a792..6b06c1a 100644 --- a/_assets/stylesheets/styles.css.sass +++ b/_assets/stylesheets/styles.css.sass @@ -1,14 +1,13 @@ @import 'bourbon' -@import 'includes/syntax.css.sass' @import 'includes/main.css.sass' @import 'includes/colors.css.sass' @import 'includes/typography.css.sass' @import 'includes/icons.css.sass' @import 'includes/layout.css.sass' @import 'lib/solarized.css.sass' -@import 'includes/syntax.css.sass' @import 'includes/styles.css.sass' +@import 'lib/solarized-dark.css.scss' @import 'parts/post.css.sass' @import 'parts/archive.css.sass' diff --git a/_config.yml b/_config.yml index adc36bd..a7b52bd 100644 --- a/_config.yml +++ b/_config.yml @@ -1,8 +1,7 @@ url: http://danbarber.me title: Dan Barber author: Dan Barber -markdown: kramdown -highlighter: pygments +markdown: KramdownPygments simple_search: https://duckduckgo.com/ diff --git a/_plugins/kramdown_pygments.rb b/_plugins/kramdown_pygments.rb new file mode 100644 index 0000000..74f279a --- /dev/null +++ b/_plugins/kramdown_pygments.rb @@ -0,0 +1,92 @@ +# We define the an additional option for the kramdown parser to look for +module Kramdown + module Options + define(:kramdown_default_lang, Symbol, nil, <#{code}\n" + end + + def convert_codespan(el, indent) + attr = el.attr.dup + lang = extract_code_language!(attr) || @options[:kramdown_default_lang] + code = pygmentize(el.value, lang) + if lang + attr['class'] = "highlight" + if attr.has_key?('class') + attr['class'] += " language-#{lang}" + else + attr['class'] = "language-#{lang}" + end + end + "#{code}" + end + + def pygmentize(code, lang) + if lang + Pygments.highlight(code, + :lexer => lang, + :options => { :startinline => true, :encoding => 'utf-8', :nowrap => true }) + else + escape_html(code) + end + end + end + end +end + +# This class is the actual custom Jekyll converter. +class Jekyll::Converters::Markdown::KramdownPygments + + def initialize(config) + require 'kramdown' + @config = config + rescue LoadError + STDERR.puts 'You are missing a library required for Markdown. Please run:' + STDERR.puts ' $ [sudo] gem install kramdown' + raise FatalException.new("Missing dependency: kramdown") + end + + def convert(content) + html = Kramdown::Document.new(content, { + :auto_ids => @config['kramdown']['auto_ids'], + :footnote_nr => @config['kramdown']['footnote_nr'], + :entity_output => @config['kramdown']['entity_output'], + :toc_levels => @config['kramdown']['toc_levels'], + :smart_quotes => @config['kramdown']['smart_quotes'], + :kramdown_default_lang => @config['kramdown']['default_lang'], + :input => @config['kramdown']['input'] + }).to_pygments_html + return html; + end +end