super-pro-rb 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 (252) hide show
  1. checksums.yaml +7 -0
  2. data/gollum-6.1.0/CONTRIBUTING.md +221 -0
  3. data/gollum-6.1.0/Dockerfile +57 -0
  4. data/gollum-6.1.0/Gemfile +30 -0
  5. data/gollum-6.1.0/HISTORY.md +229 -0
  6. data/gollum-6.1.0/LATEST_CHANGES.md +6 -0
  7. data/gollum-6.1.0/LICENSE +21 -0
  8. data/gollum-6.1.0/README.md +177 -0
  9. data/gollum-6.1.0/Rakefile +297 -0
  10. data/gollum-6.1.0/bin/gollum +301 -0
  11. data/gollum-6.1.0/bin/gollum-migrate-tags +283 -0
  12. data/gollum-6.1.0/config.rb +12 -0
  13. data/gollum-6.1.0/config.ru +12 -0
  14. data/gollum-6.1.0/contrib/automation/gollum-post +66 -0
  15. data/gollum-6.1.0/contrib/openrc/conf.d/gollum +3 -0
  16. data/gollum-6.1.0/contrib/openrc/init.d/gollum +36 -0
  17. data/gollum-6.1.0/contrib/systemd/gollum@.service +12 -0
  18. data/gollum-6.1.0/contrib/sysv-debian/init.d/gollum +79 -0
  19. data/gollum-6.1.0/docker-run.sh +24 -0
  20. data/gollum-6.1.0/gollum.gemspec +305 -0
  21. data/gollum-6.1.0/lib/gollum/app.rb +747 -0
  22. data/gollum-6.1.0/lib/gollum/assets.rb +33 -0
  23. data/gollum-6.1.0/lib/gollum/helpers.rb +74 -0
  24. data/gollum-6.1.0/lib/gollum/locales/cn.yml +103 -0
  25. data/gollum-6.1.0/lib/gollum/locales/en.yml +103 -0
  26. data/gollum-6.1.0/lib/gollum/public/assets/app-05adca32f8f4f3effe10f8f4cf26dfd6a419ba986bce60d3f51a97e4055d4113.js +30 -0
  27. data/gollum-6.1.0/lib/gollum/public/assets/app-05adca32f8f4f3effe10f8f4cf26dfd6a419ba986bce60d3f51a97e4055d4113.js.gz +0 -0
  28. data/gollum-6.1.0/lib/gollum/public/assets/app-e224b375d824f0171fc926d624dc0887bf453db83f485b1992bc0859c4110e3e.css +11 -0
  29. data/gollum-6.1.0/lib/gollum/public/assets/app-e224b375d824f0171fc926d624dc0887bf453db83f485b1992bc0859c4110e3e.css.gz +0 -0
  30. data/gollum-6.1.0/lib/gollum/public/assets/criticmarkup-7b66f7a53b854bc9e4168be5b4725ca38e2bc6e9c41d5c050a9f60d9a94cb405.css +1 -0
  31. data/gollum-6.1.0/lib/gollum/public/assets/criticmarkup-7b66f7a53b854bc9e4168be5b4725ca38e2bc6e9c41d5c050a9f60d9a94cb405.css.gz +0 -0
  32. data/gollum-6.1.0/lib/gollum/public/assets/editor-9bef5462bb5dae2db84d6d8d534b55c5bb5a430e11344b3c23f9ea4410312f52.js +165 -0
  33. data/gollum-6.1.0/lib/gollum/public/assets/editor-9bef5462bb5dae2db84d6d8d534b55c5bb5a430e11344b3c23f9ea4410312f52.js.gz +0 -0
  34. data/gollum-6.1.0/lib/gollum/public/assets/gollum.katex-e70c1d51a08ebfe759eecbb33fbed54f300ccd7fb8d0e86e251caaf4e50f6b68.js +9 -0
  35. data/gollum-6.1.0/lib/gollum/public/assets/gollum.katex-e70c1d51a08ebfe759eecbb33fbed54f300ccd7fb8d0e86e251caaf4e50f6b68.js.gz +0 -0
  36. data/gollum-6.1.0/lib/gollum/public/assets/gollum.mermaid-06fd2f5494199db250618043312c27770720504b50c3f6ca99d2d2df529c7da3.js +118 -0
  37. data/gollum-6.1.0/lib/gollum/public/assets/gollum.mermaid-06fd2f5494199db250618043312c27770720504b50c3f6ca99d2d2df529c7da3.js.gz +0 -0
  38. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  39. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  40. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  41. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  42. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  43. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  44. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  45. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  46. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  47. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  48. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  49. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  50. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  51. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  52. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  53. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  54. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  55. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  56. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  57. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  58. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/katex-709d4191c4f005516a709377f79e468d343f4e6c91a29a6ff188d13d124ba55f.css +1 -0
  59. data/gollum-6.1.0/lib/gollum/public/assets/katex/dist/katex-709d4191c4f005516a709377f79e468d343f4e6c91a29a6ff188d13d124ba55f.css.gz +0 -0
  60. data/gollum-6.1.0/lib/gollum/public/assets/print-512498c368be0d3fb1ba105dfa84289ae48380ec9fcbef948bd4e23b0b095bfb.css +1 -0
  61. data/gollum-6.1.0/lib/gollum/public/assets/print-512498c368be0d3fb1ba105dfa84289ae48380ec9fcbef948bd4e23b0b095bfb.css.gz +0 -0
  62. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/HOWTO_UPDATE_MATHJAX.md +21 -0
  63. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/a11y/assistive-mml.js +1 -0
  64. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/a11y/complexity.js +1 -0
  65. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/a11y/explorer.js +1 -0
  66. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/a11y/semantic-enrich.js +1 -0
  67. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/a11y/sre.js +1 -0
  68. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/adaptors/liteDOM.js +1 -0
  69. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/core.js +1 -0
  70. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/asciimath.js +1 -0
  71. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/mml/entities.js +1 -0
  72. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/mml/extensions/mml3.js +1 -0
  73. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/mml/extensions/mml3.sef.json +1 -0
  74. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/mml.js +1 -0
  75. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/action.js +1 -0
  76. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/all-packages.js +34 -0
  77. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/ams.js +1 -0
  78. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/amscd.js +1 -0
  79. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/autoload.js +1 -0
  80. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/bbox.js +1 -0
  81. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/boldsymbol.js +1 -0
  82. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/braket.js +1 -0
  83. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/bussproofs.js +1 -0
  84. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/cancel.js +1 -0
  85. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/cases.js +1 -0
  86. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/centernot.js +1 -0
  87. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/color.js +1 -0
  88. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/colortbl.js +1 -0
  89. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/colorv2.js +1 -0
  90. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/configmacros.js +1 -0
  91. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/empheq.js +1 -0
  92. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/enclose.js +1 -0
  93. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/extpfeil.js +1 -0
  94. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/gensymb.js +1 -0
  95. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/html.js +1 -0
  96. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/mathtools.js +1 -0
  97. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/mhchem.js +34 -0
  98. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/newcommand.js +1 -0
  99. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/noerrors.js +1 -0
  100. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/noundefined.js +1 -0
  101. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/physics.js +1 -0
  102. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/require.js +1 -0
  103. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/setoptions.js +1 -0
  104. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/tagformat.js +1 -0
  105. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/textcomp.js +1 -0
  106. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/textmacros.js +1 -0
  107. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/unicode.js +1 -0
  108. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/upgreek.js +1 -0
  109. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex/extensions/verb.js +1 -0
  110. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex-base.js +1 -0
  111. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex-full.js +34 -0
  112. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/input/tex.js +1 -0
  113. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/latest.js +1 -0
  114. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/loader.js +1 -0
  115. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/node-main.js +1 -0
  116. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/tex.js +1 -0
  117. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
  118. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
  119. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
  120. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
  121. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
  122. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
  123. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
  124. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
  125. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
  126. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
  127. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
  128. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
  129. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
  130. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
  131. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
  132. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
  133. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
  134. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
  135. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
  136. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
  137. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
  138. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
  139. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
  140. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/chtml.js +1 -0
  141. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/svg/fonts/tex.js +1 -0
  142. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/output/svg.js +1 -0
  143. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/base.json +29 -0
  144. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/ca.json +140 -0
  145. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/da.json +140 -0
  146. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/de.json +146 -0
  147. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/en.json +158 -0
  148. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/es.json +140 -0
  149. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/fr.json +146 -0
  150. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/hi.json +146 -0
  151. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/it.json +146 -0
  152. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/nb.json +146 -0
  153. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/nemeth.json +125 -0
  154. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/nn.json +146 -0
  155. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/sre/mathmaps/sv.json +146 -0
  156. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/startup.js +1 -0
  157. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/tex-chtml-full-speech.js +34 -0
  158. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/tex-mml-chtml.js +1 -0
  159. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/ui/lazy.js +1 -0
  160. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/ui/menu.js +1 -0
  161. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/MathJax/ui/safe.js +1 -0
  162. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/app.js +15 -0
  163. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/clipboard.min.js +7 -0
  164. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/date.min.js +123 -0
  165. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/gollum.editor.js +1277 -0
  166. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/asciidoc.js +117 -0
  167. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/bib.js +8 -0
  168. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/creole.js +70 -0
  169. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/default.js +201 -0
  170. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/markdown.js +119 -0
  171. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/mediawiki.js +122 -0
  172. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/org.js +128 -0
  173. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/plaintext.js +8 -0
  174. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/pod.js +93 -0
  175. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/rdoc.js +23 -0
  176. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/rest.js +187 -0
  177. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/langs/textile.js +133 -0
  178. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/modes.js.erb +252 -0
  179. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor/sections.js +87 -0
  180. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/editor.js +30 -0
  181. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/gollum.behaviors.js +40 -0
  182. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/gollum.dialog.js +263 -0
  183. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/gollum.js.erb +814 -0
  184. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/gollum.katex.js +3 -0
  185. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/gollum.mermaid.js +2 -0
  186. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/gollum.placeholder.js +54 -0
  187. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/identicon.js +205 -0
  188. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/jquery-1.9.1.min.js +5 -0
  189. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/jquery.resize.js +164 -0
  190. data/gollum-6.1.0/lib/gollum/public/gollum/javascript/polyfills.js +6 -0
  191. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/_base.scss +13 -0
  192. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/_breakpoint.scss +22 -0
  193. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/_features.scss +84 -0
  194. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/_spinners.scss +245 -0
  195. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/app.scss +16 -0
  196. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/criticmarkup.scss +42 -0
  197. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/dialog.scss +140 -0
  198. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/editor.scss +217 -0
  199. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/emoji.scss +5 -0
  200. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/highlights.scss +196 -0
  201. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/print.scss +16 -0
  202. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/spinner.scss +9 -0
  203. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/tables.scss +47 -0
  204. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/template.scss.erb +204 -0
  205. data/gollum-6.1.0/lib/gollum/public/gollum/stylesheets/wiki_content.scss +144 -0
  206. data/gollum-6.1.0/lib/gollum/templates/commit.mustache +29 -0
  207. data/gollum-6.1.0/lib/gollum/templates/compare.mustache +84 -0
  208. data/gollum-6.1.0/lib/gollum/templates/create.mustache +26 -0
  209. data/gollum-6.1.0/lib/gollum/templates/edit.mustache +24 -0
  210. data/gollum-6.1.0/lib/gollum/templates/editor.mustache +215 -0
  211. data/gollum-6.1.0/lib/gollum/templates/error.mustache +8 -0
  212. data/gollum-6.1.0/lib/gollum/templates/history.mustache +51 -0
  213. data/gollum-6.1.0/lib/gollum/templates/history_authors/gravatar.mustache +2 -0
  214. data/gollum-6.1.0/lib/gollum/templates/history_authors/identicon.mustache +2 -0
  215. data/gollum-6.1.0/lib/gollum/templates/history_authors/none.mustache +2 -0
  216. data/gollum-6.1.0/lib/gollum/templates/latest_changes.mustache +36 -0
  217. data/gollum-6.1.0/lib/gollum/templates/layout.mustache +140 -0
  218. data/gollum-6.1.0/lib/gollum/templates/mobilenav.mustache +72 -0
  219. data/gollum-6.1.0/lib/gollum/templates/navbar.mustache +110 -0
  220. data/gollum-6.1.0/lib/gollum/templates/overview.mustache +55 -0
  221. data/gollum-6.1.0/lib/gollum/templates/page.mustache +13 -0
  222. data/gollum-6.1.0/lib/gollum/templates/pagination.mustache +23 -0
  223. data/gollum-6.1.0/lib/gollum/templates/search.mustache +51 -0
  224. data/gollum-6.1.0/lib/gollum/templates/searchbar.mustache +3 -0
  225. data/gollum-6.1.0/lib/gollum/templates/wiki_content.mustache +64 -0
  226. data/gollum-6.1.0/lib/gollum/uri_encode_component.rb +212 -0
  227. data/gollum-6.1.0/lib/gollum/views/commit.rb +49 -0
  228. data/gollum-6.1.0/lib/gollum/views/compare.rb +109 -0
  229. data/gollum-6.1.0/lib/gollum/views/create.rb +53 -0
  230. data/gollum-6.1.0/lib/gollum/views/edit.rb +78 -0
  231. data/gollum-6.1.0/lib/gollum/views/editable.rb +31 -0
  232. data/gollum-6.1.0/lib/gollum/views/error.rb +7 -0
  233. data/gollum-6.1.0/lib/gollum/views/has_math.rb +15 -0
  234. data/gollum-6.1.0/lib/gollum/views/has_page.rb +19 -0
  235. data/gollum-6.1.0/lib/gollum/views/has_user_icons.rb +15 -0
  236. data/gollum-6.1.0/lib/gollum/views/helpers/locale_helpers.rb +89 -0
  237. data/gollum-6.1.0/lib/gollum/views/helpers.rb +132 -0
  238. data/gollum-6.1.0/lib/gollum/views/history.rb +56 -0
  239. data/gollum-6.1.0/lib/gollum/views/latest_changes.rb +44 -0
  240. data/gollum-6.1.0/lib/gollum/views/layout.rb +103 -0
  241. data/gollum-6.1.0/lib/gollum/views/overview.rb +81 -0
  242. data/gollum-6.1.0/lib/gollum/views/page.rb +277 -0
  243. data/gollum-6.1.0/lib/gollum/views/pagination.rb +13 -0
  244. data/gollum-6.1.0/lib/gollum/views/rss.rb +84 -0
  245. data/gollum-6.1.0/lib/gollum/views/search.rb +47 -0
  246. data/gollum-6.1.0/lib/gollum/views/template_cascade.rb +29 -0
  247. data/gollum-6.1.0/lib/gollum.rb +42 -0
  248. data/gollum-6.1.0/licenses/licenses.txt +31 -0
  249. data/gollum-6.1.0/package.json +12 -0
  250. data/gollum-6.1.0/yarn.lock +1025 -0
  251. data/super-pro-rb.gemspec +11 -0
  252. metadata +290 -0
