nano-clean-pkg 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. checksums.yaml +7 -0
  2. data/nano-clean-pkg.gemspec +11 -0
  3. data/rouge-5.0.0/Gemfile +48 -0
  4. data/rouge-5.0.0/LICENSE +187 -0
  5. data/rouge-5.0.0/bin/rougify +17 -0
  6. data/rouge-5.0.0/lib/rouge/cli.rb +527 -0
  7. data/rouge-5.0.0/lib/rouge/demos/abap +32 -0
  8. data/rouge-5.0.0/lib/rouge/demos/actionscript +4 -0
  9. data/rouge-5.0.0/lib/rouge/demos/ada +26 -0
  10. data/rouge-5.0.0/lib/rouge/demos/apache +21 -0
  11. data/rouge-5.0.0/lib/rouge/demos/apex +9 -0
  12. data/rouge-5.0.0/lib/rouge/demos/apiblueprint +33 -0
  13. data/rouge-5.0.0/lib/rouge/demos/applescript +2 -0
  14. data/rouge-5.0.0/lib/rouge/demos/armasm +12 -0
  15. data/rouge-5.0.0/lib/rouge/demos/augeas +16 -0
  16. data/rouge-5.0.0/lib/rouge/demos/awk +4 -0
  17. data/rouge-5.0.0/lib/rouge/demos/batchfile +3 -0
  18. data/rouge-5.0.0/lib/rouge/demos/bbcbasic +6 -0
  19. data/rouge-5.0.0/lib/rouge/demos/bibtex +12 -0
  20. data/rouge-5.0.0/lib/rouge/demos/bicep +10 -0
  21. data/rouge-5.0.0/lib/rouge/demos/biml +38 -0
  22. data/rouge-5.0.0/lib/rouge/demos/bpf +7 -0
  23. data/rouge-5.0.0/lib/rouge/demos/brainfuck +5 -0
  24. data/rouge-5.0.0/lib/rouge/demos/brightscript +6 -0
  25. data/rouge-5.0.0/lib/rouge/demos/bsl +7 -0
  26. data/rouge-5.0.0/lib/rouge/demos/c +8 -0
  27. data/rouge-5.0.0/lib/rouge/demos/ceylon +7 -0
  28. data/rouge-5.0.0/lib/rouge/demos/cfscript +18 -0
  29. data/rouge-5.0.0/lib/rouge/demos/cisco_ios +19 -0
  30. data/rouge-5.0.0/lib/rouge/demos/clean +6 -0
  31. data/rouge-5.0.0/lib/rouge/demos/clojure +5 -0
  32. data/rouge-5.0.0/lib/rouge/demos/cmake +7 -0
  33. data/rouge-5.0.0/lib/rouge/demos/cmhg +8 -0
  34. data/rouge-5.0.0/lib/rouge/demos/cobol +103 -0
  35. data/rouge-5.0.0/lib/rouge/demos/codeowners +6 -0
  36. data/rouge-5.0.0/lib/rouge/demos/coffeescript +5 -0
  37. data/rouge-5.0.0/lib/rouge/demos/common_lisp +1 -0
  38. data/rouge-5.0.0/lib/rouge/demos/conf +4 -0
  39. data/rouge-5.0.0/lib/rouge/demos/console +6 -0
  40. data/rouge-5.0.0/lib/rouge/demos/cpp +8 -0
  41. data/rouge-5.0.0/lib/rouge/demos/crystal +45 -0
  42. data/rouge-5.0.0/lib/rouge/demos/csharp +5 -0
  43. data/rouge-5.0.0/lib/rouge/demos/css +4 -0
  44. data/rouge-5.0.0/lib/rouge/demos/csvs +8 -0
  45. data/rouge-5.0.0/lib/rouge/demos/cuda +11 -0
  46. data/rouge-5.0.0/lib/rouge/demos/cypher +5 -0
  47. data/rouge-5.0.0/lib/rouge/demos/cython +6 -0
  48. data/rouge-5.0.0/lib/rouge/demos/d +16 -0
  49. data/rouge-5.0.0/lib/rouge/demos/dafny +16 -0
  50. data/rouge-5.0.0/lib/rouge/demos/dart +6 -0
  51. data/rouge-5.0.0/lib/rouge/demos/datastudio +20 -0
  52. data/rouge-5.0.0/lib/rouge/demos/diff +7 -0
  53. data/rouge-5.0.0/lib/rouge/demos/digdag +19 -0
  54. data/rouge-5.0.0/lib/rouge/demos/docker +9 -0
  55. data/rouge-5.0.0/lib/rouge/demos/dot +5 -0
  56. data/rouge-5.0.0/lib/rouge/demos/dylan +8 -0
  57. data/rouge-5.0.0/lib/rouge/demos/ecl +17 -0
  58. data/rouge-5.0.0/lib/rouge/demos/eex +1 -0
  59. data/rouge-5.0.0/lib/rouge/demos/eiffel +30 -0
  60. data/rouge-5.0.0/lib/rouge/demos/elixir +1 -0
  61. data/rouge-5.0.0/lib/rouge/demos/elm +4 -0
  62. data/rouge-5.0.0/lib/rouge/demos/email +11 -0
  63. data/rouge-5.0.0/lib/rouge/demos/epp +4 -0
  64. data/rouge-5.0.0/lib/rouge/demos/erb +1 -0
  65. data/rouge-5.0.0/lib/rouge/demos/erlang +7 -0
  66. data/rouge-5.0.0/lib/rouge/demos/escape +3 -0
  67. data/rouge-5.0.0/lib/rouge/demos/factor +5 -0
  68. data/rouge-5.0.0/lib/rouge/demos/fluent +13 -0
  69. data/rouge-5.0.0/lib/rouge/demos/fortran +22 -0
  70. data/rouge-5.0.0/lib/rouge/demos/freefem +16 -0
  71. data/rouge-5.0.0/lib/rouge/demos/fsharp +12 -0
  72. data/rouge-5.0.0/lib/rouge/demos/gdscript +18 -0
  73. data/rouge-5.0.0/lib/rouge/demos/ghc-cmm +23 -0
  74. data/rouge-5.0.0/lib/rouge/demos/ghc-core +26 -0
  75. data/rouge-5.0.0/lib/rouge/demos/gherkin +17 -0
  76. data/rouge-5.0.0/lib/rouge/demos/gjs +23 -0
  77. data/rouge-5.0.0/lib/rouge/demos/glsl +14 -0
  78. data/rouge-5.0.0/lib/rouge/demos/go +7 -0
  79. data/rouge-5.0.0/lib/rouge/demos/gradle +10 -0
  80. data/rouge-5.0.0/lib/rouge/demos/graphql +17 -0
  81. data/rouge-5.0.0/lib/rouge/demos/groovy +9 -0
  82. data/rouge-5.0.0/lib/rouge/demos/gts +36 -0
  83. data/rouge-5.0.0/lib/rouge/demos/hack +5 -0
  84. data/rouge-5.0.0/lib/rouge/demos/haml +5 -0
  85. data/rouge-5.0.0/lib/rouge/demos/handlebars +7 -0
  86. data/rouge-5.0.0/lib/rouge/demos/haskell +6 -0
  87. data/rouge-5.0.0/lib/rouge/demos/haxe +4 -0
  88. data/rouge-5.0.0/lib/rouge/demos/hcl +7 -0
  89. data/rouge-5.0.0/lib/rouge/demos/hlsl +20 -0
  90. data/rouge-5.0.0/lib/rouge/demos/hocon +8 -0
  91. data/rouge-5.0.0/lib/rouge/demos/hql +5 -0
  92. data/rouge-5.0.0/lib/rouge/demos/html +8 -0
  93. data/rouge-5.0.0/lib/rouge/demos/http +14 -0
  94. data/rouge-5.0.0/lib/rouge/demos/hylang +10 -0
  95. data/rouge-5.0.0/lib/rouge/demos/idlang +8 -0
  96. data/rouge-5.0.0/lib/rouge/demos/idris +13 -0
  97. data/rouge-5.0.0/lib/rouge/demos/iecst +21 -0
  98. data/rouge-5.0.0/lib/rouge/demos/igorpro +9 -0
  99. data/rouge-5.0.0/lib/rouge/demos/ini +4 -0
  100. data/rouge-5.0.0/lib/rouge/demos/io +11 -0
  101. data/rouge-5.0.0/lib/rouge/demos/irb +4 -0
  102. data/rouge-5.0.0/lib/rouge/demos/irb_output +2 -0
  103. data/rouge-5.0.0/lib/rouge/demos/isabelle +16 -0
  104. data/rouge-5.0.0/lib/rouge/demos/isbl +4 -0
  105. data/rouge-5.0.0/lib/rouge/demos/j +12 -0
  106. data/rouge-5.0.0/lib/rouge/demos/janet +3 -0
  107. data/rouge-5.0.0/lib/rouge/demos/java +5 -0
  108. data/rouge-5.0.0/lib/rouge/demos/javascript +1 -0
  109. data/rouge-5.0.0/lib/rouge/demos/jinja +9 -0
  110. data/rouge-5.0.0/lib/rouge/demos/jsl +3 -0
  111. data/rouge-5.0.0/lib/rouge/demos/json +1 -0
  112. data/rouge-5.0.0/lib/rouge/demos/json-doc +1 -0
  113. data/rouge-5.0.0/lib/rouge/demos/json5 +12 -0
  114. data/rouge-5.0.0/lib/rouge/demos/jsonnet +28 -0
  115. data/rouge-5.0.0/lib/rouge/demos/jsp +29 -0
  116. data/rouge-5.0.0/lib/rouge/demos/jsx +17 -0
  117. data/rouge-5.0.0/lib/rouge/demos/julia +11 -0
  118. data/rouge-5.0.0/lib/rouge/demos/kick_assembler +14 -0
  119. data/rouge-5.0.0/lib/rouge/demos/kotlin +3 -0
  120. data/rouge-5.0.0/lib/rouge/demos/lasso +12 -0
  121. data/rouge-5.0.0/lib/rouge/demos/lean +8 -0
  122. data/rouge-5.0.0/lib/rouge/demos/liquid +10 -0
  123. data/rouge-5.0.0/lib/rouge/demos/literate_coffeescript +3 -0
  124. data/rouge-5.0.0/lib/rouge/demos/literate_haskell +7 -0
  125. data/rouge-5.0.0/lib/rouge/demos/livescript +15 -0
  126. data/rouge-5.0.0/lib/rouge/demos/llvm +20 -0
  127. data/rouge-5.0.0/lib/rouge/demos/lua +12 -0
  128. data/rouge-5.0.0/lib/rouge/demos/lustre +6 -0
  129. data/rouge-5.0.0/lib/rouge/demos/lutin +18 -0
  130. data/rouge-5.0.0/lib/rouge/demos/m68k +16 -0
  131. data/rouge-5.0.0/lib/rouge/demos/magik +6 -0
  132. data/rouge-5.0.0/lib/rouge/demos/make +6 -0
  133. data/rouge-5.0.0/lib/rouge/demos/markdown +4 -0
  134. data/rouge-5.0.0/lib/rouge/demos/mason +22 -0
  135. data/rouge-5.0.0/lib/rouge/demos/mathematica +8 -0
  136. data/rouge-5.0.0/lib/rouge/demos/matlab +6 -0
  137. data/rouge-5.0.0/lib/rouge/demos/meson +10 -0
  138. data/rouge-5.0.0/lib/rouge/demos/minizinc +23 -0
  139. data/rouge-5.0.0/lib/rouge/demos/mojo +10 -0
  140. data/rouge-5.0.0/lib/rouge/demos/moonscript +16 -0
  141. data/rouge-5.0.0/lib/rouge/demos/mosel +10 -0
  142. data/rouge-5.0.0/lib/rouge/demos/msgtrans +4 -0
  143. data/rouge-5.0.0/lib/rouge/demos/mxml +22 -0
  144. data/rouge-5.0.0/lib/rouge/demos/nasm +26 -0
  145. data/rouge-5.0.0/lib/rouge/demos/nesasm +11 -0
  146. data/rouge-5.0.0/lib/rouge/demos/nginx +5 -0
  147. data/rouge-5.0.0/lib/rouge/demos/nial +35 -0
  148. data/rouge-5.0.0/lib/rouge/demos/nim +27 -0
  149. data/rouge-5.0.0/lib/rouge/demos/nix +19 -0
  150. data/rouge-5.0.0/lib/rouge/demos/objective_c +18 -0
  151. data/rouge-5.0.0/lib/rouge/demos/objective_cpp +17 -0
  152. data/rouge-5.0.0/lib/rouge/demos/ocaml +12 -0
  153. data/rouge-5.0.0/lib/rouge/demos/ocl +4 -0
  154. data/rouge-5.0.0/lib/rouge/demos/openedge +4 -0
  155. data/rouge-5.0.0/lib/rouge/demos/opentype_feature_file +5 -0
  156. data/rouge-5.0.0/lib/rouge/demos/p4 +99 -0
  157. data/rouge-5.0.0/lib/rouge/demos/pascal +14 -0
  158. data/rouge-5.0.0/lib/rouge/demos/pdf +29 -0
  159. data/rouge-5.0.0/lib/rouge/demos/perl +5 -0
  160. data/rouge-5.0.0/lib/rouge/demos/php +3 -0
  161. data/rouge-5.0.0/lib/rouge/demos/plaintext +1 -0
  162. data/rouge-5.0.0/lib/rouge/demos/plist +11 -0
  163. data/rouge-5.0.0/lib/rouge/demos/plsql +2 -0
  164. data/rouge-5.0.0/lib/rouge/demos/pony +17 -0
  165. data/rouge-5.0.0/lib/rouge/demos/postscript +9 -0
  166. data/rouge-5.0.0/lib/rouge/demos/powershell +13 -0
  167. data/rouge-5.0.0/lib/rouge/demos/praat +26 -0
  168. data/rouge-5.0.0/lib/rouge/demos/prolog +9 -0
  169. data/rouge-5.0.0/lib/rouge/demos/prometheus +9 -0
  170. data/rouge-5.0.0/lib/rouge/demos/properties +7 -0
  171. data/rouge-5.0.0/lib/rouge/demos/protobuf +5 -0
  172. data/rouge-5.0.0/lib/rouge/demos/puppet +6 -0
  173. data/rouge-5.0.0/lib/rouge/demos/python +6 -0
  174. data/rouge-5.0.0/lib/rouge/demos/q +8 -0
  175. data/rouge-5.0.0/lib/rouge/demos/qml +9 -0
  176. data/rouge-5.0.0/lib/rouge/demos/r +8 -0
  177. data/rouge-5.0.0/lib/rouge/demos/racket +24 -0
  178. data/rouge-5.0.0/lib/rouge/demos/reasonml +12 -0
  179. data/rouge-5.0.0/lib/rouge/demos/rego +8 -0
  180. data/rouge-5.0.0/lib/rouge/demos/rescript +26 -0
  181. data/rouge-5.0.0/lib/rouge/demos/rml +33 -0
  182. data/rouge-5.0.0/lib/rouge/demos/robot_framework +27 -0
  183. data/rouge-5.0.0/lib/rouge/demos/rocq +16 -0
  184. data/rouge-5.0.0/lib/rouge/demos/ruby +9 -0
  185. data/rouge-5.0.0/lib/rouge/demos/rust +12 -0
  186. data/rouge-5.0.0/lib/rouge/demos/sas +13 -0
  187. data/rouge-5.0.0/lib/rouge/demos/sass +3 -0
  188. data/rouge-5.0.0/lib/rouge/demos/scala +3 -0
  189. data/rouge-5.0.0/lib/rouge/demos/scheme +4 -0
  190. data/rouge-5.0.0/lib/rouge/demos/scss +5 -0
  191. data/rouge-5.0.0/lib/rouge/demos/sed +4 -0
  192. data/rouge-5.0.0/lib/rouge/demos/shell +2 -0
  193. data/rouge-5.0.0/lib/rouge/demos/sieve +10 -0
  194. data/rouge-5.0.0/lib/rouge/demos/slice +10 -0
  195. data/rouge-5.0.0/lib/rouge/demos/slim +17 -0
  196. data/rouge-5.0.0/lib/rouge/demos/smalltalk +6 -0
  197. data/rouge-5.0.0/lib/rouge/demos/smarty +11 -0
  198. data/rouge-5.0.0/lib/rouge/demos/sml +4 -0
  199. data/rouge-5.0.0/lib/rouge/demos/sparql +6 -0
  200. data/rouge-5.0.0/lib/rouge/demos/sqf +14 -0
  201. data/rouge-5.0.0/lib/rouge/demos/sql +1 -0
  202. data/rouge-5.0.0/lib/rouge/demos/ssh +4 -0
  203. data/rouge-5.0.0/lib/rouge/demos/stan +13 -0
  204. data/rouge-5.0.0/lib/rouge/demos/stata +14 -0
  205. data/rouge-5.0.0/lib/rouge/demos/supercollider +11 -0
  206. data/rouge-5.0.0/lib/rouge/demos/svelte +29 -0
  207. data/rouge-5.0.0/lib/rouge/demos/swift +5 -0
  208. data/rouge-5.0.0/lib/rouge/demos/systemd +4 -0
  209. data/rouge-5.0.0/lib/rouge/demos/syzlang +15 -0
  210. data/rouge-5.0.0/lib/rouge/demos/syzprog +8 -0
  211. data/rouge-5.0.0/lib/rouge/demos/tap +5 -0
  212. data/rouge-5.0.0/lib/rouge/demos/tcl +1 -0
  213. data/rouge-5.0.0/lib/rouge/demos/terraform +16 -0
  214. data/rouge-5.0.0/lib/rouge/demos/tex +1 -0
  215. data/rouge-5.0.0/lib/rouge/demos/thrift +15 -0
  216. data/rouge-5.0.0/lib/rouge/demos/toml +9 -0
  217. data/rouge-5.0.0/lib/rouge/demos/tsx +17 -0
  218. data/rouge-5.0.0/lib/rouge/demos/ttcn3 +6 -0
  219. data/rouge-5.0.0/lib/rouge/demos/tulip +13 -0
  220. data/rouge-5.0.0/lib/rouge/demos/turtle +26 -0
  221. data/rouge-5.0.0/lib/rouge/demos/twig +9 -0
  222. data/rouge-5.0.0/lib/rouge/demos/typescript +1 -0
  223. data/rouge-5.0.0/lib/rouge/demos/vala +8 -0
  224. data/rouge-5.0.0/lib/rouge/demos/vb +4 -0
  225. data/rouge-5.0.0/lib/rouge/demos/vcl +12 -0
  226. data/rouge-5.0.0/lib/rouge/demos/velocity +9 -0
  227. data/rouge-5.0.0/lib/rouge/demos/verilog +27 -0
  228. data/rouge-5.0.0/lib/rouge/demos/veryl +24 -0
  229. data/rouge-5.0.0/lib/rouge/demos/vhdl +23 -0
  230. data/rouge-5.0.0/lib/rouge/demos/viml +14 -0
  231. data/rouge-5.0.0/lib/rouge/demos/vue +11 -0
  232. data/rouge-5.0.0/lib/rouge/demos/wollok +11 -0
  233. data/rouge-5.0.0/lib/rouge/demos/xml +2 -0
  234. data/rouge-5.0.0/lib/rouge/demos/xojo +14 -0
  235. data/rouge-5.0.0/lib/rouge/demos/xpath +2 -0
  236. data/rouge-5.0.0/lib/rouge/demos/xquery +22 -0
  237. data/rouge-5.0.0/lib/rouge/demos/yaml +4 -0
  238. data/rouge-5.0.0/lib/rouge/demos/yang +17 -0
  239. data/rouge-5.0.0/lib/rouge/demos/zig +6 -0
  240. data/rouge-5.0.0/lib/rouge/eager.rb +3 -0
  241. data/rouge-5.0.0/lib/rouge/formatter.rb +112 -0
  242. data/rouge-5.0.0/lib/rouge/formatters/html.rb +64 -0
  243. data/rouge-5.0.0/lib/rouge/formatters/html_debug.rb +16 -0
  244. data/rouge-5.0.0/lib/rouge/formatters/html_inline.rb +30 -0
  245. data/rouge-5.0.0/lib/rouge/formatters/html_legacy.rb +56 -0
  246. data/rouge-5.0.0/lib/rouge/formatters/html_legacy_table.rb +57 -0
  247. data/rouge-5.0.0/lib/rouge/formatters/html_line_highlighter.rb +31 -0
  248. data/rouge-5.0.0/lib/rouge/formatters/html_line_table.rb +56 -0
  249. data/rouge-5.0.0/lib/rouge/formatters/html_linewise.rb +31 -0
  250. data/rouge-5.0.0/lib/rouge/formatters/html_pygments.rb +23 -0
  251. data/rouge-5.0.0/lib/rouge/formatters/html_table.rb +77 -0
  252. data/rouge-5.0.0/lib/rouge/formatters/null.rb +20 -0
  253. data/rouge-5.0.0/lib/rouge/formatters/terminal256.rb +198 -0
  254. data/rouge-5.0.0/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  255. data/rouge-5.0.0/lib/rouge/formatters/tex.rb +92 -0
  256. data/rouge-5.0.0/lib/rouge/guesser.rb +57 -0
  257. data/rouge-5.0.0/lib/rouge/guessers/disambiguation.rb +172 -0
  258. data/rouge-5.0.0/lib/rouge/guessers/filename.rb +27 -0
  259. data/rouge-5.0.0/lib/rouge/guessers/glob_mapping.rb +45 -0
  260. data/rouge-5.0.0/lib/rouge/guessers/mimetype.rb +16 -0
  261. data/rouge-5.0.0/lib/rouge/guessers/modeline.rb +46 -0
  262. data/rouge-5.0.0/lib/rouge/guessers/source.rb +31 -0
  263. data/rouge-5.0.0/lib/rouge/guessers/util.rb +34 -0
  264. data/rouge-5.0.0/lib/rouge/lexer.rb +556 -0
  265. data/rouge-5.0.0/lib/rouge/lexers/abap/builtins.rb +187 -0
  266. data/rouge-5.0.0/lib/rouge/lexers/abap.rb +132 -0
  267. data/rouge-5.0.0/lib/rouge/lexers/actionscript.rb +196 -0
  268. data/rouge-5.0.0/lib/rouge/lexers/ada.rb +162 -0
  269. data/rouge-5.0.0/lib/rouge/lexers/apache/keywords.rb +16 -0
  270. data/rouge-5.0.0/lib/rouge/lexers/apache.rb +84 -0
  271. data/rouge-5.0.0/lib/rouge/lexers/apex.rb +128 -0
  272. data/rouge-5.0.0/lib/rouge/lexers/apiblueprint.rb +49 -0
  273. data/rouge-5.0.0/lib/rouge/lexers/apple_script.rb +370 -0
  274. data/rouge-5.0.0/lib/rouge/lexers/armasm.rb +145 -0
  275. data/rouge-5.0.0/lib/rouge/lexers/augeas.rb +93 -0
  276. data/rouge-5.0.0/lib/rouge/lexers/awk.rb +162 -0
  277. data/rouge-5.0.0/lib/rouge/lexers/batchfile.rb +165 -0
  278. data/rouge-5.0.0/lib/rouge/lexers/bbcbasic.rb +112 -0
  279. data/rouge-5.0.0/lib/rouge/lexers/bibtex.rb +115 -0
  280. data/rouge-5.0.0/lib/rouge/lexers/bicep.rb +111 -0
  281. data/rouge-5.0.0/lib/rouge/lexers/biml.rb +70 -0
  282. data/rouge-5.0.0/lib/rouge/lexers/bpf.rb +118 -0
  283. data/rouge-5.0.0/lib/rouge/lexers/brainfuck.rb +54 -0
  284. data/rouge-5.0.0/lib/rouge/lexers/brightscript.rb +146 -0
  285. data/rouge-5.0.0/lib/rouge/lexers/bsl.rb +82 -0
  286. data/rouge-5.0.0/lib/rouge/lexers/c.rb +204 -0
  287. data/rouge-5.0.0/lib/rouge/lexers/ceylon.rb +96 -0
  288. data/rouge-5.0.0/lib/rouge/lexers/cfscript.rb +154 -0
  289. data/rouge-5.0.0/lib/rouge/lexers/cisco_ios.rb +83 -0
  290. data/rouge-5.0.0/lib/rouge/lexers/clean.rb +156 -0
  291. data/rouge-5.0.0/lib/rouge/lexers/clojure.rb +113 -0
  292. data/rouge-5.0.0/lib/rouge/lexers/cmake.rb +218 -0
  293. data/rouge-5.0.0/lib/rouge/lexers/cmhg.rb +34 -0
  294. data/rouge-5.0.0/lib/rouge/lexers/cobol.rb +137 -0
  295. data/rouge-5.0.0/lib/rouge/lexers/codeowners.rb +30 -0
  296. data/rouge-5.0.0/lib/rouge/lexers/coffeescript.rb +215 -0
  297. data/rouge-5.0.0/lib/rouge/lexers/common_lisp.rb +346 -0
  298. data/rouge-5.0.0/lib/rouge/lexers/conf.rb +25 -0
  299. data/rouge-5.0.0/lib/rouge/lexers/console.rb +196 -0
  300. data/rouge-5.0.0/lib/rouge/lexers/cpp.rb +102 -0
  301. data/rouge-5.0.0/lib/rouge/lexers/crystal.rb +435 -0
  302. data/rouge-5.0.0/lib/rouge/lexers/csharp.rb +118 -0
  303. data/rouge-5.0.0/lib/rouge/lexers/css.rb +337 -0
  304. data/rouge-5.0.0/lib/rouge/lexers/csvs.rb +44 -0
  305. data/rouge-5.0.0/lib/rouge/lexers/cuda.rb +35 -0
  306. data/rouge-5.0.0/lib/rouge/lexers/cypher.rb +116 -0
  307. data/rouge-5.0.0/lib/rouge/lexers/cython.rb +127 -0
  308. data/rouge-5.0.0/lib/rouge/lexers/d.rb +177 -0
  309. data/rouge-5.0.0/lib/rouge/lexers/dafny.rb +128 -0
  310. data/rouge-5.0.0/lib/rouge/lexers/dart.rb +108 -0
  311. data/rouge-5.0.0/lib/rouge/lexers/datastudio.rb +138 -0
  312. data/rouge-5.0.0/lib/rouge/lexers/diff.rb +47 -0
  313. data/rouge-5.0.0/lib/rouge/lexers/digdag.rb +69 -0
  314. data/rouge-5.0.0/lib/rouge/lexers/docker.rb +55 -0
  315. data/rouge-5.0.0/lib/rouge/lexers/dot.rb +70 -0
  316. data/rouge-5.0.0/lib/rouge/lexers/dylan.rb +109 -0
  317. data/rouge-5.0.0/lib/rouge/lexers/ecl.rb +175 -0
  318. data/rouge-5.0.0/lib/rouge/lexers/eex.rb +52 -0
  319. data/rouge-5.0.0/lib/rouge/lexers/eiffel.rb +65 -0
  320. data/rouge-5.0.0/lib/rouge/lexers/elixir.rb +158 -0
  321. data/rouge-5.0.0/lib/rouge/lexers/elm.rb +90 -0
  322. data/rouge-5.0.0/lib/rouge/lexers/email.rb +39 -0
  323. data/rouge-5.0.0/lib/rouge/lexers/epp.rb +51 -0
  324. data/rouge-5.0.0/lib/rouge/lexers/erb.rb +53 -0
  325. data/rouge-5.0.0/lib/rouge/lexers/erlang.rb +115 -0
  326. data/rouge-5.0.0/lib/rouge/lexers/escape.rb +58 -0
  327. data/rouge-5.0.0/lib/rouge/lexers/factor.rb +303 -0
  328. data/rouge-5.0.0/lib/rouge/lexers/fluent.rb +74 -0
  329. data/rouge-5.0.0/lib/rouge/lexers/fortran.rb +178 -0
  330. data/rouge-5.0.0/lib/rouge/lexers/freefem.rb +240 -0
  331. data/rouge-5.0.0/lib/rouge/lexers/fsharp.rb +120 -0
  332. data/rouge-5.0.0/lib/rouge/lexers/gdscript.rb +171 -0
  333. data/rouge-5.0.0/lib/rouge/lexers/ghc_cmm.rb +340 -0
  334. data/rouge-5.0.0/lib/rouge/lexers/ghc_core.rb +152 -0
  335. data/rouge-5.0.0/lib/rouge/lexers/gherkin/keywords.rb +23 -0
  336. data/rouge-5.0.0/lib/rouge/lexers/gherkin.rb +142 -0
  337. data/rouge-5.0.0/lib/rouge/lexers/gjs.rb +39 -0
  338. data/rouge-5.0.0/lib/rouge/lexers/glsl/builtins.rb +17 -0
  339. data/rouge-5.0.0/lib/rouge/lexers/glsl.rb +69 -0
  340. data/rouge-5.0.0/lib/rouge/lexers/go.rb +177 -0
  341. data/rouge-5.0.0/lib/rouge/lexers/gradle.rb +38 -0
  342. data/rouge-5.0.0/lib/rouge/lexers/graphql.rb +261 -0
  343. data/rouge-5.0.0/lib/rouge/lexers/groovy.rb +119 -0
  344. data/rouge-5.0.0/lib/rouge/lexers/gts.rb +39 -0
  345. data/rouge-5.0.0/lib/rouge/lexers/hack.rb +47 -0
  346. data/rouge-5.0.0/lib/rouge/lexers/haml.rb +226 -0
  347. data/rouge-5.0.0/lib/rouge/lexers/handlebars.rb +91 -0
  348. data/rouge-5.0.0/lib/rouge/lexers/haskell.rb +207 -0
  349. data/rouge-5.0.0/lib/rouge/lexers/haxe.rb +265 -0
  350. data/rouge-5.0.0/lib/rouge/lexers/hcl.rb +166 -0
  351. data/rouge-5.0.0/lib/rouge/lexers/hlsl.rb +166 -0
  352. data/rouge-5.0.0/lib/rouge/lexers/hocon.rb +86 -0
  353. data/rouge-5.0.0/lib/rouge/lexers/hql.rb +135 -0
  354. data/rouge-5.0.0/lib/rouge/lexers/html.rb +141 -0
  355. data/rouge-5.0.0/lib/rouge/lexers/http.rb +87 -0
  356. data/rouge-5.0.0/lib/rouge/lexers/hylang.rb +93 -0
  357. data/rouge-5.0.0/lib/rouge/lexers/idlang.rb +312 -0
  358. data/rouge-5.0.0/lib/rouge/lexers/idris.rb +210 -0
  359. data/rouge-5.0.0/lib/rouge/lexers/iecst.rb +92 -0
  360. data/rouge-5.0.0/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
  361. data/rouge-5.0.0/lib/rouge/lexers/igorpro.rb +193 -0
  362. data/rouge-5.0.0/lib/rouge/lexers/ini.rb +56 -0
  363. data/rouge-5.0.0/lib/rouge/lexers/io.rb +69 -0
  364. data/rouge-5.0.0/lib/rouge/lexers/irb.rb +73 -0
  365. data/rouge-5.0.0/lib/rouge/lexers/isabelle.rb +251 -0
  366. data/rouge-5.0.0/lib/rouge/lexers/isbl.rb +61 -0
  367. data/rouge-5.0.0/lib/rouge/lexers/j.rb +244 -0
  368. data/rouge-5.0.0/lib/rouge/lexers/janet.rb +218 -0
  369. data/rouge-5.0.0/lib/rouge/lexers/java.rb +92 -0
  370. data/rouge-5.0.0/lib/rouge/lexers/javascript.rb +315 -0
  371. data/rouge-5.0.0/lib/rouge/lexers/jinja.rb +169 -0
  372. data/rouge-5.0.0/lib/rouge/lexers/jsl.rb +66 -0
  373. data/rouge-5.0.0/lib/rouge/lexers/json.rb +72 -0
  374. data/rouge-5.0.0/lib/rouge/lexers/json5.rb +74 -0
  375. data/rouge-5.0.0/lib/rouge/lexers/json_doc.rb +26 -0
  376. data/rouge-5.0.0/lib/rouge/lexers/jsonnet.rb +153 -0
  377. data/rouge-5.0.0/lib/rouge/lexers/jsp.rb +119 -0
  378. data/rouge-5.0.0/lib/rouge/lexers/jsx.rb +91 -0
  379. data/rouge-5.0.0/lib/rouge/lexers/julia.rb +293 -0
  380. data/rouge-5.0.0/lib/rouge/lexers/kick_assembler.rb +100 -0
  381. data/rouge-5.0.0/lib/rouge/lexers/kotlin.rb +150 -0
  382. data/rouge-5.0.0/lib/rouge/lexers/lasso/keywords.rb +20 -0
  383. data/rouge-5.0.0/lib/rouge/lexers/lasso.rb +212 -0
  384. data/rouge-5.0.0/lib/rouge/lexers/lean.rb +164 -0
  385. data/rouge-5.0.0/lib/rouge/lexers/liquid.rb +284 -0
  386. data/rouge-5.0.0/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  387. data/rouge-5.0.0/lib/rouge/lexers/literate_haskell.rb +37 -0
  388. data/rouge-5.0.0/lib/rouge/lexers/livescript.rb +310 -0
  389. data/rouge-5.0.0/lib/rouge/lexers/llvm/keywords.rb +16 -0
  390. data/rouge-5.0.0/lib/rouge/lexers/llvm.rb +59 -0
  391. data/rouge-5.0.0/lib/rouge/lexers/lua/keywords.rb +26 -0
  392. data/rouge-5.0.0/lib/rouge/lexers/lua.rb +186 -0
  393. data/rouge-5.0.0/lib/rouge/lexers/lustre.rb +79 -0
  394. data/rouge-5.0.0/lib/rouge/lexers/lutin.rb +34 -0
  395. data/rouge-5.0.0/lib/rouge/lexers/m68k.rb +143 -0
  396. data/rouge-5.0.0/lib/rouge/lexers/magik.rb +127 -0
  397. data/rouge-5.0.0/lib/rouge/lexers/make.rb +148 -0
  398. data/rouge-5.0.0/lib/rouge/lexers/markdown.rb +183 -0
  399. data/rouge-5.0.0/lib/rouge/lexers/mason.rb +110 -0
  400. data/rouge-5.0.0/lib/rouge/lexers/mathematica/keywords.rb +15 -0
  401. data/rouge-5.0.0/lib/rouge/lexers/mathematica.rb +95 -0
  402. data/rouge-5.0.0/lib/rouge/lexers/matlab/keywords.rb +15 -0
  403. data/rouge-5.0.0/lib/rouge/lexers/matlab.rb +81 -0
  404. data/rouge-5.0.0/lib/rouge/lexers/meson.rb +158 -0
  405. data/rouge-5.0.0/lib/rouge/lexers/minizinc.rb +87 -0
  406. data/rouge-5.0.0/lib/rouge/lexers/mojo.rb +39 -0
  407. data/rouge-5.0.0/lib/rouge/lexers/moonscript.rb +117 -0
  408. data/rouge-5.0.0/lib/rouge/lexers/mosel.rb +228 -0
  409. data/rouge-5.0.0/lib/rouge/lexers/msgtrans.rb +26 -0
  410. data/rouge-5.0.0/lib/rouge/lexers/mxml.rb +69 -0
  411. data/rouge-5.0.0/lib/rouge/lexers/nasm.rb +73 -0
  412. data/rouge-5.0.0/lib/rouge/lexers/nesasm.rb +78 -0
  413. data/rouge-5.0.0/lib/rouge/lexers/nginx.rb +73 -0
  414. data/rouge-5.0.0/lib/rouge/lexers/nial.rb +165 -0
  415. data/rouge-5.0.0/lib/rouge/lexers/nim.rb +154 -0
  416. data/rouge-5.0.0/lib/rouge/lexers/nix.rb +213 -0
  417. data/rouge-5.0.0/lib/rouge/lexers/objective_c/common.rb +182 -0
  418. data/rouge-5.0.0/lib/rouge/lexers/objective_c.rb +21 -0
  419. data/rouge-5.0.0/lib/rouge/lexers/objective_cpp.rb +32 -0
  420. data/rouge-5.0.0/lib/rouge/lexers/ocaml/common.rb +53 -0
  421. data/rouge-5.0.0/lib/rouge/lexers/ocaml.rb +65 -0
  422. data/rouge-5.0.0/lib/rouge/lexers/ocl.rb +84 -0
  423. data/rouge-5.0.0/lib/rouge/lexers/openedge.rb +632 -0
  424. data/rouge-5.0.0/lib/rouge/lexers/opentype_feature_file.rb +97 -0
  425. data/rouge-5.0.0/lib/rouge/lexers/p4.rb +81 -0
  426. data/rouge-5.0.0/lib/rouge/lexers/pascal.rb +68 -0
  427. data/rouge-5.0.0/lib/rouge/lexers/pdf.rb +109 -0
  428. data/rouge-5.0.0/lib/rouge/lexers/perl.rb +251 -0
  429. data/rouge-5.0.0/lib/rouge/lexers/php/keywords.rb +150 -0
  430. data/rouge-5.0.0/lib/rouge/lexers/php.rb +470 -0
  431. data/rouge-5.0.0/lib/rouge/lexers/plain_text.rb +27 -0
  432. data/rouge-5.0.0/lib/rouge/lexers/plist.rb +47 -0
  433. data/rouge-5.0.0/lib/rouge/lexers/plsql.rb +577 -0
  434. data/rouge-5.0.0/lib/rouge/lexers/pony.rb +94 -0
  435. data/rouge-5.0.0/lib/rouge/lexers/postscript.rb +93 -0
  436. data/rouge-5.0.0/lib/rouge/lexers/powershell.rb +248 -0
  437. data/rouge-5.0.0/lib/rouge/lexers/praat.rb +438 -0
  438. data/rouge-5.0.0/lib/rouge/lexers/prolog.rb +67 -0
  439. data/rouge-5.0.0/lib/rouge/lexers/prometheus.rb +122 -0
  440. data/rouge-5.0.0/lib/rouge/lexers/properties.rb +52 -0
  441. data/rouge-5.0.0/lib/rouge/lexers/protobuf.rb +71 -0
  442. data/rouge-5.0.0/lib/rouge/lexers/puppet.rb +129 -0
  443. data/rouge-5.0.0/lib/rouge/lexers/python.rb +340 -0
  444. data/rouge-5.0.0/lib/rouge/lexers/q.rb +125 -0
  445. data/rouge-5.0.0/lib/rouge/lexers/qml.rb +74 -0
  446. data/rouge-5.0.0/lib/rouge/lexers/r.rb +89 -0
  447. data/rouge-5.0.0/lib/rouge/lexers/racket.rb +568 -0
  448. data/rouge-5.0.0/lib/rouge/lexers/reasonml.rb +66 -0
  449. data/rouge-5.0.0/lib/rouge/lexers/rego.rb +60 -0
  450. data/rouge-5.0.0/lib/rouge/lexers/rescript.rb +119 -0
  451. data/rouge-5.0.0/lib/rouge/lexers/rml.rb +142 -0
  452. data/rouge-5.0.0/lib/rouge/lexers/robot_framework.rb +249 -0
  453. data/rouge-5.0.0/lib/rouge/lexers/rocq.rb +264 -0
  454. data/rouge-5.0.0/lib/rouge/lexers/ruby.rb +481 -0
  455. data/rouge-5.0.0/lib/rouge/lexers/rust.rb +261 -0
  456. data/rouge-5.0.0/lib/rouge/lexers/sas.rb +562 -0
  457. data/rouge-5.0.0/lib/rouge/lexers/sass/common.rb +182 -0
  458. data/rouge-5.0.0/lib/rouge/lexers/sass.rb +75 -0
  459. data/rouge-5.0.0/lib/rouge/lexers/scala.rb +172 -0
  460. data/rouge-5.0.0/lib/rouge/lexers/scheme.rb +113 -0
  461. data/rouge-5.0.0/lib/rouge/lexers/scss.rb +35 -0
  462. data/rouge-5.0.0/lib/rouge/lexers/sed.rb +173 -0
  463. data/rouge-5.0.0/lib/rouge/lexers/shell.rb +205 -0
  464. data/rouge-5.0.0/lib/rouge/lexers/sieve.rb +97 -0
  465. data/rouge-5.0.0/lib/rouge/lexers/slice.rb +32 -0
  466. data/rouge-5.0.0/lib/rouge/lexers/slim.rb +229 -0
  467. data/rouge-5.0.0/lib/rouge/lexers/smalltalk.rb +117 -0
  468. data/rouge-5.0.0/lib/rouge/lexers/smarty.rb +81 -0
  469. data/rouge-5.0.0/lib/rouge/lexers/sml.rb +345 -0
  470. data/rouge-5.0.0/lib/rouge/lexers/sparql.rb +131 -0
  471. data/rouge-5.0.0/lib/rouge/lexers/sqf/keywords.rb +14 -0
  472. data/rouge-5.0.0/lib/rouge/lexers/sqf.rb +108 -0
  473. data/rouge-5.0.0/lib/rouge/lexers/sql.rb +161 -0
  474. data/rouge-5.0.0/lib/rouge/lexers/ssh.rb +33 -0
  475. data/rouge-5.0.0/lib/rouge/lexers/stan.rb +445 -0
  476. data/rouge-5.0.0/lib/rouge/lexers/stata.rb +165 -0
  477. data/rouge-5.0.0/lib/rouge/lexers/supercollider.rb +115 -0
  478. data/rouge-5.0.0/lib/rouge/lexers/svelte.rb +91 -0
  479. data/rouge-5.0.0/lib/rouge/lexers/swift.rb +202 -0
  480. data/rouge-5.0.0/lib/rouge/lexers/systemd.rb +34 -0
  481. data/rouge-5.0.0/lib/rouge/lexers/syzlang.rb +316 -0
  482. data/rouge-5.0.0/lib/rouge/lexers/syzprog.rb +122 -0
  483. data/rouge-5.0.0/lib/rouge/lexers/tap.rb +88 -0
  484. data/rouge-5.0.0/lib/rouge/lexers/tcl.rb +198 -0
  485. data/rouge-5.0.0/lib/rouge/lexers/terraform.rb +121 -0
  486. data/rouge-5.0.0/lib/rouge/lexers/tex.rb +70 -0
  487. data/rouge-5.0.0/lib/rouge/lexers/thrift.rb +120 -0
  488. data/rouge-5.0.0/lib/rouge/lexers/toml.rb +124 -0
  489. data/rouge-5.0.0/lib/rouge/lexers/tsx.rb +33 -0
  490. data/rouge-5.0.0/lib/rouge/lexers/ttcn3.rb +117 -0
  491. data/rouge-5.0.0/lib/rouge/lexers/tulip.rb +107 -0
  492. data/rouge-5.0.0/lib/rouge/lexers/turtle.rb +61 -0
  493. data/rouge-5.0.0/lib/rouge/lexers/twig.rb +40 -0
  494. data/rouge-5.0.0/lib/rouge/lexers/typescript/common.rb +60 -0
  495. data/rouge-5.0.0/lib/rouge/lexers/typescript.rb +23 -0
  496. data/rouge-5.0.0/lib/rouge/lexers/vala.rb +78 -0
  497. data/rouge-5.0.0/lib/rouge/lexers/varnish.rb +168 -0
  498. data/rouge-5.0.0/lib/rouge/lexers/vb.rb +165 -0
  499. data/rouge-5.0.0/lib/rouge/lexers/velocity.rb +71 -0
  500. data/rouge-5.0.0/lib/rouge/lexers/verilog.rb +163 -0
  501. data/rouge-5.0.0/lib/rouge/lexers/veryl.rb +109 -0
  502. data/rouge-5.0.0/lib/rouge/lexers/vhdl.rb +98 -0
  503. data/rouge-5.0.0/lib/rouge/lexers/viml/keywords.rb +19 -0
  504. data/rouge-5.0.0/lib/rouge/lexers/viml.rb +68 -0
  505. data/rouge-5.0.0/lib/rouge/lexers/vue.rb +127 -0
  506. data/rouge-5.0.0/lib/rouge/lexers/wollok.rb +107 -0
  507. data/rouge-5.0.0/lib/rouge/lexers/xml.rb +56 -0
  508. data/rouge-5.0.0/lib/rouge/lexers/xojo.rb +61 -0
  509. data/rouge-5.0.0/lib/rouge/lexers/xpath.rb +332 -0
  510. data/rouge-5.0.0/lib/rouge/lexers/xquery.rb +146 -0
  511. data/rouge-5.0.0/lib/rouge/lexers/yaml.rb +388 -0
  512. data/rouge-5.0.0/lib/rouge/lexers/yang.rb +115 -0
  513. data/rouge-5.0.0/lib/rouge/lexers/zig.rb +139 -0
  514. data/rouge-5.0.0/lib/rouge/plugins/redcarpet.rb +38 -0
  515. data/rouge-5.0.0/lib/rouge/regex_lexer.rb +522 -0
  516. data/rouge-5.0.0/lib/rouge/template_lexer.rb +21 -0
  517. data/rouge-5.0.0/lib/rouge/tex_theme_renderer.rb +132 -0
  518. data/rouge-5.0.0/lib/rouge/text_analyzer.rb +50 -0
  519. data/rouge-5.0.0/lib/rouge/theme.rb +218 -0
  520. data/rouge-5.0.0/lib/rouge/themes/base16.rb +137 -0
  521. data/rouge-5.0.0/lib/rouge/themes/bw.rb +43 -0
  522. data/rouge-5.0.0/lib/rouge/themes/colorful.rb +70 -0
  523. data/rouge-5.0.0/lib/rouge/themes/github.rb +149 -0
  524. data/rouge-5.0.0/lib/rouge/themes/gruvbox.rb +176 -0
  525. data/rouge-5.0.0/lib/rouge/themes/igor_pro.rb +25 -0
  526. data/rouge-5.0.0/lib/rouge/themes/magritte.rb +80 -0
  527. data/rouge-5.0.0/lib/rouge/themes/molokai.rb +84 -0
  528. data/rouge-5.0.0/lib/rouge/themes/monokai.rb +95 -0
  529. data/rouge-5.0.0/lib/rouge/themes/monokai_sublime.rb +94 -0
  530. data/rouge-5.0.0/lib/rouge/themes/pastie.rb +72 -0
  531. data/rouge-5.0.0/lib/rouge/themes/thankful_eyes.rb +77 -0
  532. data/rouge-5.0.0/lib/rouge/themes/tulip.rb +72 -0
  533. data/rouge-5.0.0/lib/rouge/token.rb +192 -0
  534. data/rouge-5.0.0/lib/rouge/util.rb +102 -0
  535. data/rouge-5.0.0/lib/rouge/version.rb +8 -0
  536. data/rouge-5.0.0/lib/rouge.rb +117 -0
  537. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
  538. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
  539. data/rouge-5.0.0/rouge.gemspec +29 -0
  540. metadata +578 -0
