utopia 2.13.4 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
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 +1,11 @@
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
+ // This file is part of the "jQuery.Syntax" project, and is distributed under the MIT License.
2
+ Syntax.Editor=function(a,c){this.container=a;this.current=this.getLines()};Syntax.Editor.prototype.getLines=function(){for(var a=this.container.childNodes,c=[],b=[],d="",f=0,g=0;g<a.length;g+=1){var h=Syntax.innerText([a[g]]).split("\n");if(1<h.length){h[0]=d+h[0];for(var d=h.pop(),e=0;e<h.length;e+=1)b.push(f-c.length),c.push(h[e]);f=g+1}else d+=h[0]}""!=d?(b.push(f-c.length),c.push(d)):f-=1;b.push(f);console.log("getLines",b,c,a);return{lines:c,offsets:b}};
3
+ Syntax.Editor.prototype.updateChangedLines=function(){for(var a={},c=this.getLines(),b=0,d=0;b<this.current.lines.length&&d<c.lines.length;)if(this.current.lines[b]==c.lines[d])b+=1,d+=1;else break;a.start=d;b=this.current.lines.length;for(d=c.lines.length;b>a.start&&d>a.start;)if(this.current.lines[b-1]==c.lines[d-1])b-=1,d-=1;else break;a.end=d;a.originalEnd=b;for(a.difference=c.lines.length-this.current.lines.length;0<a.start&&c.offsets[a.start]!=c.offsets[a.start-1];)a.start-=1;if(0<a.difference)for(;a.end<
4
+ c.lines.length-1&&c.offsets[a.end-1]!=c.offsets[a.end];)a.end+=1,a.originalEnd+=1;this.current=c;return this.changed=a};Syntax.Editor.prototype.textForLines=function(a,c){return this.current.lines.slice(a,c).join("\n")+"\n"};
5
+ Syntax.Editor.prototype.updateLines=function(a,c){if(a.start!=a.end){var b=a.start,d=a.end,b=b+this.current.offsets[b],d=d+this.current.offsets[d],b=Array.prototype.slice.call(this.container.childNodes,b,d);$(b).replaceWith(c)}else 0==a.start?$(this.container).prepend(c):(b=a.start,b+=this.current.offsets[b],$(this.container.childNodes[b]).after(c))};
6
+ Syntax.Editor.getCharacterOffset=function(a){var c=0;if("undefined"!=typeof window.getSelection){var c=window.getSelection().getRangeAt(0),b=c.cloneRange();b.selectNodeContents(a);b.setEnd(c.endContainer,c.endOffset);c=b.toString().length}else"undefined"!=typeof document.selection&&"Control"!=document.selection.type&&(c=document.selection.createRange(),b=document.body.createTextRange(),b.moveToElementText(a),b.setEndPoint("EndToEnd",c),c=b.text.length);return c};
7
+ Syntax.Editor.getNodesForCharacterOffsets=function(a,c){for(var b=document.createTreeWalker(c,NodeFilter.SHOW_TEXT,function(a){return NodeFilter.FILTER_ACCEPT},!1),d=[],f=0,g=0;g<a.length&&b.nextNode();){for(var h=f+b.currentNode.length;g<a.length&&a[g]<h;)d.push([b.currentNode,f,h]),g+=1;f=h}return d};
8
+ Syntax.Editor.prototype.getClientState=function(){var a={},c=window.getSelection();0<c.rangeCount&&(a.range=c.getRangeAt(0));a.range&&(a.startOffset=Syntax.Editor.getCharacterOffset(this.container));return a};
9
+ Syntax.Editor.prototype.setClientState=function(a){if(a.startOffset){var c=Syntax.Editor.getNodesForCharacterOffsets([a.startOffset],this.container),b=document.createRange();b.setStart(c[0][0],a.startOffset-c[0][1]);b.setEnd(c[0][0],a.startOffset-c[0][1]);a=window.getSelection();a.removeAllRanges();a.addRange(b)}};
10
+ Syntax.layouts.editor=function(a,c){var b=jQuery('<div class="editor syntax highlighted" contentEditable="true">');b.append(c.children());var d=new Syntax.Editor(b.get(0)),f=function(b){var c=d.getClientState(),e=d.updateChangedLines();0>e.difference&&0<e.start&&(e.start-=1);b=d.textForLines(e.start,e.end);e.start==e.end?d.updateLines(e,[]):Syntax.highlightText(b,a,function(a){d.updateLines(e,a.children().get());d.setClientState(c)})};b.bind("keyup",function(){f()});b.bind("paste",function(a){f()});
11
+ b.bind("keydown",function(a){9==a.keyCode?(a.preventDefault(),document.execCommand("insertHTML",!1," ")):13==a.keyCode&&(a.preventDefault(),document.execCommand("insertHTML",!1,"\n"))});return jQuery('<div class="syntax-container">').append(b)};
@@ -1,258 +1,8 @@
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
- };
1
+ // This file is part of the "jQuery.Syntax" project, and is distributed under the MIT License.
2
+ Function.prototype.bind||(Function.prototype.bind=function(a){var b=Array.prototype.slice.call(arguments,1),c=this;return function(){return c.apply(a,b)}});function ResourceLoader(a){this.dependencies={};this.loading={};this.loader=a}ResourceLoader.prototype._finish=function(a){var b=this.dependencies[a];if(b){a=this._loaded.bind(this,a);for(var c=0;c<b.length;c+=1)a=this.get.bind(this,b[c],a);a()}else this._loaded(a)};
3
+ ResourceLoader.prototype._loaded=function(a){var b=this[a],c=this.loading[a];this.loading[a]=null;if(b)for(a=0;a<c.length;a+=1)c[a](b);else alert("ResourceLoader: Could not load resource named "+a)};ResourceLoader.prototype.dependency=function(a,b){if(!this[b]||this.loading[name])this.dependencies[a]?this.dependencies[a].push(b):this.dependencies[a]=[b]};
4
+ ResourceLoader.prototype.get=function(a,b){void 0==a?b():this.loading[a]?this.loading[a].push(b):this[a]?b(this[a]):(this.loading[a]=[b],this.loader(a,this._finish.bind(this,a)))};
5
+ var Syntax={root:null,aliases:{},styles:{},themes:{},lib:{},cacheScripts:!0,cacheStyleSheets:!0,codeSelector:"code:not(.highlighted)",defaultOptions:{theme:"base",replace:!0,linkify:!0},brushes:new ResourceLoader(function(a,b){a=Syntax.aliases[a]||a;Syntax.getResource("jquery.syntax.brush",a,b)}),loader:new ResourceLoader(function(a,b){Syntax.getResource("jquery.syntax",a,b)}),getStyles:function(a){var b=jQuery("<link>");jQuery("head").append(b);Syntax.cacheStyleSheets||(a=a+"?"+Math.random());b.attr({rel:"stylesheet",
6
+ type:"text/css",href:a})},getScript:function(a,b){var c=document.createElement("script");c.onreadystatechange=function(){if(this.onload&&("loaded"==this.readyState||"complete"==this.readyState))this.onload(),this.onload=null};c.onload=b;c.type="text/javascript";Syntax.cacheScripts||(a=a+"?"+Math.random());c.src=a;document.getElementsByTagName("head")[0].appendChild(c)},getResource:function(a,b,c){Syntax.detectRoot();a=a+"."+b;if(b=this.styles[a])for(var d=0;d<b.length;d+=1)this.getStyles(this.root+
7
+ b[d]);Syntax.getScript(this.root+a+".js",c)},alias:function(a,b){Syntax.aliases[a]=a;for(var c=0;c<b.length;c+=1)Syntax.aliases[b[c]]=a},brushAliases:function(a){var b=[],c;for(c in Syntax.aliases)Syntax.aliases[c]===a&&b.push(c);return b},brushNames:function(){var a=[],b;for(b in Syntax.aliases)b===Syntax.aliases[b]&&a.push(b);return a},detectRoot:function(){if(null==Syntax.root){var a=jQuery("script").filter(function(){return this.src.match(/jquery\.syntax/)}).get(0);if(a&&(a=a.src.match(/.*\//)))Syntax.root=
8
+ a[0]}}};jQuery.fn.syntax=function(a,b){0!=this.length&&(a=jQuery.extend(Syntax.defaultOptions,a),Syntax.loader.get("core",function(c){Syntax.highlight(this,a,b)}.bind(this)))};jQuery.syntax=function(a,b){jQuery(Syntax.codeSelector,a?a.context:null).syntax(a,b)};