|
|
|
import toHash from 'tohash'
|
|
|
|
|
|
|
|
export const FONTS = [
|
|
|
|
{ id: 'Anonymous Pro', name: 'Anonymous Pro' },
|
|
|
|
{ id: 'Droid Sans Mono', name: 'Droid Sans Mono' },
|
|
|
|
{ id: 'Fantasque Sans Mono', name: 'Fantasque Sans Mono' },
|
|
|
|
{ id: 'Fira Code', name: 'Fira Code' },
|
|
|
|
{ id: 'Hack', name: 'Hack' },
|
|
|
|
{ id: 'IBM Plex Mono', name: 'IBM Plex Mono' },
|
|
|
|
{ id: 'Inconsolata', name: 'Inconsolata' },
|
|
|
|
{ id: 'Iosevka', name: 'Iosevka' },
|
|
|
|
{ id: 'JetBrains Mono', name: 'JetBrains Mono' },
|
|
|
|
{ id: 'Monoid', name: 'Monoid' },
|
|
|
|
{ id: 'Source Code Pro', name: 'Source Code Pro' },
|
|
|
|
{ id: 'Space Mono', name: 'Space Mono' },
|
|
|
|
{ id: 'Ubuntu Mono', name: 'Ubuntu Mono' },
|
|
|
|
]
|
|
|
|
|
|
|
|
export const HIGHLIGHT_KEYS = [
|
|
|
|
'background',
|
|
|
|
'text',
|
|
|
|
'variable',
|
|
|
|
'attribute',
|
|
|
|
'definition',
|
|
|
|
'keyword',
|
|
|
|
'operator',
|
|
|
|
'property',
|
|
|
|
'number',
|
|
|
|
'string',
|
|
|
|
'comment',
|
|
|
|
'meta',
|
|
|
|
]
|
|
|
|
|
|
|
|
export const THEMES = [
|
|
|
|
{
|
|
|
|
id: '3024-night',
|
|
|
|
name: '3024 Night',
|
|
|
|
highlights: {
|
|
|
|
background: '#090300',
|
|
|
|
text: '#d6d5d4',
|
|
|
|
variable: '#01a252',
|
|
|
|
variable2: '#01a0e4',
|
|
|
|
attribute: '#00c',
|
|
|
|
definition: '#e8bbd0',
|
|
|
|
keyword: '#db2d20',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#01a252',
|
|
|
|
number: '#a16a94',
|
|
|
|
string: '#fded02',
|
|
|
|
comment: '#cdab53',
|
|
|
|
meta: '#555',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'a11y-dark',
|
|
|
|
name: 'A11y Dark',
|
|
|
|
highlights: {
|
|
|
|
background: '#2b2b2b',
|
|
|
|
text: '#f8f8f2',
|
|
|
|
variable: '#00e0e0',
|
|
|
|
attribute: '#abe338',
|
|
|
|
definition: '#ffd700',
|
|
|
|
keyword: '#ffa07a',
|
|
|
|
operator: '#f8f8f2',
|
|
|
|
property: '#abe338',
|
|
|
|
number: '#dcc6e0',
|
|
|
|
string: '#ffd700',
|
|
|
|
comment: '#d4d0ab',
|
|
|
|
meta: '#d4d0ab',
|
|
|
|
tag: '#dcc6e0',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'blackboard',
|
|
|
|
name: 'Blackboard',
|
|
|
|
highlights: {
|
|
|
|
background: '#0C1021',
|
|
|
|
text: '#F8F8F8',
|
|
|
|
variable: '#FF6400',
|
|
|
|
attribute: '#8DA6CE',
|
|
|
|
definition: '#8DA6CE',
|
|
|
|
keyword: '#FBDE2D',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#fff',
|
|
|
|
number: '#D8FA3C',
|
|
|
|
string: '#61CE3C',
|
|
|
|
comment: '#AEAEAE',
|
|
|
|
meta: '#D8FA3C',
|
|
|
|
tag: '#8DA6CE',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'base16-dark',
|
|
|
|
name: 'Base 16 (Dark)',
|
|
|
|
highlights: {
|
|
|
|
background: '#151515',
|
|
|
|
text: '#e0e0e0',
|
|
|
|
variable: '#90a959',
|
|
|
|
variable2: '#6a9fb5',
|
|
|
|
attribute: '#00c',
|
|
|
|
definition: '#d28445',
|
|
|
|
keyword: '#ac4142',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#90a959',
|
|
|
|
number: '#aa759f',
|
|
|
|
string: '#f4bf75',
|
|
|
|
comment: '#8f5536',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#ac4142',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'base16-light',
|
|
|
|
name: 'Base 16 (Light)',
|
|
|
|
light: true,
|
|
|
|
highlights: {
|
|
|
|
background: '#f5f5f5',
|
|
|
|
text: '#202020',
|
|
|
|
variable: '#90a959',
|
|
|
|
variable2: '#6a9fb5',
|
|
|
|
attribute: '#90a959',
|
|
|
|
definition: '#d28445',
|
|
|
|
keyword: '#ac4142',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#90a959',
|
|
|
|
number: '#aa759f',
|
|
|
|
string: '#f4bf75',
|
|
|
|
comment: '#8f5536',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#ac4142',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'cobalt',
|
|
|
|
name: 'Cobalt',
|
|
|
|
highlights: {
|
|
|
|
background: '#002240',
|
|
|
|
text: '#fff',
|
|
|
|
variable: '#9effff',
|
|
|
|
variable3: 'white',
|
|
|
|
attribute: '#ff80e1',
|
|
|
|
definition: '#fff',
|
|
|
|
keyword: '#ffee80',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#fff',
|
|
|
|
number: '#ff80e1',
|
|
|
|
string: '#3ad900',
|
|
|
|
comment: '#08f',
|
|
|
|
meta: '#ff9d00',
|
|
|
|
tag: '#9effff',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'dracula',
|
|
|
|
name: 'Dracula',
|
|
|
|
highlights: {
|
|
|
|
background: '#282a36',
|
|
|
|
text: '#f8f8f2',
|
|
|
|
variable: '#50fa7b',
|
|
|
|
variable2: 'white',
|
|
|
|
variable3: '#ffb86c',
|
|
|
|
attribute: '#50fa7b',
|
|
|
|
definition: '#50fa7b',
|
|
|
|
keyword: '#ff79c6',
|
|
|
|
operator: '#ff79c6',
|
|
|
|
property: '#66d9ef',
|
|
|
|
number: '#bd93f9',
|
|
|
|
string: '#f1fa8c',
|
|
|
|
comment: '#6272a4',
|
|
|
|
meta: '#f8f8f2',
|
|
|
|
tag: '#ff79c6',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'duotone-dark',
|
|
|
|
name: 'Duotone',
|
|
|
|
highlights: {
|
|
|
|
background: '#2a2734',
|
|
|
|
text: '#6c6783',
|
|
|
|
variable: '#ffcc99',
|
|
|
|
variable2: '#7a63ee',
|
|
|
|
variable3: '#7a63ee',
|
|
|
|
attribute: '#ffcc99',
|
|
|
|
definition: '#eeebff',
|
|
|
|
keyword: '#ffcc99',
|
|
|
|
operator: '#ffad5c',
|
|
|
|
property: '#9a86fd',
|
|
|
|
number: '#ffcc99',
|
|
|
|
string: '#ffb870',
|
|
|
|
comment: '#6c6783',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#eeebff',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'hopscotch',
|
|
|
|
name: 'Hopscotch',
|
|
|
|
highlights: {
|
|
|
|
background: '#322931',
|
|
|
|
text: '#d5d3d5',
|
|
|
|
variable: '#8fc13e',
|
|
|
|
variable2: '#1290bf',
|
|
|
|
attribute: '#8fc13e',
|
|
|
|
definition: '#fd8b19',
|
|
|
|
keyword: '#dd464c',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#8fc13e',
|
|
|
|
number: '#c85e7c',
|
|
|
|
string: '#fdcc59',
|
|
|
|
comment: '#b33508',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#dd464c',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'lucario',
|
|
|
|
name: 'Lucario',
|
|
|
|
highlights: {
|
|
|
|
background: '#2b3e50',
|
|
|
|
text: '#f8f8f2',
|
|
|
|
variable: '#f8f8f2',
|
|
|
|
variable3: '#ffb86c',
|
|
|
|
attribute: '#66D9EF',
|
|
|
|
definition: '#72C05D',
|
|
|
|
keyword: '#ff6541',
|
|
|
|
operator: '#66D9EF',
|
|
|
|
property: '#f8f8f2',
|
|
|
|
number: '#ca94ff',
|
|
|
|
string: '#E6DB74',
|
|
|
|
comment: '#5c98cd',
|
|
|
|
meta: '#f8f8f2',
|
|
|
|
tag: '#ff6541',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'material',
|
|
|
|
name: 'Material',
|
|
|
|
highlights: {
|
|
|
|
background: '#263238',
|
|
|
|
text: 'rgba(233, 237, 237, 1)',
|
|
|
|
variable: '#82B1FF',
|
|
|
|
variable2: '#80CBC4',
|
|
|
|
variable3: '#DECB6B',
|
|
|
|
attribute: '#FFCB6B',
|
|
|
|
definition: 'rgba(233, 237, 237, 1)',
|
|
|
|
keyword: 'rgba(199, 146, 234, 1)',
|
|
|
|
operator: 'rgba(233, 237, 237, 1)',
|
|
|
|
property: '#80CBAE',
|
|
|
|
number: '#F77669',
|
|
|
|
string: '#C3E88D',
|
|
|
|
comment: '#546E7A',
|
|
|
|
meta: '#80CBC4',
|
|
|
|
tag: 'rgba(255, 83, 112, 1)',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'monokai',
|
|
|
|
name: 'Monokai',
|
|
|
|
highlights: {
|
|
|
|
background: '#272822',
|
|
|
|
text: '#f8f8f2',
|
|
|
|
variable: '#f8f8f2',
|
|
|
|
variable2: '#9effff',
|
|
|
|
variable3: '#66d9ef',
|
|
|
|
attribute: '#a6e22e',
|
|
|
|
definition: '#fd971f',
|
|
|
|
keyword: '#f92672',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#a6e22e',
|
|
|
|
number: '#ae81ff',
|
|
|
|
string: '#e6db74',
|
|
|
|
comment: '#75715e',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#bc6283',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'night-owl',
|
|
|
|
name: 'Night Owl',
|
|
|
|
highlights: {
|
|
|
|
background: '#011627',
|
|
|
|
text: '#abb2bf',
|
|
|
|
variable: '#82AAFF',
|
|
|
|
attribute: '#F78C6C',
|
|
|
|
definition: '#82AAFF',
|
|
|
|
keyword: '#c792ea',
|
|
|
|
operator: '#c792ea',
|
|
|
|
property: '#fff',
|
|
|
|
number: '#F78C6C',
|
|
|
|
string: '#ecc48d',
|
|
|
|
comment: '#5c6370',
|
|
|
|
meta: '#7fdbca',
|
|
|
|
tag: '#7fdbca',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'nord',
|
|
|
|
name: 'Nord',
|
|
|
|
highlights: {
|
|
|
|
background: '#2e3440',
|
|
|
|
text: '#d8dee9',
|
|
|
|
variable: '#88C0D0',
|
|
|
|
variable3: '#d8dee9',
|
|
|
|
attribute: '#8FBCBB',
|
|
|
|
definition: '#D8DEE9',
|
|
|
|
keyword: '#81A1C1',
|
|
|
|
operator: '#81A1C1',
|
|
|
|
property: '#D8DEE9',
|
|
|
|
number: '#B48EAD',
|
|
|
|
string: '#A3BE8C',
|
|
|
|
comment: '#4C566A',
|
|
|
|
meta: '#81A1C1',
|
|
|
|
tag: '#81A1C1',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'oceanic-next',
|
|
|
|
name: 'Oceanic Next',
|
|
|
|
highlights: {
|
|
|
|
background: '#304148',
|
|
|
|
text: '#f8f8f2',
|
|
|
|
variable: '#f8f8f2',
|
|
|
|
attribute: '#C594C5',
|
|
|
|
definition: '#6699CC',
|
|
|
|
keyword: '#C594C5',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#99C794',
|
|
|
|
number: '#F99157',
|
|
|
|
string: '#99C794',
|
|
|
|
comment: '#65737E',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#C594C5',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'one-light',
|
|
|
|
name: 'One Light',
|
|
|
|
light: true,
|
|
|
|
highlights: {
|
|
|
|
background: '#fafafa',
|
|
|
|
text: '#383a42',
|
|
|
|
variable: '#e06c75',
|
|
|
|
variable2: '#e45649',
|
|
|
|
attribute: '#d19a66',
|
|
|
|
definition: '#4078f2',
|
|
|
|
keyword: '#a626a4',
|
|
|
|
operator: '#0184bc',
|
|
|
|
property: '#4078f2',
|
|
|
|
number: '#986801',
|
|
|
|
string: '#50a14f',
|
|
|
|
comment: '#a0a1a7',
|
|
|
|
meta: '#383a42',
|
|
|
|
tag: '#e45649',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'one-dark',
|
|
|
|
name: 'One Dark',
|
|
|
|
highlights: {
|
|
|
|
background: '#282c34',
|
|
|
|
text: '#abb2bf',
|
|
|
|
variable: '#e06c75',
|
|
|
|
attribute: '#d19a66',
|
|
|
|
definition: '#e5c07b',
|
|
|
|
keyword: '#c678dd',
|
|
|
|
operator: '#56b6c2',
|
|
|
|
property: '#56b6c2',
|
|
|
|
number: '#d19a66',
|
|
|
|
string: '#98c379',
|
|
|
|
comment: '#5c6370',
|
|
|
|
meta: '#abb2bf',
|
|
|
|
tag: '#e06c75',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'panda-syntax',
|
|
|
|
name: 'Panda',
|
|
|
|
highlights: {
|
|
|
|
background: '#292A2B',
|
|
|
|
text: '#E6E6E6',
|
|
|
|
variable: '#ffb86c',
|
|
|
|
variable2: '#ff9ac1',
|
|
|
|
variable3: '#ff9ac1',
|
|
|
|
attribute: '#ffb86c',
|
|
|
|
definition: '#e6e6e6',
|
|
|
|
keyword: '#FF75B5',
|
|
|
|
operator: '#f3f3f3',
|
|
|
|
property: '#f3f3f3',
|
|
|
|
number: '#FFB86C',
|
|
|
|
string: '#19F9D8',
|
|
|
|
comment: '#676B79',
|
|
|
|
meta: '#b084eb',
|
|
|
|
tag: '#ff2c6d',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'paraiso-dark',
|
|
|
|
name: 'Paraiso',
|
|
|
|
highlights: {
|
|
|
|
background: '#2f1e2e',
|
|
|
|
text: '#b9b6b0',
|
|
|
|
variable: '#48b685',
|
|
|
|
variable2: '#06b6ef',
|
|
|
|
attribute: '#48b685',
|
|
|
|
definition: '#f99b15',
|
|
|
|
keyword: '#ef6155;',
|
|
|
|
operator: '#fff',
|
|
|
|
property: '#48b685',
|
|
|
|
number: '#815ba4',
|
|
|
|
string: '#fec418',
|
|
|
|
comment: '#e96ba8',
|
|
|
|
meta: '#555',
|
|
|
|
tag: '#ef6155',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'seti',
|
|
|
|
name: 'Seti',
|
|
|
|
highlights: {
|
|
|
|
background: '#151718',
|
|
|
|
text: '#CFD2D1',
|
|
|
|
variable: '#55b5db',
|
|
|
|
variable2: '#a074c4',
|
|
|
|
variable3: '#9fca56',
|
|
|
|
attribute: '#9fca56',
|
|
|
|
definition: '#55b5db',
|
|
|
|
keyword: '#e6cd69',
|
|
|
|
operator: '#9fca56',
|
|
|
|
property: '#a074c4',
|
|
|
|
number: '#cd3f45',
|
|
|
|
string: '#55b5db',
|
|
|
|
comment: '#41535b',
|
|
|
|
meta: '#55b5db',
|
|
|
|
tag: '#55b5db',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'shades-of-purple',
|
|
|
|
name: 'Shades of Purple ',
|
|
|
|
highlights: {
|
|
|
|
background: '#2D2B55',
|
|
|
|
text: '#FFFFFF',
|
|
|
|
variable: '#9EFFFF',
|
|
|
|
attribute: '#9EFFFF',
|
|
|
|
definition: '#9EFFFF',
|
|
|
|
keyword: '#FF9D00',
|
|
|
|
operator: '#FF9D00',
|
|
|
|
property: '#FAD000',
|
|
|
|
number: '#FF628C',
|
|
|
|
string: '#A5FF90',
|
|
|
|
comment: '#B362FF',
|
|
|
|
meta: '#FF9D00',
|
|
|
|
tag: '#9EFFFF',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'solarized dark',
|
|
|
|
name: 'Solarized (Dark)',
|
|
|
|
link: 'solarized',
|
|
|
|
highlights: {
|
|
|
|
background: '#002b36',
|
|
|
|
text: '#839496',
|
|
|
|
variable: '#839496',
|
|
|
|
variable2: '#b58900',
|
|
|
|
variable3: '#6c71c4',
|
|
|
|
attribute: '#2aa198',
|
|
|
|
definition: '#2aa198',
|
|
|
|
keyword: '#cb4b16',
|
|
|
|
operator: '#6c71c4',
|
|
|
|
property: '#2aa198',
|
|
|
|
number: '#d33682',
|
|
|
|
string: '#859900',
|
|
|
|
comment: '#586e75',
|
|
|
|
meta: '#859900',
|
|
|
|
tag: '#93a1a1',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'solarized light',
|
|
|
|
name: 'Solarized (Light)',
|
|
|
|
link: 'solarized',
|
|
|
|
light: true,
|
|
|
|
highlights: {
|
|
|
|
background: '#fdf6e3',
|
|
|
|
text: '#657b83',
|
|
|
|
variable: '#839496',
|
|
|
|
variable2: '#b58900',
|
|
|
|
variable3: '#6c71c4',
|
|
|
|
attribute: '#2aa198',
|
|
|
|
definition: '#2aa198',
|
|
|
|
keyword: '#cb4b16',
|
|
|
|
operator: '#6c71c4',
|
|
|
|
property: '#2aa198',
|
|
|
|
number: '#d33682',
|
|
|
|
string: '#859900',
|
|
|
|
comment: '#586e75',
|
|
|
|
meta: '#859900',
|
|
|
|
tag: '#93a1a1',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'synthwave-84',
|
|
|
|
name: "SynthWave '84",
|
|
|
|
highlights: {
|
|
|
|
background: '#2b213a',
|
|
|
|
text: '#b6b1b1',
|
|
|
|
variable: '#f92aad',
|
|
|
|
attribute: '#fff5f6',
|
|
|
|
definition: '#fdfdfd',
|
|
|
|
keyword: '#f4eee4',
|
|
|
|
operator: '#f4eee4',
|
|
|
|
property: '#fdfdfd',
|
|
|
|
number: '#f97e72',
|
|
|
|
string: '#ff8b39',
|
|
|
|
comment: '#6d77b3',
|
|
|
|
meta: '#ff8b39',
|
|
|
|
tag: '#f92aad',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'twilight',
|
|
|
|
name: 'Twilight',
|
|
|
|
highlights: {
|
|
|
|
background: '#141414',
|
|
|
|
text: '#f7f7f7',
|
|
|
|
variable: '#607392',
|
|
|
|
attribute: '#d6bb6d',
|
|
|
|
definition: '#607392',
|
|
|
|
keyword: '#f9ee98',
|
|
|
|
operator: '#cda869',
|
|
|
|
property: '#fff',
|
|
|
|
number: '#ca7841',
|
|
|
|
string: '#8f9d6a',
|
|
|
|
comment: '#777',
|
|
|
|
meta: '#f7f7f7',
|
|
|
|
tag: '#997643',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'verminal',
|
|
|
|
name: 'Verminal',
|
|
|
|
highlights: {
|
|
|
|
background: 'rgba(0, 0, 0, 0.85)',
|
|
|
|
text: '#fff',
|
|
|
|
variable: '#ff9ba3',
|
|
|
|
variable2: '#fff',
|
|
|
|
attribute: '#d19a66',
|
|
|
|
definition: '#34B7FF',
|
|
|
|
keyword: '#9AE1FF',
|
|
|
|
operator: '#FA78C3',
|
|
|
|
property: '#0af',
|
|
|
|
number: '#d19a66',
|
|
|
|
string: '#98c379',
|
|
|
|
comment: '#5c6370',
|
|
|
|
meta: '#abb2bf',
|
|
|
|
tag: '#e06c75',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'vscode',
|
|
|
|
name: 'VSCode',
|
|
|
|
highlights: {
|
|
|
|
background: '#1E1E1E',
|
|
|
|
text: '#D4D4D4',
|
|
|
|
variable: '#9CDCFE',
|
|
|
|
attribute: '#d19a66',
|
|
|
|
definition: '#DCDCAA',
|
|
|
|
keyword: '#C586C0',
|
|
|
|
operator: '#D4D4D4',
|
|
|
|
property: '#DCDCAA',
|
|
|
|
number: '#B5CEA8',
|
|
|
|
string: '#CE9178',
|
|
|
|
comment: '#6A9955',
|
|
|
|
meta: '#D4D4D4',
|
|
|
|
tag: '#569cd6',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'yeti',
|
|
|
|
name: 'Yeti',
|
|
|
|
light: true,
|
|
|
|
highlights: {
|
|
|
|
background: '#ECEAE8',
|
|
|
|
text: '#d1c9c0',
|
|
|
|
variable: '#55b5db',
|
|
|
|
variable2: '#a074c4',
|
|
|
|
variable3: '#96c0d8',
|
|
|
|
attribute: '#9fb96e',
|
|
|
|
definition: '#55b5db',
|
|
|
|
keyword: '#9fb96e',
|
|
|
|
operator: '#9fb96e',
|
|
|
|
property: '#a074c4',
|
|
|
|
number: '#a074c4',
|
|
|
|
string: '#96c0d8',
|
|
|
|
comment: '#d4c8be',
|
|
|
|
meta: '#96c0d8',
|
|
|
|
tag: '#96c0d8',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'zenburn',
|
|
|
|
name: 'Zenburn',
|
|
|
|
highlights: {
|
|
|
|
background: '#3f3f3f',
|
|
|
|
text: '#dcdccc',
|
|
|
|
variable: '#dfaf8f',
|
|
|
|
variable3: '#dcdccc',
|
|
|
|
attribute: '#dfaf8f',
|
|
|
|
definition: '#dcdccc',
|
|
|
|
keyword: '#f0dfaf',
|
|
|
|
operator: '#f0efd0',
|
|
|
|
property: '#dfaf8f',
|
|
|
|
number: '#dcdccc',
|
|
|
|
string: '#cc9393',
|
|
|
|
comment: '#7f9f7f',
|
|
|
|
meta: '#f0dfaf',
|
|
|
|
tag: '#93e0e3',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
|
|
|
export const THEMES_HASH = toHash(THEMES)
|
|
|
|
|
|
|
|
export const LANGUAGES = [
|
|
|
|
{
|
|
|
|
name: 'Auto',
|
|
|
|
mode: 'auto',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Apache',
|
|
|
|
mode: 'apache',
|
|
|
|
mime: 'text/apache',
|
|
|
|
custom: true,
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Bash',
|
|
|
|
mode: 'shell',
|
|
|
|
mime: 'application/x-sh',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Plain Text',
|
|
|
|
mode: 'text',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'C',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-csrc',
|
|
|
|
short: 'c',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'C++',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-c++src',
|
|
|
|
short: 'c-like',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'C#',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-csharp',
|
|
|
|
short: 'csharp',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Clojure',
|
|
|
|
mode: 'clojure',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'COBOL',
|
|
|
|
mode: 'cobol',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'CoffeeScript',
|
|
|
|
mode: 'coffeescript',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Crystal',
|
|
|
|
mode: 'crystal',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'CSS',
|
|
|
|
mode: 'css',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'D',
|
|
|
|
mode: 'd',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Dart',
|
|
|
|
mode: 'dart',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Diff',
|
|
|
|
mode: 'diff',
|
|
|
|
mime: 'text/x-diff',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Django',
|
|
|
|
mode: 'django',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Docker',
|
|
|
|
mode: 'dockerfile',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Elixir',
|
|
|
|
mode: 'elixir',
|
|
|
|
custom: true,
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Elm',
|
|
|
|
mode: 'elm',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Erlang',
|
|
|
|
mode: 'erlang',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Fortran',
|
|
|
|
mode: 'fortran',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Gherkin',
|
|
|
|
mode: 'gherkin',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'GraphQL',
|
|
|
|
mode: 'graphql',
|
|
|
|
custom: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Go',
|
|
|
|
mode: 'go',
|
|
|
|
mime: 'text/x-go',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Groovy',
|
|
|
|
mode: 'groovy',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Handlebars',
|
|
|
|
mode: 'handlebars',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Haskell',
|
|
|
|
mode: 'haskell',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'HTML/XML',
|
|
|
|
mode: 'htmlmixed',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Java',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-java',
|
|
|
|
short: 'java',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'JavaScript',
|
|
|
|
mode: 'javascript',
|
|
|
|
short: 'javascript',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'JSON',
|
|
|
|
mode: 'javascript',
|
|
|
|
mime: 'application/json',
|
|
|
|
short: 'json',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'JSX',
|
|
|
|
mode: 'jsx',
|
|
|
|
short: 'jsx',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Julia',
|
|
|
|
mode: 'julia',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Kotlin',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-kotlin',
|
|
|
|
short: 'kotlin',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'LaTeX',
|
|
|
|
mode: 'stex',
|
|
|
|
short: 'latex',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Lisp',
|
|
|
|
mode: 'commonlisp',
|
|
|
|
short: 'lisp',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Lua',
|
|
|
|
mode: 'lua',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Markdown',
|
|
|
|
mode: 'markdown',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Mathematica',
|
|
|
|
mode: 'mathematica',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'MATLAB/Octave',
|
|
|
|
mode: 'octave',
|
|
|
|
mime: 'text/x-octave',
|
|
|
|
short: 'matlab',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'MySQL',
|
|
|
|
mode: 'sql',
|
|
|
|
mime: 'text/x-mysql',
|
|
|
|
short: 'mysql',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'N-Triples',
|
|
|
|
mode: 'ntriples',
|
|
|
|
mime: 'application/n-triples',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'NGINX',
|
|
|
|
mode: 'nginx',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Nim',
|
|
|
|
mode: 'nim',
|
|
|
|
custom: true,
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Objective C',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-objectivec',
|
|
|
|
short: 'objectivec',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'OCaml/F#',
|
|
|
|
mode: 'mllike',
|
|
|
|
short: 'ocaml',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Pascal',
|
|
|
|
mode: 'pascal',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Perl',
|
|
|
|
mode: 'perl',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'PHP',
|
|
|
|
mode: 'php',
|
|
|
|
mime: 'text/x-php',
|
|
|
|
short: 'php',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'PowerShell',
|
|
|
|
mode: 'powershell',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Python',
|
|
|
|
mode: 'python',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'R',
|
|
|
|
mode: 'r',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'RISC-V',
|
|
|
|
mode: 'riscv',
|
|
|
|
custom: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Ruby',
|
|
|
|
mode: 'ruby',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Rust',
|
|
|
|
mode: 'rust',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Sass',
|
|
|
|
mode: 'sass',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Scala',
|
|
|
|
mode: 'clike',
|
|
|
|
mime: 'text/x-scala',
|
|
|
|
short: 'scala',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Smalltalk',
|
|
|
|
mode: 'smalltalk',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Solidity',
|
|
|
|
mode: 'solidity',
|
|
|
|
custom: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'SPARQL',
|
|
|
|
mode: 'sparql',
|
|
|
|
mime: 'application/sparql-query',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'SQL',
|
|
|
|
mode: 'sql',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Stylus',
|
|
|
|
mode: 'stylus',
|
|
|
|
mime: 'stylus',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Swift',
|
|
|
|
mode: 'swift',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'TCL',
|
|
|
|
mode: 'tcl',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'TOML',
|
|
|
|
mode: 'toml',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Turtle',
|
|
|
|
mode: 'turtle',
|
|
|
|
mime: 'text/turtle',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'TypeScript',
|
|
|
|
mode: 'javascript',
|
|
|
|
mime: 'application/typescript',
|
|
|
|
short: 'typescript',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'TSX',
|
|
|
|
mode: 'jsx',
|
|
|
|
mime: 'text/typescript-jsx',
|
|
|
|
short: 'tsx',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Twig',
|
|
|
|
mode: 'twig',
|
|
|
|
mime: 'text/x-twig',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'VB.NET',
|
|
|
|
mode: 'vb',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Verilog',
|
|
|
|
mode: 'verilog',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'VHDL',
|
|
|
|
mode: 'vhdl',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Vue',
|
|
|
|
mode: 'vue',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'XQuery',
|
|
|
|
mode: 'xquery',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'YAML',
|
|
|
|
mode: 'yaml',
|
|
|
|
highlight: true,
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
|
|
|
export const EXPORT_SIZES = [
|
|
|
|
{ id: '1x', name: '1x', value: 1 },
|
|
|
|
{ id: '2x', name: '2x', value: 2 },
|
|
|
|
{ id: '4x', name: '4x', value: 4 },
|
|
|
|
]
|
|
|
|
|
|
|
|
export const EXPORT_SIZES_HASH = toHash(EXPORT_SIZES)
|
|
|
|
|
|
|
|
export const LANGUAGE_MIME_HASH = toHash(LANGUAGES, 'mime')
|
|
|
|
export const LANGUAGE_MODE_HASH = toHash(LANGUAGES, 'mode')
|
|
|
|
export const LANGUAGE_NAME_HASH = toHash(LANGUAGES, 'short')
|
|
|
|
|
|
|
|
export const DEFAULT_LANGUAGE = 'auto'
|
|
|
|
export const DEFAULT_THEME = THEMES_HASH.seti
|
|
|
|
export const DEFAULT_BG_COLOR = 'rgba(171, 184, 195, 1)'
|
|
|
|
export const DEFAULT_EXPORT_SIZE = EXPORT_SIZES_HASH['2x']
|
|
|
|
|
|
|
|
export const COLORS = {
|
|
|
|
BLACK: '#121212',
|
|
|
|
PRIMARY: '#F8E81C',
|
|
|
|
SECONDARY: '#fff',
|
|
|
|
GRAY: '#858585',
|
|
|
|
DARK_GRAY: '#393939',
|
|
|
|
HOVER: '#1F1F1F',
|
|
|
|
PURPLE: '#C198FB',
|
|
|
|
DARK_PURPLE: '#55436F',
|
|
|
|
RED: '#ff5f56',
|
|
|
|
BLUE: '#57b5f9',
|
|
|
|
}
|
|
|
|
|
|
|
|
export const DEFAULT_CODE = `const pluckDeep = key => obj => key.split('.').reduce((accum, key) => accum[key], obj)
|
|
|
|
|
|
|
|
const compose = (...fns) => res => fns.reduce((accum, next) => next(accum), res)
|
|
|
|
|
|
|
|
const unfold = (f, seed) => {
|
|
|
|
const go = (f, seed, acc) => {
|
|
|
|
const res = f(seed)
|
|
|
|
return res ? go(f, res[1], acc.concat([res[0]])) : acc
|
|
|
|
}
|
|
|
|
return go(f, seed, [])
|
|
|
|
}`
|
|
|
|
|
|
|
|
export const DEFAULT_SETTINGS = {
|
|
|
|
paddingVertical: '56px',
|
|
|
|
paddingHorizontal: '56px',
|
|
|
|
backgroundImage: null,
|
|
|
|
backgroundImageSelection: null,
|
|
|
|
backgroundMode: 'color',
|
|
|
|
backgroundColor: DEFAULT_BG_COLOR,
|
|
|
|
dropShadow: true,
|
|
|
|
dropShadowOffsetY: '20px',
|
|
|
|
dropShadowBlurRadius: '68px',
|
|
|
|
theme: DEFAULT_THEME.id,
|
|
|
|
windowTheme: 'none',
|
|
|
|
language: DEFAULT_LANGUAGE,
|
|
|
|
fontFamily: 'Hack',
|
|
|
|
fontSize: '14px',
|
|
|
|
lineHeight: '133%',
|
|
|
|
windowControls: true,
|
|
|
|
widthAdjustment: true,
|
|
|
|
lineNumbers: false,
|
|
|
|
firstLineNumber: 1,
|
|
|
|
exportSize: '2x',
|
|
|
|
watermark: false,
|
|
|
|
squaredImage: false,
|
|
|
|
hiddenCharacters: false,
|
|
|
|
name: '',
|
|
|
|
width: 680,
|
|
|
|
}
|
|
|
|
|
|
|
|
export const DEFAULT_WIDTHS = {
|
|
|
|
minWidth: 320,
|
|
|
|
maxWidth: 1280,
|
|
|
|
}
|
|
|
|
|
|
|
|
export const DEFAULT_PRESETS = [
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
icon: '/static/presets/4.png',
|
|
|
|
id: 'preset:4',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(74,144,226,1)',
|
|
|
|
dropShadow: false,
|
|
|
|
theme: 'material',
|
|
|
|
fontFamily: 'Fira Code',
|
|
|
|
lineHeight: '152%',
|
|
|
|
icon: '/static/presets/7.png',
|
|
|
|
id: 'preset:7',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(248,231,28,1)',
|
|
|
|
dropShadow: false,
|
|
|
|
theme: 'blackboard',
|
|
|
|
fontFamily: 'Fira Code',
|
|
|
|
lineHeight: '152%',
|
|
|
|
icon: '/static/presets/8.png',
|
|
|
|
id: 'preset:8',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(182,162,145,1)',
|
|
|
|
dropShadow: false,
|
|
|
|
theme: 'zenburn',
|
|
|
|
windowTheme: 'bw',
|
|
|
|
lineHeight: '152%',
|
|
|
|
icon: '/static/presets/9.png',
|
|
|
|
id: 'preset:9',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(121,72,185,1)',
|
|
|
|
dropShadow: false,
|
|
|
|
theme: 'verminal',
|
|
|
|
windowTheme: 'bw',
|
|
|
|
fontFamily: 'Fira Code',
|
|
|
|
fontSize: '14px',
|
|
|
|
lineHeight: '143%',
|
|
|
|
icon: '/static/presets/0.png',
|
|
|
|
id: 'preset:0',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(239,40,44,1)',
|
|
|
|
theme: 'one-light',
|
|
|
|
lineHeight: '143%',
|
|
|
|
icon: '/static/presets/1.png',
|
|
|
|
id: 'preset:1',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(31,129,109,1)',
|
|
|
|
dropShadow: false,
|
|
|
|
theme: 'night-owl',
|
|
|
|
lineHeight: '143%',
|
|
|
|
windowControls: false,
|
|
|
|
icon: '/static/presets/2.png',
|
|
|
|
id: 'preset:2',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(249,237,212,1)',
|
|
|
|
theme: 'twilight',
|
|
|
|
fontFamily: 'IBM Plex Mono',
|
|
|
|
lineHeight: '143%',
|
|
|
|
icon: '/static/presets/3.png',
|
|
|
|
id: 'preset:3',
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(222,171,99,1)',
|
|
|
|
theme: 'duotone-dark',
|
|
|
|
icon: '/static/presets/5.png',
|
|
|
|
id: 'preset:5',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
...DEFAULT_SETTINGS,
|
|
|
|
backgroundColor: 'rgba(187,187,187,1)',
|
|
|
|
dropShadowOffsetY: '3px',
|
|
|
|
dropShadowBlurRadius: '13px',
|
|
|
|
theme: 'solarized light',
|
|
|
|
windowTheme: 'sharp',
|
|
|
|
icon: '/static/presets/6.png',
|
|
|
|
id: 'preset:6',
|
|
|
|
},
|
|
|
|
]
|