utopia 2.13.4 → 2.14.0

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 (353) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/development.yml +62 -0
  3. data/README.md +3 -5
  4. data/bake/utopia/yarn.rb +4 -2
  5. data/docs/_components/jquery-litebox/jquery.litebox.css +23 -0
  6. data/docs/_components/jquery-litebox/jquery.litebox.gallery.css +48 -0
  7. data/docs/_components/jquery-litebox/jquery.litebox.js +30 -0
  8. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +6 -0
  9. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +4 -10
  10. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +5 -2
  11. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +8 -8
  12. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +1 -1
  13. data/docs/_components/jquery-syntax/base/jquery.syntax.core.css +43 -47
  14. data/docs/_components/jquery-syntax/jquery.syntax.brush.apache.js +3 -41
  15. data/docs/_components/jquery-syntax/jquery.syntax.brush.applescript.js +5 -57
  16. data/docs/_components/jquery-syntax/jquery.syntax.brush.assembly.js +3 -37
  17. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +4 -67
  18. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash.js +2 -33
  19. data/docs/_components/jquery-syntax/jquery.syntax.brush.basic.js +5 -51
  20. data/docs/_components/jquery-syntax/jquery.syntax.brush.clang.js +5 -89
  21. data/docs/_components/jquery-syntax/jquery.syntax.brush.csharp.js +4 -47
  22. data/docs/_components/jquery-syntax/jquery.syntax.brush.css.js +5 -80
  23. data/docs/_components/jquery-syntax/jquery.syntax.brush.diff.js +2 -24
  24. data/docs/_components/jquery-syntax/jquery.syntax.brush.go.js +3 -47
  25. data/docs/_components/jquery-syntax/jquery.syntax.brush.haskell.js +3 -45
  26. data/docs/_components/jquery-syntax/jquery.syntax.brush.html.js +4 -66
  27. data/docs/_components/jquery-syntax/jquery.syntax.brush.io.js +3 -45
  28. data/docs/_components/jquery-syntax/jquery.syntax.brush.java.js +4 -45
  29. data/docs/_components/jquery-syntax/jquery.syntax.brush.javascript.js +3 -40
  30. data/docs/_components/jquery-syntax/jquery.syntax.brush.kai.js +2 -29
  31. data/docs/_components/jquery-syntax/jquery.syntax.brush.lisp.js +2 -34
  32. data/docs/_components/jquery-syntax/jquery.syntax.brush.lua.js +3 -44
  33. data/docs/_components/jquery-syntax/jquery.syntax.brush.nginx.js +2 -31
  34. data/docs/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +4 -73
  35. data/docs/_components/jquery-syntax/jquery.syntax.brush.ooc.js +4 -46
  36. data/docs/_components/jquery-syntax/jquery.syntax.brush.pascal.js +4 -51
  37. data/docs/_components/jquery-syntax/jquery.syntax.brush.perl5.js +3 -52
  38. data/docs/_components/jquery-syntax/jquery.syntax.brush.php-script.js +4 -48
  39. data/docs/_components/jquery-syntax/jquery.syntax.brush.php.js +2 -15
  40. data/docs/_components/jquery-syntax/jquery.syntax.brush.plain.js +2 -10
  41. data/docs/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +3 -43
  42. data/docs/_components/jquery-syntax/jquery.syntax.brush.python.js +5 -44
  43. data/docs/_components/jquery-syntax/jquery.syntax.brush.ruby.js +5 -77
  44. data/docs/_components/jquery-syntax/jquery.syntax.brush.scala.js +4 -44
  45. data/docs/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +2 -29
  46. data/docs/_components/jquery-syntax/jquery.syntax.brush.sql.js +4 -31
  47. data/docs/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +3 -57
  48. data/docs/_components/jquery-syntax/jquery.syntax.brush.swift.js +3 -55
  49. data/docs/_components/jquery-syntax/jquery.syntax.brush.trenni.js +2 -35
  50. data/docs/_components/jquery-syntax/jquery.syntax.brush.xml.js +4 -50
  51. data/docs/_components/jquery-syntax/jquery.syntax.brush.yaml.js +2 -29
  52. data/docs/_components/jquery-syntax/jquery.syntax.cache.js +7 -65
  53. data/docs/_components/jquery-syntax/jquery.syntax.core.js +34 -1098
  54. data/docs/_components/jquery-syntax/jquery.syntax.editor.js +11 -291
  55. data/docs/_components/jquery-syntax/jquery.syntax.js +8 -258
  56. data/docs/_components/jquery/jquery.js +1678 -1026
  57. data/docs/_components/jquery/jquery.min.js +2 -4
  58. data/docs/_components/jquery/jquery.min.map +1 -1
  59. data/docs/_components/jquery/jquery.slim.js +1602 -932
  60. data/docs/_components/jquery/jquery.slim.min.js +2 -4
  61. data/docs/_components/jquery/jquery.slim.min.map +1 -1
  62. data/docs/_static/icon.png +0 -0
  63. data/docs/_static/site.css +100 -114
  64. data/docs/{wiki/development-environment-setup.html → development-environment-setup/index.html} +9 -15
  65. data/docs/{wiki/faq/what-is-xnode.html → faq/what-is-xnode/index.html} +9 -15
  66. data/docs/index.html +25 -31
  67. data/docs/javascript/index.html +108 -0
  68. data/docs/{wiki/middleware/content.html → middleware/content/index.html} +9 -15
  69. data/docs/{wiki/middleware/controller/actions.html → middleware/controller/actions/index.html} +11 -17
  70. data/docs/{wiki/middleware/controller.html → middleware/controller/index.html} +9 -15
  71. data/docs/{wiki/middleware/controller/rewrite.html → middleware/controller/rewrite/index.html} +9 -15
  72. data/docs/{wiki/middleware/localization.html → middleware/localization/index.html} +9 -15
  73. data/docs/{wiki/middleware/redirection.html → middleware/redirection/index.html} +9 -15
  74. data/docs/{wiki/middleware/session.html → middleware/session/index.html} +9 -15
  75. data/docs/{wiki/middleware/static.html → middleware/static/index.html} +9 -15
  76. data/docs/{wiki/server-setup.html → server-setup/index.html} +11 -42
  77. data/docs/{wiki/testing.html → testing/index.html} +10 -16
  78. data/docs/{wiki/updating-utopia.html → updating-utopia/index.html} +9 -15
  79. data/docs/{wiki/your-first-page.html → your-first-page/index.html} +11 -17
  80. data/lib/utopia/content.rb +23 -19
  81. data/lib/utopia/content/link.rb +29 -34
  82. data/lib/utopia/content/links.rb +185 -123
  83. data/lib/utopia/content/node.rb +13 -17
  84. data/lib/utopia/content/response.rb +2 -2
  85. data/lib/utopia/localization.rb +18 -10
  86. data/lib/utopia/path.rb +36 -32
  87. data/lib/utopia/version.rb +1 -1
  88. data/setup/site/Gemfile +7 -5
  89. data/spec/utopia/command_spec.rb +1 -1
  90. data/spec/utopia/content/links/bar/index.xnode +0 -0
  91. data/spec/utopia/content/links/bar/parent/child/index.en.xnode +0 -0
  92. data/spec/utopia/content/links/bar/parent/child/index.ja.xnode +0 -0
  93. data/spec/utopia/content/links/bar/parent/links.yaml +2 -0
  94. data/spec/utopia/content/links/index.xnode +0 -0
  95. data/spec/utopia/content/links/links.yaml +10 -1
  96. data/spec/utopia/content/links/redirect/links.yaml +2 -0
  97. data/spec/utopia/content/links_spec.rb +160 -43
  98. data/spec/utopia/content/localized/links.yaml +2 -5
  99. data/spec/utopia/content/node_spec.rb +1 -1
  100. data/spec/utopia/path_spec.rb +50 -5
  101. data/wiki/Gemfile +9 -0
  102. data/wiki/config.ru +7 -0
  103. data/{documentation/pages/wiki/development-environment-setup/content.md → wiki/pages/development-environment-setup/index.md} +0 -0
  104. data/wiki/pages/faq/links.yaml +2 -0
  105. data/{documentation/pages/wiki/faq/what-is-xnode/content.md → wiki/pages/faq/what-is-xnode/index.md} +1 -1
  106. data/wiki/pages/faq/what-is-xnode/links.yaml +2 -0
  107. data/{documentation/pages/wiki/content.md → wiki/pages/index.md} +2 -2
  108. data/{documentation/pages/wiki/javascript/content.md → wiki/pages/javascript/index.md} +15 -13
  109. data/wiki/pages/javascript/links.yaml +2 -0
  110. data/wiki/pages/links.yaml +2 -0
  111. data/{documentation/pages/wiki/middleware/content/content.md → wiki/pages/middleware/content/index.md} +0 -0
  112. data/{documentation/pages/wiki/middleware/controller/actions/content.md → wiki/pages/middleware/controller/actions/index.md} +2 -2
  113. data/{documentation/pages/wiki/middleware/controller/content.md → wiki/pages/middleware/controller/index.md} +0 -0
  114. data/{documentation/pages/wiki → wiki/pages}/middleware/controller/links.yaml +0 -0
  115. data/{documentation/pages/wiki/middleware/controller/rewrite/content.md → wiki/pages/middleware/controller/rewrite/index.md} +0 -0
  116. data/{documentation/pages/wiki/middleware/localization/content.md → wiki/pages/middleware/localization/index.md} +0 -0
  117. data/{documentation/pages/wiki/middleware/redirection/content.md → wiki/pages/middleware/redirection/index.md} +0 -0
  118. data/{documentation/pages/wiki/middleware/session/content.md → wiki/pages/middleware/session/index.md} +0 -0
  119. data/{documentation/pages/wiki/middleware/static/content.md → wiki/pages/middleware/static/index.md} +0 -0
  120. data/{documentation/pages/wiki/server-setup/content.md → wiki/pages/server-setup/index.md} +0 -0
  121. data/{documentation/pages/wiki/testing/content.md → wiki/pages/testing/index.md} +0 -0
  122. data/{documentation/pages/wiki/updating-utopia/content.md → wiki/pages/updating-utopia/index.md} +0 -0
  123. data/{documentation/pages/wiki/your-first-page/content.md → wiki/pages/your-first-page/index.md} +2 -2
  124. metadata +56 -263
  125. data/.travis.yml +0 -28
  126. data/Rakefile +0 -33
  127. data/docs/_components/jquery/core.js +0 -482
  128. data/docs/_static/utopia-background.svg +0 -1
  129. data/docs/_static/utopia.svg +0 -1
  130. data/docs/code/Utopia.html +0 -517
  131. data/docs/code/Utopia/Basename.html +0 -654
  132. data/docs/code/Utopia/Bootstrap.html +0 -538
  133. data/docs/code/Utopia/Command.html +0 -213
  134. data/docs/code/Utopia/Command/Environment.html +0 -321
  135. data/docs/code/Utopia/Command/Server.html +0 -214
  136. data/docs/code/Utopia/Command/Server/Create.html +0 -222
  137. data/docs/code/Utopia/Command/Server/Environment.html +0 -236
  138. data/docs/code/Utopia/Command/Server/Update.html +0 -317
  139. data/docs/code/Utopia/Command/Setup.html +0 -145
  140. data/docs/code/Utopia/Command/Setup/Server.html +0 -298
  141. data/docs/code/Utopia/Command/Setup/Site.html +0 -180
  142. data/docs/code/Utopia/Command/Site.html +0 -285
  143. data/docs/code/Utopia/Command/Site/Create.html +0 -324
  144. data/docs/code/Utopia/Command/Site/Update.html +0 -407
  145. data/docs/code/Utopia/Command/Top.html +0 -279
  146. data/docs/code/Utopia/Content.html +0 -832
  147. data/docs/code/Utopia/Content/Document.html +0 -1822
  148. data/docs/code/Utopia/Content/Document/State.html +0 -1220
  149. data/docs/code/Utopia/Content/Link.html +0 -1286
  150. data/docs/code/Utopia/Content/Links.html +0 -847
  151. data/docs/code/Utopia/Content/MarkupParser.html +0 -881
  152. data/docs/code/Utopia/Content/MarkupParser/ParsedTag.html +0 -422
  153. data/docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html +0 -615
  154. data/docs/code/Utopia/Content/Namespace.html +0 -485
  155. data/docs/code/Utopia/Content/Node.html +0 -1188
  156. data/docs/code/Utopia/Content/Node/Context.html +0 -938
  157. data/docs/code/Utopia/Content/Response.html +0 -813
  158. data/docs/code/Utopia/Content/SymbolicHash.html +0 -419
  159. data/docs/code/Utopia/Content/Tag.html +0 -399
  160. data/docs/code/Utopia/Content/Tags.html +0 -136
  161. data/docs/code/Utopia/Content/Tags/ContentTag.html +0 -187
  162. data/docs/code/Utopia/Content/Tags/DeferredTag.html +0 -193
  163. data/docs/code/Utopia/Content/Tags/Library.html +0 -333
  164. data/docs/code/Utopia/Content/Tags/NodeTag.html +0 -193
  165. data/docs/code/Utopia/Content/UnbalancedTagError.html +0 -298
  166. data/docs/code/Utopia/ContentLength.html +0 -343
  167. data/docs/code/Utopia/Controller.html +0 -907
  168. data/docs/code/Utopia/Controller/Actions.html +0 -289
  169. data/docs/code/Utopia/Controller/Actions/Action.html +0 -984
  170. data/docs/code/Utopia/Controller/Actions/ClassMethods.html +0 -442
  171. data/docs/code/Utopia/Controller/Base.html +0 -1216
  172. data/docs/code/Utopia/Controller/Respond.html +0 -293
  173. data/docs/code/Utopia/Controller/Respond/ClassMethods.html +0 -236
  174. data/docs/code/Utopia/Controller/Respond/Converter.html +0 -256
  175. data/docs/code/Utopia/Controller/Respond/Converter/Callback.html +0 -484
  176. data/docs/code/Utopia/Controller/Respond/Converter/ToJSON.html +0 -381
  177. data/docs/code/Utopia/Controller/Respond/Passthrough.html +0 -297
  178. data/docs/code/Utopia/Controller/Respond/Responder.html +0 -535
  179. data/docs/code/Utopia/Controller/Rewrite.html +0 -290
  180. data/docs/code/Utopia/Controller/Rewrite/ClassMethods.html +0 -242
  181. data/docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html +0 -364
  182. data/docs/code/Utopia/Controller/Rewrite/Rewriter.html +0 -464
  183. data/docs/code/Utopia/Controller/Rewrite/Rule.html +0 -209
  184. data/docs/code/Utopia/Controller/Variables.html +0 -550
  185. data/docs/code/Utopia/Controllers.html +0 -244
  186. data/docs/code/Utopia/Exceptions.html +0 -127
  187. data/docs/code/Utopia/Exceptions/Handler.html +0 -526
  188. data/docs/code/Utopia/Exceptions/Mailer.html +0 -482
  189. data/docs/code/Utopia/Extensions.html +0 -117
  190. data/docs/code/Utopia/Extensions/ArraySplit.html +0 -183
  191. data/docs/code/Utopia/Extensions/DateTimeComparison.html +0 -193
  192. data/docs/code/Utopia/Extensions/TimeDateComparison.html +0 -193
  193. data/docs/code/Utopia/HTTP.html +0 -250
  194. data/docs/code/Utopia/HTTP/Status.html +0 -415
  195. data/docs/code/Utopia/Locale.html +0 -606
  196. data/docs/code/Utopia/Localization.html +0 -1241
  197. data/docs/code/Utopia/Localization/Wrapper.html +0 -459
  198. data/docs/code/Utopia/Logger.html +0 -205
  199. data/docs/code/Utopia/Logger/CompactFormatter.html +0 -335
  200. data/docs/code/Utopia/Path.html +0 -3310
  201. data/docs/code/Utopia/Path/Matcher.html +0 -518
  202. data/docs/code/Utopia/Path/Matcher/MatchData.html +0 -475
  203. data/docs/code/Utopia/Redirection.html +0 -151
  204. data/docs/code/Utopia/Redirection/ClientRedirect.html +0 -717
  205. data/docs/code/Utopia/Redirection/DirectoryIndex.html +0 -298
  206. data/docs/code/Utopia/Redirection/Errors.html +0 -476
  207. data/docs/code/Utopia/Redirection/Moved.html +0 -312
  208. data/docs/code/Utopia/Redirection/RequestFailure.html +0 -226
  209. data/docs/code/Utopia/Redirection/Rewrite.html +0 -296
  210. data/docs/code/Utopia/Session.html +0 -889
  211. data/docs/code/Utopia/Session/LazyHash.html +0 -859
  212. data/docs/code/Utopia/Setup.html +0 -970
  213. data/docs/code/Utopia/Static.html +0 -696
  214. data/docs/code/Utopia/Static/LocalFile.html +0 -1104
  215. data/docs/code/Utopia/Static/MimeTypeLoader.html +0 -541
  216. data/docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html +0 -124
  217. data/docs/code/Utopia/Tags.html +0 -115
  218. data/docs/code/Utopia/Tags/Environment.html +0 -314
  219. data/docs/code/Utopia/Tags/EnvironmentTag.html +0 -314
  220. data/docs/code/Utopia/Tags/Library.html +0 -340
  221. data/docs/code/_index.html +0 -758
  222. data/docs/code/class_list.html +0 -51
  223. data/docs/code/css/common.css +0 -1
  224. data/docs/code/css/full_list.css +0 -58
  225. data/docs/code/css/style.css +0 -496
  226. data/docs/code/file.README.html +0 -171
  227. data/docs/code/file_list.html +0 -56
  228. data/docs/code/frames.html +0 -17
  229. data/docs/code/index.html +0 -171
  230. data/docs/code/js/app.js +0 -292
  231. data/docs/code/js/full_list.js +0 -216
  232. data/docs/code/js/jquery.js +0 -4
  233. data/docs/code/materials/utopia.png +0 -0
  234. data/docs/code/materials/utopia.svg +0 -1
  235. data/docs/code/method_list.html +0 -3443
  236. data/docs/code/top-level-namespace.html +0 -110
  237. data/docs/wiki.html +0 -92
  238. data/docs/wiki/development-environment-setup/index.html +0 -60
  239. data/docs/wiki/edit.html +0 -103
  240. data/docs/wiki/faq/what-is-xnode/index.html +0 -79
  241. data/docs/wiki/javascript.html +0 -153
  242. data/docs/wiki/javascript/index.html +0 -153
  243. data/docs/wiki/middleware/content/index.html +0 -64
  244. data/docs/wiki/middleware/controller/actions/index.html +0 -117
  245. data/docs/wiki/middleware/controller/actions/rewrite/index.html +0 -48
  246. data/docs/wiki/middleware/controller/index.html +0 -104
  247. data/docs/wiki/middleware/controller/rewrite/index.html +0 -111
  248. data/docs/wiki/middleware/localization/index.html +0 -59
  249. data/docs/wiki/middleware/redirection/index.html +0 -61
  250. data/docs/wiki/middleware/session/index.html +0 -71
  251. data/docs/wiki/middleware/static/index.html +0 -57
  252. data/docs/wiki/server-setup/index.html +0 -118
  253. data/docs/wiki/testing/index.html +0 -59
  254. data/docs/wiki/updating-utopia/index.html +0 -108
  255. data/docs/wiki/your-first-page/index.html +0 -80
  256. data/documentation/.rspec +0 -4
  257. data/documentation/.yarnrc +0 -1
  258. data/documentation/Gemfile +0 -19
  259. data/documentation/Guardfile +0 -9
  260. data/documentation/Rakefile +0 -9
  261. data/documentation/config.ru +0 -41
  262. data/documentation/config/README.md +0 -7
  263. data/documentation/config/environment.rb +0 -12
  264. data/documentation/lib/readme.txt +0 -1
  265. data/documentation/pages/_editor.xnode +0 -64
  266. data/documentation/pages/_heading.xnode +0 -2
  267. data/documentation/pages/_page.xnode +0 -40
  268. data/documentation/pages/errors/exception.xnode +0 -5
  269. data/documentation/pages/errors/file-not-found.xnode +0 -5
  270. data/documentation/pages/links.yaml +0 -2
  271. data/documentation/pages/wiki/_listing.xnode +0 -32
  272. data/documentation/pages/wiki/_navigation.xnode +0 -15
  273. data/documentation/pages/wiki/controller.rb +0 -48
  274. data/documentation/pages/wiki/edit.xnode +0 -10
  275. data/documentation/pages/wiki/links.yaml +0 -6
  276. data/documentation/pages/wiki/show.xnode +0 -12
  277. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +0 -6
  278. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +0 -5
  279. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +0 -8
  280. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +0 -6
  281. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +0 -10
  282. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +0 -3
  283. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.css.css +0 -14
  284. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +0 -16
  285. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.html.css +0 -5
  286. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +0 -3
  287. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +0 -2
  288. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.python.css +0 -6
  289. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +0 -2
  290. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +0 -18
  291. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.core.css +0 -62
  292. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.editor.css +0 -6
  293. data/documentation/public/_components/jquery-syntax/base/theme.js +0 -1
  294. data/documentation/public/_components/jquery-syntax/bright/jquery.syntax.core.css +0 -27
  295. data/documentation/public/_components/jquery-syntax/bright/theme.js +0 -1
  296. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.apache.js +0 -41
  297. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.applescript.js +0 -57
  298. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.assembly.js +0 -37
  299. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +0 -67
  300. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash.js +0 -33
  301. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.basic.js +0 -51
  302. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.clang.js +0 -89
  303. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.csharp.js +0 -47
  304. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.css.js +0 -80
  305. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.diff.js +0 -24
  306. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.go.js +0 -47
  307. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.haskell.js +0 -45
  308. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.html.js +0 -66
  309. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.io.js +0 -45
  310. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.java.js +0 -45
  311. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.javascript.js +0 -40
  312. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.kai.js +0 -29
  313. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lisp.js +0 -34
  314. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lua.js +0 -44
  315. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.nginx.js +0 -31
  316. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +0 -73
  317. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ooc.js +0 -46
  318. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.pascal.js +0 -51
  319. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.perl5.js +0 -52
  320. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php-script.js +0 -48
  321. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php.js +0 -15
  322. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.plain.js +0 -10
  323. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +0 -43
  324. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.python.js +0 -44
  325. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ruby.js +0 -77
  326. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.scala.js +0 -44
  327. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +0 -29
  328. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.sql.js +0 -31
  329. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +0 -57
  330. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.swift.js +0 -55
  331. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.trenni.js +0 -35
  332. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.xml.js +0 -50
  333. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.yaml.js +0 -29
  334. data/documentation/public/_components/jquery-syntax/jquery.syntax.cache.js +0 -65
  335. data/documentation/public/_components/jquery-syntax/jquery.syntax.core.js +0 -1098
  336. data/documentation/public/_components/jquery-syntax/jquery.syntax.editor.js +0 -291
  337. data/documentation/public/_components/jquery-syntax/jquery.syntax.js +0 -258
  338. data/documentation/public/_components/jquery-syntax/jquery.syntax.min.js +0 -13
  339. data/documentation/public/_components/jquery-syntax/paper/jquery.syntax.core.css +0 -31
  340. data/documentation/public/_components/jquery-syntax/paper/theme.js +0 -1
  341. data/documentation/public/_components/jquery/core.js +0 -482
  342. data/documentation/public/_components/jquery/jquery.js +0 -10220
  343. data/documentation/public/_components/jquery/jquery.min.js +0 -4
  344. data/documentation/public/_components/jquery/jquery.min.map +0 -1
  345. data/documentation/public/_components/jquery/jquery.slim.js +0 -8107
  346. data/documentation/public/_components/jquery/jquery.slim.min.js +0 -4
  347. data/documentation/public/_components/jquery/jquery.slim.min.map +0 -1
  348. data/documentation/public/_static +0 -1
  349. data/documentation/public/materials +0 -1
  350. data/documentation/spec/website_context.rb +0 -12
  351. data/documentation/spec/website_spec.rb +0 -16
  352. data/documentation/tasks +0 -1
  353. data/spec/utopia/content/link_spec.rb +0 -47
