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,56 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
5
+ # not submit patches that alter the behaviour or options of this formatter for the
6
+ # convenience of your application. You are highly encouraged to write your own
7
+ # formatter for your application instead.
8
+
9
+ module Rouge
10
+ module Formatters
11
+ # Transforms a token stream into HTML output.
12
+ class HTMLLegacy < Formatter
13
+ tag 'html_legacy'
14
+
15
+ # @option opts [String] :css_class ('highlight')
16
+ # @option opts [true/false] :line_numbers (false)
17
+ # @option opts [Rouge::CSSTheme] :inline_theme (nil)
18
+ # @option opts [true/false] :wrap (true)
19
+ #
20
+ # Initialize with options.
21
+ #
22
+ # If `:inline_theme` is given, then instead of rendering the
23
+ # tokens as <span> tags with CSS classes, the styles according to
24
+ # the given theme will be inlined in "style" attributes. This is
25
+ # useful for formats in which stylesheets are not available.
26
+ #
27
+ # Content will be wrapped in a tag (`div` if tableized, `pre` if
28
+ # not) with the given `:css_class` unless `:wrap` is set to `false`.
29
+ def initialize(opts={})
30
+ warn '[DEPRECATED] Rouge::Formatters::HTMLLegacy is deprecated and will be removed soon. Please use one of the other formatters, or write your own.'
31
+ @formatter = opts[:inline_theme] ? HTMLInline.new(opts[:inline_theme])
32
+ : HTML.new
33
+
34
+
35
+ @formatter = HTMLTable.new(@formatter, opts) if opts[:line_numbers]
36
+
37
+ if opts.fetch(:wrap, true)
38
+ @pygments_wrap = opts.fetch(:css_class, 'codehilite')
39
+ end
40
+ end
41
+
42
+ # @yield the html output.
43
+ def stream(tokens, &b)
44
+ if @pygments_wrap
45
+ yield %(<div class="highlight"><pre class="#{@pygments_wrap}"><code>)
46
+ end
47
+
48
+ @formatter.stream(tokens, &b)
49
+
50
+ if @pygments_wrap
51
+ yield "</code></pre></div>"
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
5
+ # not submit patches that alter the behaviour or options of this formatter for the
6
+ # convenience of your application. You are highly encouraged to write your own
7
+ # formatter for your application instead.
8
+
9
+ module Rouge
10
+ module Formatters
11
+ class HTMLLegacyTable < Formatter
12
+ def initialize(inner, opts={})
13
+ warn '[DEPRECATED] using a wrapped or line-managed delegator for HTMLTable is deprecated, and will be removed soon. Please use HTML, HTMLInline, or HTMLDebug, or write your own formatter.'
14
+
15
+ @inner = inner
16
+ @start_line = opts.fetch(:start_line, 1)
17
+ @line_format = opts.fetch(:line_format, '%i')
18
+ @table_class = opts.fetch(:table_class, 'rouge-table')
19
+ @gutter_class = opts.fetch(:gutter_class, 'rouge-gutter')
20
+ @code_class = opts.fetch(:code_class, 'rouge-code')
21
+ end
22
+
23
+ def style(scope)
24
+ yield "#{scope} .#{@table_class} { border-spacing: 0 }"
25
+ yield "#{scope} .#{@gutter_class} { text-align: right }"
26
+ end
27
+
28
+ def stream(tokens, &b)
29
+ last_val = nil
30
+ num_lines = tokens.reduce(0) {|count, (_, val)| count + (last_val = val).count("\n") }
31
+ formatted = @inner.format(tokens)
32
+
33
+ unless last_val && last_val.end_with?("\n")
34
+ num_lines += 1
35
+ formatted << "\n" unless formatted.end_with?("\n")
36
+ end
37
+
38
+ # generate a string of newline-separated line numbers for the gutter
39
+ formatted_line_numbers = (@start_line..(@start_line + num_lines - 1)).map do |i|
40
+ sprintf(@line_format, i)
41
+ end.join("\n") << "\n"
42
+
43
+ buffer = [%(<table class="#@table_class"><tbody><tr>)]
44
+ # the "gl" class applies the style for Generic.Lineno
45
+ buffer << %(<td class="#@gutter_class gl" aria-hidden="true">)
46
+ buffer << %(<pre class="lineno">#{formatted_line_numbers}</pre>)
47
+ buffer << '</td>'
48
+ buffer << %(<td class="#@code_class"><pre><code>)
49
+ buffer << formatted
50
+ buffer << '</code></pre></td>'
51
+ buffer << '</tr></tbody></table>'
52
+
53
+ yield buffer.join
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,31 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
5
+ # not submit patches that alter the behaviour or options of this formatter for the
6
+ # convenience of your application. You are highly encouraged to write your own
7
+ # formatter for your application instead.
8
+
9
+ module Rouge
10
+ module Formatters
11
+ class HTMLLineHighlighter < Formatter
12
+ tag 'html_line_highlighter'
13
+
14
+ def initialize(delegate, opts = {})
15
+ @delegate = HTML.assert_html_formatter!(delegate)
16
+ @highlight_line_class = opts.fetch(:highlight_line_class, 'hll')
17
+ @highlight_lines = opts[:highlight_lines] || []
18
+ end
19
+
20
+ def stream(tokens)
21
+ token_lines(tokens).with_index(1) do |line_tokens, lineno|
22
+ should_highlight = @highlight_lines.include?(lineno)
23
+ yield %(<span class=#{@highlight_line_class.inspect}>) if should_highlight
24
+ line_tokens.each { |tok, val| yield @delegate.span(tok, val) }
25
+ yield "\n"
26
+ yield %(</span>) if should_highlight
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
5
+ # not submit patches that alter the behaviour or options of this formatter for the
6
+ # convenience of your application. You are highly encouraged to write your own
7
+ # formatter for your application instead.
8
+
9
+ module Rouge
10
+ module Formatters
11
+ class HTMLLineTable < Formatter
12
+ tag 'html_line_table'
13
+
14
+ # @param [Rouge::Formatters::Formatter] formatter An instance of a
15
+ # `Rouge::Formatters::HTML` or `Rouge::Formatters::HTMLInline`
16
+ # @param [Hash] opts options for HTMLLineTable instance.
17
+ # @option opts [Integer] :start_line line number to start from. Defaults to `1`.
18
+ # @option opts [String] :table_class Class name for the table.
19
+ # Defaults to `"rouge-line-table"`.
20
+ # @option opts [String] :line_id a `sprintf` template for generating an `id`
21
+ # attribute for each table row corresponding to current line number.
22
+ # Defaults to `"line-%i"`.
23
+ # @option opts [String] :line_class Class name for each table row.
24
+ # Defaults to `"lineno"`.
25
+ # @option opts [String] :gutter_class Class name for rendered line-number cell.
26
+ # Defaults to `"rouge-gutter"`.
27
+ # @option opts [String] :code_class Class name for rendered code cell.
28
+ # Defaults to `"rouge-code"`.
29
+ def initialize(formatter, opts={})
30
+ @formatter = HTML.assert_html_formatter!(formatter)
31
+ @start_line = opts.fetch :start_line, 1
32
+ @table_class = opts.fetch :table_class, 'rouge-line-table'
33
+ @gutter_class = opts.fetch :gutter_class, 'rouge-gutter'
34
+ @code_class = opts.fetch :code_class, 'rouge-code'
35
+ @line_class = opts.fetch :line_class, 'lineno'
36
+ @line_id = opts.fetch :line_id, 'line-%i'
37
+ end
38
+
39
+ def stream(tokens, &b)
40
+ buffer = [%(<table class="#@table_class"><tbody>)]
41
+ token_lines(tokens).with_index(@start_line) do |line_tokens, lineno|
42
+ buffer << %(<tr id="#{sprintf @line_id, lineno}" class="#@line_class">)
43
+ buffer << %(<td class="#@gutter_class gl" )
44
+ buffer << %(style="-moz-user-select: none;-ms-user-select: none;)
45
+ buffer << %(-webkit-user-select: none;user-select: none;">)
46
+ buffer << %(<pre>#{lineno}</pre></td>)
47
+ buffer << %(<td class="#@code_class"><pre><code>)
48
+ @formatter.stream(line_tokens) { |formatted| buffer << formatted }
49
+ buffer << "\n</code></pre></td></tr>"
50
+ end
51
+ buffer << %(</tbody></table>)
52
+ yield buffer.join
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,31 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
5
+ # not submit patches that alter the behaviour or options of this formatter for the
6
+ # convenience of your application. You are highly encouraged to write your own
7
+ # formatter for your application instead.
8
+
9
+ module Rouge
10
+ module Formatters
11
+ class HTMLLinewise < Formatter
12
+ tag 'html_linewise'
13
+
14
+ def initialize(formatter, opts={})
15
+ @formatter = HTML.assert_html_formatter!(formatter)
16
+ @tag_name = opts.fetch(:tag_name, 'div')
17
+ @class_format = opts.fetch(:class, 'line-%i')
18
+ end
19
+
20
+ def stream(tokens, &b)
21
+ token_lines(tokens).with_index(1) do |line_tokens, lineno|
22
+ yield %(<#{@tag_name} class="#{sprintf @class_format, lineno}">)
23
+ line_tokens.each do |tok, val|
24
+ yield @formatter.span(tok, val)
25
+ end
26
+ yield %(\n</#{@tag_name}>)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
4
+ # not submit patches that alter the behaviour or options of this formatter for the
5
+ # convenience of your application. You are highly encouraged to write your own
6
+ # formatter for your application instead.
7
+
8
+ module Rouge
9
+ module Formatters
10
+ class HTMLPygments < Formatter
11
+ def initialize(inner, css_class='codehilite')
12
+ @inner = HTML.assert_html_formatter!(inner)
13
+ @css_class = css_class
14
+ end
15
+
16
+ def stream(tokens, &b)
17
+ yield %(<div class="highlight"><pre class="#{@css_class}"><code>)
18
+ @inner.stream(tokens, &b)
19
+ yield "</code></pre></div>"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,77 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # [jneen] This is an example implementation only. You may use it as-is, but please do
5
+ # not submit patches that alter the behaviour or options of this formatter for the
6
+ # convenience of your application. You are highly encouraged to write your own
7
+ # formatter for your application instead.
8
+
9
+ module Rouge
10
+ module Formatters
11
+ class HTMLTable < Formatter
12
+ tag 'html_table'
13
+
14
+ def self.new(inner, opts={})
15
+ if !inner.is_a?(HTML) && inner.is_a?(Formatter)
16
+ require_relative 'html_legacy_table'
17
+ return HTMLLegacyTable.new(inner, opts)
18
+ end
19
+
20
+ super(inner, opts)
21
+ end
22
+
23
+ def initialize(inner, opts={})
24
+ @inner = HTML.assert_html_formatter!(inner)
25
+ @start_line = opts.fetch(:start_line, 1)
26
+ @line_format = opts.fetch(:line_format, '%i')
27
+ @table_class = opts.fetch(:table_class, 'rouge-table')
28
+ @gutter_class = opts.fetch(:gutter_class, 'rouge-gutter')
29
+ @code_class = opts.fetch(:code_class, 'rouge-code')
30
+ end
31
+
32
+ def style(scope)
33
+ yield "#{scope} .#{@table_class} { border-spacing: 0 }"
34
+ yield "#{scope} .#{@gutter_class} { text-align: right }"
35
+ end
36
+
37
+ def stream(tokens, &b)
38
+ num_lines = 0
39
+ last_val = ''
40
+ formatted = String.new('')
41
+
42
+ tokens.each do |tok, val|
43
+ last_val = val
44
+ num_lines += val.scan(/\n/).size
45
+ formatted << @inner.span(tok, val)
46
+ end
47
+
48
+ # add an extra line for non-newline-terminated strings
49
+ if last_val[-1] != "\n"
50
+ num_lines += 1
51
+ yield @inner.span(Token::Tokens::Text::Whitespace, "\n")
52
+ end
53
+
54
+ # generate a string of newline-separated line numbers for the gutter>
55
+ last_line = num_lines + @start_line
56
+ formatted_line_numbers = (@start_line...last_line).map do |i|
57
+ sprintf("#{@line_format}", i) << "\n"
58
+ end.join('')
59
+
60
+ numbers = %(<pre class="lineno">#{formatted_line_numbers}</pre>)
61
+
62
+ yield %(<table class="#@table_class"><tbody><tr>)
63
+
64
+ # the "gl" class applies the style for Generic.Lineno
65
+ yield %(<td class="#@gutter_class gl" aria-hidden="true">)
66
+ yield numbers
67
+ yield '</td>'
68
+
69
+ yield %(<td class="#@code_class"><pre>)
70
+ yield formatted
71
+ yield '</pre></td>'
72
+
73
+ yield "</tr></tbody></table>"
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Formatters
6
+ # A formatter which renders nothing.
7
+ class Null < Formatter
8
+ tag 'null'
9
+
10
+ def initialize(*)
11
+ end
12
+
13
+ def stream(tokens, &b)
14
+ tokens.each do |tok, val|
15
+ yield "#{tok.qualname} #{val.inspect}\n"
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,198 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Formatters
6
+ # A formatter for 256-color terminals
7
+ class Terminal256 < Formatter
8
+ tag 'terminal256'
9
+
10
+ # max distance between two colors, #000000 to #ffffff
11
+ MAX_DISTANCE = 257 * 257 * 3
12
+
13
+ # @private
14
+ attr_reader :theme
15
+
16
+ # @param [Hash,Rouge::Theme] theme
17
+ # the theme to render with.
18
+ def initialize(theme = Themes::ThankfulEyes.new)
19
+ if theme.is_a?(Rouge::Theme)
20
+ @theme = theme
21
+ elsif theme.is_a?(Hash)
22
+ @theme = theme[:theme] || Themes::ThankfulEyes.new
23
+ else
24
+ raise ArgumentError, "invalid theme: #{theme.inspect}"
25
+ end
26
+ end
27
+
28
+ def stream(tokens, &b)
29
+ tokens.each do |tok, val|
30
+ escape_sequence(tok).stream_value(val, &b)
31
+ end
32
+ end
33
+
34
+ class EscapeSequence
35
+ attr_reader :style
36
+ def initialize(style)
37
+ @style = style
38
+ end
39
+
40
+ def self.xterm_colors
41
+ @xterm_colors ||= [].tap do |out|
42
+ # colors 0..15: 16 basic colors
43
+ out << [0x00, 0x00, 0x00] # 0
44
+ out << [0xcd, 0x00, 0x00] # 1
45
+ out << [0x00, 0xcd, 0x00] # 2
46
+ out << [0xcd, 0xcd, 0x00] # 3
47
+ out << [0x00, 0x00, 0xee] # 4
48
+ out << [0xcd, 0x00, 0xcd] # 5
49
+ out << [0x00, 0xcd, 0xcd] # 6
50
+ out << [0xe5, 0xe5, 0xe5] # 7
51
+ out << [0x7f, 0x7f, 0x7f] # 8
52
+ out << [0xff, 0x00, 0x00] # 9
53
+ out << [0x00, 0xff, 0x00] # 10
54
+ out << [0xff, 0xff, 0x00] # 11
55
+ out << [0x5c, 0x5c, 0xff] # 12
56
+ out << [0xff, 0x00, 0xff] # 13
57
+ out << [0x00, 0xff, 0xff] # 14
58
+ out << [0xff, 0xff, 0xff] # 15
59
+
60
+ # colors 16..232: the 6x6x6 color cube
61
+ valuerange = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff]
62
+
63
+ 217.times do |i|
64
+ r = valuerange[(i / 36) % 6]
65
+ g = valuerange[(i / 6) % 6]
66
+ b = valuerange[i % 6]
67
+ out << [r, g, b]
68
+ end
69
+
70
+ # colors 233..253: grayscale
71
+ 1.upto 22 do |i|
72
+ v = 8 + i * 10
73
+ out << [v, v, v]
74
+ end
75
+ end
76
+ end
77
+
78
+ def fg
79
+ return @fg if instance_variable_defined? :@fg
80
+ @fg = style.fg && self.class.color_index(style.fg)
81
+ end
82
+
83
+ def bg
84
+ return @bg if instance_variable_defined? :@bg
85
+ @bg = style.bg && self.class.color_index(style.bg)
86
+ end
87
+
88
+
89
+ def stream_value(val, &b)
90
+ yield style_string
91
+ yield val.gsub("\e", "\\e")
92
+ .gsub("\n", "#{reset_string}\n#{style_string}")
93
+ yield reset_string
94
+ end
95
+
96
+ def style_string
97
+ @style_string ||= begin
98
+ attrs = []
99
+
100
+ attrs << ['38', '5', fg.to_s] if fg
101
+ attrs << ['48', '5', bg.to_s] if bg
102
+ attrs << '01' if style[:bold]
103
+ attrs << '04' if style[:italic] # underline, but hey, whatevs
104
+ escape(attrs)
105
+ end
106
+ end
107
+
108
+ def reset_string
109
+ @reset_string ||= begin
110
+ attrs = []
111
+ attrs << '39' if fg # fg reset
112
+ attrs << '49' if bg # bg reset
113
+ attrs << '00' if style[:bold] || style[:italic]
114
+
115
+ escape(attrs)
116
+ end
117
+ end
118
+
119
+ private
120
+ def escape(attrs)
121
+ return '' if attrs.empty?
122
+ "\e[#{attrs.join(';')}m"
123
+ end
124
+
125
+ def self.color_index(color)
126
+ @color_index_cache ||= {}
127
+ @color_index_cache[color] ||= closest_color(*get_rgb(color))
128
+ end
129
+
130
+ def self.get_rgb(color)
131
+ color = $1 if color =~ /#([0-9a-f]+)/i
132
+ hexes = case color.size
133
+ when 3
134
+ color.chars.map { |c| "#{c}#{c}" }
135
+ when 6
136
+ color.scan(/../)
137
+ else
138
+ raise "invalid color: #{color}"
139
+ end
140
+
141
+ hexes.map { |h| h.to_i(16) }
142
+ end
143
+
144
+ def self.closest_color(r, g, b)
145
+ @@colors_cache ||= {}
146
+ key = (r << 16) + (g << 8) + b
147
+ @@colors_cache.fetch(key) do
148
+ distance = MAX_DISTANCE
149
+
150
+ match = 0
151
+
152
+ xterm_colors.each_with_index do |(cr, cg, cb), i|
153
+ d = (r - cr)**2 + (g - cg)**2 + (b - cb)**2
154
+ next if d >= distance
155
+
156
+ match = i
157
+ distance = d
158
+ end
159
+
160
+ match
161
+ end
162
+ end
163
+ end
164
+
165
+ class Unescape < EscapeSequence
166
+ def initialize(*) end
167
+ def style_string(*) '' end
168
+ def reset_string(*) '' end
169
+ def stream_value(val) yield val end
170
+ end
171
+
172
+ # private
173
+ def escape_sequence(token)
174
+ return Unescape.new if escape?(token)
175
+ @escape_sequences ||= {}
176
+ @escape_sequences[token.qualname] ||=
177
+ make_escape_sequence(get_style(token))
178
+ end
179
+
180
+ def make_escape_sequence(style)
181
+ EscapeSequence.new(style)
182
+ end
183
+
184
+ def get_style(token)
185
+ return text_style if token.ancestors.include? Token::Tokens::Text
186
+
187
+ theme.get_own_style(token) || text_style
188
+ end
189
+
190
+ def text_style
191
+ style = theme.get_style(Token['Text'])
192
+ # don't highlight text backgrounds
193
+ style.delete :bg
194
+ style
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+ module Rouge
4
+ module Formatters
5
+ class TerminalTruecolor < Terminal256
6
+ tag 'terminal_truecolor'
7
+
8
+ class TruecolorEscapeSequence < Terminal256::EscapeSequence
9
+ def style_string
10
+ @style_string ||= begin
11
+ out = String.new('')
12
+ out << escape(['48', '2', *get_rgb(style.bg)]) if style.bg
13
+ out << escape(['38', '2', *get_rgb(style.fg)]) if style.fg
14
+ out << escape(['1']) if style[:bold] || style[:italic]
15
+ out
16
+ end
17
+ end
18
+
19
+ def get_rgb(color)
20
+ color = $1 if color =~ /#(\h+)/
21
+
22
+ case color.size
23
+ when 3 then color.chars.map { |c| c.to_i(16) * 2 }
24
+ when 6 then color.scan(/../).map { |cc| cc.to_i(16) }
25
+ else
26
+ raise "invalid color: #{color.inspect}"
27
+ end
28
+ end
29
+ end
30
+
31
+ # @override
32
+ def make_escape_sequence(style)
33
+ TruecolorEscapeSequence.new(style)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,92 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Formatters
6
+ class Tex < Formatter
7
+ tag 'tex'
8
+
9
+ # A map of TeX escape characters.
10
+ # Newlines are handled specially by using #token_lines
11
+ # spaces are preserved as long as they aren't at the beginning
12
+ # of a line. see #tag_first for our initial-space strategy
13
+ ESCAPE = {
14
+ '&' => '\&',
15
+ '%' => '\%',
16
+ '$' => '\$',
17
+ '#' => '\#',
18
+ '_' => '\_',
19
+ '{' => '\{',
20
+ '}' => '\}',
21
+ '~' => '{\textasciitilde}',
22
+ '^' => '{\textasciicircum}',
23
+ '|' => '{\textbar}',
24
+ '\\' => '{\textbackslash}',
25
+ '`' => '{\textasciigrave}',
26
+ "'" => "'{}",
27
+ '"' => '"{}',
28
+ "\t" => '{\tab}',
29
+ }
30
+
31
+ ESCAPE_REGEX = /[#{ESCAPE.keys.map { |k| Regexp.escape(k) }.join}]/om
32
+
33
+ def initialize(opts={})
34
+ @prefix = opts.fetch(:prefix) { 'RG' }
35
+ end
36
+
37
+ def escape_tex(str)
38
+ str.gsub(ESCAPE_REGEX, ESCAPE)
39
+ end
40
+
41
+ def stream(tokens, &b)
42
+ # surround the output with \begin{RG*}...\end{RG*}
43
+ yield "\\begin{#{@prefix}*}%\n"
44
+
45
+ # we strip the newline off the last line to avoid
46
+ # an extra line being rendered. we do this by yielding
47
+ # the \newline tag *before* every line group except
48
+ # the first.
49
+ first = true
50
+
51
+ token_lines tokens do |line|
52
+ if first
53
+ first = false
54
+ else
55
+ yield "\\newline%\n"
56
+ end
57
+
58
+ render_line(line, &b)
59
+ end
60
+
61
+ yield "%\n\\end{#{@prefix}*}%\n"
62
+ end
63
+
64
+ def render_line(line, &b)
65
+ line.each do |(tok, val)|
66
+ hphantom_tag(tok, val, &b)
67
+ end
68
+ end
69
+
70
+ # Special handling for leading spaces, since they may be gobbled
71
+ # by a previous command. We replace all initial spaces with
72
+ # \hphantom{xxxx}, which renders an empty space equal to the size
73
+ # of the x's.
74
+ def hphantom_tag(tok, val)
75
+ leading = nil
76
+ val.sub!(/^[ ]+/) { leading = $&.size; '' }
77
+ yield "\\hphantom{#{'x' * leading}}" if leading
78
+ yield tag(tok, val) unless val.empty?
79
+ end
80
+
81
+ def tag(tok, val)
82
+ if escape?(tok)
83
+ val
84
+ elsif tok == Token::Tokens::Text
85
+ escape_tex(val)
86
+ else
87
+ "\\#@prefix{#{tok.shortname}}{#{escape_tex(val)}}"
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end