l0bsterssg

node.js static responsive blog post generator
Log | Files | Refs | README

julia-repl.js (1767B)


      1 /*
      2 Language: Julia REPL
      3 Description: Julia REPL sessions
      4 Author: Morten Piibeleht <morten.piibeleht@gmail.com>
      5 Website: https://julialang.org
      6 Requires: julia.js
      7 
      8 The Julia REPL code blocks look something like the following:
      9 
     10   julia> function foo(x)
     11              x + 1
     12          end
     13   foo (generic function with 1 method)
     14 
     15 They start on a new line with "julia>". Usually there should also be a space after this, but
     16 we also allow the code to start right after the > character. The code may run over multiple
     17 lines, but the additional lines must start with six spaces (i.e. be indented to match
     18 "julia>"). The rest of the code is assumed to be output from the executed code and will be
     19 left un-highlighted.
     20 
     21 Using simply spaces to identify line continuations may get a false-positive if the output
     22 also prints out six spaces, but such cases should be rare.
     23 */
     24 
     25 function juliaRepl(hljs) {
     26   return {
     27     name: 'Julia REPL',
     28     contains: [
     29       {
     30         className: 'meta',
     31         begin: /^julia>/,
     32         relevance: 10,
     33         starts: {
     34           // end the highlighting if we are on a new line and the line does not have at
     35           // least six spaces in the beginning
     36           end: /^(?![ ]{6})/,
     37           subLanguage: 'julia'
     38       },
     39       // jldoctest Markdown blocks are used in the Julia manual and package docs indicate
     40       // code snippets that should be verified when the documentation is built. They can be
     41       // either REPL-like or script-like, but are usually REPL-like and therefore we apply
     42       // julia-repl highlighting to them. More information can be found in Documenter's
     43       // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html
     44       aliases: ['jldoctest']
     45       }
     46     ]
     47   }
     48 }
     49 
     50 module.exports = juliaRepl;