@@ -1,291 +0,0 @@
1
- // This file is part of the "jQuery.Syntax" project, and is distributed under the MIT License.
2
- // Copyright (c) 2011 Samuel G. D. Williams. <http://www.oriontransfer.co.nz>
3
- // See <jquery.syntax.js> for licensing details.
4
-
5
- Syntax.Editor = function(container, text) {
6
- this.container = container;
7
- this.current = this.getLines();
8
- }
9
-
10
- // This function generates an array of accumulated line offsets e.g.
11
- // If line 8 is actually in child element 6, indices[8] = -2
12
- Syntax.Editor.prototype.getLines = function() {
13
- var children = this.container.childNodes, lines = [], offsets = [];
14
-
15
- // Sometimes, e.g. when deleting text, children elements are not complete lines.
16
- // We need to accumulate incomplete lines (1), and then append them to the
17
- // start of the next complete line (2)
18
- var text = "", startChild = 0;
19
- for (var i = 0; i < children.length; i += 1) {
20
- var childLines = Syntax.innerText([children[i]]).split('\n');
21
-
22
- if (childLines.length > 1) {
23
- childLines[0] = text + childLines[0]; // (2)
24
- text = childLines.pop();
25
- } else {
26
- text += childLines[0]; // (1)
27
- continue;
28
- }
29
-
30
- for (var j = 0; j < childLines.length; j += 1) {
31
- offsets.push(startChild - lines.length);
32
- lines.push(childLines[j]);
33
- }
34
-
35
- startChild = i + 1;
36
- }
37
-
38
- // Final line, any remaining text
39
- if (text != "") {
40
- offsets.push(startChild - lines.length);
41
- lines.push(text);
42
- } else {
43
- startChild -= 1;
44
- }
45
-
46
- offsets.push(startChild);
47
-
48
- console.log("getLines", offsets, lines, children);
49
-
50
- return {lines: lines, offsets: offsets};
51
- }
52
-
53
- // This function updates the editor's internal state with regards to lines changed.
54
- // This can be lines added, removed or modified partially. This function returns
55
- // a list of lines which are different between the previous set of lines and the
56
- // updated set of lines.
57
- // This algorithm is not a general diff algorithm because we expect three cases only:
58
- // 1: A single line was modified (most common case)
59
- // 2: Some lines were removed (selection -> delete)
60
- // 3: Some lines were added (paste)
61
- Syntax.Editor.prototype.updateChangedLines = function() {
62
- var result = {};
63
-
64
- var updated = this.getLines();
65
-
66
- // Find the sequence of lines at the start preceeding the change:
67
- var i = 0, j = 0;
68
- while (i < this.current.lines.length && j < updated.lines.length) {
69
- if (this.current.lines[i] == updated.lines[j]) {
70
- i += 1;
71
- j += 1;
72
- } else {
73
- break;
74
- }
75
- }
76
-
77
- // The length of the initial segment which hasn't changed:
78
- result.start = j;
79
-
80
- // Find the sequence of lines at the end proceeding the change:
81
- i = this.current.lines.length, j = updated.lines.length;
82
- while (i > result.start && j > result.start) {
83
- if (this.current.lines[i-1] == updated.lines[j-1]) {
84
- i -= 1;
85
- j -= 1;
86
- } else {
87
- break;
88
- }
89
- }
90
-
91
- // The index of the remaining portion which hasn't changed:
92
- result.end = j;
93
- // The index to the original set of lines which were the same:
94
- result.originalEnd = i;
95
-
96
- // Did we add or remove some lines?
97
- result.difference = updated.lines.length - this.current.lines.length;
98
-
99
- // This should be augmented to improve the above.
100
- while (result.start > 0) {
101
- if (updated.offsets[result.start] == updated.offsets[result.start-1])
102
- break;
103
-
104
- result.start -= 1;
105
- }
106
-
107
- if (result.difference > 0) {
108
- while (result.end < (updated.lines.length-1)) {
109
- if (updated.offsets[result.end-1] == updated.offsets[result.end])
110
- break;
111
-
112
- result.end += 1;
113
- result.originalEnd += 1;
114
- }
115
- }
116
-
117
- // Update the internal state for the next update.
118
- this.current = updated;
119
- this.changed = result;
120
-
121
- return result;
122
- }
123
-
124
- Syntax.Editor.prototype.textForLines = function(start, end) {
125
- return this.current.lines.slice(start, end).join('\n') + '\n';
126
- }
127
-
128
- Syntax.Editor.prototype.updateLines = function(changed, newLines) {
129
- // We have two cases to handle, either we are replacing lines
130
- // (1a) Replacing old lines with one more more new lines (update)
131
- // (1b) Replacing old lines with zero new lines (removal)
132
- // Or we are inserting lines
133
- // (2a) We are inserting lines at the start of the element
134
- // (2b) We are inserting lines after an existing element.
135
-
136
- if (changed.start != changed.end) {
137
- // When text is deleted, at most two elements can remain:
138
- // (1) Whatever was partially remaining on the first line.
139
- // (2) Whatever was partially remaining on the last line.
140
- // All other lines have already been removed by the container.
141
- // changed.difference tells us how many elements have already been removed.
142
-
143
- // Cases (1a) and (1b)
144
- var start = changed.start, end = changed.end;
145
-
146
- start += this.current.offsets[start];
147
- end += this.current.offsets[end];
148
-
149
- var oldLines = Array.prototype.slice.call(this.container.childNodes, start, end);
150
-
151
- $(oldLines).replaceWith(newLines);
152
- } else {
153
- if (changed.start == 0)
154
- $(this.container).prepend(newLines);
155
- else {
156
- var start = changed.start;
157
-
158
- start += this.current.offsets[start];
159
-
160
- $(this.container.childNodes[start]).after(newLines);
161
- }
162
- }
163
- }
164
-
165
- // http://jsfiddle.net/TjXEG/1/
166
- Syntax.Editor.getCharacterOffset = function(element) {
167
- var caretOffset = 0;
168
- if (typeof window.getSelection != "undefined") {
169
- var range = window.getSelection().getRangeAt(0);
170
- var preCaretRange = range.cloneRange();
171
- preCaretRange.selectNodeContents(element);
172
- preCaretRange.setEnd(range.endContainer, range.endOffset);
173
- caretOffset = preCaretRange.toString().length;
174
- } else if (typeof document.selection != "undefined" && document.selection.type != "Control") {
175
- var textRange = document.selection.createRange();
176
- var preCaretTextRange = document.body.createTextRange();
177
- preCaretTextRange.moveToElementText(element);
178
- preCaretTextRange.setEndPoint("EndToEnd", textRange);
179
- caretOffset = preCaretTextRange.text.length;
180
- }
181
- return caretOffset;
182
- };
183
-
184
- Syntax.Editor.getNodesForCharacterOffsets = function(offsets, node) {
185
- var treeWalker = document.createTreeWalker(
186
- node,
187
- NodeFilter.SHOW_TEXT,
188
- function(node) {
189
- return NodeFilter.FILTER_ACCEPT;
190
- },
191
- false
192
- );
193
-
194
- var nodes = [], charCount = 0, i = 0;
195
- while (i < offsets.length && treeWalker.nextNode()) {
196
- var end = charCount + treeWalker.currentNode.length;
197
-
198
- while (i < offsets.length && offsets[i] < end) {
199
- nodes.push([treeWalker.currentNode, charCount, end]);
200
-
201
- i += 1;
202
- }
203
-
204
- charCount = end;
205
- }
206
-
207
- return nodes;
208
- };
209
-
210
- Syntax.Editor.prototype.getClientState = function() {
211
- var state = {};
212
-
213
- var selection = window.getSelection();
214
-
215
- if (selection.rangeCount > 0)
216
- state.range = selection.getRangeAt(0);
217
-
218
- if (state.range) {
219
- state.startOffset = Syntax.Editor.getCharacterOffset(this.container);
220
- }
221
-
222
- return state;
223
- };
224
-
225
- Syntax.Editor.prototype.setClientState = function(state) {
226
- if (state.startOffset) {
227
- var nodes = Syntax.Editor.getNodesForCharacterOffsets([state.startOffset], this.container);
228
-
229
- var range = document.createRange();
230
- range.setStart(nodes[0][0], state.startOffset - nodes[0][1]);
231
- range.setEnd(nodes[0][0], state.startOffset - nodes[0][1]);
232
-
233
- var selection = window.getSelection();
234
- selection.removeAllRanges();
235
- selection.addRange(range);
236
- }
237
- };
238
-
239
- Syntax.layouts.editor = function(options, code/*, container*/) {
240
- var container = jQuery('<div class="editor syntax highlighted" contentEditable="true">');
241
-
242
- container.append(code.children());
243
-
244
- var editor = new Syntax.Editor(container.get(0));
245
-
246
- var updateContainer = function(lineHint) {
247
- // Need to save cursor position/selection
248
- var clientState = editor.getClientState();
249
- var changed = editor.updateChangedLines();
250
-
251
- // Sometimes there are problems where multiple spans exist on the same line.
252
- if (changed.difference < 0 && changed.start > 0)
253
- changed.start -= 1;
254
-
255
- var text = editor.textForLines(changed.start, changed.end);
256
-
257
- if (changed.start == changed.end) {
258
- editor.updateLines(changed, []);
259
- } else {
260
- // Lines have been added, update the highlighting.
261
- Syntax.highlightText(text, options, function(html) {
262
- editor.updateLines(changed, html.children().get());
263
-
264
- // Restore cusor position/selection if possible
265
- editor.setClientState(clientState);
266
- });
267
- }
268
- };
269
-
270
- // 'blur keyup paste mouseup'
271
- container.bind('keyup', function(){
272
- updateContainer();
273
- });
274
-
275
- container.bind('paste', function(event){
276
- updateContainer();
277
- });
278
-
279
- container.bind('keydown', function(event){
280
- if (event.keyCode == 9) {
281
- event.preventDefault();
282
- document.execCommand('insertHTML', false, " ");
283
- }
284
- else if (event.keyCode == 13) {
285
- event.preventDefault();
286
- document.execCommand('insertHTML', false, "\n");
287
- }
288
- });
289
-
290
- return jQuery('<div class="syntax-container">').append(container);
291
- };
@@ -1,258 +0,0 @@
1
- /*
2
- This file is part of the "jQuery.Syntax" project, and is distributed under the MIT License.
3
- For more information, please see http://www.oriontransfer.co.nz/software/jquery-syntax
4
-
5
- Copyright (c) 2011 Samuel G. D. Williams. <http://www.oriontransfer.co.nz>
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the "Software"), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in
15
- all copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- THE SOFTWARE.
24
- */
25
-
26
- /*global Function: true, ResourceLoader: true, Syntax: true, alert: false, jQuery: true */
27
-
28
- // ECMAScript 5! Why wasn't this done before!?
29
- if (!Function.prototype.bind) {
30
- Function.prototype.bind = function (target) {
31
- var args = Array.prototype.slice.call(arguments, 1), fn = this;
32
-
33
- return function () {
34
- return fn.apply(target, args);
35
- };
36
- };
37
- }
38
-
39
- function ResourceLoader (loader) {
40
- this.dependencies = {};
41
- this.loading = {};
42
- this.loader = loader;
43
- }
44
-
45
- ResourceLoader.prototype._finish = function (name) {
46
- var deps = this.dependencies[name];
47
-
48
- if (deps) {
49
- // I'm not sure if this makes me want to cry... or laugh... or kill!?
50
- var chain = this._loaded.bind(this, name);
51
-
52
- for (var i = 0; i < deps.length; i += 1) {
53
- chain = this.get.bind(this, deps[i], chain);
54
- }
55
-
56
- chain();
57
- } else {
58
- this._loaded(name);
59
- }
60
- };
61
-
62
- ResourceLoader.prototype._loaded = function (name) {
63
- // When the script has been succesfully loaded, we expect the script
64
- // to register with this loader (i.e. this[name]).
65
- var resource = this[name], loading = this.loading[name];
66
-
67
- // Clear the loading list
68
- this.loading[name] = null;
69
-
70
- if (!resource) {
71
- alert("ResourceLoader: Could not load resource named " + name);
72
- } else {
73
- for (var i = 0; i < loading.length; i += 1) {
74
- loading[i](resource);
75
- }
76
- }
77
- };
78
-
79
- // This function must ensure that current cannot be completely loaded until next
80
- // is completely loaded.
81
- ResourceLoader.prototype.dependency = function (current, next) {
82
- // If the resource has completely loaded, then we don't need to queue it
83
- // as a dependency
84
- if (this[next] && !this.loading[name]) {
85
- return;
86
- }
87
-
88
- if (this.dependencies[current]) {
89
- this.dependencies[current].push(next);
90
- } else {
91
- this.dependencies[current] = [next];
92
- }
93
- };
94
-
95
- // This function must be reentrant for the same name. Additionally, if name is undefined, the callback will be invoked but with no argument.
96
- ResourceLoader.prototype.get = function (name, callback) {
97
- if (name == undefined) {
98
- callback();
99
- } else if (this.loading[name]) {
100
- this.loading[name].push(callback)
101
- } else if (this[name]) {
102
- callback(this[name]);
103
- } else {
104
- this.loading[name] = [callback];
105
- this.loader(name, this._finish.bind(this, name));
106
- }
107
- };
108
-
109
- var Syntax = {
110
- root: null,
111
- aliases: {},
112
- styles: {},
113
- themes: {},
114
- lib: {},
115
-
116
- cacheScripts: true,
117
- cacheStyleSheets: true,
118
- codeSelector: 'code:not(.highlighted)',
119
-
120
- defaultOptions: {
121
- theme: "base",
122
- replace: true,
123
- linkify: true
124
- },
125
-
126
- brushes: new ResourceLoader(function (name, callback) {
127
- name = Syntax.aliases[name] || name;
128
-
129
- Syntax.getResource('jquery.syntax.brush', name, callback);
130
- }),
131
-
132
- loader: new ResourceLoader(function (name, callback) {
133
- Syntax.getResource('jquery.syntax', name, callback);
134
- }),
135
-
136
- getStyles: function (path) {
137
- var link = jQuery('<link>');
138
- jQuery("head").append(link);
139
-
140
- if (!Syntax.cacheStyleSheets) {
141
- path = path + "?" + Math.random()
142
- }
143
-
144
- link.attr({
145
- rel: "stylesheet",
146
- type: "text/css",
147
- href: path
148
- });
149
- },
150
-
151
- getScript: function (path, callback) {
152
- var script = document.createElement('script');
153
-
154
- // Internet Exploder
155
- script.onreadystatechange = function() {
156
- if (this.onload && (this.readyState == 'loaded' || this.readyState == 'complete')) {
157
- this.onload();
158
-
159
- // Ensure the function is only called once.
160
- this.onload = null;
161
- }
162
- };
163
-
164
- // Every other modern browser
165
- script.onload = callback;
166
- script.type = "text/javascript";
167
-
168
- if (!Syntax.cacheScripts)
169
- path = path + '?' + Math.random()
170
-
171
- script.src = path;
172
-
173
- document.getElementsByTagName('head')[0].appendChild(script);
174
- },
175
-
176
- getResource: function (prefix, name, callback) {
177
- Syntax.detectRoot();
178
-
179
- var basename = prefix + "." + name;
180
- var styles = this.styles[basename];
181
-
182
- if (styles) {
183
- for (var i = 0; i < styles.length; i += 1) {
184
- this.getStyles(this.root + styles[i]);
185
- }
186
- }
187
-
188
- Syntax.getScript(this.root + basename + '.js', callback);
189
- },
190
-
191
- alias: function (name, aliases) {
192
- Syntax.aliases[name] = name;
193
-
194
- for (var i = 0; i < aliases.length; i += 1) {
195
- Syntax.aliases[aliases[i]] = name;
196
- }
197
- },
198
-
199
- brushAliases: function (brush) {
200
- var aliases = [];
201
-
202
- for (var name in Syntax.aliases) {
203
- if (Syntax.aliases[name] === brush) {
204
- aliases.push(name);
205
- }
206
- }
207
-
208
- return aliases;
209
- },
210
-
211
- brushNames: function () {
212
- var names = [];
213
-
214
- for (var name in Syntax.aliases) {
215
- if (name === Syntax.aliases[name]) {
216
- names.push(name);
217
- }
218
- }
219
-
220
- return names;
221
- },
222
-
223
- detectRoot: function () {
224
- if (Syntax.root == null) {
225
- // Initialize root based on current script path.
226
- var scripts = jQuery('script').filter(function(){
227
- return this.src.match(/jquery\.syntax/);
228
- });
229
-
230
- var first = scripts.get(0);
231
-
232
- if (first) {
233
- // Calculate the basename for the given script src.
234
- var root = first.src.match(/.*\//);
235
-
236
- if (root) {
237
- Syntax.root = root[0];
238
- }
239
- }
240
- }
241
- }
242
- };
243
-
244
- jQuery.fn.syntax = function (options, callback) {
245
- if (this.length == 0) return;
246
-
247
- options = jQuery.extend(Syntax.defaultOptions, options)
248
-
249
- Syntax.loader.get('core', function (elements) {
250
- Syntax.highlight(this, options, callback);
251
- }.bind(this));
252
- };
253
-
254
- jQuery.syntax = function (options, callback) {
255
- var context = options ? options.context : null;
256
-
257
- jQuery(Syntax.codeSelector, context).syntax(options, callback);
258
- };