/* CODEBLOCK LANGUAGES */
// LANGUAGE MAP
$languages: (
  '1C:Enterprise': '1c',
  'ABNF': 'abnf',
  // Augmented Backus-Naur Form
  'Access Log': 'accesslog',
  'ActionScript': ('actionscript',
    'as',
  ),
  'Ada': 'ada',
  'Apache': ('apache',
    'apacheconf',
  ),
  'Applescript': ('applescript',
    'osascript',
  ),
  'Arduino': 'arduino',
  'ARM Assembly': ('armasm',
    'arm',
  ),
  'AsciiDoc': ('asciidoc',
    'adoc',
  ),
  'AspectJ': 'aspectj',
  'Atom Feed (XML)': 'atom',
  'AutoHotkey': 'autohotkey',
  'AutoIt': 'autoit',
  'AVR Assembler': 'avrasm',
  'awk': 'awk',
  'Axapta': 'axapta',
  'Bash': ('bash',
    'sh',
    'zsh',
  ),
  'Basic': 'basic',
  'Batch': ('dos',
    'bat',
    'cmd',
  ),
  'BNF': ('bnf',
    'bf',
  ),
  // Backus-Naur Form
  'Brainfuck': 'brainfuck',
  'C/C++': ('c',
    'h',
  ),
  'C++': ('cc',
    'cpp',
    'hpp',
  ),
  'C#': ('cs',
    'csharp',
  ),
  'C/AL': 'cal',
  // Client/server Application Language
  "Cap'n Proto": ('capnproto',
    'capnp',
  ),
  'Ceylon': 'ceylon',
  'Clean': ('clean',
    'icl',
    'dcl',
  ),
  'Clojure': ('clojure',
    'clj',
  ),
  'Clojure REPL': 'clojure-repl',
  'CMake': 'cmake',
  'CoffeeScript': ('coffeescript',
    'coffee',
    'cson',
    'iced',
  ),
  'Coq': 'coq',
  'Caché Object Script': ('cos',
    'cls',
  ),
  'CocoaPod': 'podspec',
  'crmsh': ('crmsh',
    'crm',
    'pcmk',
  ),
  'Crystal': ('crystal',
    'cr',
  ),
  'CSP': 'csp',
  // Communicating sequential processes
  'CSS': 'css',
  // Cascading Style Sheets
  'D': 'd',
  'Dart': 'dart',
  'Delphi (Object Pascal)': ('delphi',
    'dfm',
    'dpr',
  ),
  'Diff': ('diff',
    'patch',
  ),
  'Django': 'django',
  'DNS Zone File': ('dns',
    'bind',
    'zone',
  ),
  'Dockerfile': ('dockerfile',
    'docker',
  ),
  'dsconfig': 'dsconfig',
  'Device Tree': 'dts',
  'Dust': ('dust',
    'dst',
  ),
  'EBNF': 'ebnf',
  // Extended Backus-Naur Form
  'Elixir': 'elixir',
  'Elm': 'elm',
  'eRuby': 'erb',
  // Embedded Ruby
  'Erlang': ('erlang',
    'erl',
  ),
  'Erlang REPL': 'erlang-repl',
  'Excel': ('excel',
    'xls',
    'xlsx',
  ),
  'F#': ('fs',
    'fsharp',
  ),
  'Fix': 'fix',
  'Flix': 'flix',
  'Fortran': ('fortran',
    'f90',
    'f95',
  ),
  'GAMS': ('gams',
    'gms',
  ),
  'GAUSS': ('gauss',
    'gss',
  ),
  'G-code': ('gcode',
    'nc',
  ),
  'Gherkin': ('gherkin',
    'feature',
  ),
  'GLSL': 'glsl',
  // OpenGL Shading Language
  'Go': ('go',
    'golang',
  ),
  'Golo': 'golo',
  'Gradle': 'gradle',
  'Groovy': 'groovy',
  'Haml': 'haml',
  'Handlebars': ('handlebars',
    'hbs',
  ),
  'Haskell': ('haskell',
    'hs',
  ),
  'Haxe': ('haxe',
    'hx',
  ),
  'HSP': 'hsp',
  // Hot Soup Processor
  'HTML': 'html',
  // Hypertext Markup Language
  'HTMLBars': 'htmlbars',
  'HTTP': 'http',
  // Hyptertext Transfer Protocol
  'HTTPS': 'https',
  // Hyptertext Transfer Protocol Secure
  'Hy': ('hy',
    'hylang',
  ),
  'Inform7': ('inform7',
    'i7',
  ),
  'INI': 'ini',
  // Initialization
  'IRB': 'irb',
  // Interactive Ruby Shell
  'IRPF90': 'irpf90',
  'Java': ('java',
    'jsp',
  ),
  'JavaScript/JSX': ('javascript',
    'js',
    'jsx',
  ),
  'JAXB (XML)': 'xjb',
  'JBoss CLI': ('jboss-cli',
    'wildfly-cli',
  ),
  'Jinja': 'jinja',
  'JSON': 'json',
  // JavaScript Object Notation
  'Julia': 'julia',
  'Julia REPL': 'julia-repl',
  'Kotlin': 'kotlin',
  'Lasso': ('lasso',
    'lassoscript',
    'ls',
  ),
  'LDIF': 'ldif',
  // LDAP Data Interchange Format
  'Leaf': 'leaf',
  'Less': 'less',
  'Lisp': 'lisp',
  'LiveCode Server': 'livecodeserver',
  'LiveScript': ('livescript',
    'ls',
  ),
  'LLVM IR': 'llvm',
  'LSL': 'lsl',
  // Linden Scripting Language
  'Lua': 'lua',
  'Makefile': ('makefile',
    'mk',
    'mak',
  ),
  'Markdown': ('markdown',
    'md',
    'mkd',
    'mkdown',
  ),
  'Mathematica': ('mathematica',
    'mma',
  ),
  'MatLab': 'matlab',
  'Maxima': 'maxima',
  'MEL': 'mel',
  'Mercury': ('mercury',
    'm',
    'moo',
  ),
  'MIPS Assembly': ('mipsasm',
    'mips',
  ),
  'Mikrotik RouterOS': ('routeros',
    'mikrotik',
  ),
  'Mizar': 'mizar',
  'Mojolicious': 'mojolicious',
  'Monkey': 'monkey',
  'MoonScript': ('moonscript',
    'moon',
  ),
  'N1QL': 'n1ql',
  'Nginx': ('nginx',
    'nginxconf',
  ),
  'Nimrod': ('nimrod',
    'nim',
  ),
  'Nix': ('nix',
    'nixos',
  ),
  'NSIS': 'nsis',
  'Objective-C': ('objectivec',
    'objc',
    'obj-c',
    'mm',
  ),
  'OCaml': ('ocaml',
    'ml',
  ),
  'OpenSCAD': ('openscad',
    'scad',
  ),
  'Oracle Rules Language': 'ruleslanguage',
  'Oxygene': 'oxygene',
  'Parser3': 'parser3',
  'Pascal/Object Pascal': ('pascal',
    'pas',
    'freepascal',
    'lazarus',
    'lfm',
    'lpr',
  ),
  'Perl': ('perl',
    'pl',
    'pm',
  ),
  'OpenBSD PF': 'pf',
  // OpenBSD Packet Filter
  'PHP': ('php',
    'php3',
    'php4',
    'php5',
    'php6',
  ),
  // PHP: Hypertext Preprocessor
  'Pony': 'pony',
  'PowerShell': ('powershell',
    'ps',
  ),
  'Processing': 'processing',
  'Prolog': 'prolog',
  'Property List': 'plist',
  'Protocol Buffers': 'protobuf',
  'Puppet': ('puppet',
    'pp',
  ),
  'PureBASIC': ('purebasic',
    'pb',
    'pbi',
  ),
  'Python': ('python',
    'py',
    'gyp',
  ),
  'Python profile': 'profile',
  'Q': ('q',
    'k',
    'kdb',
  ),
  'QML': ('qml',
    'qt',
  ),
  // Qt Meta-object Language
  'R': 'r',
  'RenderMan RIB': 'rib',
  'RenderMan RSL': 'rsl',
  'Roboconf': ('roboconf',
    'graph',
    'instances',
  ),
  'RSS Feed (XML)': 'rss',
  'Ruby': ('ruby',
    'rb',
  ),
  'Thor (Ruby)': 'thor',
  'Ruby Gem': 'gemspec',
  'Rust': ('rust',
    'rs',
  ),
  'Scala': 'scala',
  'Scheme': 'scheme',
  'Scilab': ('scilab',
    'sci',
  ),
  'SCSS': 'scss',
  'Shell': ('shell',
    'console',
  ),
  'Smali': 'smali',
  'Smalltalk': ('smalltalk',
    'st',
  ),
  'SML': ('sml',
    'ml',
  ),
  // Standard ML
  'SQF': 'sqf',
  // Status Quo Function (Arma)
  'SQL': 'sql',
  // Structured Query Language
  'Stan': 'stan',
  'Stata': ('stata',
    'do',
    'ado',
  ),
  'STEP Part 21': ('step21',
    'step',
    'stp',
    'p21',
  ),
  'Stylus': ('stylus',
    'styl',
  ),
  'SubUnit': 'subunit',
  'Swift': 'swift',
  'Tagger Script': 'taggerscript',
  'TAP': 'tap',
  // Test Anything Protocol
  'Tcl': ('tcl',
    'tk',
  ),
  // Tool Command Language
  'TeX': 'tex',
  'Thrift': 'thrift',
  'TOML': 'toml',
  // Tom's Obvious, Minimal Language
  'TP': 'tp',
  // Fanuc TP
  'Twig': ('twig',
    'craftcms',
  ),
  'TypeScript': ('typescript',
    'ts',
  ),
  'Vala': 'vala',
  'VB.NET': ('vbnet',
    'vb',
  ),
  // Visual Basic .NET
  'VBScript': ('vbscript',
    'vbs',
  ),
  // Visual Basic Script
  'VBScript HTML': 'vbscript-html',
  // Visual Basic Script HTML
  'Verilog': ('verilog',
    'v',
    'sv',
    'svh',
  ),
  'VHDL': 'vhdl',
  'Vim Script': 'vim',
  'x86 Assembly': 'x86asm',
  'XL': ('xl',
    'tao',
  ),
  'XQuery': ('xquery',
    'xq',
    'xpath',
  ),
  'YAML': ('yaml',
    'yml',
  ),
  'XHTML': 'xhtml',
  // Extensible Hypertext Markup Language
  'XML': 'xml',
  // Extensible Markup Language
  'XML Schema': 'xsd',
  'XSL': 'xsl',
  // Extensible Stylesheet Language
  'Zephir': ('zephir',
    'zep',
  ),
);

// OUTPUT
.hljs {
  &:before {
    display: block;
    float: right;
    text-align: right;
    line-height: 100%;
    opacity: 0.5;
    pointer-events: none;
  }
  @each $k,
  $v in $languages {
    $id: unique-id();
    &%#{$id} {
      &:before {
        content: '#{$k}';
      }
    }
    @each $e in $v {
      &[class~='#{$e}' i] {
        @extend %#{$id};
      }
    }
  }
}