From d4688af39c7b75b605dd3386f95e996b908983e7 Mon Sep 17 00:00:00 2001 From: Jared Szechy Date: Tue, 23 Apr 2013 16:30:50 -0400 Subject: [PATCH] Add monokai highlighting theme --- app/assets/images/monokai.png | Bin 0 -> 6651 bytes app/assets/stylesheets/application.scss | 1 + app/assets/stylesheets/highlight/monokai.scss | 86 ++++++++++++++++++++++++++ app/helpers/application_helper.rb | 1 + app/views/profiles/design.html.haml | 5 ++ 5 files changed, 93 insertions(+) create mode 100644 app/assets/images/monokai.png create mode 100644 app/assets/stylesheets/highlight/monokai.scss diff --git a/app/assets/images/monokai.png b/app/assets/images/monokai.png new file mode 100644 index 0000000000000000000000000000000000000000..9477941778e53699c7ef98cd5e149bd5f6ee3734 GIT binary patch literal 6651 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 z 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 aswF(Q;|PXQbx{^<06HjrWR<#Y=>Gs4;%2G< literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 893cb2196..85e43ed0d 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -41,6 +41,7 @@ @import "highlight/white.scss"; @import "highlight/dark.scss"; @import "highlight/solarized_dark.scss"; +@import "highlight/monokai.scss"; /** * UI themes: diff --git a/app/assets/stylesheets/highlight/monokai.scss b/app/assets/stylesheets/highlight/monokai.scss new file mode 100644 index 000000000..c196cc1d6 --- /dev/null +++ b/app/assets/stylesheets/highlight/monokai.scss @@ -0,0 +1,86 @@ +$monokai-fg: #f8f8f2; +$monokai-comment: #75715e; +$monokai-pink: #f92672; +$monokai-blue: #66d9ef; +$monokai-green: #a6e22e; +$monokai-gold: #e6db74; +$monokai-dark: #3b3a32; +$monokai-purple: #ae81ff; + +.monokai .highlight { + pre { + background-color: #272822; + color: $monokai-fg; + } + + .hll { background-color: #ffffcc } + .c { color: $monokai-comment } /* Comment */ + .err { color: $monokai-fg } /* Error */ + .g { color: $monokai-fg } /* Generic */ + .k { color: $monokai-pink } /* Keyword */ + .l { color: $monokai-fg } /* Literal */ + .n { color: $monokai-blue } /* Name */ + .o { color: $monokai-fg } /* Operator */ + .x { color: $monokai-fg } /* Other */ + .p { color: $monokai-fg } /* Punctuation */ + .cm { color: $monokai-comment } /* Comment.Multiline */ + .cp { color: $monokai-comment } /* Comment.Preproc */ + .c1 { color: $monokai-comment } /* Comment.Single */ + .cs { color: $monokai-comment } /* Comment.Special */ + .gd { color: #8b0807 } /* Generic.Deleted */ + .ge { color: $monokai-fg; text-decoration: underline } /* Generic.Emph */ + .gr { color: $monokai-fg } /* Generic.Error */ + .gh { color: $monokai-fg; font-weight: bold } /* Generic.Heading */ + .gi { color: $monokai-fg; font-weight: bold; background-color: #46830c } /* Generic.Inserted */ + .go { color: $monokai-dark; background-color: #31322c } /* Generic.Output */ + .gp { color: $monokai-fg } /* Generic.Prompt */ + .gs { color: $monokai-fg } /* Generic.Strong */ + .gu { color: $monokai-fg; font-weight: bold } /* Generic.Subheading */ + .gt { color: #f8f8f0; background-color: $monokai-pink } /* Generic.Traceback */ + .kc { color: $monokai-purple } /* Keyword.Constant */ + .kd { color: $monokai-pink } /* Keyword.Declaration */ + .kn { color: $monokai-pink } /* Keyword.Namespace */ + .kp { color: $monokai-pink } /* Keyword.Pseudo */ + .kr { color: $monokai-pink } /* Keyword.Reserved */ + .kt { color: $monokai-fg } /* Keyword.Type */ + .ld { color: $monokai-fg } /* Literal.Date */ + .m { color: $monokai-purple } /* Literal.Number */ + .s { color: $monokai-gold } /* Literal.String */ + .na { color: $monokai-purple } /* Name.Attribute */ + .nb { color: $monokai-blue } /* Name.Builtin */ + .nc { color: $monokai-fg } /* Name.Class */ + .no { color: $monokai-fg } /* Name.Constant */ + .nd { color: $monokai-fg } /* Name.Decorator */ + .ni { color: $monokai-fg } /* Name.Entity */ + .ne { color: $monokai-fg } /* Name.Exception */ + .nf { color: $monokai-green } /* Name.Function */ + .nl { color: $monokai-gold } /* Name.Label */ + .nn { color: $monokai-fg } /* Name.Namespace */ + .nx { color: $monokai-fg } /* Name.Other */ + .nt { color: $monokai-pink } /* Name.Tag */ + .nv { color: $monokai-blue; font-style: italic } /* Name.Variable */ + .py { color: $monokai-fg } /* Name.Property */ + .ow { color: $monokai-pink } /* Operator.Word */ + .w { color: $monokai-fg } /* Text.Whitespace */ + .mf { color: $monokai-purple } /* Literal.Number.Float */ + .mh { color: $monokai-purple } /* Literal.Number.Hex */ + .mi { color: $monokai-purple } /* Literal.Number.Integer */ + .mo { color: $monokai-purple } /* Literal.Number.Oct */ + .sb { color: $monokai-gold } /* Literal.String.Backtick */ + .sc { color: $monokai-gold } /* Literal.String.Char */ + .sd { color: $monokai-gold } /* Literal.String.Doc */ + .s2 { color: $monokai-gold } /* Literal.String.Double */ + .se { color: $monokai-gold } /* Literal.String.Escape */ + .sh { color: $monokai-gold } /* Literal.String.Heredoc */ + .si { color: $monokai-gold } /* Literal.String.Interpol */ + .sx { color: $monokai-gold } /* Literal.String.Other */ + .sr { color: $monokai-gold } /* Literal.String.Regex */ + .s1 { color: $monokai-gold } /* Literal.String.Single */ + .ss { color: $monokai-gold } /* Literal.String.Symbol */ + .bp { color: $monokai-fg } /* Name.Builtin.Pseudo */ + .vc { color: $monokai-blue; font-style: italic } /* Name.Variable.Class */ + .vg { color: $monokai-blue; font-style: italic } /* Name.Variable.Global */ + .vi { color: $monokai-blue; font-style: italic } /* Name.Variable.Instance */ + .il { color: $monokai-purple } /* Literal.Number.Integer.Long */ +} + diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 6b3f0053f..d5e94204d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -132,6 +132,7 @@ module ApplicationHelper when 1 then 'white' when 2 then 'black' when 3 then 'solarized-dark' + when 4 then 'monokai' else 'white' end diff --git a/app/views/profiles/design.html.haml b/app/views/profiles/design.html.haml index 77068dabb..878297fe4 100644 --- a/app/views/profiles/design.html.haml +++ b/app/views/profiles/design.html.haml @@ -55,3 +55,8 @@ = image_tag "solarized_dark.png" = f.radio_button :color_scheme_id, 3 Solarized Dark + = label_tag do + .prev + = image_tag "monokai.png" + = f.radio_button :color_scheme_id, 4 + Monokai -- 2.11.0