@@ -0,0 +1,177 @@
1
+ gollum -- A git-based Wiki
2
+ ====================================
3
+
4
+ [![Gem Version](https://badge.fury.io/rb/gollum.svg)](http://badge.fury.io/rb/gollum)
5
+ ![Build Status](https://github.com/gollum/gollum/actions/workflows/test.yaml/badge.svg)
6
+ [![Open Source Helpers](https://www.codetriage.com/gollum/gollum/badges/users.svg)](https://www.codetriage.com/gollum/gollum)
7
+ [![Cutting Edge Dependency Status](https://cuttingedge.onrender.com/github/gollum/gollum/svg 'Cutting Edge Dependency Status')](https://cuttingedge.onrender.com/github/gollum/gollum/info)
8
+ [![Docker Pulls](https://img.shields.io/docker/pulls/gollumwiki/gollum)](https://hub.docker.com/r/gollumwiki/gollum)
9
+
10
+ See the [wiki](https://github.com/gollum/gollum/wiki) for extensive documentation, along with [screenshots](https://github.com/gollum/gollum/wiki/Screenshots) of Gollum's features.
11
+
12
+ ## DESCRIPTION
13
+
14
+ Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a git repository of a specific nature:
15
+
16
+ * A Gollum repository's contents are human-editable text or markup files.
17
+ * Pages may be organized into directories any way you choose.
18
+ * Other content can also be included, for example images, PDFs and headers/footers for your pages.
19
+ * Gollum pages:
20
+ * May be written in a variety of [markups](#markups).
21
+ * Can be edited with your favourite editor (changes will be visible after committing) or with the built-in web interface.
22
+ * Can be displayed in all versions, reverted, etc.
23
+ * Gollum strives to be [compatible](https://github.com/gollum/gollum/wiki/5.0-release-notes#compatibility-option) with [GitHub](https://docs.github.com/en/communities/documenting-your-project-with-wikis/about-wikis) and [GitLab](https://docs.gitlab.com/ee/user/project/wiki/#create-or-edit-wiki-pages-locally) wikis.
24
+ * Just clone your GitHub/GitLab wiki and view and edit it locally!
25
+
26
+ * Gollum supports advanced functionality like:
27
+ * Diagrams using [Mermaid](https://github.com/gollum/gollum/wiki#mermaid-diagrams) or [PlantUML](https://github.com/gollum/gollum/wiki#plantuml-diagrams)
28
+ * [BibTeX and Citation support](https://github.com/gollum/gollum/wiki/BibTeX-and-Citations)
29
+ * Annotations using [CriticMarkup](https://github.com/gollum/gollum/wiki#criticmarkup-annotations)
30
+ * [Mathematics](https://github.com/gollum/gollum/wiki#mathematics) via KaTeX or MathJax
31
+ * [Macros](https://github.com/gollum/gollum/wiki/Standard-Macros)
32
+ * [Redirects](https://github.com/gollum/gollum/wiki#redirects)
33
+ * [RSS Feed](https://github.com/gollum/gollum/wiki/5.0-release-notes#rss-feed) of latest changes
34
+ * ...and [more](https://github.com/gollum/gollum/wiki)
35
+
36
+ ### SYSTEM REQUIREMENTS
37
+
38
+ Gollum runs both on Unix-like systems and on Windows.
39
+
40
+ Gollum runs either using 'normal' Ruby (MRI) or [JRuby](https://github.com/jruby/jruby) (Ruby on the Java Virtual Machine). On Windows, Gollum runs only using JRuby (either from source, or [prebuilt](#as-a-web-application-resource-java)).
41
+
42
+ On MRI, Gollum uses the [rugged](https://github.com/libgit2/rugged) git library, while on JRuby/Java it utilizes the [rjgit](https://github.com/repotag/rjgit) and [JGit](https://eclipse.dev/jgit/) libraries. See [here](https://github.com/gollum/gollum/wiki/Git-adapters) for more info.
43
+
44
+ ## INSTALLATION
45
+
46
+ ### As a Ruby Gem
47
+
48
+ Ruby is best installed either via [RVM](https://rvm.io/) or a package manager of choice. Then simply:
49
+ ```
50
+ gem install gollum
51
+ ```
52
+
53
+ Installation examples for individual systems can be seen [here](https://github.com/gollum/gollum/wiki/Installation).
54
+
55
+ To run, simply:
56
+
57
+ 1. Run: `gollum /path/to/wiki` where `/path/to/wiki` is an initialized Git repository.
58
+ 2. Open `http://localhost:4567` in your browser.
59
+
60
+ ### Via Docker
61
+
62
+ See [here](https://github.com/gollum/gollum/wiki/Gollum-via-Docker) for instructions on how to run Gollum via Docker.
63
+
64
+ ### As a web application resource (Java)
65
+
66
+ The [latest Release](https://github.com/gollum/gollum/releases/) of Gollum will always contain a downloadable `gollum.war` file that can be directly executed on any system with a working Java installation:
67
+
68
+ `java -jar gollum.war -S gollum <your-gollum-arguments-here>`
69
+
70
+ When using the `.war`, please be sure to pass [absolute paths](https://github.com/gollum/gollum/wiki/Gollum-via-Java-WAR#absolute-paths-issue) to your Gollum arguments.
71
+
72
+ ### Misc
73
+
74
+ See [below](#running-from-source) for information on running Gollum from source, as a Rack app, and more.
75
+
76
+ ## MARKUPS
77
+
78
+ Gollum allows using different markup languages on different wiki pages. It presently ships with support for the following markups:
79
+ * [Markdown](http://daringfireball.net/projects/markdown/syntax) (see [below](#Markdown-flavors) for more information on Markdown flavors)
80
+ * [RDoc](http://rdoc.sourceforge.net/)
81
+
82
+ You can easily activate support for other markups by installing additional renderers (any that are supported by [github-markup](https://github.com/github/markup)):
83
+ * [AsciiDoc](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/) -- `gem install asciidoctor`
84
+ * [Creole](http://www.wikicreole.org/wiki/CheatSheet) -- `gem install creole`
85
+ * [MediaWiki](http://www.mediawiki.org/wiki/Help:Formatting) -- `gem install wikicloth`
86
+ * [Org](http://orgmode.org/worg/dev/org-syntax.html) -- `gem install org-ruby`
87
+ * [Pod](http://perldoc.perl.org/perlpod.html) -- requires Perl >= 5.10 (the `perl` command must be available on your command line)
88
+ * Lower versions should install `Pod::Simple` from CPAN.
89
+ * [ReStructuredText](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html) -- requires python >= 3
90
+ * Note that Gollum will also need you to install `docutils` for python
91
+ * [Textile](http://redcloth.org/hobix.com/textile/quick.html) -- `gem install RedCloth`
92
+
93
+ ### Markdown flavors
94
+
95
+ By default, Gollum ships with the `kramdown` gem to render Markdown. However, you can use any [Markdown renderer supported by github-markup](https://github.com/github/markup/blob/master/lib/github/markup/markdown.rb). This includes [CommonMark](https://commonmark.org/) support via the `commonmarker` gem. The first installed renderer from the list will be used (e.g., `redcarpet` will NOT be used if `github/markdown` is installed). Just `gem install` the renderer of your choice.
96
+
97
+ See [here](https://github.com/gollum/gollum/wiki/Custom-rendering-gems) for instructions on how to use custom rendering gems and set custom options.
98
+
99
+ ## RUNNING FROM SOURCE
100
+
101
+ 1. `git clone https://github.com/gollum/gollum`
102
+ 2. `cd gollum`
103
+ 3. `[sudo] bundle install`
104
+ 4. `bundle exec bin/gollum`
105
+ 5. Open `http://localhost:4567` in your browser.
106
+
107
+ ### Rack
108
+
109
+ Gollum can also be run with any [rack-compatible web server](https://github.com/rack/rack#supported-web-servers). More on that [over here](https://github.com/gollum/gollum/wiki/Gollum-via-Rack).
110
+
111
+ ### Rack, with an authentication server
112
+
113
+ Gollum can also be run alongside a CAS (Central Authentication Service) SSO (single sign-on) server. With a bit of tweaking, this adds basic user-support to Gollum. To see an example and an explanation, navigate [over here](https://github.com/gollum/gollum/wiki/Gollum-via-Rack-and-CAS-SSO).
114
+
115
+ ### Service
116
+
117
+ Gollum can also be run as a service. More on that [over here](https://github.com/gollum/gollum/wiki/Gollum-as-a-service).
118
+
119
+ ## ENVIRONMENT
120
+
121
+ Gollum uses the environment variable `APP_ENV` primarily to control how the underlying Sinatra app behaves:
122
+
123
+ * `development` – reload the app on every request
124
+ * `production` – load the app only once
125
+
126
+ ## CONFIGURATION
127
+
128
+ Gollum comes with the command line options listed below. Note that there are some additional 'minor' options to tweak Gollum's behaviour that do not have commandline options, but can be configured in [config.rb](#config-file).
129
+
130
+ | Option | Arguments | Description |
131
+ | ----------------- | --------- | ----------- |
132
+ | --host | [HOST] | Specify the hostname or IP address to listen on. Default: '0.0.0.0'.<sup>1</sup> |
133
+ | --port | [PORT] | Specify the port to bind Gollum with. Default: `4567`. |
134
+ | --config | [FILE] | Specify path to Gollum's [configuration file](#Config-file). |
135
+ | --ref | [REF] | Specify the git branch to serve. Default: `master`. |
136
+ | --bare | none | Tell Gollum that the git repository should be treated as bare. |
137
+ | --adapter | [ADAPTER] | Launch Gollum using a specific git adapter. Default: `rugged`.<sup>2</sup> |
138
+ | --base-path | [PATH] | Specify the leading portion of all Gollum URLs (path info). Setting this to `/wiki` will make the wiki accessible under `http://localhost:4567/wiki/`. Default: `/`. |
139
+ | --page-file-dir | [PATH] | Specify the subdirectory for all pages. If set, Gollum will only serve pages from this directory and its subdirectories. Default: repository root. |
140
+ | --static, --no-static | none | Use static assets. Defaults to false in development/test, true in production/staging. |
141
+ | --assets | [PATH] | Set the path to look for static assets. |
142
+ | --css | none | Tell Gollum to inject custom CSS into each page. Uses `custom.css` from wiki root.<sup>3</sup> |
143
+ | --js | none | Tell Gollum to inject custom JS into each page. Uses `custom.js` from wiki root.<sup>3</sup> |
144
+ | --no-edit | none | Disable the feature of editing pages. |
145
+ | --allow-uploads | [MODE] | Enable file uploads. If set to `dir`, Gollum will store all uploads in the `/uploads/` directory in repository root. If set to `page`, Gollum will store each upload at the currently edited page.<sup>4</sup> |
146
+ | --math | [RENDERER] | Enable rendering of mathematical equations. Valid renderers: mathjax, katex. Default: katex. Add custom configuration for the renderer to math.config.js and commit it to the repo. |
147
+ | --critic-markup | none | Enable support for annotations using [CriticMarkup](http://criticmarkup.com/). |
148
+ | --irb | none | Launch Gollum in "console mode", with a [predefined API](https://github.com/gollum/gollum-lib/). |
149
+ | --h1-title | none | Tell Gollum to use the first `<h1>` as page title. |
150
+ | --no-display-metadata | none | Do not render metadata tables in pages. |
151
+ | --user-icons | [MODE] | Tell Gollum to use specific user icons for history view. Can be set to `gravatar`, `identicon` or `none`. Default: `none`. |
152
+ | --template-dir | [PATH] | Specify custom mustache template directory. Only overrides templates that exist in this directory. |
153
+ | --template-page | none | Use _Template in root as a template for new pages. Must be committed. |
154
+ | --emoji | none | Parse and interpret emoji tags (e.g. `:heart:`) except when the leading colon is backslashed (e.g. `\:heart:`). |
155
+ | --lenient-tag-lookup | none | Internal links resolve case-insensitively, will treat spaces as hyphens, and will match the first page found with a certain filename, anywhere in the repository. Provides compatibility with Gollum 4.x. |
156
+ | --help | none | Display the list of options on the command line. |
157
+ | --version | none | Display the current version of Gollum. |
158
+ | --versions | none | Display the current version of Gollum and auxiliary gems. |
159
+
160
+ **Notes:**
161
+
162
+ 1. The `0.0.0.0` IP address allows remote access. Should you wish for Gollum to turn into a personal Wiki, use `127.0.0.1`.
163
+ 2. Before using `--adapter`, you should probably read [this](https://github.com/gollum/gollum/wiki/Git-adapters) first.
164
+ 3. When `--css` or `--js` is used, respective files must be committed to your git repository or you will get a 302 redirect to the create a page.
165
+ 4. Files can be uploaded simply by dragging and dropping them onto the editor's text area when `--allow-uploads` is used.
166
+
167
+ ### Config file
168
+
169
+ When `--config` option is used, certain inner parts of Gollum can be customized. This is used throughout our wiki for certain user-level alterations, among which [customizing supported markups](https://github.com/gollum/gollum/wiki/Formats-and-extensions) will probably stand out.
170
+
171
+ See [here](https://github.com/gollum/gollum/wiki/Sample-config.rb) for documentation about settings configurable in `config.rb`.
172
+
173
+ **All of the mentioned alterations and options work both for Gollum's config file (`config.rb`) and Rack's config file (`config.ru`).**
174
+
175
+ ## CONTRIBUTING
176
+
177
+ Please consider helping out! See [CONTRIBUTING](CONTRIBUTING.md) for information on how to submit issues, and how to start hacking on gollum.
@@ -0,0 +1,297 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'date'
4
+ require 'tempfile'
5
+
6
+ NODE_MODULES = File.join(File.dirname(__FILE__), 'node_modules')
7
+
8
+ #############################################################################
9
+ #
10
+ # Helper functions
11
+ #
12
+ #############################################################################
13
+
14
+ def release_branch
15
+ ENV.fetch('RELEASE_BRANCH', 'master')
16
+ end
17
+
18
+ def date
19
+ Time.now.strftime("%Y-%m-%d")
20
+ end
21
+
22
+ def name
23
+ @name ||= Dir['*.gemspec'].first.split('.').first
24
+ end
25
+
26
+ def version
27
+ line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
28
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
29
+ end
30
+
31
+ def latest_changes_file
32
+ 'LATEST_CHANGES.md'
33
+ end
34
+
35
+ def history_file
36
+ 'HISTORY.md'
37
+ end
38
+
39
+ # assumes x.y.z all digit version
40
+ def next_version
41
+ # x.y.z
42
+ v = version.split '.'
43
+ # bump z
44
+ v[-1] = v[-1].to_i + 1
45
+ v.join '.'
46
+ end
47
+
48
+ def bump_version
49
+ old_file = File.read("lib/#{name}.rb")
50
+ old_version_line = old_file[/^\s*VERSION\s*=\s*.*/]
51
+ new_version = next_version
52
+ # replace first match of old version with new version
53
+ old_file.sub!(old_version_line, " VERSION = '#{new_version}'")
54
+
55
+ File.write("lib/#{name}.rb", old_file)
56
+
57
+ new_version
58
+ end
59
+
60
+ def gemspec_file
61
+ "#{name}.gemspec"
62
+ end
63
+
64
+ def gem_file
65
+ "#{name}-#{version}.gem"
66
+ end
67
+
68
+ def replace_header(head, header_name)
69
+ head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
70
+ end
71
+
72
+ def bundle_katex_fonts(assets_path)
73
+ fonts_subpath = File.join('katex', 'dist', 'fonts')
74
+ fonts_source = File.join(NODE_MODULES, fonts_subpath)
75
+ fonts_target = File.join(assets_path, fonts_subpath)
76
+ puts "\n Copying KaTeX fonts from #{fonts_source} to #{fonts_target}..."
77
+ `mkdir "#{fonts_target}"`
78
+ `cp "#{fonts_source}"/*.woff2 "#{fonts_target}"/`
79
+ puts "... Done."
80
+ end
81
+
82
+ #############################################################################
83
+ #
84
+ # Standard tasks
85
+ #
86
+ #############################################################################
87
+
88
+ task :default => :test
89
+
90
+ require 'rake/testtask'
91
+
92
+ namespace :test do
93
+ Rake::TestTask.new('capybara') do |test|
94
+ test.libs << 'lib' << 'test' << '.'
95
+ test.pattern = 'test/integration/**/test_*.rb'
96
+ test.verbose = true
97
+ test.warning = false
98
+ end
99
+ end
100
+
101
+ Rake::TestTask.new(:test) do |test|
102
+ test.libs << 'lib' << 'test' << '.'
103
+ test.test_files = FileList.new('test/**/test_*.rb') do |fl|
104
+ fl.exclude('test/integration/**/test_*.rb')
105
+ end
106
+ test.verbose = true
107
+ test.warning = false
108
+ end
109
+
110
+ desc "Generate RCov test coverage and open in your browser"
111
+ task :coverage do
112
+ require 'rcov'
113
+ sh "rm -fr coverage"
114
+ sh "rcov test/test_*.rb"
115
+ sh "open coverage/index.html"
116
+ end
117
+
118
+ desc "Open an irb session preloaded with this library"
119
+ task :console do
120
+ sh "irb -rubygems -r ./lib/#{name}.rb"
121
+ end
122
+
123
+ #############################################################################
124
+ #
125
+ # Custom tasks (add your own tasks here)
126
+ #
127
+ #############################################################################
128
+
129
+ desc "Update version number and gemspec"
130
+ task :bump do
131
+ puts "Updated version to #{bump_version}"
132
+ # Execute does not invoke dependencies.
133
+ # Manually invoke gemspec then validate.
134
+ Rake::Task[:gemspec].execute
135
+ Rake::Task[:validate].execute
136
+ end
137
+
138
+ #############################################################################
139
+ #
140
+ # Packaging tasks
141
+ #
142
+ #############################################################################
143
+
144
+ desc 'Create a release build and push to rubygems'
145
+ task :release => :build do
146
+ branch = release_branch
147
+ unless `git branch` =~ /^\* #{branch}$/
148
+ puts "You must be on the #{branch} branch to release!"
149
+ exit!
150
+ end
151
+ Rake::Task[:changelog].execute
152
+ sh "git commit --allow-empty -a -m 'Release #{version}'"
153
+ sh "git pull --rebase origin #{branch}"
154
+ sh "git tag v#{version}"
155
+ sh "git push origin #{branch}"
156
+ sh "git push origin v#{version}"
157
+ sh "gem push pkg/#{name}-#{version}.gem"
158
+ end
159
+
160
+ desc 'Publish to rubygems. Same as release'
161
+ task :publish => :release
162
+
163
+ desc 'Build gem'
164
+ task :build => :gemspec do
165
+ sh "mkdir -p pkg"
166
+ sh "gem build #{gemspec_file}"
167
+ sh "mv #{gem_file} pkg"
168
+ end
169
+
170
+ desc "Build and install"
171
+ task :install => :build do
172
+ sh "gem install --local --no-document pkg/#{name}-#{version}.gem"
173
+ end
174
+
175
+ desc 'Update gemspec'
176
+ task :gemspec => :validate do
177
+ # read spec file and split out manifest section
178
+ spec = File.read(gemspec_file)
179
+ head, manifest, tail = spec.split(" # = MANIFEST =\n")
180
+
181
+ # replace name and version
182
+ replace_header(head, :name)
183
+ replace_header(head, :version)
184
+
185
+ # determine file list from git ls-files
186
+ files = `git ls-files`.
187
+ split("\n").
188
+ sort.
189
+ reject { |file| file =~ /^\./ }.
190
+ reject { |file| file =~ /^(rdoc|pkg|test|Home\.md|\.gitattributes)/ }.
191
+ map { |file| " #{file}" }.
192
+ join("\n")
193
+
194
+ # piece file back together and write
195
+ manifest = " s.files = %w[\n#{files}\n ]\n"
196
+ spec = [head, manifest, tail].join(" # = MANIFEST =\n")
197
+ File.open(gemspec_file, 'w') { |io| io.write(spec) }
198
+ puts "Updated #{gemspec_file}"
199
+ end
200
+
201
+ desc 'Validate lib files and version file'
202
+ task :validate do
203
+ libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
204
+ unless libfiles.empty?
205
+ puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
206
+ exit!
207
+ end
208
+ unless Dir['VERSION*'].empty?
209
+ puts "A `VERSION` file at root level violates Gem best practices."
210
+ exit!
211
+ end
212
+ end
213
+
214
+ desc 'Build changelog'
215
+ task :changelog do
216
+ [latest_changes_file, history_file].each do |f|
217
+ unless File.exist?(f)
218
+ puts "#{f} does not exist but is required to build a new release."
219
+ exit!
220
+ end
221
+ end
222
+
223
+ latest_changes = File.open(latest_changes_file)
224
+ version_pattern = "# #{version}"
225
+
226
+ if !`grep "#{version_pattern}" #{history_file}`.empty?
227
+ puts "#{version} is already described in #{history_file}"
228
+ exit!
229
+ end
230
+
231
+ begin
232
+ unless latest_changes.readline.chomp! =~ %r{#{version_pattern}}
233
+ puts "#{latest_changes_file} should begin with '#{version_pattern}'"
234
+ exit!
235
+ end
236
+ rescue EOFError
237
+ puts "#{latest_changes_file} is empty!"
238
+ exit!
239
+ end
240
+
241
+ body = latest_changes.read
242
+ body.scan(/\s*#\s+\d\.\d.*/) do |match|
243
+ puts "#{latest_changes_file} may not contain multiple markdown headers!"
244
+ exit!
245
+ end
246
+
247
+ temp = Tempfile.new
248
+ temp.puts("#{version_pattern} / #{date}\n#{body}\n")
249
+ temp.close
250
+ `cat #{history_file} >> #{temp.path}`
251
+ `cat #{temp.path} > #{history_file}`
252
+ end
253
+
254
+ desc 'Precompile assets'
255
+ task :precompile do
256
+ # Attempt to install JavaScript dependencies managed by Yarn via the
257
+ # `package.json` file in Gollum's project root. If it fails, raise an error
258
+ # and exit the task early.
259
+ puts "\n Installing `yarn`-managed JavaScript dependencies... \n\n"
260
+ system "yarn install"
261
+ unless $?.success?
262
+ raise "This task tried to run `yarn install` to get up-to-date " \
263
+ "JavaScript dependencies before precompilation. But it failed. Please " \
264
+ "run `yarn install` manually from your shell and resolve any issues. " \
265
+ "It's possible that you just need to install `yarn` on your system."
266
+ end
267
+
268
+ require 'terser'
269
+ module Precious
270
+ module Assets
271
+ JS_COMPRESSOR = ::Terser.new
272
+ end
273
+ end
274
+
275
+ require './lib/gollum/app.rb'
276
+
277
+ # Next, configure the Sprockets asset pipeline and precompile production-
278
+ # ready assets.
279
+ Precious::App.set(:environment, :production)
280
+
281
+ env = Precious::Assets.sprockets
282
+ path = ENV.fetch 'GOLLUM_ASSETS_PATH',
283
+ File.join(File.dirname(__FILE__), 'lib/gollum/public/assets')
284
+ manifest = Sprockets::Manifest.new(env, path)
285
+
286
+ Sprockets::Helpers.configure do |config|
287
+ config.environment = env
288
+ config.prefix = Precious::Assets::ASSET_URL
289
+ config.digest = true
290
+ config.public_path = path
291
+ config.manifest = manifest
292
+ end
293
+
294
+ puts "\n Precompiling assets to #{path}... \n\n"
295
+ manifest.compile(Precious::Assets::MANIFEST)
296
+ bundle_katex_fonts(path)
297
+ end