From 82fdb2a8bc08b1672115d550c25a76cd921afa75 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 21 Oct 2017 20:30:28 -0700 Subject: [PATCH] Improve code highlighting --- frontend/components/Editor/components/Code.js | 8 +- frontend/index.js | 3 +- frontend/styles/hljs-github-gist.css | 71 ----------- frontend/styles/prism-tomorrow.css | 120 ------------------ frontend/styles/prism.css | 118 +++++++++++++++++ 5 files changed, 124 insertions(+), 196 deletions(-) delete mode 100644 frontend/styles/hljs-github-gist.css delete mode 100644 frontend/styles/prism-tomorrow.css create mode 100644 frontend/styles/prism.css diff --git a/frontend/components/Editor/components/Code.js b/frontend/components/Editor/components/Code.js index d6e2d538..f370392d 100644 --- a/frontend/components/Editor/components/Code.js +++ b/frontend/components/Editor/components/Code.js @@ -6,11 +6,13 @@ import { color } from 'styles/constants'; import type { Props } from '../types'; export default function Code({ children, node, readOnly, attributes }: Props) { + const language = node.data.get('language') || 'javascript'; + return ( {readOnly && } -
-        
+      
+        
           {children}
         
       
@@ -20,7 +22,7 @@ export default function Code({ children, node, readOnly, attributes }: Props) { const Pre = styled.pre` padding: .5em 1em; - background: ${color.smoke}; + background: ${color.smokeLight}; border-radius: 4px; border: 1px solid ${color.smokeDark}; diff --git a/frontend/index.js b/frontend/index.js index 12e49fe7..3c5d593a 100644 --- a/frontend/index.js +++ b/frontend/index.js @@ -19,8 +19,7 @@ import 'normalize.css/normalize.css'; import 'styles/base.css'; import 'styles/fonts.css'; import 'styles/transitions.css'; -import 'styles/prism-tomorrow.css'; -import 'styles/hljs-github-gist.css'; +import 'styles/prism.css'; import Home from 'scenes/Home'; import Dashboard from 'scenes/Dashboard'; diff --git a/frontend/styles/hljs-github-gist.css b/frontend/styles/hljs-github-gist.css deleted file mode 100644 index 488daf1b..00000000 --- a/frontend/styles/hljs-github-gist.css +++ /dev/null @@ -1,71 +0,0 @@ -/** - * GitHub Gist Theme - * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro - */ - -.hljs { - display: block; - background: white; - padding: 0.5em; - color: #333333; - overflow-x: auto; -} - -.hljs-comment, -.hljs-meta { - color: #969896; -} - -.hljs-string, -.hljs-variable, -.hljs-template-variable, -.hljs-strong, -.hljs-emphasis, -.hljs-quote { - color: #df5000; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-type { - color: #a71d5d; -} - -.hljs-literal, -.hljs-symbol, -.hljs-bullet, -.hljs-attribute { - color: #0086b3; -} - -.hljs-section, -.hljs-name { - color: #63a35c; -} - -.hljs-tag { - color: #333333; -} - -.hljs-title, -.hljs-attr, -.hljs-selector-id, -.hljs-selector-class, -.hljs-selector-attr, -.hljs-selector-pseudo { - color: #795da3; -} - -.hljs-addition { - color: #55a532; - background-color: #eaffea; -} - -.hljs-deletion { - color: #bd2c00; - background-color: #ffecec; -} - -.hljs-link { - text-decoration: underline; -} diff --git a/frontend/styles/prism-tomorrow.css b/frontend/styles/prism-tomorrow.css deleted file mode 100644 index 5a67be55..00000000 --- a/frontend/styles/prism-tomorrow.css +++ /dev/null @@ -1,120 +0,0 @@ -/** - * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML - * Based on https://github.com/chriskempson/tomorrow-theme - * @author Rose Pritchard - */ - -code[class*='language-'], -pre[class*='language-'] { - color: #ccc; - background: none; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -/* Code blocks */ -pre[class*='language-'] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; -} - -:not(pre) > code[class*='language-'], -pre[class*='language-'] { - background: #2d2d2d; -} - -/* Inline code */ -:not(pre) > code[class*='language-'] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} - -.token.comment, -.token.block-comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #999; -} - -.token.punctuation { - color: #ccc; -} - -.token.tag, -.token.attr-name, -.token.namespace, -.token.deleted { - color: #e2777a; -} - -.token.function-name { - color: #6196cc; -} - -.token.boolean, -.token.number, -.token.function { - color: #f08d49; -} - -.token.property, -.token.class-name, -.token.constant, -.token.symbol { - color: #f8c555; -} - -.token.selector, -.token.important, -.token.atrule, -.token.keyword, -.token.builtin { - color: #cc99cd; -} - -.token.string, -.token.char, -.token.attr-value, -.token.regex, -.token.variable { - color: #7ec699; -} - -.token.operator, -.token.entity, -.token.url { - color: #67cdcc; -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.token.inserted { - color: green; -} diff --git a/frontend/styles/prism.css b/frontend/styles/prism.css new file mode 100644 index 00000000..3655ef33 --- /dev/null +++ b/frontend/styles/prism.css @@ -0,0 +1,118 @@ +/** + * GHColors theme by Avi Aryan (http://aviaryan.in) + * Inspired by Github syntax coloring + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #393A34; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + font-size: 13px; + line-height: 1.4em; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + background: #b3d4fc; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border: 1px solid #dddddd; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .2em; + padding-top: 1px; padding-bottom: 1px; + background: #f8f8f8; + border: 1px solid #dddddd; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #999988; font-style: italic; +} + +.token.namespace { + opacity: .7; +} + +.token.string, +.token.attr-value { + color: #e3116c; +} +.token.punctuation, +.token.operator { + color: #393A34; /* no highlight */ +} + +.token.entity, +.token.url, +.token.symbol, +.token.number, +.token.boolean, +.token.variable, +.token.constant, +.token.property, +.token.regex, +.token.inserted { + color: #36acaa; +} + +.token.atrule, +.token.keyword, +.token.attr-name, +.language-autohotkey .token.selector { + color: #00a4db; +} + +.token.function, +.token.deleted, +.language-autohotkey .token.tag { + color: #9a050f; +} + +.token.tag, +.token.selector, +.language-autohotkey .token.keyword { + color: #00009f; +} + +.token.important, +.token.function, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +}