diff --git a/package.json b/package.json
index 8472c50f6..fdfc85c1a 100644
--- a/package.json
+++ b/package.json
@@ -75,6 +75,7 @@
"go-to-line": "0.1.0",
"grammar-selector": "0.1.0",
"image-view": "0.1.0",
+ "markdown-preview": "0.1.0",
"spell-check": "0.1.0",
"symbols-view": "0.1.0",
"terminal": "0.3.0",
diff --git a/src/packages/markdown-preview/keymaps/markdown-preview.cson b/src/packages/markdown-preview/keymaps/markdown-preview.cson
deleted file mode 100644
index af52d2f0c..000000000
--- a/src/packages/markdown-preview/keymaps/markdown-preview.cson
+++ /dev/null
@@ -1,2 +0,0 @@
-'.editor':
- 'ctrl-m': 'markdown-preview:show'
diff --git a/src/packages/markdown-preview/lib/markdown-preview-view.coffee b/src/packages/markdown-preview/lib/markdown-preview-view.coffee
deleted file mode 100644
index d8d1b214c..000000000
--- a/src/packages/markdown-preview/lib/markdown-preview-view.coffee
+++ /dev/null
@@ -1,106 +0,0 @@
-$ = require 'jquery'
-_ = require 'underscore'
-ScrollView = require 'scroll-view'
-{$$$} = require 'space-pen'
-roaster = require 'roaster'
-Editor = require 'editor'
-
-fenceNameToExtension =
- 'bash': 'sh'
- 'coffee': 'coffee'
- 'coffeescript': 'coffee'
- 'coffee-script': 'coffee'
- 'css': 'css'
- 'go': 'go'
- 'java': 'java'
- 'javascript': 'js'
- 'js': 'js'
- 'mustache': 'mustache'
- 'python': 'py'
- 'rb': 'rb'
- 'ruby': 'rb'
- 'sh': 'sh'
- 'toml': 'toml'
- 'xml': 'xml'
-
-module.exports =
-class MarkdownPreviewView extends ScrollView
- registerDeserializer(this)
-
- @deserialize: ({path}) ->
- new MarkdownPreviewView(project.bufferForPath(path))
-
- @content: ->
- @div class: 'markdown-preview', tabindex: -1
-
- initialize: (@buffer) ->
- super
-
- @renderMarkdown()
- @subscribe syntax, 'grammar-added grammar-updated', _.debounce((=> @renderMarkdown()), 250)
- @on 'core:move-up', => @scrollUp()
- @on 'core:move-down', => @scrollDown()
-
- afterAttach: (onDom) ->
- @subscribe @buffer, 'saved reloaded', =>
- @renderMarkdown()
- pane = @getPane()
- pane.showItem(this) if pane? and pane isnt rootView.getActivePane()
-
- getPane: ->
- @parent('.item-views').parent('.pane').view()
-
- serialize: ->
- deserializer: 'MarkdownPreviewView'
- path: @buffer.getPath()
-
- getTitle: ->
- "#{@buffer.getBaseName()} Preview"
-
- getUri: ->
- "markdown-preview:#{@buffer.getPath()}"
-
- getPath: ->
- @buffer.getPath()
-
- setErrorHtml: (result) ->
- failureMessage = result?.message
-
- @html $$$ ->
- @h2 'Previewing Markdown Failed'
- @h3 failureMessage if failureMessage?
-
- setLoading: ->
- @html($$$ -> @div class: 'markdown-spinner', 'Loading Markdown...')
-
- tokenizeCodeBlocks: (html) =>
- html = $(html)
- preList = $(html.filter("pre"))
-
- for preElement in preList.toArray()
- $(preElement).addClass("editor-colors")
- codeBlock = $(preElement.firstChild)
-
- # go to next block unless this one has a class
- continue unless className = codeBlock.attr('class')
-
- fenceName = className.replace(/^lang-/, '')
- # go to next block unless the class name matches `lang`
- continue unless extension = fenceNameToExtension[fenceName]
- text = codeBlock.text()
-
- grammar = syntax.selectGrammar("foo.#{extension}", text)
-
- codeBlock.empty()
- for tokens in grammar.tokenizeLines(text)
- codeBlock.append(Editor.buildLineHtml({ tokens, text }))
-
- html
-
- renderMarkdown: ->
- @setLoading()
- roaster @buffer.getText(), (err, html) =>
- if err
- @setErrorHtml(err)
- else
- @html(@tokenizeCodeBlocks(html))
diff --git a/src/packages/markdown-preview/lib/markdown-preview.coffee b/src/packages/markdown-preview/lib/markdown-preview.coffee
deleted file mode 100644
index 90bb96f86..000000000
--- a/src/packages/markdown-preview/lib/markdown-preview.coffee
+++ /dev/null
@@ -1,33 +0,0 @@
-EditSession = require 'edit-session'
-MarkdownPreviewView = require './markdown-preview-view'
-
-module.exports =
- activate: ->
- rootView.command 'markdown-preview:show', '.editor', => @show()
-
- show: ->
- activePane = rootView.getActivePane()
- editSession = activePane.activeItem
-
- isEditSession = editSession instanceof EditSession
- hasMarkdownGrammar = editSession.getGrammar().scopeName == "source.gfm"
- if not isEditSession or not hasMarkdownGrammar
- console.warn("Can not render markdown for '#{editSession.getUri() ? 'untitled'}'")
- return
-
- {previewPane, previewItem} = @getExistingPreview(editSession)
- if previewItem?
- previewPane.showItem(previewItem)
- previewItem.renderMarkdown()
- else if nextPane = activePane.getNextPane()
- nextPane.showItem(new MarkdownPreviewView(editSession.buffer))
- else
- activePane.splitRight(new MarkdownPreviewView(editSession.buffer))
- activePane.focus()
-
- getExistingPreview: (editSession) ->
- uri = "markdown-preview:#{editSession.getPath()}"
- for previewPane in rootView.getPanes()
- previewItem = previewPane.itemForUri(uri)
- return {previewPane, previewItem} if previewItem?
- {}
diff --git a/src/packages/markdown-preview/package.cson b/src/packages/markdown-preview/package.cson
deleted file mode 100644
index 41f49a5d3..000000000
--- a/src/packages/markdown-preview/package.cson
+++ /dev/null
@@ -1,5 +0,0 @@
-'main': './lib/markdown-preview'
-'description': 'Open a rendered version of the Markdown in the current editor with `ctrl-m`.'
-'activationEvents':
- 'markdown-preview:show': '.editor'
-'deferredDeserializers': ['MarkdownPreviewView']
diff --git a/src/packages/markdown-preview/spec/markdown-preview-spec.coffee b/src/packages/markdown-preview/spec/markdown-preview-spec.coffee
deleted file mode 100644
index fd40bc02a..000000000
--- a/src/packages/markdown-preview/spec/markdown-preview-spec.coffee
+++ /dev/null
@@ -1,135 +0,0 @@
-RootView = require 'root-view'
-MarkdownPreviewView = require 'markdown-preview/lib/markdown-preview-view'
-{$$} = require 'space-pen'
-
-describe "Markdown preview package", ->
- beforeEach ->
- atom.activatePackage('gfm')
- project.setPath(project.resolve('markdown'))
- window.rootView = new RootView
- atom.activatePackage("markdown-preview", immediate: true)
- spyOn(MarkdownPreviewView.prototype, 'renderMarkdown')
-
- describe "markdown-preview:show", ->
- beforeEach ->
- rootView.open("file.markdown")
-
- describe "when the active item is an edit session", ->
- beforeEach ->
- rootView.attachToDom()
-
- describe "when the edit session does not use the GFM grammar", ->
- it "does not show a markdown preview", ->
- spyOn(console, 'warn')
- rootView.open()
- expect(rootView.getPanes()).toHaveLength(1)
- rootView.getActiveView().trigger 'markdown-preview:show'
- expect(rootView.getPanes()).toHaveLength(1)
- expect(console.warn).toHaveBeenCalled()
-
- describe "when a preview item has not been created for the edit session's uri", ->
- describe "when there is more than one pane", ->
- it "shows a markdown preview for the current buffer on the next pane", ->
- rootView.getActivePane().splitRight()
- [pane1, pane2] = rootView.getPanes()
- pane1.focus()
-
- rootView.getActiveView().trigger 'markdown-preview:show'
-
- preview = pane2.activeItem
- expect(preview).toBeInstanceOf(MarkdownPreviewView)
- expect(preview.buffer).toBe rootView.getActivePaneItem().buffer
- expect(pane1).toMatchSelector(':has(:focus)')
-
- describe "when there is only one pane", ->
- it "splits the current pane to the right with a markdown preview for the current buffer", ->
- expect(rootView.getPanes()).toHaveLength 1
-
- rootView.getActiveView().trigger 'markdown-preview:show'
-
- expect(rootView.getPanes()).toHaveLength 2
- [pane1, pane2] = rootView.getPanes()
-
- expect(pane2.items).toHaveLength 1
- preview = pane2.activeItem
- expect(preview).toBeInstanceOf(MarkdownPreviewView)
- expect(preview.buffer).toBe rootView.getActivePaneItem().buffer
- expect(pane1).toMatchSelector(':has(:focus)')
-
- describe "when a buffer is saved", ->
- it "does not show the markdown preview", ->
- [pane] = rootView.getPanes()
- pane.focus()
-
- MarkdownPreviewView.prototype.renderMarkdown.reset()
- pane.activeItem.buffer.trigger 'saved'
- expect(MarkdownPreviewView.prototype.renderMarkdown).not.toHaveBeenCalled()
-
- describe "when a buffer is reloaded", ->
- it "does not show the markdown preview", ->
- [pane] = rootView.getPanes()
- pane.focus()
-
- MarkdownPreviewView.prototype.renderMarkdown.reset()
- pane.activeItem.buffer.trigger 'reloaded'
- expect(MarkdownPreviewView.prototype.renderMarkdown).not.toHaveBeenCalled()
-
- describe "when a preview item has already been created for the edit session's uri", ->
- it "updates and shows the existing preview item if it isn't displayed", ->
- rootView.getActiveView().trigger 'markdown-preview:show'
- [pane1, pane2] = rootView.getPanes()
- pane2.focus()
- expect(rootView.getActivePane()).toBe pane2
- preview = pane2.activeItem
- expect(preview).toBeInstanceOf(MarkdownPreviewView)
- rootView.open()
- expect(pane2.activeItem).not.toBe preview
- pane1.focus()
-
- preview.renderMarkdown.reset()
- rootView.getActiveView().trigger 'markdown-preview:show'
- expect(preview.renderMarkdown).toHaveBeenCalled()
- expect(rootView.getPanes()).toHaveLength 2
- expect(pane2.getItems()).toHaveLength 2
- expect(pane2.activeItem).toBe preview
- expect(pane1).toMatchSelector(':has(:focus)')
-
- describe "when a buffer is saved", ->
- describe "when the preview is in the same pane", ->
- it "updates the preview but does not make it active", ->
- rootView.getActiveView().trigger 'markdown-preview:show'
- [pane1, pane2] = rootView.getPanes()
- pane2.moveItemToPane(pane2.activeItem, pane1, 1)
- pane1.showItemAtIndex(1)
- pane1.showItemAtIndex(0)
- preview = pane1.itemAtIndex(1)
-
- preview.renderMarkdown.reset()
- pane1.activeItem.buffer.trigger 'saved'
- expect(preview.renderMarkdown).toHaveBeenCalled()
- expect(pane1.activeItem).not.toBe preview
-
- describe "when the preview is not in the same pane", ->
- it "updates the preview and makes it active", ->
- rootView.getActiveView().trigger 'markdown-preview:show'
- [pane1, pane2] = rootView.getPanes()
- preview = pane2.activeItem
- pane2.showItem($$ -> @div id: 'view', tabindex: -1, 'View')
- expect(pane2.activeItem).not.toBe preview
- pane1.focus()
-
- preview.renderMarkdown.reset()
- pane1.activeItem.buffer.trigger 'saved'
- expect(preview.renderMarkdown).toHaveBeenCalled()
- expect(pane2.activeItem).toBe preview
-
- describe "when a new grammar is loaded", ->
- it "reloads the view to colorize any fenced code blocks matching the newly loaded grammar", ->
- rootView.getActiveView().trigger 'markdown-preview:show'
- [pane1, pane2] = rootView.getPanes()
- preview = pane2.activeItem
- preview.renderMarkdown.reset()
- jasmine.unspy(window, 'setTimeout')
-
- atom.activatePackage('javascript-tmbundle', sync: true)
- waitsFor -> preview.renderMarkdown.callCount > 0
diff --git a/src/packages/markdown-preview/spec/markdown-preview-view-spec.coffee b/src/packages/markdown-preview/spec/markdown-preview-view-spec.coffee
deleted file mode 100644
index 1927df6a8..000000000
--- a/src/packages/markdown-preview/spec/markdown-preview-view-spec.coffee
+++ /dev/null
@@ -1,44 +0,0 @@
-MarkdownPreviewView = require 'markdown-preview/lib/markdown-preview-view'
-$ = require 'jquery'
-{$$$} = require 'space-pen'
-
-describe "MarkdownPreviewView", ->
- [buffer, preview] = []
-
- beforeEach ->
- project.setPath(project.resolve('markdown'))
- buffer = project.bufferForPath('file.markdown')
- atom.activatePackage('ruby-tmbundle', sync: true)
- preview = new MarkdownPreviewView(buffer)
-
- afterEach ->
- buffer.release()
-
- describe "on construction", ->
-
- it "shows a loading spinner and renders the markdown", ->
- preview.setLoading()
- expect(preview.find('.markdown-spinner')).toExist()
- expect(preview.buffer.getText()).toBe buffer.getText()
-
- preview.renderMarkdown()
- expect(preview.find(".emoji")).toExist()
-
- it "shows an error message on error", ->
- preview.setErrorHtml("Not a real file")
- expect(preview.text()).toContain "Failed"
-
- describe "serialization", ->
- it "reassociates with the same buffer when deserialized", ->
- newPreview = deserialize(preview.serialize())
- expect(newPreview.buffer).toBe buffer
-
- describe "code block tokenization", ->
- describe "when the code block's fence name has a matching grammar", ->
- it "tokenizes the code block with the grammar", ->
- expect(preview.find("pre span.entity.name.function.ruby")).toExist()
-
- describe "when the code block's fence name doesn't have a matching grammar", ->
- it "does not tokenize the code block", ->
- expect(preview.find("pre code:not([class])").children().length).toBe 0
- expect(preview.find("pre code.lang-kombucha").children().length).toBe 0
diff --git a/src/packages/markdown-preview/stylesheets/markdown-preview.less b/src/packages/markdown-preview/stylesheets/markdown-preview.less
deleted file mode 100644
index c89f277d1..000000000
--- a/src/packages/markdown-preview/stylesheets/markdown-preview.less
+++ /dev/null
@@ -1,411 +0,0 @@
-.markdown-preview {
- font-family: "Helvetica Neue", Helvetica, sans-serif;
- font-size: 14px;
- line-height: 1.6;
- background-color: #fff;
- overflow: scroll;
- box-sizing: border-box;
- padding: 20px;
-
- :not(.editor-colors) > code {
- color: #333;
- }
-}
-
-.markdown-spinner {
- margin: auto;
- background-image: url(images/octocat-spinner-128.gif);
- background-repeat: no-repeat;
- background-size: 64px;
- background-position: top center;
- padding-top: 70px;
- text-align: center;
-}
-
-// This is styling for generic markdownized text. Anything you put in a
-// container with .markdown-preview on it should render generally well. It also
-// includes some GitHub Flavored Markdown specific styling (like @mentions)
-.markdown-preview {
- pre,
- pre div.editor,
- code,
- tt {
- font-size: 12px;
- font-family: Consolas, "Liberation Mono", Courier, monospace;
- }
-
- a {
- color: #4183c4;
- }
-
- ol > li {
- list-style-type: decimal;
- }
-
- ul > li {
- list-style-type: disc;
- }
-
- & > *:first-child {
- margin-top: 0 !important;
- }
-
- & > *:last-child {
- margin-bottom: 0 !important;
- }
-
- // Link Colors
- a.absent {
- color: #c00;
- }
-
- a.anchor {
- display: block;
- padding-left: 30px;
- margin-left: -30px;
- cursor: pointer;
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- }
-
- // Headings
- h1, h2, h3, h4, h5, h6 {
- margin: 20px 0 10px;
- padding: 0;
- font-weight: bold;
- -webkit-font-smoothing: antialiased;
- cursor: text;
- position: relative;
-
- .octicon-link {
- display: none;
- color: #000;
- }
-
- &:hover a.anchor {
- text-decoration: none;
- line-height: 1;
- padding-left: 0;
- margin-left: -22px;
- top: 15%;
-
- .octicon-link {
- display: inline-block;
- }
- }
- tt, code {
- font-size: inherit;
- }
- }
-
- h1 {
- font-size: 28px;
- color: #000;
- }
-
- h2 {
- font-size: 24px;
- border-bottom: 1px solid #ccc;
- color: #000;
- }
-
- h3 {
- font-size: 18px;
- }
-
- h4 {
- font-size: 16px;
- }
-
- h5 {
- font-size: 14px;
- }
-
- h6 {
- color: #777;
- font-size: 14px;
- }
-
- p,
- blockquote,
- ul, ol, dl,
- table,
- pre {
- margin: 15px 0;
- }
-
- hr {
- background: transparent;
- border: 0 none;
- color: #ccc;
- height: 4px;
- padding: 0;
- }
-
- & > h2:first-child,
- & > h1:first-child,
- & > h1:first-child + h2,
- & > h3:first-child,
- & > h4:first-child,
- & > h5:first-child,
- & > h6:first-child {
- margin-top: 0;
- padding-top: 0;
- }
-
- // fixes margin on shit like:
- //
- // The Heading
- a:first-child {
- h1, h2, h3, h4, h5, h6 {
- margin-top: 0;
- padding-top: 0;
- }
- }
-
- h1 + p,
- h2 + p,
- h3 + p,
- h4 + p,
- h5 + p,
- h6 + p {
- margin-top: 0;
- }
-
- // ReST first graf in nested list
- li p.first {
- display: inline-block;
- }
-
- // Lists, Blockquotes & Such
- ul, ol {
- padding-left: 30px;
-
- &.no-list {
- list-style-type: none;
- padding: 0;
- }
-
- li > :first-child,
- li ul:first-of-type {
- margin-top: 0;
- }
- }
-
- ul ul,
- ul ol,
- ol ol,
- ol ul {
- margin-bottom: 0;
- }
-
- dl {
- padding: 0;
- }
-
- dl dt {
- font-size: 14px;
- font-weight: bold;
- font-style: italic;
- padding: 0;
- margin: 15px 0 5px;
-
- &:first-child {
- padding: 0;
- }
- & > :first-child {
- margin-top: 0;
- }
-
- & > :last-child {
- margin-bottom: 0;
- }
- }
-
- dl dd {
- margin: 0 0 15px;
- padding: 0 15px;
- & > :first-child {
- margin-top: 0;
- }
-
- & > :last-child {
- margin-bottom: 0;
- }
- }
-
- blockquote {
- border-left: 4px solid #DDD;
- padding: 0 15px;
- color: #777;
-
- & > :first-child {
- margin-top: 0;
- }
-
- & > :last-child {
- margin-bottom: 0;
- }
- }
-
- // Tables
- table {
-
- th {
- font-weight: bold;
- }
-
- th, td {
- border: 1px solid #ccc;
- padding: 6px 13px;
- }
-
- tr {
- border-top: 1px solid #ccc;
- background-color: #fff;
-
- &:nth-child(2n) {
- background-color: #f8f8f8;
- }
- }
- }
-
- // Images & Stuff
- img {
- max-width: 100%;
- }
-
- // Gollum Image Tags
-
- // Framed
- span.frame {
- display: block;
- overflow: hidden;
-
- & > span {
- border: 1px solid #ddd;
- display: block;
- float: left;
- overflow: hidden;
- margin: 13px 0 0;
- padding: 7px;
- width: auto;
- }
-
- span img {
- display: block;
- float: left;
- }
-
- span span {
- clear: both;
- color: #333;
- display: block;
- padding: 5px 0 0;
- }
- }
-
- span.align-center {
- display: block;
- overflow: hidden;
- clear: both;
-
- & > span {
- display: block;
- overflow: hidden;
- margin: 13px auto 0;
- text-align: center;
- }
-
- span img {
- margin: 0 auto;
- text-align: center;
- }
- }
-
- span.align-right {
- display: block;
- overflow: hidden;
- clear: both;
-
- & > span {
- display: block;
- overflow: hidden;
- margin: 13px 0 0;
- text-align: right;
- }
-
- span img {
- margin: 0;
- text-align: right;
- }
- }
-
- span.float-left {
- display: block;
- margin-right: 13px;
- overflow: hidden;
- float: left;
-
- span {
- margin: 13px 0 0;
- }
- }
-
- span.float-right {
- display: block;
- margin-left: 13px;
- overflow: hidden;
- float: right;
-
- & > span {
- display: block;
- overflow: hidden;
- margin: 13px auto 0;
- text-align: right;
- }
- }
-
- // Inline code snippets
- code, tt {
- margin: 0 2px;
- padding: 0 5px;
- border: 1px solid #eaeaea;
- background-color: #f8f8f8;
- border-radius:3px;
- }
-
- code { white-space: nowrap; }
-
- // Code tags within code blocks (
s)
- pre > code {
- margin: 0;
- padding: 0;
- white-space: pre;
- border: none;
- background: transparent;
- }
-
- .highlight pre, pre {
- border: 1px solid #ccc;
- font-size: 13px;
- line-height: 19px;
- overflow: auto;
- padding: 6px 10px;
- border-radius:3px;
- }
-
- pre code, pre tt {
- margin: 0;
- padding: 0;
- background-color: transparent;
- border: none;
- }
-
- .emoji {
- height: 20px;
- width: 20px;
- }
-}
diff --git a/src/packages/markdown-preview/stylesheets/pygments.less b/src/packages/markdown-preview/stylesheets/pygments.less
deleted file mode 100644
index f3faab07a..000000000
--- a/src/packages/markdown-preview/stylesheets/pygments.less
+++ /dev/null
@@ -1,201 +0,0 @@
-.highlight {
- background: #ffffff;
-
- // Comment
- .c { color: #999988; font-style: italic }
-
- // Error
- .err { color: #a61717; background-color: #e3d2d2 }
-
- // Keyword
- .k { font-weight: bold }
-
- // Operator
- .o { font-weight: bold }
-
- // Comment.Multiline
- .cm { color: #999988; font-style: italic }
-
- // Comment.Preproc
- .cp { color: #999999; font-weight: bold }
-
- // Comment.Single
- .c1 { color: #999988; font-style: italic }
-
- // Comment.Special
- .cs { color: #999999; font-weight: bold; font-style: italic }
-
- // Generic.Deleted
- .gd { color: #000000; background-color: #ffdddd }
-
- // Generic.Deleted.Specific
- .gd .x { color: #000000; background-color: #ffaaaa }
-
- // Generic.Emph
- .ge { font-style: italic }
-
- // Generic.Error
- .gr { color: #aa0000 }
-
- // Generic.Heading
- .gh { color: #999999 }
-
- // Generic.Inserted
- .gi { color: #000000; background-color: #ddffdd }
-
- // Generic.Inserted.Specific
- .gi .x { color: #000000; background-color: #aaffaa }
-
- // Generic.Output
- .go { color: #888888 }
-
- // Generic.Prompt
- .gp { color: #555555 }
-
- // Generic.Strong
- .gs { font-weight: bold }
-
- // Generic.Subheading
- .gu { color: #800080; font-weight: bold; }
-
- // Generic.Traceback
- .gt { color: #aa0000 }
-
- // Keyword.Constant
- .kc { font-weight: bold }
-
- // Keyword.Declaration
- .kd { font-weight: bold }
-
- // Keyword.Namespace
- .kn { font-weight: bold }
-
- // Keyword.Pseudo
- .kp { font-weight: bold }
-
- // Keyword.Reserved
- .kr { font-weight: bold }
-
- // Keyword.Type
- .kt { color: #445588; font-weight: bold }
-
- // Literal.Number
- .m { color: #009999 }
-
- // Literal.String
- .s { color: #d14 }
-
- // Name
- .n { color: #333333 }
-
- // Name.Attribute
- .na { color: #008080 }
-
- // Name.Builtin
- .nb { color: #0086B3 }
-
- // Name.Class
- .nc { color: #445588; font-weight: bold }
-
- // Name.Constant
- .no { color: #008080 }
-
- // Name.Entity
- .ni { color: #800080 }
-
- // Name.Exception
- .ne { color: #990000; font-weight: bold }
-
- // Name.Function
- .nf { color: #990000; font-weight: bold }
-
- // Name.Namespace
- .nn { color: #555555 }
-
- // Name.Tag
- .nt { color: #000080 }
-
- // Name.Variable
- .nv { color: #008080 }
-
- // Operator.Word
- .ow { font-weight: bold }
-
- // Text.Whitespace
- .w { color: #bbbbbb }
-
- // Literal.Number.Float
- .mf { color: #009999 }
-
- // Literal.Number.Hex
- .mh { color: #009999 }
-
- // Literal.Number.Integer
- .mi { color: #009999 }
-
- // Literal.Number.Oct
- .mo { color: #009999 }
-
- // Literal.String.Backtick
- .sb { color: #d14 }
-
- // Literal.String.Char
- .sc { color: #d14 }
-
- // Literal.String.Doc
- .sd { color: #d14 }
-
- // Literal.String.Double
- .s2 { color: #d14 }
-
- // Literal.String.Escape
- .se { color: #d14 }
-
- // Literal.String.Heredoc
- .sh { color: #d14 }
-
- // Literal.String.Interpol
- .si { color: #d14 }
-
- // Literal.String.Other
- .sx { color: #d14 }
-
- // Literal.String.Regex
- .sr { color: #009926 }
-
- // Literal.String.Single
- .s1 { color: #d14 }
-
- // Literal.String.Symbol
- .ss { color: #990073 }
-
- // Name.Builtin.Pseudo
- .bp { color: #999999 }
-
- // Name.Variable.Class
- .vc { color: #008080 }
-
- // Name.Variable.Global
- .vg { color: #008080 }
-
- // Name.Variable.Instance
- .vi { color: #008080 }
-
- // Literal.Number.Integer.Long
- .il { color: #009999 }
-
- .gc {
- color: #999;
- background-color: #EAF2F5;
- }
-}
-
-.type-csharp .highlight {
- .k { color: #0000FF }
- .kt { color: #0000FF }
- .nf { color: #000000; font-weight: normal }
- .nc { color: #2B91AF }
- .nn { color: #000000 }
- .s { color: #A31515 }
- .sc { color: #A31515 }
-}