scribo 1.0.38 → 1.0.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +11 -0
  3. data/.gitignore +12 -0
  4. data/.reek.yml +8 -0
  5. data/.rubocop.yml +44 -0
  6. data/.rubocop_todo.yml +129 -0
  7. data/CODE_OF_CONDUCT.md +74 -0
  8. data/Gemfile +31 -0
  9. data/Gemfile.lock +397 -0
  10. data/README.md +5 -9
  11. data/TODO.md +32 -0
  12. data/app/assets/config/scribo_manifest.js +4 -2
  13. data/app/assets/images/scribo/.keep +0 -0
  14. data/app/assets/images/scribo/Unknown-1.svg +2 -0
  15. data/app/assets/images/scribo/file.svg +4 -0
  16. data/app/assets/images/scribo/file_icons.svg +1 -0
  17. data/app/assets/images/scribo/folder-open.svg +1 -0
  18. data/app/assets/images/scribo/folder.svg +1 -0
  19. data/app/assets/images/scribo/icons/3d.svg +1 -0
  20. data/app/assets/images/scribo/icons/actionscript.svg +3 -0
  21. data/app/assets/images/scribo/icons/android.svg +1 -0
  22. data/app/assets/images/scribo/icons/angular-component.svg +3 -0
  23. data/app/assets/images/scribo/icons/angular-directive.svg +3 -0
  24. data/app/assets/images/scribo/icons/angular-guard.svg +3 -0
  25. data/app/assets/images/scribo/icons/angular-pipe.svg +3 -0
  26. data/app/assets/images/scribo/icons/angular-resolver.svg +3 -0
  27. data/app/assets/images/scribo/icons/angular-service.svg +3 -0
  28. data/app/assets/images/scribo/icons/angular.svg +3 -0
  29. data/app/assets/images/scribo/icons/apiblueprint.svg +5 -0
  30. data/app/assets/images/scribo/icons/applescript.svg +3 -0
  31. data/app/assets/images/scribo/icons/appveyor.svg +5 -0
  32. data/app/assets/images/scribo/icons/arduino.svg +1 -0
  33. data/app/assets/images/scribo/icons/asciidoc.svg +1 -0
  34. data/app/assets/images/scribo/icons/assembly.svg +4 -0
  35. data/app/assets/images/scribo/icons/audio.svg +4 -0
  36. data/app/assets/images/scribo/icons/aurelia.svg +107 -0
  37. data/app/assets/images/scribo/icons/authors.svg +1 -0
  38. data/app/assets/images/scribo/icons/autohotkey.svg +3 -0
  39. data/app/assets/images/scribo/icons/autoit.svg +21 -0
  40. data/app/assets/images/scribo/icons/azure-pipelines.svg +1 -0
  41. data/app/assets/images/scribo/icons/azure.svg +1 -0
  42. data/app/assets/images/scribo/icons/babel.svg +1 -0
  43. data/app/assets/images/scribo/icons/ballerina.svg +1 -0
  44. data/app/assets/images/scribo/icons/bazel.svg +1 -0
  45. data/app/assets/images/scribo/icons/bitbucket.svg +1 -0
  46. data/app/assets/images/scribo/icons/bithound.svg +1 -0
  47. data/app/assets/images/scribo/icons/blink.svg +4 -0
  48. data/app/assets/images/scribo/icons/blink_light.svg +4 -0
  49. data/app/assets/images/scribo/icons/bower.svg +1 -0
  50. data/app/assets/images/scribo/icons/browserlist.svg +6 -0
  51. data/app/assets/images/scribo/icons/browserlist_light.svg +7 -0
  52. data/app/assets/images/scribo/icons/bucklescript.svg +3 -0
  53. data/app/assets/images/scribo/icons/buildkite.svg +1 -0
  54. data/app/assets/images/scribo/icons/c.svg +1 -0
  55. data/app/assets/images/scribo/icons/cabal.svg +8 -0
  56. data/app/assets/images/scribo/icons/cake.svg +1 -0
  57. data/app/assets/images/scribo/icons/certificate.svg +3 -0
  58. data/app/assets/images/scribo/icons/changelog.svg +1 -0
  59. data/app/assets/images/scribo/icons/circleci.svg +14 -0
  60. data/app/assets/images/scribo/icons/circleci_light.svg +14 -0
  61. data/app/assets/images/scribo/icons/clojure.svg +1 -0
  62. data/app/assets/images/scribo/icons/cloudfoundry.svg +24 -0
  63. data/app/assets/images/scribo/icons/cmake.svg +7 -0
  64. data/app/assets/images/scribo/icons/code-climate.svg +4 -0
  65. data/app/assets/images/scribo/icons/code-climate_light.svg +4 -0
  66. data/app/assets/images/scribo/icons/coffee.svg +3 -0
  67. data/app/assets/images/scribo/icons/coldfusion.svg +7 -0
  68. data/app/assets/images/scribo/icons/conduct.svg +4 -0
  69. data/app/assets/images/scribo/icons/console.svg +3 -0
  70. data/app/assets/images/scribo/icons/contributing.svg +4 -0
  71. data/app/assets/images/scribo/icons/cpp.svg +1 -0
  72. data/app/assets/images/scribo/icons/credits.svg +3 -0
  73. data/app/assets/images/scribo/icons/crystal.svg +4 -0
  74. data/app/assets/images/scribo/icons/crystal_light.svg +4 -0
  75. data/app/assets/images/scribo/icons/csharp.svg +3 -0
  76. data/app/assets/images/scribo/icons/css-map.svg +1 -0
  77. data/app/assets/images/scribo/icons/css.svg +3 -0
  78. data/app/assets/images/scribo/icons/cucumber.svg +4 -0
  79. data/app/assets/images/scribo/icons/cuda.svg +4 -0
  80. data/app/assets/images/scribo/icons/d.svg +1 -0
  81. data/app/assets/images/scribo/icons/dart.svg +9 -0
  82. data/app/assets/images/scribo/icons/database.svg +1 -0
  83. data/app/assets/images/scribo/icons/diff.svg +1 -0
  84. data/app/assets/images/scribo/icons/django.svg +1 -0
  85. data/app/assets/images/scribo/icons/docker.svg +4 -0
  86. data/app/assets/images/scribo/icons/document.svg +3 -0
  87. data/app/assets/images/scribo/icons/dotjs.svg +8 -0
  88. data/app/assets/images/scribo/icons/drone.svg +6 -0
  89. data/app/assets/images/scribo/icons/drone_light.svg +6 -0
  90. data/app/assets/images/scribo/icons/edge.svg +1 -0
  91. data/app/assets/images/scribo/icons/editorconfig.svg +9 -0
  92. data/app/assets/images/scribo/icons/ejs.svg +7 -0
  93. data/app/assets/images/scribo/icons/elixir.svg +1 -0
  94. data/app/assets/images/scribo/icons/elm.svg +1 -0
  95. data/app/assets/images/scribo/icons/email.svg +3 -0
  96. data/app/assets/images/scribo/icons/erlang.svg +5 -0
  97. data/app/assets/images/scribo/icons/eslint.svg +3 -0
  98. data/app/assets/images/scribo/icons/exe.svg +3 -0
  99. data/app/assets/images/scribo/icons/fastlane.svg +1 -0
  100. data/app/assets/images/scribo/icons/favicon.svg +3 -0
  101. data/app/assets/images/scribo/icons/file.svg +3 -0
  102. data/app/assets/images/scribo/icons/firebase.svg +9 -0
  103. data/app/assets/images/scribo/icons/flash.svg +12 -0
  104. data/app/assets/images/scribo/icons/flow.svg +7 -0
  105. data/app/assets/images/scribo/icons/folder-android-open.svg +1 -0
  106. data/app/assets/images/scribo/icons/folder-android.svg +1 -0
  107. data/app/assets/images/scribo/icons/folder-animation-open.svg +1 -0
  108. data/app/assets/images/scribo/icons/folder-animation.svg +1 -0
  109. data/app/assets/images/scribo/icons/folder-ansible-open.svg +1 -0
  110. data/app/assets/images/scribo/icons/folder-ansible.svg +1 -0
  111. data/app/assets/images/scribo/icons/folder-api-open.svg +4 -0
  112. data/app/assets/images/scribo/icons/folder-api.svg +4 -0
  113. data/app/assets/images/scribo/icons/folder-app-open.svg +1 -0
  114. data/app/assets/images/scribo/icons/folder-app.svg +1 -0
  115. data/app/assets/images/scribo/icons/folder-archive-open.svg +1 -0
  116. data/app/assets/images/scribo/icons/folder-archive.svg +1 -0
  117. data/app/assets/images/scribo/icons/folder-audio-open.svg +2 -0
  118. data/app/assets/images/scribo/icons/folder-audio.svg +2 -0
  119. data/app/assets/images/scribo/icons/folder-aurelia-open.svg +2 -0
  120. data/app/assets/images/scribo/icons/folder-aurelia.svg +2 -0
  121. data/app/assets/images/scribo/icons/folder-aws-open.svg +2 -0
  122. data/app/assets/images/scribo/icons/folder-aws.svg +2 -0
  123. data/app/assets/images/scribo/icons/folder-batch-open.svg +1 -0
  124. data/app/assets/images/scribo/icons/folder-batch.svg +1 -0
  125. data/app/assets/images/scribo/icons/folder-benchmark-open.svg +1 -0
  126. data/app/assets/images/scribo/icons/folder-benchmark.svg +1 -0
  127. data/app/assets/images/scribo/icons/folder-bower-open.svg +2 -0
  128. data/app/assets/images/scribo/icons/folder-bower.svg +2 -0
  129. data/app/assets/images/scribo/icons/folder-ci-open.svg +1 -0
  130. data/app/assets/images/scribo/icons/folder-ci.svg +1 -0
  131. data/app/assets/images/scribo/icons/folder-circleci-open.svg +2 -0
  132. data/app/assets/images/scribo/icons/folder-circleci.svg +1 -0
  133. data/app/assets/images/scribo/icons/folder-class-open.svg +1 -0
  134. data/app/assets/images/scribo/icons/folder-class.svg +1 -0
  135. data/app/assets/images/scribo/icons/folder-client-open.svg +1 -0
  136. data/app/assets/images/scribo/icons/folder-client.svg +1 -0
  137. data/app/assets/images/scribo/icons/folder-cluster-open.svg +8 -0
  138. data/app/assets/images/scribo/icons/folder-cluster.svg +8 -0
  139. data/app/assets/images/scribo/icons/folder-command-open.svg +4 -0
  140. data/app/assets/images/scribo/icons/folder-command.svg +4 -0
  141. data/app/assets/images/scribo/icons/folder-components-open.svg +2 -0
  142. data/app/assets/images/scribo/icons/folder-components.svg +2 -0
  143. data/app/assets/images/scribo/icons/folder-config-open.svg +2 -0
  144. data/app/assets/images/scribo/icons/folder-config.svg +2 -0
  145. data/app/assets/images/scribo/icons/folder-constant-open.svg +1 -0
  146. data/app/assets/images/scribo/icons/folder-constant.svg +1 -0
  147. data/app/assets/images/scribo/icons/folder-container-open.svg +1 -0
  148. data/app/assets/images/scribo/icons/folder-container.svg +1 -0
  149. data/app/assets/images/scribo/icons/folder-content-open.svg +1 -0
  150. data/app/assets/images/scribo/icons/folder-content.svg +1 -0
  151. data/app/assets/images/scribo/icons/folder-controller-open.svg +1 -0
  152. data/app/assets/images/scribo/icons/folder-controller.svg +1 -0
  153. data/app/assets/images/scribo/icons/folder-core-open.svg +1 -0
  154. data/app/assets/images/scribo/icons/folder-core.svg +1 -0
  155. data/app/assets/images/scribo/icons/folder-coverage-open.svg +1 -0
  156. data/app/assets/images/scribo/icons/folder-coverage.svg +1 -0
  157. data/app/assets/images/scribo/icons/folder-css-open.svg +2 -0
  158. data/app/assets/images/scribo/icons/folder-css.svg +2 -0
  159. data/app/assets/images/scribo/icons/folder-custom-open.svg +1 -0
  160. data/app/assets/images/scribo/icons/folder-custom.svg +1 -0
  161. data/app/assets/images/scribo/icons/folder-database-open.svg +2 -0
  162. data/app/assets/images/scribo/icons/folder-database.svg +2 -0
  163. data/app/assets/images/scribo/icons/folder-debug-open.svg +1 -0
  164. data/app/assets/images/scribo/icons/folder-debug.svg +1 -0
  165. data/app/assets/images/scribo/icons/folder-delta-open.svg +4 -0
  166. data/app/assets/images/scribo/icons/folder-delta.svg +4 -0
  167. data/app/assets/images/scribo/icons/folder-dist-open.svg +2 -0
  168. data/app/assets/images/scribo/icons/folder-dist.svg +2 -0
  169. data/app/assets/images/scribo/icons/folder-docker-open.svg +2 -0
  170. data/app/assets/images/scribo/icons/folder-docker.svg +5 -0
  171. data/app/assets/images/scribo/icons/folder-docs-open.svg +2 -0
  172. data/app/assets/images/scribo/icons/folder-docs.svg +2 -0
  173. data/app/assets/images/scribo/icons/folder-download-open.svg +1 -0
  174. data/app/assets/images/scribo/icons/folder-download.svg +1 -0
  175. data/app/assets/images/scribo/icons/folder-dump-open.svg +1 -0
  176. data/app/assets/images/scribo/icons/folder-dump.svg +1 -0
  177. data/app/assets/images/scribo/icons/folder-environment-open.svg +1 -0
  178. data/app/assets/images/scribo/icons/folder-environment.svg +1 -0
  179. data/app/assets/images/scribo/icons/folder-error-open.svg +7 -0
  180. data/app/assets/images/scribo/icons/folder-error.svg +8 -0
  181. data/app/assets/images/scribo/icons/folder-event-open.svg +1 -0
  182. data/app/assets/images/scribo/icons/folder-event.svg +1 -0
  183. data/app/assets/images/scribo/icons/folder-examples-open.svg +1 -0
  184. data/app/assets/images/scribo/icons/folder-examples.svg +1 -0
  185. data/app/assets/images/scribo/icons/folder-expo-open.svg +1 -0
  186. data/app/assets/images/scribo/icons/folder-expo.svg +4 -0
  187. data/app/assets/images/scribo/icons/folder-export-open.svg +1 -0
  188. data/app/assets/images/scribo/icons/folder-export.svg +5 -0
  189. data/app/assets/images/scribo/icons/folder-fastlane-open.svg +1 -0
  190. data/app/assets/images/scribo/icons/folder-fastlane.svg +1 -0
  191. data/app/assets/images/scribo/icons/folder-flow-open.svg +1 -0
  192. data/app/assets/images/scribo/icons/folder-flow.svg +1 -0
  193. data/app/assets/images/scribo/icons/folder-font-open.svg +1 -0
  194. data/app/assets/images/scribo/icons/folder-font.svg +1 -0
  195. data/app/assets/images/scribo/icons/folder-functions-open.svg +1 -0
  196. data/app/assets/images/scribo/icons/folder-functions.svg +1 -0
  197. data/app/assets/images/scribo/icons/folder-generator-open.svg +1 -0
  198. data/app/assets/images/scribo/icons/folder-generator.svg +1 -0
  199. data/app/assets/images/scribo/icons/folder-git-open.svg +1 -0
  200. data/app/assets/images/scribo/icons/folder-git.svg +1 -0
  201. data/app/assets/images/scribo/icons/folder-github-open.svg +2 -0
  202. data/app/assets/images/scribo/icons/folder-github.svg +2 -0
  203. data/app/assets/images/scribo/icons/folder-gitlab-open.svg +2 -0
  204. data/app/assets/images/scribo/icons/folder-gitlab.svg +2 -0
  205. data/app/assets/images/scribo/icons/folder-global-open.svg +2 -0
  206. data/app/assets/images/scribo/icons/folder-global.svg +2 -0
  207. data/app/assets/images/scribo/icons/folder-gradle-open.svg +2 -0
  208. data/app/assets/images/scribo/icons/folder-gradle.svg +2 -0
  209. data/app/assets/images/scribo/icons/folder-graphql-open.svg +1 -0
  210. data/app/assets/images/scribo/icons/folder-graphql.svg +1 -0
  211. data/app/assets/images/scribo/icons/folder-guard-open.svg +1 -0
  212. data/app/assets/images/scribo/icons/folder-guard.svg +1 -0
  213. data/app/assets/images/scribo/icons/folder-helper-open.svg +1 -0
  214. data/app/assets/images/scribo/icons/folder-helper.svg +1 -0
  215. data/app/assets/images/scribo/icons/folder-hook-open.svg +1 -0
  216. data/app/assets/images/scribo/icons/folder-hook.svg +1 -0
  217. data/app/assets/images/scribo/icons/folder-i18n-open.svg +2 -0
  218. data/app/assets/images/scribo/icons/folder-i18n.svg +2 -0
  219. data/app/assets/images/scribo/icons/folder-images-open.svg +2 -0
  220. data/app/assets/images/scribo/icons/folder-images.svg +2 -0
  221. data/app/assets/images/scribo/icons/folder-import-open.svg +1 -0
  222. data/app/assets/images/scribo/icons/folder-import.svg +1 -0
  223. data/app/assets/images/scribo/icons/folder-include-open.svg +2 -0
  224. data/app/assets/images/scribo/icons/folder-include.svg +2 -0
  225. data/app/assets/images/scribo/icons/folder-ios-open.svg +1 -0
  226. data/app/assets/images/scribo/icons/folder-ios.svg +1 -0
  227. data/app/assets/images/scribo/icons/folder-javascript-open.svg +2 -0
  228. data/app/assets/images/scribo/icons/folder-javascript.svg +2 -0
  229. data/app/assets/images/scribo/icons/folder-jinja-open.svg +2 -0
  230. data/app/assets/images/scribo/icons/folder-jinja-open_light.svg +2 -0
  231. data/app/assets/images/scribo/icons/folder-jinja.svg +2 -0
  232. data/app/assets/images/scribo/icons/folder-jinja_light.svg +2 -0
  233. data/app/assets/images/scribo/icons/folder-job-open.svg +1 -0
  234. data/app/assets/images/scribo/icons/folder-job.svg +1 -0
  235. data/app/assets/images/scribo/icons/folder-keys-open.svg +1 -0
  236. data/app/assets/images/scribo/icons/folder-keys.svg +1 -0
  237. data/app/assets/images/scribo/icons/folder-kubernetes-open.svg +1 -0
  238. data/app/assets/images/scribo/icons/folder-kubernetes.svg +5 -0
  239. data/app/assets/images/scribo/icons/folder-layout-open.svg +1 -0
  240. data/app/assets/images/scribo/icons/folder-layout.svg +1 -0
  241. data/app/assets/images/scribo/icons/folder-less-open.svg +1 -0
  242. data/app/assets/images/scribo/icons/folder-less.svg +1 -0
  243. data/app/assets/images/scribo/icons/folder-lib-open.svg +2 -0
  244. data/app/assets/images/scribo/icons/folder-lib.svg +2 -0
  245. data/app/assets/images/scribo/icons/folder-log-open.svg +2 -0
  246. data/app/assets/images/scribo/icons/folder-log.svg +2 -0
  247. data/app/assets/images/scribo/icons/folder-mail-open.svg +1 -0
  248. data/app/assets/images/scribo/icons/folder-mail.svg +1 -0
  249. data/app/assets/images/scribo/icons/folder-mappings-open.svg +1 -0
  250. data/app/assets/images/scribo/icons/folder-mappings.svg +1 -0
  251. data/app/assets/images/scribo/icons/folder-markdown-open.svg +2 -0
  252. data/app/assets/images/scribo/icons/folder-markdown.svg +2 -0
  253. data/app/assets/images/scribo/icons/folder-messages-open.svg +1 -0
  254. data/app/assets/images/scribo/icons/folder-messages.svg +1 -0
  255. data/app/assets/images/scribo/icons/folder-meta-open.svg +1 -0
  256. data/app/assets/images/scribo/icons/folder-meta.svg +1 -0
  257. data/app/assets/images/scribo/icons/folder-middleware-open.svg +1 -0
  258. data/app/assets/images/scribo/icons/folder-middleware.svg +1 -0
  259. data/app/assets/images/scribo/icons/folder-mock-open.svg +1 -0
  260. data/app/assets/images/scribo/icons/folder-mock.svg +1 -0
  261. data/app/assets/images/scribo/icons/folder-ngrx-actions-open.svg +2 -0
  262. data/app/assets/images/scribo/icons/folder-ngrx-actions.svg +2 -0
  263. data/app/assets/images/scribo/icons/folder-ngrx-effects-open.svg +2 -0
  264. data/app/assets/images/scribo/icons/folder-ngrx-effects.svg +2 -0
  265. data/app/assets/images/scribo/icons/folder-ngrx-entities-open.svg +2 -0
  266. data/app/assets/images/scribo/icons/folder-ngrx-entities.svg +2 -0
  267. data/app/assets/images/scribo/icons/folder-ngrx-reducer-open.svg +2 -0
  268. data/app/assets/images/scribo/icons/folder-ngrx-reducer.svg +2 -0
  269. data/app/assets/images/scribo/icons/folder-ngrx-state-open.svg +1 -0
  270. data/app/assets/images/scribo/icons/folder-ngrx-state.svg +1 -0
  271. data/app/assets/images/scribo/icons/folder-ngrx-store-open.svg +1 -0
  272. data/app/assets/images/scribo/icons/folder-ngrx-store.svg +1 -0
  273. data/app/assets/images/scribo/icons/folder-node-open.svg +1 -0
  274. data/app/assets/images/scribo/icons/folder-node.svg +1 -0
  275. data/app/assets/images/scribo/icons/folder-nuxt-open.svg +1 -0
  276. data/app/assets/images/scribo/icons/folder-nuxt.svg +1 -0
  277. data/app/assets/images/scribo/icons/folder-open.svg +11 -0
  278. data/app/assets/images/scribo/icons/folder-other-open.svg +1 -0
  279. data/app/assets/images/scribo/icons/folder-other.svg +1 -0
  280. data/app/assets/images/scribo/icons/folder-packages-open.svg +1 -0
  281. data/app/assets/images/scribo/icons/folder-packages.svg +1 -0
  282. data/app/assets/images/scribo/icons/folder-php-open.svg +2 -0
  283. data/app/assets/images/scribo/icons/folder-php.svg +2 -0
  284. data/app/assets/images/scribo/icons/folder-phpmailer-open.svg +2 -0
  285. data/app/assets/images/scribo/icons/folder-phpmailer.svg +2 -0
  286. data/app/assets/images/scribo/icons/folder-pipe-open.svg +1 -0
  287. data/app/assets/images/scribo/icons/folder-pipe.svg +1 -0
  288. data/app/assets/images/scribo/icons/folder-plugin-open.svg +1 -0
  289. data/app/assets/images/scribo/icons/folder-plugin.svg +1 -0
  290. data/app/assets/images/scribo/icons/folder-prisma-open.svg +1 -0
  291. data/app/assets/images/scribo/icons/folder-prisma.svg +1 -0
  292. data/app/assets/images/scribo/icons/folder-private-open.svg +1 -0
  293. data/app/assets/images/scribo/icons/folder-private.svg +1 -0
  294. data/app/assets/images/scribo/icons/folder-public-open.svg +2 -0
  295. data/app/assets/images/scribo/icons/folder-public.svg +2 -0
  296. data/app/assets/images/scribo/icons/folder-python-open.svg +1 -0
  297. data/app/assets/images/scribo/icons/folder-python.svg +1 -0
  298. data/app/assets/images/scribo/icons/folder-react-components-open.svg +2 -0
  299. data/app/assets/images/scribo/icons/folder-react-components.svg +2 -0
  300. data/app/assets/images/scribo/icons/folder-redux-actions-open.svg +1 -0
  301. data/app/assets/images/scribo/icons/folder-redux-actions.svg +1 -0
  302. data/app/assets/images/scribo/icons/folder-redux-reducer-open.svg +2 -0
  303. data/app/assets/images/scribo/icons/folder-redux-reducer.svg +2 -0
  304. data/app/assets/images/scribo/icons/folder-redux-store-open.svg +2 -0
  305. data/app/assets/images/scribo/icons/folder-redux-store.svg +2 -0
  306. data/app/assets/images/scribo/icons/folder-resource-open.svg +2 -0
  307. data/app/assets/images/scribo/icons/folder-resource.svg +2 -0
  308. data/app/assets/images/scribo/icons/folder-review-open.svg +1 -0
  309. data/app/assets/images/scribo/icons/folder-review.svg +1 -0
  310. data/app/assets/images/scribo/icons/folder-routes-open.svg +1 -0
  311. data/app/assets/images/scribo/icons/folder-routes.svg +1 -0
  312. data/app/assets/images/scribo/icons/folder-rules-open.svg +1 -0
  313. data/app/assets/images/scribo/icons/folder-rules.svg +1 -0
  314. data/app/assets/images/scribo/icons/folder-sass-open.svg +1 -0
  315. data/app/assets/images/scribo/icons/folder-sass.svg +1 -0
  316. data/app/assets/images/scribo/icons/folder-scripts-open.svg +2 -0
  317. data/app/assets/images/scribo/icons/folder-scripts.svg +2 -0
  318. data/app/assets/images/scribo/icons/folder-secure-open.svg +1 -0
  319. data/app/assets/images/scribo/icons/folder-secure.svg +1 -0
  320. data/app/assets/images/scribo/icons/folder-server-open.svg +1 -0
  321. data/app/assets/images/scribo/icons/folder-server.svg +1 -0
  322. data/app/assets/images/scribo/icons/folder-serverless-open.svg +1 -0
  323. data/app/assets/images/scribo/icons/folder-serverless.svg +1 -0
  324. data/app/assets/images/scribo/icons/folder-shared-open.svg +1 -0
  325. data/app/assets/images/scribo/icons/folder-shared.svg +1 -0
  326. data/app/assets/images/scribo/icons/folder-src-open.svg +2 -0
  327. data/app/assets/images/scribo/icons/folder-src.svg +2 -0
  328. data/app/assets/images/scribo/icons/folder-stack-open.svg +1 -0
  329. data/app/assets/images/scribo/icons/folder-stack.svg +1 -0
  330. data/app/assets/images/scribo/icons/folder-stylus-open.svg +1 -0
  331. data/app/assets/images/scribo/icons/folder-stylus.svg +1 -0
  332. data/app/assets/images/scribo/icons/folder-sublime-open.svg +2 -0
  333. data/app/assets/images/scribo/icons/folder-sublime.svg +2 -0
  334. data/app/assets/images/scribo/icons/folder-svg-open.svg +1 -0
  335. data/app/assets/images/scribo/icons/folder-svg.svg +1 -0
  336. data/app/assets/images/scribo/icons/folder-syntax-open.svg +1 -0
  337. data/app/assets/images/scribo/icons/folder-syntax.svg +1 -0
  338. data/app/assets/images/scribo/icons/folder-tasks-open.svg +1 -0
  339. data/app/assets/images/scribo/icons/folder-tasks.svg +1 -0
  340. data/app/assets/images/scribo/icons/folder-temp-open.svg +2 -0
  341. data/app/assets/images/scribo/icons/folder-temp.svg +2 -0
  342. data/app/assets/images/scribo/icons/folder-template-open.svg +1 -0
  343. data/app/assets/images/scribo/icons/folder-template.svg +1 -0
  344. data/app/assets/images/scribo/icons/folder-test-open.svg +1 -0
  345. data/app/assets/images/scribo/icons/folder-test.svg +1 -0
  346. data/app/assets/images/scribo/icons/folder-theme-open.svg +2 -0
  347. data/app/assets/images/scribo/icons/folder-theme.svg +2 -0
  348. data/app/assets/images/scribo/icons/folder-tools-open.svg +1 -0
  349. data/app/assets/images/scribo/icons/folder-tools.svg +1 -0
  350. data/app/assets/images/scribo/icons/folder-typescript-open.svg +1 -0
  351. data/app/assets/images/scribo/icons/folder-typescript.svg +1 -0
  352. data/app/assets/images/scribo/icons/folder-upload-open.svg +1 -0
  353. data/app/assets/images/scribo/icons/folder-upload.svg +1 -0
  354. data/app/assets/images/scribo/icons/folder-utils-open.svg +1 -0
  355. data/app/assets/images/scribo/icons/folder-utils.svg +1 -0
  356. data/app/assets/images/scribo/icons/folder-video-open.svg +2 -0
  357. data/app/assets/images/scribo/icons/folder-video.svg +2 -0
  358. data/app/assets/images/scribo/icons/folder-views-open.svg +1 -0
  359. data/app/assets/images/scribo/icons/folder-views.svg +1 -0
  360. data/app/assets/images/scribo/icons/folder-vm-open.svg +1 -0
  361. data/app/assets/images/scribo/icons/folder-vm.svg +1 -0
  362. data/app/assets/images/scribo/icons/folder-vscode-open.svg +2 -0
  363. data/app/assets/images/scribo/icons/folder-vscode.svg +2 -0
  364. data/app/assets/images/scribo/icons/folder-vue-directives-open.svg +1 -0
  365. data/app/assets/images/scribo/icons/folder-vue-directives.svg +1 -0
  366. data/app/assets/images/scribo/icons/folder-vue-open.svg +1 -0
  367. data/app/assets/images/scribo/icons/folder-vue.svg +1 -0
  368. data/app/assets/images/scribo/icons/folder-vuex-store-open.svg +1 -0
  369. data/app/assets/images/scribo/icons/folder-vuex-store.svg +1 -0
  370. data/app/assets/images/scribo/icons/folder-wakatime-open.svg +2 -0
  371. data/app/assets/images/scribo/icons/folder-wakatime.svg +2 -0
  372. data/app/assets/images/scribo/icons/folder-webpack-open.svg +2 -0
  373. data/app/assets/images/scribo/icons/folder-webpack.svg +2 -0
  374. data/app/assets/images/scribo/icons/folder-wordpress-open.svg +2 -0
  375. data/app/assets/images/scribo/icons/folder-wordpress.svg +1 -0
  376. data/app/assets/images/scribo/icons/folder.svg +11 -0
  377. data/app/assets/images/scribo/icons/font.svg +3 -0
  378. data/app/assets/images/scribo/icons/foxpro.svg +1 -0
  379. data/app/assets/images/scribo/icons/fsharp.svg +7 -0
  380. data/app/assets/images/scribo/icons/fusebox.svg +20 -0
  381. data/app/assets/images/scribo/icons/gatsby.svg +5 -0
  382. data/app/assets/images/scribo/icons/gemfile.svg +1 -0
  383. data/app/assets/images/scribo/icons/git.svg +4 -0
  384. data/app/assets/images/scribo/icons/gitlab.svg +43 -0
  385. data/app/assets/images/scribo/icons/gitpod.svg +1 -0
  386. data/app/assets/images/scribo/icons/go-mod.svg +8 -0
  387. data/app/assets/images/scribo/icons/go.svg +8 -0
  388. data/app/assets/images/scribo/icons/go_gopher.svg +25 -0
  389. data/app/assets/images/scribo/icons/godot-assets.svg +1 -0
  390. data/app/assets/images/scribo/icons/godot.svg +1 -0
  391. data/app/assets/images/scribo/icons/gradle.svg +3 -0
  392. data/app/assets/images/scribo/icons/graphcool.svg +6 -0
  393. data/app/assets/images/scribo/icons/graphql.svg +11 -0
  394. data/app/assets/images/scribo/icons/groovy.svg +3 -0
  395. data/app/assets/images/scribo/icons/grunt.svg +1 -0
  396. data/app/assets/images/scribo/icons/gulp.svg +3 -0
  397. data/app/assets/images/scribo/icons/h.svg +6 -0
  398. data/app/assets/images/scribo/icons/hack.svg +2 -0
  399. data/app/assets/images/scribo/icons/haml.svg +5 -0
  400. data/app/assets/images/scribo/icons/handlebars.svg +3 -0
  401. data/app/assets/images/scribo/icons/haskell.svg +8 -0
  402. data/app/assets/images/scribo/icons/haxe.svg +17 -0
  403. data/app/assets/images/scribo/icons/hcl.svg +1 -0
  404. data/app/assets/images/scribo/icons/hcl_light.svg +1 -0
  405. data/app/assets/images/scribo/icons/helm.svg +1 -0
  406. data/app/assets/images/scribo/icons/heroku.svg +1 -0
  407. data/app/assets/images/scribo/icons/hpp.svg +7 -0
  408. data/app/assets/images/scribo/icons/html.svg +3 -0
  409. data/app/assets/images/scribo/icons/http.svg +3 -0
  410. data/app/assets/images/scribo/icons/i18n.svg +1 -0
  411. data/app/assets/images/scribo/icons/image.svg +3 -0
  412. data/app/assets/images/scribo/icons/ionic.svg +1 -0
  413. data/app/assets/images/scribo/icons/istanbul.svg +1 -0
  414. data/app/assets/images/scribo/icons/java.svg +3 -0
  415. data/app/assets/images/scribo/icons/javascript-map.svg +6 -0
  416. data/app/assets/images/scribo/icons/javascript.svg +3 -0
  417. data/app/assets/images/scribo/icons/jenkins.svg +1 -0
  418. data/app/assets/images/scribo/icons/jest.svg +1 -0
  419. data/app/assets/images/scribo/icons/jinja.svg +17 -0
  420. data/app/assets/images/scribo/icons/jinja_light.svg +17 -0
  421. data/app/assets/images/scribo/icons/json.svg +1 -0
  422. data/app/assets/images/scribo/icons/julia.svg +9 -0
  423. data/app/assets/images/scribo/icons/jupyter.svg +1 -0
  424. data/app/assets/images/scribo/icons/karma.svg +8 -0
  425. data/app/assets/images/scribo/icons/key.svg +3 -0
  426. data/app/assets/images/scribo/icons/kivy.svg +9 -0
  427. data/app/assets/images/scribo/icons/kl.svg +8 -0
  428. data/app/assets/images/scribo/icons/kotlin.svg +14 -0
  429. data/app/assets/images/scribo/icons/laravel.svg +5 -0
  430. data/app/assets/images/scribo/icons/less.svg +1 -0
  431. data/app/assets/images/scribo/icons/lib.svg +3 -0
  432. data/app/assets/images/scribo/icons/livescript.svg +18 -0
  433. data/app/assets/images/scribo/icons/lock.svg +3 -0
  434. data/app/assets/images/scribo/icons/log.svg +4 -0
  435. data/app/assets/images/scribo/icons/lua.svg +7 -0
  436. data/app/assets/images/scribo/icons/makefile.svg +1 -0
  437. data/app/assets/images/scribo/icons/markdown.svg +3 -0
  438. data/app/assets/images/scribo/icons/markojs.svg +12 -0
  439. data/app/assets/images/scribo/icons/mathematica.svg +3 -0
  440. data/app/assets/images/scribo/icons/matlab.svg +8 -0
  441. data/app/assets/images/scribo/icons/mdx.svg +1 -0
  442. data/app/assets/images/scribo/icons/merlin.svg +5 -0
  443. data/app/assets/images/scribo/icons/mint.svg +1 -0
  444. data/app/assets/images/scribo/icons/mjml.svg +4 -0
  445. data/app/assets/images/scribo/icons/mocha.svg +2 -0
  446. data/app/assets/images/scribo/icons/moonscript.svg +1 -0
  447. data/app/assets/images/scribo/icons/mxml.svg +3 -0
  448. data/app/assets/images/scribo/icons/nest-controller.svg +8 -0
  449. data/app/assets/images/scribo/icons/nest-decorator.svg +8 -0
  450. data/app/assets/images/scribo/icons/nest-filter.svg +8 -0
  451. data/app/assets/images/scribo/icons/nest-gateway.svg +8 -0
  452. data/app/assets/images/scribo/icons/nest-guard.svg +8 -0
  453. data/app/assets/images/scribo/icons/nest-middleware.svg +8 -0
  454. data/app/assets/images/scribo/icons/nest-module.svg +8 -0
  455. data/app/assets/images/scribo/icons/nest-pipe.svg +8 -0
  456. data/app/assets/images/scribo/icons/nest-service.svg +8 -0
  457. data/app/assets/images/scribo/icons/nest.svg +8 -0
  458. data/app/assets/images/scribo/icons/netlify.svg +1 -0
  459. data/app/assets/images/scribo/icons/ngrx-actions.svg +4 -0
  460. data/app/assets/images/scribo/icons/ngrx-effects.svg +4 -0
  461. data/app/assets/images/scribo/icons/ngrx-entity.svg +4 -0
  462. data/app/assets/images/scribo/icons/ngrx-reducer.svg +4 -0
  463. data/app/assets/images/scribo/icons/ngrx-state.svg +4 -0
  464. data/app/assets/images/scribo/icons/nim.svg +1 -0
  465. data/app/assets/images/scribo/icons/nix.svg +6 -0
  466. data/app/assets/images/scribo/icons/nodejs.svg +3 -0
  467. data/app/assets/images/scribo/icons/nodejs_alt.svg +1 -0
  468. data/app/assets/images/scribo/icons/nodemon.svg +7 -0
  469. data/app/assets/images/scribo/icons/now.svg +1 -0
  470. data/app/assets/images/scribo/icons/now_light.svg +1 -0
  471. data/app/assets/images/scribo/icons/npm.svg +8 -0
  472. data/app/assets/images/scribo/icons/nunjucks.svg +3 -0
  473. data/app/assets/images/scribo/icons/nuxt.svg +1 -0
  474. data/app/assets/images/scribo/icons/ocaml.svg +1 -0
  475. data/app/assets/images/scribo/icons/pdf.svg +1 -0
  476. data/app/assets/images/scribo/icons/percy.svg +1 -0
  477. data/app/assets/images/scribo/icons/perl.svg +3 -0
  478. data/app/assets/images/scribo/icons/php.svg +1 -0
  479. data/app/assets/images/scribo/icons/php_elephant.svg +4 -0
  480. data/app/assets/images/scribo/icons/postcss.svg +9 -0
  481. data/app/assets/images/scribo/icons/powerpoint.svg +3 -0
  482. data/app/assets/images/scribo/icons/powershell.svg +1 -0
  483. data/app/assets/images/scribo/icons/prettier.svg +35 -0
  484. data/app/assets/images/scribo/icons/prisma.svg +1 -0
  485. data/app/assets/images/scribo/icons/processing.svg +5 -0
  486. data/app/assets/images/scribo/icons/processing_light.svg +5 -0
  487. data/app/assets/images/scribo/icons/protractor.svg +1 -0
  488. data/app/assets/images/scribo/icons/pug.svg +22 -0
  489. data/app/assets/images/scribo/icons/puppet.svg +13 -0
  490. data/app/assets/images/scribo/icons/purescript.svg +1 -0
  491. data/app/assets/images/scribo/icons/python-misc.svg +1 -0
  492. data/app/assets/images/scribo/icons/python.svg +8 -0
  493. data/app/assets/images/scribo/icons/r.svg +4 -0
  494. data/app/assets/images/scribo/icons/racket.svg +1 -0
  495. data/app/assets/images/scribo/icons/raml.svg +1 -0
  496. data/app/assets/images/scribo/icons/razor.svg +1 -0
  497. data/app/assets/images/scribo/icons/react.svg +3 -0
  498. data/app/assets/images/scribo/icons/react_ts.svg +1 -0
  499. data/app/assets/images/scribo/icons/readme.svg +3 -0
  500. data/app/assets/images/scribo/icons/reason.svg +3 -0
  501. data/app/assets/images/scribo/icons/red.svg +8 -0
  502. data/app/assets/images/scribo/icons/redux-action.svg +1 -0
  503. data/app/assets/images/scribo/icons/redux-reducer.svg +1 -0
  504. data/app/assets/images/scribo/icons/redux-store.svg +1 -0
  505. data/app/assets/images/scribo/icons/restql.svg +60 -0
  506. data/app/assets/images/scribo/icons/riot.svg +1 -0
  507. data/app/assets/images/scribo/icons/robot.svg +1 -0
  508. data/app/assets/images/scribo/icons/rollup.svg +50 -0
  509. data/app/assets/images/scribo/icons/routing.svg +3 -0
  510. data/app/assets/images/scribo/icons/ruby.svg +3 -0
  511. data/app/assets/images/scribo/icons/rust.svg +3 -0
  512. data/app/assets/images/scribo/icons/san.svg +1 -0
  513. data/app/assets/images/scribo/icons/sass.svg +1 -0
  514. data/app/assets/images/scribo/icons/sbt.svg +6 -0
  515. data/app/assets/images/scribo/icons/scala.svg +1 -0
  516. data/app/assets/images/scribo/icons/scheme.svg +1 -0
  517. data/app/assets/images/scribo/icons/semantic-release.svg +1 -0
  518. data/app/assets/images/scribo/icons/semantic-release_light.svg +1 -0
  519. data/app/assets/images/scribo/icons/sequelize.svg +31 -0
  520. data/app/assets/images/scribo/icons/settings.svg +3 -0
  521. data/app/assets/images/scribo/icons/shaderlab.svg +3 -0
  522. data/app/assets/images/scribo/icons/silverstripe.svg +1 -0
  523. data/app/assets/images/scribo/icons/slim.svg +4 -0
  524. data/app/assets/images/scribo/icons/smarty.svg +3 -0
  525. data/app/assets/images/scribo/icons/snyk.svg +23 -0
  526. data/app/assets/images/scribo/icons/solidity.svg +7 -0
  527. data/app/assets/images/scribo/icons/stencil.svg +1 -0
  528. data/app/assets/images/scribo/icons/stencil_light.svg +1 -0
  529. data/app/assets/images/scribo/icons/storybook.svg +1 -0
  530. data/app/assets/images/scribo/icons/stylelint.svg +12 -0
  531. data/app/assets/images/scribo/icons/stylelint_light.svg +12 -0
  532. data/app/assets/images/scribo/icons/stylus.svg +1 -0
  533. data/app/assets/images/scribo/icons/sublime.svg +1 -0
  534. data/app/assets/images/scribo/icons/svelte.svg +1 -0
  535. data/app/assets/images/scribo/icons/svg.svg +1 -0
  536. data/app/assets/images/scribo/icons/swc.svg +12 -0
  537. data/app/assets/images/scribo/icons/swift.svg +1 -0
  538. data/app/assets/images/scribo/icons/table.svg +3 -0
  539. data/app/assets/images/scribo/icons/tailwindcss.svg +1 -0
  540. data/app/assets/images/scribo/icons/terraform.svg +12 -0
  541. data/app/assets/images/scribo/icons/test-js.svg +1 -0
  542. data/app/assets/images/scribo/icons/test-jsx.svg +4 -0
  543. data/app/assets/images/scribo/icons/test-ts.svg +1 -0
  544. data/app/assets/images/scribo/icons/tex.svg +1 -0
  545. data/app/assets/images/scribo/icons/todo.svg +1 -0
  546. data/app/assets/images/scribo/icons/travis.svg +13 -0
  547. data/app/assets/images/scribo/icons/tune.svg +7 -0
  548. data/app/assets/images/scribo/icons/twig.svg +3 -0
  549. data/app/assets/images/scribo/icons/typescript-def.svg +6 -0
  550. data/app/assets/images/scribo/icons/typescript.svg +3 -0
  551. data/app/assets/images/scribo/icons/url.svg +3 -0
  552. data/app/assets/images/scribo/icons/vagrant.svg +1 -0
  553. data/app/assets/images/scribo/icons/velocity.svg +1 -0
  554. data/app/assets/images/scribo/icons/verilog.svg +3 -0
  555. data/app/assets/images/scribo/icons/vfl.svg +16 -0
  556. data/app/assets/images/scribo/icons/video.svg +4 -0
  557. data/app/assets/images/scribo/icons/vim.svg +1 -0
  558. data/app/assets/images/scribo/icons/virtual.svg +1 -0
  559. data/app/assets/images/scribo/icons/visualstudio.svg +4 -0
  560. data/app/assets/images/scribo/icons/vscode.svg +9 -0
  561. data/app/assets/images/scribo/icons/vue-config.svg +1 -0
  562. data/app/assets/images/scribo/icons/vue.svg +1 -0
  563. data/app/assets/images/scribo/icons/vuex-store.svg +1 -0
  564. data/app/assets/images/scribo/icons/wakatime.svg +21 -0
  565. data/app/assets/images/scribo/icons/wakatime_light.svg +21 -0
  566. data/app/assets/images/scribo/icons/wallaby.svg +1 -0
  567. data/app/assets/images/scribo/icons/watchman.svg +4 -0
  568. data/app/assets/images/scribo/icons/webassembly.svg +1 -0
  569. data/app/assets/images/scribo/icons/webhint.svg +5 -0
  570. data/app/assets/images/scribo/icons/webpack.svg +6 -0
  571. data/app/assets/images/scribo/icons/wepy.svg +1 -0
  572. data/app/assets/images/scribo/icons/wolframlanguage.svg +13 -0
  573. data/app/assets/images/scribo/icons/word.svg +3 -0
  574. data/app/assets/images/scribo/icons/xaml.svg +3 -0
  575. data/app/assets/images/scribo/icons/xml.svg +4 -0
  576. data/app/assets/images/scribo/icons/yaml.svg +1 -0
  577. data/app/assets/images/scribo/icons/yang.svg +1 -0
  578. data/app/assets/images/scribo/icons/yarn.svg +3 -0
  579. data/app/assets/images/scribo/icons/zip.svg +3 -0
  580. data/app/assets/stylesheets/scribo/application.css +108 -0
  581. data/app/assets/stylesheets/scribo/components/file-icons.css +158 -0
  582. data/app/assets/stylesheets/scribo/components/open-editors.css +83 -0
  583. data/app/assets/stylesheets/scribo/components/tree-view.css +312 -0
  584. data/app/javascript/scribo/application.js +2 -0
  585. data/app/javascript/scribo/controllers/application.js +12 -0
  586. data/app/javascript/scribo/controllers/image_editor_controller.js +72 -0
  587. data/app/javascript/scribo/controllers/index.js +4 -0
  588. data/app/javascript/scribo/controllers/open_editors_controller.js +291 -0
  589. data/app/javascript/scribo/controllers/text_editor_controller.js +39 -0
  590. data/app/javascript/scribo/controllers/tree_view_controller.js +378 -0
  591. data/app/javascript/scribo/controllers/upload_controller.js +81 -0
  592. data/app/views/scribo/admin/sites/contents/_form.html.slim +11 -12
  593. data/app/views/scribo/shared/_ide.html.slim +1 -1
  594. data/app/views/scribo/shared/_tree-view.html.slim +3 -3
  595. data/bin/importmap +4 -0
  596. data/bin/rails +14 -0
  597. data/bin/rake +29 -0
  598. data/bin/rubocop +29 -0
  599. data/cli/.gitignore +2 -0
  600. data/cli/scribo.cr +103 -0
  601. data/cli/shard.lock +6 -0
  602. data/cli/shard.yml +18 -0
  603. data/config/importmap.rb +8 -0
  604. data/docs/content.md +33 -0
  605. data/docs/editor.png +0 -0
  606. data/docs/features.md +71 -0
  607. data/docs/ide.md +17 -0
  608. data/docs/import_export.md +7 -0
  609. data/docs/liquid.md +59 -0
  610. data/favicon.ico +0 -0
  611. data/frontend/images/.DS_Store +0 -0
  612. data/icon.png +0 -0
  613. data/lib/generators/scribo/install_generator.rb +22 -0
  614. data/lib/generators/scribo/tailwind_config_generator.rb +24 -0
  615. data/lib/generators/scribo/templates/config/initializers/scribo.rb +16 -0
  616. data/lib/scribo/engine.rb +19 -8
  617. data/lib/scribo/version.rb +1 -1
  618. data/lib/tasks/scribo_tasks.rake +13 -0
  619. data/logo.svg +1 -0
  620. data/scribo.gemspec +54 -0
  621. data/vendor/javascript/@hotwired--stimulus.js +2 -0
  622. data/vendor/javascript/painterro.js +2 -0
  623. data/vendor/javascript/sortablejs.js +134 -0
  624. data/yarn.lock +6775 -0
  625. metadata +683 -15
  626. data/app/assets/javascripts/scribo/scribo.js +0 -1
  627. data/app/assets/stylesheets/scribo/scribo.css +0 -1
  628. data/lib/scribo/liquid/tags/editable_url_tag.rb +0 -19