@@ -0,0 +1,21 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ # @abstract
6
+ # A TemplateLexer is one that accepts a :parent option, to specify
7
+ # which language is being templated. The lexer class can specify its
8
+ # own default for the parent lexer, which is otherwise defaulted to
9
+ # HTML.
10
+ class TemplateLexer < RegexLexer
11
+ # the parent lexer - the one being templated.
12
+ def parent
13
+ return @parent if instance_variable_defined? :@parent
14
+ @parent = lexer_option(:parent) || Lexers::HTML.new(@options)
15
+ end
16
+
17
+ option :parent, "the parent language (default: html)"
18
+
19
+ start { parent.reset! }
20
+ end
21
+ end
@@ -0,0 +1,132 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ class TexThemeRenderer
6
+ def initialize(theme, opts={})
7
+ @theme = theme
8
+ @prefix = opts.fetch(:prefix) { 'RG' }
9
+ end
10
+
11
+ # Our general strategy is this:
12
+ #
13
+ # * First, define the \RG{tokname}{content} command, which will
14
+ # expand into \RG@tok@tokname{content}. We use \csname...\endcsname
15
+ # to interpolate into a command.
16
+ #
17
+ # * Define the default RG* environment, which will enclose the whole
18
+ # thing. By default this will simply set \ttfamily (select monospace font)
19
+ # but it can be overridden with \renewcommand by the user to be
20
+ # any other formatting.
21
+ #
22
+ # * Define all the colors using xcolors \definecolor command. First we define
23
+ # every palette color with a name such as RG@palette@themneame@colorname.
24
+ # Then we find all foreground and background colors that have literal html
25
+ # colors embedded in them and define them with names such as
26
+ # RG@palette@themename@000000. While html allows three-letter colors such
27
+ # as #FFF, xcolor requires all six characters to be present, so we make sure
28
+ # to normalize that as well as the case convention in #inline_name.
29
+ #
30
+ # * Define the token commands RG@tok@xx. These will take the content as the
31
+ # argument and format it according to the theme, referring to the color
32
+ # in the palette.
33
+ def render(&b)
34
+ yield <<'END'.gsub('RG', @prefix)
35
+ \makeatletter
36
+ \def\RG#1#2{\csname RG@tok@#1\endcsname{#2}}%
37
+ \newenvironment{RG*}{\ttfamily}{\relax}%
38
+ END
39
+
40
+ base = @theme.class.base_style
41
+ yield "\\definecolor{#{@prefix}@fgcolor}{HTML}{#{inline_name(base.fg || '#000000')}}"
42
+ yield "\\definecolor{#{@prefix}@bgcolor}{HTML}{#{inline_name(base.bg || '#FFFFFF')}}"
43
+
44
+ render_palette(@theme.palette, &b)
45
+
46
+ @theme.styles.each do |tok, style|
47
+ render_inline_pallete(style, &b)
48
+ end
49
+
50
+ Token.each_token do |tok|
51
+ style = @theme.class.get_own_style(tok)
52
+ style ? render_style(tok, style, &b) : render_blank(tok, &b)
53
+ end
54
+ yield '\makeatother'
55
+ end
56
+
57
+ def render_palette(palette, &b)
58
+ palette.each do |name, color|
59
+ hex = inline_name(color)
60
+
61
+ yield "\\definecolor{#{palette_name(name)}}{HTML}{#{hex}}%"
62
+ end
63
+ end
64
+
65
+ def render_inline_pallete(style, &b)
66
+ gen_inline(style[:fg], &b)
67
+ gen_inline(style[:bg], &b)
68
+ end
69
+
70
+ def inline_name(color)
71
+ color =~ /^#(\h+)/ or return nil
72
+
73
+ # xcolor does not support 3-character HTML colors,
74
+ # so we convert them here
75
+ case $1.size
76
+ when 6
77
+ $1
78
+ when 3
79
+ # duplicate every character: abc -> aabbcc
80
+ $1.gsub(/\h/, '\0\0')
81
+ else
82
+ raise "invalid HTML color: #{$1}"
83
+ end.upcase
84
+ end
85
+
86
+ def gen_inline(name, &b)
87
+ # detect inline colors
88
+ hex = inline_name(name)
89
+ return unless hex
90
+
91
+ @gen_inline ||= {}
92
+ @gen_inline[hex] ||= begin
93
+ yield "\\definecolor{#{palette_name(hex)}}{HTML}{#{hex}}%"
94
+ end
95
+ end
96
+
97
+ def camelize(name)
98
+ name.gsub(/_(.)/) { $1.upcase }
99
+ end
100
+
101
+ def palette_name(name)
102
+ name = inline_name(name) || name.to_s
103
+
104
+ "#{@prefix}@palette@#{camelize(@theme.name)}@#{camelize(name.to_s)}"
105
+ end
106
+
107
+ def token_name(tok)
108
+ "\\csname #@prefix@tok@#{tok.shortname}\\endcsname"
109
+ end
110
+
111
+ def render_blank(tok, &b)
112
+ "\\expandafter\\def#{token_name(tok)}#1{#1}"
113
+ end
114
+
115
+ def render_style(tok, style, &b)
116
+ out = String.new('')
117
+ out << "\\expandafter\\def#{token_name(tok)}#1{"
118
+ out << "\\fboxsep=0pt\\colorbox{#{palette_name(style[:bg])}}{" if style[:bg]
119
+ out << '\\textbf{' if style[:bold]
120
+ out << '\\textit{' if style[:italic]
121
+ out << "\\textcolor{#{palette_name(style[:fg])}}{" if style[:fg]
122
+ out << "#1"
123
+ # close the right number of curlies
124
+ out << "}" if style[:bold]
125
+ out << "}" if style[:italic]
126
+ out << "}" if style[:fg]
127
+ out << "}" if style[:bg]
128
+ out << "}%"
129
+ yield out
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,50 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ class TextAnalyzer < String
6
+ # Find a shebang. Returns nil if no shebang is present.
7
+ def shebang
8
+ return @shebang if instance_variable_defined? :@shebang
9
+
10
+ self =~ /\A\s*#!(.*)$/
11
+ @shebang = $1
12
+ end
13
+
14
+ # Check if the given shebang is present.
15
+ #
16
+ # This normalizes things so that `text.shebang?('bash')` will detect
17
+ # `#!/bash`, '#!/bin/bash', '#!/usr/bin/env bash', and '#!/bin/bash -x'
18
+ def shebang?(match)
19
+ return false unless shebang
20
+ match = /\b#{match}(\s|$)/
21
+ match === shebang
22
+ end
23
+
24
+ # Return the contents of the doctype tag if present, nil otherwise.
25
+ def doctype
26
+ return @doctype if instance_variable_defined? :@doctype
27
+
28
+ self =~ %r(\A\s*
29
+ (?:<\?.*?\?>\s*)? # possible <?xml...?> tag
30
+ <!DOCTYPE\s+(.+?)>
31
+ )xm
32
+ @doctype = $1
33
+ end
34
+
35
+ # Check if the doctype matches a given regexp or string
36
+ def doctype?(type=//)
37
+ type === doctype
38
+ end
39
+
40
+ # Return true if the result of lexing with the given lexer contains no
41
+ # error tokens.
42
+ def lexes_cleanly?(lexer)
43
+ lexer.lex(self) do |(tok, _)|
44
+ return false if tok.name == 'Error'
45
+ end
46
+
47
+ true
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,218 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ class Theme
6
+ include Token::Tokens
7
+
8
+ class Style < Hash
9
+ def initialize(theme, hsh={})
10
+ super()
11
+ @theme = theme
12
+ merge!(hsh)
13
+ end
14
+
15
+ [:fg, :bg].each do |mode|
16
+ define_method mode do
17
+ return self[mode] unless @theme
18
+ @theme.palette(self[mode]) if self[mode]
19
+ end
20
+ end
21
+
22
+ def render(selector, &b)
23
+ return enum_for(:render, selector).to_a.join("\n") unless b
24
+
25
+ return if empty?
26
+
27
+ yield "#{selector} {"
28
+ rendered_rules.each do |rule|
29
+ yield " #{rule};"
30
+ end
31
+ yield "}"
32
+ end
33
+
34
+ def rendered_rules(&b)
35
+ return enum_for(:rendered_rules) unless b
36
+ yield "color: #{fg}" if fg
37
+ yield "background-color: #{bg}" if bg
38
+ yield "font-weight: bold" if self[:bold]
39
+ yield "font-style: italic" if self[:italic]
40
+ yield "text-decoration: underline" if self[:underline]
41
+
42
+ (self[:rules] || []).each(&b)
43
+ end
44
+ end
45
+
46
+ def styles
47
+ @styles ||= self.class.styles.dup
48
+ end
49
+
50
+ @palette = {}
51
+ def self.palette(arg={})
52
+ @palette ||= InheritableHash.new(superclass.palette)
53
+
54
+ if arg.is_a? Hash
55
+ @palette.merge! arg
56
+ @palette
57
+ else
58
+ case arg
59
+ when /#[0-9a-f]+/i
60
+ arg
61
+ else
62
+ @palette[arg] or raise "not in palette: #{arg.inspect}"
63
+ end
64
+ end
65
+ end
66
+
67
+ def palette(*a) self.class.palette(*a) end
68
+
69
+ @styles = {}
70
+ def self.styles
71
+ @styles ||= InheritableHash.new(superclass.styles)
72
+ end
73
+
74
+ def self.render(opts={}, &b)
75
+ new(opts).render(&b)
76
+ end
77
+
78
+ def get_own_style(token)
79
+ self.class.get_own_style(token)
80
+ end
81
+
82
+ def get_style(token)
83
+ self.class.get_style(token)
84
+ end
85
+
86
+ def name
87
+ self.class.name
88
+ end
89
+
90
+ class << self
91
+ def style(*tokens)
92
+ style = tokens.last.is_a?(Hash) ? tokens.pop : {}
93
+
94
+ tokens.each do |tok|
95
+ styles[tok] = style
96
+ end
97
+ end
98
+
99
+ def get_own_style(token)
100
+ token.token_chain.reverse_each do |anc|
101
+ return Style.new(self, styles[anc]) if styles[anc]
102
+ end
103
+
104
+ nil
105
+ end
106
+
107
+ def get_style(token)
108
+ get_own_style(token) || base_style
109
+ end
110
+
111
+ def base_style
112
+ get_own_style(Token::Tokens::Text)
113
+ end
114
+
115
+ def name(n=nil)
116
+ return @name if n.nil?
117
+
118
+ @name = n.to_s
119
+ register(@name)
120
+ end
121
+
122
+ def register(name)
123
+ Theme.registry[name.to_s] = self
124
+ end
125
+
126
+ def find(n)
127
+ registry[n.to_s]
128
+ end
129
+
130
+ def registry
131
+ @registry ||= {}
132
+ end
133
+ end
134
+ end
135
+
136
+ module HasModes
137
+ def mode(arg=:absent)
138
+ return @mode if arg == :absent
139
+
140
+ @modes ||= {}
141
+ @modes[arg] ||= get_mode(arg)
142
+ end
143
+
144
+ def get_mode(mode)
145
+ return self if self.mode == mode
146
+
147
+ new_name = "#{self.name}.#{mode}"
148
+ Class.new(self) { name(new_name); set_mode!(mode) }
149
+ end
150
+
151
+ def set_mode!(mode)
152
+ @mode = mode
153
+ send("make_#{mode}!")
154
+ end
155
+
156
+ def mode!(arg)
157
+ alt_name = "#{self.name}.#{arg}"
158
+ register(alt_name)
159
+ set_mode!(arg)
160
+ end
161
+ end
162
+
163
+ class CSSTheme < Theme
164
+ def initialize(opts={})
165
+ @scope = opts[:scope] || '.highlight'
166
+ end
167
+
168
+ def render(&b)
169
+ return enum_for(:render).to_a.join("\n") unless b
170
+
171
+ # shared styles for tableized line numbers
172
+ yield "#{@scope} table td { padding: 5px; }"
173
+ yield "#{@scope} table pre { margin: 0; }"
174
+
175
+ styles.each do |tok, style|
176
+ Style.new(self, style).render(css_selector(tok), &b)
177
+ end
178
+ end
179
+
180
+ def render_base(selector, &b)
181
+ self.class.base_style.render(selector, &b)
182
+ end
183
+
184
+ def style_for(tok)
185
+ self.class.get_style(tok)
186
+ end
187
+
188
+ private
189
+ def css_selector(token)
190
+ inflate_token(token).map do |tok|
191
+ raise "unknown token: #{tok.inspect}" if tok.shortname.nil?
192
+
193
+ single_css_selector(tok)
194
+ end.join(', ')
195
+ end
196
+
197
+ def single_css_selector(token)
198
+ return @scope if token == Text
199
+
200
+ "#{@scope} .#{token.shortname}"
201
+ end
202
+
203
+ # yield all of the tokens that should be styled the same
204
+ # as the given token. Essentially this recursively all of
205
+ # the subtokens, except those which are more specifically
206
+ # styled.
207
+ def inflate_token(tok, &b)
208
+ return enum_for(:inflate_token, tok) unless block_given?
209
+
210
+ yield tok
211
+ tok.sub_tokens.each do |(_, st)|
212
+ next if styles[st]
213
+
214
+ inflate_token(st, &b)
215
+ end
216
+ end
217
+ end
218
+ end
@@ -0,0 +1,137 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ # author Chris Kempson
7
+ # base16 default dark
8
+ # https://github.com/chriskempson/base16-default-schemes
9
+ class Base16 < CSSTheme
10
+ name 'base16'
11
+
12
+ palette base00: "#181818"
13
+ palette base01: "#282828"
14
+ palette base02: "#383838"
15
+ palette base03: "#585858"
16
+ palette base04: "#b8b8b8"
17
+ palette base05: "#d8d8d8"
18
+ palette base06: "#e8e8e8"
19
+ palette base07: "#f8f8f8"
20
+ palette base08: "#ab4642"
21
+ palette base09: "#dc9656"
22
+ palette base0A: "#f7ca88"
23
+ palette base0B: "#a1b56c"
24
+ palette base0C: "#86c1b9"
25
+ palette base0D: "#7cafc2"
26
+ palette base0E: "#ba8baf"
27
+ palette base0F: "#a16946"
28
+
29
+ extend HasModes
30
+
31
+ def self.light!
32
+ mode :dark # indicate that there is a dark variant
33
+ mode! :light
34
+ end
35
+
36
+ def self.dark!
37
+ mode :light # indicate that there is a light variant
38
+ mode! :dark
39
+ end
40
+
41
+ def self.make_dark!
42
+ style Text, :fg => :base05, :bg => :base00
43
+ end
44
+
45
+ def self.make_light!
46
+ style Text, :fg => :base02
47
+ end
48
+
49
+ light!
50
+
51
+ style Error, :fg => :base00, :bg => :base08
52
+ style Comment, :fg => :base03
53
+
54
+ style Comment::Preproc,
55
+ Name::Tag, :fg => :base0A
56
+
57
+ style Operator,
58
+ Punctuation, :fg => :base05
59
+
60
+ style Generic::Inserted, :fg => :base0B
61
+ style Generic::Deleted, :fg => :base08
62
+ style Generic::Heading, :fg => :base0D, :bg => :base00, :bold => true
63
+
64
+ style Generic::Emph, :italic => true
65
+ style Generic::EmphStrong, :italic => true, :bold => true
66
+ style Generic::Strong, :bold => true
67
+
68
+ style Keyword, :fg => :base0E
69
+ style Keyword::Constant,
70
+ Keyword::Type, :fg => :base09
71
+
72
+ style Keyword::Declaration, :fg => :base09
73
+
74
+ style Literal::String, :fg => :base0B
75
+ style Literal::String::Affix, :fg => :base0E
76
+ style Literal::String::Regex, :fg => :base0C
77
+
78
+ style Literal::String::Interpol,
79
+ Literal::String::Escape, :fg => :base0F
80
+
81
+ style Name::Namespace,
82
+ Name::Class,
83
+ Name::Constant, :fg => :base0A
84
+
85
+ style Name::Attribute, :fg => :base0D
86
+
87
+ style Literal::Number,
88
+ Literal::String::Symbol, :fg => :base0B
89
+
90
+ class Solarized < Base16
91
+ name 'base16.solarized'
92
+ light!
93
+ # author "Ethan Schoonover (http://ethanschoonover.com/solarized)"
94
+
95
+ palette base00: "#002b36"
96
+ palette base01: "#073642"
97
+ palette base02: "#586e75"
98
+ palette base03: "#657b83"
99
+ palette base04: "#839496"
100
+ palette base05: "#93a1a1"
101
+ palette base06: "#eee8d5"
102
+ palette base07: "#fdf6e3"
103
+ palette base08: "#dc322f"
104
+ palette base09: "#cb4b16"
105
+ palette base0A: "#b58900"
106
+ palette base0B: "#859900"
107
+ palette base0C: "#2aa198"
108
+ palette base0D: "#268bd2"
109
+ palette base0E: "#6c71c4"
110
+ palette base0F: "#d33682"
111
+ end
112
+
113
+ class Monokai < Base16
114
+ name 'base16.monokai'
115
+ dark!
116
+
117
+ # author "Wimer Hazenberg (http://www.monokai.nl)"
118
+ palette base00: "#272822"
119
+ palette base01: "#383830"
120
+ palette base02: "#49483e"
121
+ palette base03: "#75715e"
122
+ palette base04: "#a59f85"
123
+ palette base05: "#f8f8f2"
124
+ palette base06: "#f5f4f1"
125
+ palette base07: "#f9f8f5"
126
+ palette base08: "#f92672"
127
+ palette base09: "#fd971f"
128
+ palette base0A: "#f4bf75"
129
+ palette base0B: "#a6e22e"
130
+ palette base0C: "#a1efe4"
131
+ palette base0D: "#66d9ef"
132
+ palette base0E: "#ae81ff"
133
+ palette base0F: "#cc6633"
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ # A port of the bw style from Pygments.
7
+ # See https://bitbucket.org/birkenfeld/pygments-main/src/default/pygments/styles/bw.py
8
+ class BlackWhiteTheme < CSSTheme
9
+ name 'bw'
10
+
11
+ style Text, :fg => '#000000', :bg => '#ffffff'
12
+
13
+ style Comment, :italic => true
14
+ style Comment::Preproc, :italic => false
15
+
16
+ style Keyword, :bold => true
17
+ style Keyword::Pseudo, :bold => false
18
+ style Keyword::Type, :bold => false
19
+
20
+ style Operator, :bold => true
21
+
22
+ style Name::Class, :bold => true
23
+ style Name::Namespace, :bold => true
24
+ style Name::Exception, :bold => true
25
+ style Name::Entity, :bold => true
26
+ style Name::Tag, :bold => true
27
+
28
+ style Literal::String, :italic => true
29
+ style Literal::String::Affix, :bold => true
30
+ style Literal::String::Interpol, :bold => true
31
+ style Literal::String::Escape, :bold => true
32
+
33
+ style Generic::Heading, :bold => true
34
+ style Generic::Subheading, :bold => true
35
+ style Generic::Emph, :italic => true
36
+ style Generic::EmphStrong, :italic => true, :bold => true
37
+ style Generic::Strong, :bold => true
38
+ style Generic::Prompt, :bold => true
39
+
40
+ style Error, :fg => '#FF0000'
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,70 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ # stolen from pygments
7
+ class Colorful < CSSTheme
8
+ name 'colorful'
9
+
10
+ style Text, :fg => "#bbbbbb", :bg => '#000'
11
+
12
+ style Comment, :fg => "#888"
13
+ style Comment::Preproc, :fg => "#579"
14
+ style Comment::Special, :fg => "#cc0000", :bold => true
15
+
16
+ style Keyword, :fg => "#080", :bold => true
17
+ style Keyword::Pseudo, :fg => "#038"
18
+ style Keyword::Type, :fg => "#339"
19
+
20
+ style Operator, :fg => "#333"
21
+ style Operator::Word, :fg => "#000", :bold => true
22
+
23
+ style Name::Builtin, :fg => "#007020"
24
+ style Name::Function, :fg => "#06B", :bold => true
25
+ style Name::Class, :fg => "#B06", :bold => true
26
+ style Name::Namespace, :fg => "#0e84b5", :bold => true
27
+ style Name::Exception, :fg => "#F00", :bold => true
28
+ style Name::Variable, :fg => "#963"
29
+ style Name::Variable::Instance, :fg => "#33B"
30
+ style Name::Variable::Class, :fg => "#369"
31
+ style Name::Variable::Global, :fg => "#d70", :bold => true
32
+ style Name::Constant, :fg => "#036", :bold => true
33
+ style Name::Label, :fg => "#970", :bold => true
34
+ style Name::Entity, :fg => "#800", :bold => true
35
+ style Name::Attribute, :fg => "#00C"
36
+ style Name::Tag, :fg => "#070"
37
+ style Name::Decorator, :fg => "#555", :bold => true
38
+
39
+ style Literal::String, :bg => "#fff0f0"
40
+ style Literal::String::Affix, :fg => "#080", :bold => true
41
+ style Literal::String::Char, :fg => "#04D"
42
+ style Literal::String::Doc, :fg => "#D42"
43
+ style Literal::String::Interpol, :bg => "#eee"
44
+ style Literal::String::Escape, :fg => "#666", :bold => true
45
+ style Literal::String::Regex, :fg => "#000", :bg => "#fff0ff"
46
+ style Literal::String::Symbol, :fg => "#A60"
47
+ style Literal::String::Other, :fg => "#D20"
48
+
49
+ style Literal::Number, :fg => "#60E", :bold => true
50
+ style Literal::Number::Integer, :fg => "#00D", :bold => true
51
+ style Literal::Number::Float, :fg => "#60E", :bold => true
52
+ style Literal::Number::Hex, :fg => "#058", :bold => true
53
+ style Literal::Number::Oct, :fg => "#40E", :bold => true
54
+
55
+ style Generic::Heading, :fg => "#000080", :bold => true
56
+ style Generic::Subheading, :fg => "#800080", :bold => true
57
+ style Generic::Deleted, :fg => "#A00000"
58
+ style Generic::Inserted, :fg => "#00A000"
59
+ style Generic::Error, :fg => "#FF0000"
60
+ style Generic::Emph, :italic => true
61
+ style Generic::EmphStrong, :italic => true, :bold => true
62
+ style Generic::Strong, :bold => true
63
+ style Generic::Prompt, :fg => "#c65d09", :bold => true
64
+ style Generic::Output, :fg => "#888"
65
+ style Generic::Traceback, :fg => "#04D"
66
+
67
+ style Error, :fg => "#F00", :bg => "#FAA"
68
+ end
69
+ end
70
+ end