@@ -0,0 +1,158 @@
1
+ @define-mixin file-icons {
2
+ .name[data-path$=".txt"] {
3
+ background-image: url("scribo/icons/document.svg");
4
+ }
5
+ .name[data-path$=".html"] {
6
+ background-image: url("scribo/icons/html.svg");
7
+ }
8
+ .name[data-path$=".json"] {
9
+ background-image: url("scribo/icons/json.svg");
10
+ }
11
+ .name[data-path$=".yaml"] {
12
+ background-image: url("scribo/icons/yaml.svg");
13
+ }
14
+ .name[data-path$=".yml"] {
15
+ background-image: url("scribo/icons/yaml.svg");
16
+ }
17
+ .name[data-path$=".xml"] {
18
+ background-image: url("scribo/icons/xml.svg");
19
+ }
20
+ .name[data-path$=".plist"] {
21
+ background-image: url("scribo/icons/xml.svg");
22
+ }
23
+
24
+ .name[data-path$=".css"] {
25
+ background-image: url("scribo/icons/css.svg");
26
+ }
27
+ .name[data-path$=".scss"] {
28
+ background-image: url("scribo/icons/sass.svg");
29
+ }
30
+ .name[data-path$=".sass"] {
31
+ background-image: url("scribo/icons/sass.svg");
32
+ }
33
+
34
+ .name[data-path$=".md"] {
35
+ background-image: url("scribo/icons/markdown.svg");
36
+ }
37
+ .name[data-path$=".markdown"] {
38
+ background-image: url("scribo/icons/markdown.svg");
39
+ }
40
+ .name[data-path="LICENSE"] {
41
+ background-image: url("scribo/icons/markdown.svg");
42
+ }
43
+ // script
44
+ .name[data-path$=".js"] {
45
+ background-image: url("scribo/icons/javascript.svg");
46
+ }
47
+ .name[data-path$=".rb"] {
48
+ background-image: url("scribo/icons/ruby.svg");
49
+ }
50
+ .name[data-path="Gemfile"] {
51
+ background-image: url("scribo/icons/ruby.svg");
52
+ }
53
+ .name[data-path="Gemfile.lock"] {
54
+ background-image: url("scribo/icons/ruby.svg");
55
+ }
56
+
57
+ // image
58
+ .name[data-path$=".png"] {
59
+ background-image: url("scribo/icons/image.svg");
60
+ }
61
+ .name[data-path$=".gif"] {
62
+ background-image: url("scribo/icons/image.svg");
63
+ }
64
+ .name[data-path$=".bmp"] {
65
+ background-image: url("scribo/icons/image.svg");
66
+ }
67
+ .name[data-path$=".webp"] {
68
+ background-image: url("scribo/icons/image.svg");
69
+ }
70
+ .name[data-path$=".jpeg"] {
71
+ background-image: url("scribo/icons/image.svg");
72
+ }
73
+ .name[data-path$=".jpg"] {
74
+ background-image: url("scribo/icons/image.svg");
75
+ }
76
+ .name[data-path$=".svg"] {
77
+ background-image: url("scribo/icons/image.svg");
78
+ }
79
+ .name[data-path$=".ico"] {
80
+ background-image: url("scribo/icons/image.svg");
81
+ }
82
+
83
+ // video
84
+ .name[data-path$=".webm"] {
85
+ background-image: url("scribo/icons/video.svg");
86
+ }
87
+ .name[data-path$=".ogg"] {
88
+ background-image: url("scribo/icons/video.svg");
89
+ }
90
+ .name[data-path$=".mp4"] {
91
+ background-image: url("scribo/icons/video.svg");
92
+ }
93
+
94
+ // audio
95
+ .name[data-path$=".midi"] {
96
+ background-image: url("scribo/icons/audio.svg");
97
+ }
98
+ .name[data-path$=".mpeg"] {
99
+ background-image: url("scribo/icons/audio.svg");
100
+ }
101
+ .name[data-path$=".webm"] {
102
+ background-image: url("scribo/icons/audio.svg");
103
+ }
104
+ .name[data-path$=".wav"] {
105
+ background-image: url("scribo/icons/audio.svg");
106
+ }
107
+
108
+ // document
109
+ .name[data-path$=".doc"] {
110
+ background-image: url("scribo/icons/word.svg");
111
+ }
112
+ .name[data-path$=".docx"] {
113
+ background-image: url("scribo/icons/word.svg");
114
+ }
115
+ .name[data-path$=".ppt"] {
116
+ background-image: url("scribo/icons/powerpoint.svg");
117
+ }
118
+ .name[data-path$=".pptx"] {
119
+ background-image: url("scribo/icons/powerpoint.svg");
120
+ }
121
+ .name[data-path$=".csv"] {
122
+ background-image: url("scribo/icons/table.svg");
123
+ }
124
+ .name[data-path$=".xls"] {
125
+ background-image: url("scribo/icons/table.svg");
126
+ }
127
+ .name[data-path$=".xlsx"] {
128
+ background-image: url("scribo/icons/table.svg");
129
+ }
130
+ .name[data-path$=".pdf"] {
131
+ background-image: url("scribo/icons/pdf.svg");
132
+ }
133
+ .name[data-path$=".zip"] {
134
+ background-image: url("scribo/icons/zip.svg");
135
+ }
136
+
137
+ // font
138
+ .name[data-path$=".eot"] {
139
+ background-image: url("scribo/icons/font.svg");
140
+ }
141
+ .name[data-path$=".otf"] {
142
+ background-image: url("scribo/icons/font.svg");
143
+ }
144
+ .name[data-path$=".ttf"] {
145
+ background-image: url("scribo/icons/font.svg");
146
+ }
147
+ .name[data-path$=".woff"] {
148
+ background-image: url("scribo/icons/font.svg");
149
+ }
150
+ .name[data-path$=".woff2"] {
151
+ background-image: url("scribo/icons/font.svg");
152
+ }
153
+
154
+ // other
155
+ .name[data-path$=".link"] {
156
+ background-image: url("scribo/icons/http.svg");
157
+ }
158
+ }
@@ -0,0 +1,83 @@
1
+ .editors-pane {
2
+ flex: 1;
3
+ position: relative;
4
+ min-height: 100vh;
5
+
6
+ .editors-tabs {
7
+ display: flex;
8
+ flex-direction: row;
9
+ margin-left: 38px;
10
+
11
+ .editor-tab {
12
+ cursor: pointer;
13
+ padding: 2px 0.5rem 2px 0.5rem;
14
+ border-radius: 4px 4px 0 0;
15
+ border-top: 1px solid #ddd;
16
+ border-right: 1px solid #ddd;
17
+ font-size: smaller;
18
+ background: #f9f9f9;
19
+
20
+ html.dark & {
21
+ background: rgba(55, 65, 81, var(--tw-bg-opacity));
22
+ }
23
+
24
+ svg, i {
25
+ display: inline;
26
+ font-size: 70%;
27
+ margin-left: 0.4rem;
28
+ color: black;
29
+ }
30
+ svg, i:before {
31
+ content: "\f00d";
32
+ }
33
+
34
+ &:first-child {
35
+ border-left: 1px solid #ddd;
36
+ }
37
+
38
+ &.editor-tab--active {
39
+ background: #fff;
40
+
41
+ html.dark & {
42
+ background: #0a001f;
43
+ }
44
+ }
45
+
46
+ &.editor-tab--dirty {
47
+ font-weight: bold;
48
+ svg, i {
49
+ font-size: 80%;
50
+ }
51
+ }
52
+
53
+ &:hover {
54
+ svg, i {
55
+ color: black;
56
+ font-size: 70%;
57
+ }
58
+ svg, i:before {
59
+ content: "\f00d";
60
+ }
61
+ }
62
+
63
+ .name {
64
+ background-repeat: no-repeat;
65
+ background-position: 0px 50%;
66
+ padding-left: 22px;
67
+ line-height: 18px;
68
+ height: 18px;
69
+ }
70
+
71
+ @mixin file-icons;
72
+ }
73
+ }
74
+ .editors-contents {
75
+ .editor-content {
76
+ display: none;
77
+
78
+ &.editor-content--active {
79
+ display: block;
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,312 @@
1
+ .tree-view {
2
+ margin-top: 24px;
3
+ border-right: 1px solid #ccc;
4
+ font-size: 14px;
5
+ user-select: none;
6
+ -webkit-user-select: none;
7
+ height: 100%;
8
+ color: #000;
9
+
10
+ html.dark & {
11
+ color: rgb(209, 213, 219);
12
+ }
13
+ padding: 5px;
14
+ ul {
15
+ margin: 0;
16
+ padding: 0;
17
+ padding-left: 10px;
18
+ }
19
+
20
+ li {
21
+ list-style-type: none;
22
+ padding-left: 0;
23
+ }
24
+
25
+ a.list-item {
26
+ cursor: pointer;
27
+ }
28
+
29
+ ul.openEditors {
30
+ li {
31
+ font-style: italic;
32
+
33
+ [data-action="click->open-editors#save"] {
34
+ display: none;
35
+ }
36
+ }
37
+
38
+ li.dirty {
39
+ font-style: normal;
40
+
41
+ [data-action="click->open-editors#save"] {
42
+ display: inline;
43
+ }
44
+
45
+ .tools {
46
+ top: 2px;
47
+ display: inline;
48
+ }
49
+ }
50
+ }
51
+
52
+ & .section:first-of-type {
53
+ margin-top: 0;
54
+ }
55
+
56
+ .section {
57
+ display: block;
58
+ padding-left: 4px;
59
+ position: relative;
60
+ margin-top: 1rem;
61
+
62
+ .title {
63
+ font-weight: bold;
64
+ text-transform: uppercase;
65
+ background-repeat: no-repeat;
66
+ background-position: 0px 50%;
67
+ padding-left: 0px;
68
+ line-height: 25px;
69
+ height: 25px;
70
+ }
71
+
72
+ > ul {
73
+ padding-left: 0;
74
+ }
75
+ }
76
+
77
+ & .section > .tools {
78
+ display: none;
79
+ position: absolute;
80
+ right: 5px;
81
+
82
+ i {
83
+ cursor: pointer;
84
+ padding: 5px;
85
+ }
86
+
87
+ svg {
88
+ margin: 5px;
89
+ }
90
+ }
91
+
92
+ & > .section:hover > .tools {
93
+ display: inline;
94
+
95
+ a {
96
+ display: inline;
97
+ }
98
+ }
99
+
100
+ .list-item {
101
+ cursor: default;
102
+ overflow: hidden;
103
+ white-space: nowrap;
104
+ text-overflow: ellipsis;
105
+ }
106
+
107
+ .name {
108
+ background-repeat: no-repeat;
109
+ background-position: 0px 50%;
110
+ padding-left: 22px;
111
+ line-height: 18px;
112
+ height: 18px;
113
+
114
+ small {
115
+ padding-left: 5px;
116
+ }
117
+ }
118
+
119
+ a.list-item {
120
+ color: #000;
121
+ html.dark & {
122
+ color: rgb(209, 213, 219);
123
+ }
124
+ display: block;
125
+ padding-left: 4px;
126
+ position: relative;
127
+ }
128
+
129
+ a.list-item:hover {
130
+ background-color: #ddd;
131
+ html.dark & {
132
+ background-color: #666;
133
+ }
134
+ }
135
+
136
+ svg.s16 {
137
+ width: 16px;
138
+ height: 16px;
139
+ }
140
+ }
141
+
142
+ .tree-view .file > span {
143
+ background-image: url('file.svg');
144
+ background-size: 18px 18px;
145
+ padding-left: 0px;
146
+ }
147
+
148
+ .tree-view .list-item > .tools {
149
+ display: none;
150
+ position: absolute;
151
+ right: 5px;
152
+ top: -3px;
153
+
154
+ i {
155
+ padding: 5px;
156
+ }
157
+ svg {
158
+ margin: 5px;
159
+ }
160
+ }
161
+
162
+ .tree-view .list-item:hover > .tools {
163
+ display: inline;
164
+
165
+ a {
166
+ display: inline;
167
+ }
168
+ }
169
+
170
+ .tree-view li.entry.file.selected .list-item > .tools {
171
+ display: inline;
172
+
173
+ a {
174
+ display: inline;
175
+ }
176
+ }
177
+
178
+ .tree-view .entry {
179
+ font-weight: normal;
180
+ }
181
+
182
+ .tree-view .entry.selected {
183
+ font-weight: bold;
184
+ background-color: lightgray;
185
+ html.dark & {
186
+ background-color: #333;
187
+ }
188
+ }
189
+
190
+ .tree-view .list-item .name {
191
+ background-size: 18px 18px;
192
+ }
193
+
194
+ .tree-view .directory.closed > .list-item .name {
195
+ background-image: url('scribo/icons/folder.svg');
196
+ background-size: 18px 18px;
197
+ }
198
+
199
+ .tree-view .directory.open > .list-item .name {
200
+ background-image: url('scribo/icons/folder-open.svg');
201
+ background-size: 18px 18px;
202
+ }
203
+
204
+ // .tree-view .entry.selected:before {
205
+ // content: '';
206
+ // position: absolute;
207
+ // left: 0;
208
+ // right: 0;
209
+ // height: 25px;
210
+ // background-color: #f5f5f5;
211
+ // z-index: -1;
212
+ // }
213
+
214
+ .tree-view .directory.closed > ul {
215
+ display: none;
216
+ }
217
+
218
+ .tree-view .directory.closed > .list-item .name[data-path*="font"] {
219
+ background-image: url('scribo/icons/folder-font.svg');
220
+ }
221
+ .tree-view .directory.open > .list-item .name[data-path*="font"] {
222
+ background-image: url('scribo/icons/folder-font-open.svg');
223
+ }
224
+
225
+ .tree-view .directory.closed > .list-item .name[data-path*="image"] {
226
+ background-image: url('scribo/icons/folder-images.svg');
227
+ }
228
+ .tree-view .directory.open > .list-item .name[data-path*="image"] {
229
+ background-image: url('scribo/icons/folder-images-open.svg');
230
+ }
231
+
232
+ .tree-view .directory.closed > .list-item .name[data-path*="data"] {
233
+ background-image: url('scribo/icons/folder-database.svg');
234
+ }
235
+ .tree-view .directory.open > .list-item .name[data-path*="data"] {
236
+ background-image: url('scribo/icons/folder-database-open.svg');
237
+ }
238
+
239
+ .tree-view .directory.closed > .list-item .name[data-path*="style"] {
240
+ background-image: url('scribo/icons/folder-css.svg');
241
+ }
242
+ .tree-view .directory.open > .list-item .name[data-path*="syle"] {
243
+ background-image: url('scribo/icons/folder-css-open.svg');
244
+ }
245
+
246
+ .tree-view .directory.closed > .list-item .name[data-path*="css"] {
247
+ background-image: url('scribo/icons/folder-css.svg');
248
+ }
249
+ .tree-view .directory.open > .list-item .name[data-path*="css"] {
250
+ background-image: url('scribo/icons/folder-css-open.svg');
251
+ }
252
+
253
+ .tree-view .directory.closed > .list-item .name[data-path*="sass"] {
254
+ background-image: url('scribo/icons/folder-sass.svg');
255
+ }
256
+ .tree-view .directory.open > .list-item .name[data-path*="sass"] {
257
+ background-image: url('scribo/icons/folder-sass-open.svg');
258
+ }
259
+
260
+ .tree-view .directory.closed > .list-item .name[data-path*="scripts"] {
261
+ background-image: url('scribo/icons/folder-javascript.svg');
262
+ }
263
+ .tree-view .directory.open > .list-item .name[data-path*="scripts"] {
264
+ background-image: url('scribo/icons/folder-javascript-open.svg');
265
+ }
266
+
267
+ .tree-view .directory.closed > .list-item .name[data-path*="layout"] {
268
+ background-image: url('scribo/icons/folder-layout.svg');
269
+ }
270
+ .tree-view .directory.open > .list-item .name[data-path*="layout"] {
271
+ background-image: url('scribo/icons/folder-layout-open.svg');
272
+ }
273
+
274
+ .tree-view .directory.closed > .list-item .name[data-path*="pages"] {
275
+ background-image: url('scribo/icons/folder-views.svg');
276
+ }
277
+ .tree-view .directory.open > .list-item .name[data-path*="pages"] {
278
+ background-image: url('scribo/icons/folder-views-open.svg');
279
+ }
280
+
281
+ .tree-view .directory.closed > .list-item .name[data-path*="post"] {
282
+ background-image: url('scribo/icons/folder-archive.svg');
283
+ }
284
+ .tree-view .directory.open > .list-item .name[data-path*="post"] {
285
+ background-image: url('scribo/icons/folder-archive-open.svg');
286
+ }
287
+
288
+ .tree-view .directory.closed > .list-item .name[data-path*="component"] {
289
+ background-image: url('scribo/icons/folder-components.svg');
290
+ }
291
+ .tree-view .directory.open > .list-item .name[data-path*="component"] {
292
+ background-image: url('scribo/icons/folder-components-open.svg');
293
+ }
294
+
295
+ .tree-view .directory.closed > .list-item .name[data-path*="lib"] {
296
+ background-image: url('scribo/icons/folder-lib.svg');
297
+ }
298
+ .tree-view .directory.open > .list-item .name[data-path*="lib"] {
299
+ background-image: url('scribo/icons/folder-lib-open.svg');
300
+ }
301
+
302
+ .tree-view .directory.closed > .list-item .name[data-path*="include"] {
303
+ background-image: url('scribo/icons/folder-include.svg');
304
+ }
305
+
306
+ .tree-view .directory.open > .list-item .name[data-path*="include"] {
307
+ background-image: url('scribo/icons/folder-include-open.svg');
308
+ }
309
+
310
+ .tree-view .file > .list-item {
311
+ @mixin file-icons;
312
+ }
@@ -0,0 +1,2 @@
1
+ import "scribo/controllers"
2
+
@@ -0,0 +1,12 @@
1
+ import { Application } from '@hotwired/stimulus'
2
+
3
+ let application
4
+ if (window.Stimulus) {
5
+ application = window.Stimulus
6
+ } else {
7
+ application = Application.start()
8
+ application.debug = false
9
+ window.Stimulus = application
10
+ }
11
+
12
+ export { application }
@@ -0,0 +1,72 @@
1
+ import { Controller } from "@hotwired/stimulus"
2
+ import Painterro from "painterro"
3
+
4
+ export default class extends Controller {
5
+ static targets = ["textarea"]
6
+ connect() {
7
+ const self = this
8
+ this.dirtyTrackingEnabled = false
9
+ this.editor = Painterro({
10
+ id: self.element.id,
11
+ toolbarPosition: "top",
12
+ hiddenTools: ["close", "save"],
13
+ hideByEsc: false,
14
+ saveByEnter: false,
15
+ onImageLoaded: (e) => {
16
+ self.dirtyTrackingEnabled = true
17
+ },
18
+ onChange: (e) => {
19
+ if (self.dirtyTrackingEnabled == false) {
20
+ return
21
+ }
22
+ let event = new CustomEvent("content-editor.changed", {
23
+ bubbles: true,
24
+ cancelable: true,
25
+ detail: {
26
+ contentId: self.data.get("content-id"),
27
+ dirty: true,
28
+ },
29
+ })
30
+ self.element.dispatchEvent(event)
31
+ },
32
+ saveHandler: (image, done) => {
33
+ const formData = new FormData()
34
+ formData.append("_method", "PATCH")
35
+ formData.append(
36
+ "content[data_with_frontmatter]",
37
+ image.asBlob(self.data.get("mime-type"))
38
+ )
39
+
40
+ fetch(self.data.get("save-url"), {
41
+ method: "POST",
42
+ headers: {
43
+ Accept: "application/json, text/javascript",
44
+ "X-CSRF-Token": document.querySelector("meta[name=csrf-token]")
45
+ .content,
46
+ },
47
+ body: formData,
48
+ }).then((response) => {
49
+ if (response.status == 200) {
50
+ let event = new CustomEvent("content-editor.changed", {
51
+ bubbles: true,
52
+ cancelable: true,
53
+ detail: {
54
+ contentId: self.data.get("content-id"),
55
+ dirty: false,
56
+ },
57
+ })
58
+ self.element.dispatchEvent(event)
59
+ done(false)
60
+ }
61
+ })
62
+ },
63
+ })
64
+ this.editor.toolByKeyCode = {}
65
+
66
+ this.editor.show(this.data.get("url"))
67
+ }
68
+ disconnect() {}
69
+ save() {
70
+ this.editor.save()
71
+ }
72
+ }
@@ -0,0 +1,4 @@
1
+ import { application } from "scribo/controllers/application"
2
+ import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading"
3
+
4
+ eagerLoadControllersFrom("scribo/controllers", application)