lady_josephine 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/app/assets/fonts/lady_josephine/icons/icons.eot +0 -0
  5. data/app/assets/fonts/lady_josephine/icons/icons.svg +215 -0
  6. data/app/assets/fonts/lady_josephine/icons/icons.ttf +0 -0
  7. data/app/assets/fonts/lady_josephine/icons/icons.woff +0 -0
  8. data/app/assets/javascripts/lady_josephine/blocks/facebook.js +25 -0
  9. data/app/assets/javascripts/lady_josephine/blocks/instagram.js +22 -0
  10. data/app/assets/javascripts/lady_josephine/blocks/soundcloud.js +24 -0
  11. data/app/assets/javascripts/lady_josephine/blocks/twitter.js +25 -0
  12. data/app/assets/javascripts/lady_josephine/blocks/vimeo.js +55 -0
  13. data/app/assets/javascripts/lady_josephine/blocks/youtube.js +64 -0
  14. data/app/assets/javascripts/lady_josephine/editor.js +40 -0
  15. data/app/assets/javascripts/lady_josephine/lady_josephine.js +4 -0
  16. data/app/assets/javascripts/lady_josephine/lady_josephine_view.js +6 -0
  17. data/app/assets/stylesheets/lady_josephine/content.sass +33 -0
  18. data/app/assets/stylesheets/lady_josephine/icons.sass +175 -0
  19. data/app/assets/stylesheets/lady_josephine/lady_josephine.sass +6 -0
  20. data/app/assets/stylesheets/lady_josephine/sir_trevor.sass +619 -0
  21. data/app/assets/stylesheets/lady_josephine/vars.sass +36 -0
  22. data/app/controllers/lady_josephine/application_controller.rb +4 -0
  23. data/app/controllers/lady_josephine/editor_controller.rb +40 -0
  24. data/app/controllers/lady_josephine/images_controller.rb +26 -0
  25. data/app/helpers/lady_josephine/helper.rb +25 -0
  26. data/app/helpers/lady_josephine/sir_trevor_helper.rb +172 -0
  27. data/app/models/lady_josephine/concerns/model.rb +29 -0
  28. data/app/models/lady_josephine/concerns/pingable.rb +28 -0
  29. data/app/models/lady_josephine/concerns/server_uuid.rb +24 -0
  30. data/app/models/lady_josephine/concerns/sir_trevor_images.rb +38 -0
  31. data/app/models/lady_josephine/image.rb +41 -0
  32. data/app/uploader/lady_josephine/base_uploader.rb +47 -0
  33. data/app/uploader/lady_josephine/image_uploader.rb +149 -0
  34. data/app/views/lady_josephine/blocks/_audio_block.haml +2 -0
  35. data/app/views/lady_josephine/blocks/_definition_block.haml +4 -0
  36. data/app/views/lady_josephine/blocks/_divider_block.haml +2 -0
  37. data/app/views/lady_josephine/blocks/_extended_image_block.haml +63 -0
  38. data/app/views/lady_josephine/blocks/_extended_quote_block.haml +5 -0
  39. data/app/views/lady_josephine/blocks/_extended_tweet_block.haml +2 -0
  40. data/app/views/lady_josephine/blocks/_facebook_post_block.haml +2 -0
  41. data/app/views/lady_josephine/blocks/_heading_block.haml +2 -0
  42. data/app/views/lady_josephine/blocks/_html_block.haml +1 -0
  43. data/app/views/lady_josephine/blocks/_instagram_block.haml +2 -0
  44. data/app/views/lady_josephine/blocks/_list_block.haml +3 -0
  45. data/app/views/lady_josephine/blocks/_quote_block.haml +5 -0
  46. data/app/views/lady_josephine/blocks/_text_block.html.haml +2 -0
  47. data/app/views/lady_josephine/blocks/_video_block.haml +9 -0
  48. data/config/routes.rb +9 -0
  49. data/db/migrate/20160222151500_lady_josephine_image.rb +18 -0
  50. data/lib/generators/lady_josephine_migration/USAGE +9 -0
  51. data/lib/generators/lady_josephine_migration/lady_josephine_migration_generator.rb +17 -0
  52. data/lib/generators/lady_josephine_migration/templates/migration.rb +9 -0
  53. data/lib/lady_josephine.rb +18 -0
  54. data/lib/lady_josephine/engine.rb +18 -0
  55. data/lib/lady_josephine/redcarpet/custom_markdown_formatter.rb +63 -0
  56. data/lib/lady_josephine/renderer/sir_trevor_renderer.rb +16 -0
  57. data/lib/lady_josephine/version.rb +3 -0
  58. data/lib/lady_josephine/whitelist.rb +26 -0
  59. data/lib/tasks/lady_josephine_tasks.rake +4 -0
  60. data/spec/controllers/lady_josephine/editor_controller_spec.rb +58 -0
  61. data/spec/dummy/README.rdoc +28 -0
  62. data/spec/dummy/Rakefile +6 -0
  63. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  64. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  65. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  66. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  67. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  68. data/spec/dummy/bin/bundle +3 -0
  69. data/spec/dummy/bin/rails +4 -0
  70. data/spec/dummy/bin/rake +4 -0
  71. data/spec/dummy/bin/setup +29 -0
  72. data/spec/dummy/config.ru +4 -0
  73. data/spec/dummy/config/application.rb +26 -0
  74. data/spec/dummy/config/boot.rb +5 -0
  75. data/spec/dummy/config/database.yml +25 -0
  76. data/spec/dummy/config/environment.rb +5 -0
  77. data/spec/dummy/config/environments/development.rb +41 -0
  78. data/spec/dummy/config/environments/production.rb +79 -0
  79. data/spec/dummy/config/environments/test.rb +42 -0
  80. data/spec/dummy/config/initializers/assets.rb +11 -0
  81. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  82. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  83. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  84. data/spec/dummy/config/initializers/inflections.rb +16 -0
  85. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  86. data/spec/dummy/config/initializers/session_store.rb +3 -0
  87. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  88. data/spec/dummy/config/locales/en.yml +23 -0
  89. data/spec/dummy/config/routes.rb +4 -0
  90. data/spec/dummy/config/secrets.yml +22 -0
  91. data/spec/dummy/db/development.sqlite3 +0 -0
  92. data/spec/dummy/db/schema.rb +16 -0
  93. data/spec/dummy/db/test.sqlite3 +0 -0
  94. data/spec/dummy/log/bla +0 -0
  95. data/spec/dummy/public/404.html +67 -0
  96. data/spec/dummy/public/422.html +67 -0
  97. data/spec/dummy/public/500.html +66 -0
  98. data/spec/dummy/public/favicon.ico +0 -0
  99. data/spec/spec_helper.rb +17 -0
  100. data/vendor/assets/components/Eventable/README.md +12 -0
  101. data/vendor/assets/components/Eventable/bower.json +10 -0
  102. data/vendor/assets/components/Eventable/component.json +11 -0
  103. data/vendor/assets/components/Eventable/eventable.js +207 -0
  104. data/vendor/assets/components/Eventable/package.json +15 -0
  105. data/vendor/assets/components/jquery-autosize/bower.json +30 -0
  106. data/vendor/assets/components/jquery-autosize/demo.html +36 -0
  107. data/vendor/assets/components/jquery-autosize/jquery.autosize.js +273 -0
  108. data/vendor/assets/components/jquery-autosize/jquery.autosize.min.js +6 -0
  109. data/vendor/assets/components/jquery-autosize/package.json +32 -0
  110. data/vendor/assets/components/jquery-autosize/readme.md +216 -0
  111. data/vendor/assets/components/jquery/AUTHORS.txt +163 -0
  112. data/vendor/assets/components/jquery/CONTRIBUTING.md +216 -0
  113. data/vendor/assets/components/jquery/Gruntfile.js +496 -0
  114. data/vendor/assets/components/jquery/MIT-LICENSE.txt +21 -0
  115. data/vendor/assets/components/jquery/README.md +415 -0
  116. data/vendor/assets/components/jquery/build/release-notes.js +59 -0
  117. data/vendor/assets/components/jquery/build/release.js +246 -0
  118. data/vendor/assets/components/jquery/component.json +13 -0
  119. data/vendor/assets/components/jquery/composer.json +35 -0
  120. data/vendor/assets/components/jquery/jquery-migrate.js +496 -0
  121. data/vendor/assets/components/jquery/jquery-migrate.min.js +3 -0
  122. data/vendor/assets/components/jquery/jquery.js +9597 -0
  123. data/vendor/assets/components/jquery/jquery.min.js +5 -0
  124. data/vendor/assets/components/jquery/jquery.min.map +1 -0
  125. data/vendor/assets/components/jquery/package.json +39 -0
  126. data/vendor/assets/components/jquery/speed/benchmark.js +15 -0
  127. data/vendor/assets/components/jquery/speed/benchmarker.css +65 -0
  128. data/vendor/assets/components/jquery/speed/benchmarker.js +181 -0
  129. data/vendor/assets/components/jquery/speed/closest.html +39 -0
  130. data/vendor/assets/components/jquery/speed/css.html +82 -0
  131. data/vendor/assets/components/jquery/speed/event.html +58 -0
  132. data/vendor/assets/components/jquery/speed/filter.html +183 -0
  133. data/vendor/assets/components/jquery/speed/find.html +179 -0
  134. data/vendor/assets/components/jquery/speed/index.html +72 -0
  135. data/vendor/assets/components/jquery/speed/jquery-basis.js +6238 -0
  136. data/vendor/assets/components/jquery/speed/slice.vs.concat.html +47 -0
  137. data/vendor/assets/components/jquery/src/ajax.js +851 -0
  138. data/vendor/assets/components/jquery/src/ajax/jsonp.js +80 -0
  139. data/vendor/assets/components/jquery/src/ajax/script.js +86 -0
  140. data/vendor/assets/components/jquery/src/ajax/xhr.js +207 -0
  141. data/vendor/assets/components/jquery/src/attributes.js +661 -0
  142. data/vendor/assets/components/jquery/src/callbacks.js +196 -0
  143. data/vendor/assets/components/jquery/src/core.js +949 -0
  144. data/vendor/assets/components/jquery/src/css.js +679 -0
  145. data/vendor/assets/components/jquery/src/data.js +340 -0
  146. data/vendor/assets/components/jquery/src/deferred.js +141 -0
  147. data/vendor/assets/components/jquery/src/deprecated.js +4 -0
  148. data/vendor/assets/components/jquery/src/dimensions.js +41 -0
  149. data/vendor/assets/components/jquery/src/effects.js +730 -0
  150. data/vendor/assets/components/jquery/src/event-alias.js +15 -0
  151. data/vendor/assets/components/jquery/src/event.js +991 -0
  152. data/vendor/assets/components/jquery/src/exports.js +18 -0
  153. data/vendor/assets/components/jquery/src/intro.js +20 -0
  154. data/vendor/assets/components/jquery/src/manipulation.js +796 -0
  155. data/vendor/assets/components/jquery/src/offset.js +169 -0
  156. data/vendor/assets/components/jquery/src/outro.js +2 -0
  157. data/vendor/assets/components/jquery/src/queue.js +147 -0
  158. data/vendor/assets/components/jquery/src/serialize.js +99 -0
  159. data/vendor/assets/components/jquery/src/sizzle-jquery.js +9 -0
  160. data/vendor/assets/components/jquery/src/support.js +241 -0
  161. data/vendor/assets/components/jquery/src/traversing.js +275 -0
  162. data/vendor/assets/components/jquery/test/csp.php +16 -0
  163. data/vendor/assets/components/jquery/test/data/1x1.jpg +0 -0
  164. data/vendor/assets/components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
  165. data/vendor/assets/components/jquery/test/data/atom+xml.php +4 -0
  166. data/vendor/assets/components/jquery/test/data/badcall.js +1 -0
  167. data/vendor/assets/components/jquery/test/data/badjson.js +1 -0
  168. data/vendor/assets/components/jquery/test/data/cleanScript.html +10 -0
  169. data/vendor/assets/components/jquery/test/data/core/cc_on.html +22 -0
  170. data/vendor/assets/components/jquery/test/data/dashboard.xml +11 -0
  171. data/vendor/assets/components/jquery/test/data/dimensions/documentLarge.html +17 -0
  172. data/vendor/assets/components/jquery/test/data/dimensions/documentSmall.html +21 -0
  173. data/vendor/assets/components/jquery/test/data/echoData.php +1 -0
  174. data/vendor/assets/components/jquery/test/data/echoQuery.php +1 -0
  175. data/vendor/assets/components/jquery/test/data/errorWithText.php +5 -0
  176. data/vendor/assets/components/jquery/test/data/etag.php +21 -0
  177. data/vendor/assets/components/jquery/test/data/evalScript.php +1 -0
  178. data/vendor/assets/components/jquery/test/data/event/longLoadScript.php +4 -0
  179. data/vendor/assets/components/jquery/test/data/event/promiseReady.html +17 -0
  180. data/vendor/assets/components/jquery/test/data/event/syncReady.html +23 -0
  181. data/vendor/assets/components/jquery/test/data/headers.php +18 -0
  182. data/vendor/assets/components/jquery/test/data/if_modified_since.php +20 -0
  183. data/vendor/assets/components/jquery/test/data/iframe.html +8 -0
  184. data/vendor/assets/components/jquery/test/data/jquery-1.8.2.ajax_xhr.min.js +2 -0
  185. data/vendor/assets/components/jquery/test/data/json.php +13 -0
  186. data/vendor/assets/components/jquery/test/data/json_obj.js +1 -0
  187. data/vendor/assets/components/jquery/test/data/jsonp.php +14 -0
  188. data/vendor/assets/components/jquery/test/data/manipulation/iframe-denied.html +36 -0
  189. data/vendor/assets/components/jquery/test/data/name.html +1 -0
  190. data/vendor/assets/components/jquery/test/data/name.php +24 -0
  191. data/vendor/assets/components/jquery/test/data/nocontent.php +5 -0
  192. data/vendor/assets/components/jquery/test/data/offset/absolute.html +41 -0
  193. data/vendor/assets/components/jquery/test/data/offset/body.html +26 -0
  194. data/vendor/assets/components/jquery/test/data/offset/fixed.html +34 -0
  195. data/vendor/assets/components/jquery/test/data/offset/relative.html +31 -0
  196. data/vendor/assets/components/jquery/test/data/offset/scroll.html +39 -0
  197. data/vendor/assets/components/jquery/test/data/offset/static.html +31 -0
  198. data/vendor/assets/components/jquery/test/data/offset/table.html +43 -0
  199. data/vendor/assets/components/jquery/test/data/params_html.php +12 -0
  200. data/vendor/assets/components/jquery/test/data/readywaitasset.js +1 -0
  201. data/vendor/assets/components/jquery/test/data/readywaitloader.js +25 -0
  202. data/vendor/assets/components/jquery/test/data/script.php +11 -0
  203. data/vendor/assets/components/jquery/test/data/selector/html5_selector.html +114 -0
  204. data/vendor/assets/components/jquery/test/data/selector/sizzle_cache.html +21 -0
  205. data/vendor/assets/components/jquery/test/data/statusText.php +5 -0
  206. data/vendor/assets/components/jquery/test/data/support/bodyBackground.html +28 -0
  207. data/vendor/assets/components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
  208. data/vendor/assets/components/jquery/test/data/support/testElementCrash.html +17 -0
  209. data/vendor/assets/components/jquery/test/data/test.html +7 -0
  210. data/vendor/assets/components/jquery/test/data/test.js +3 -0
  211. data/vendor/assets/components/jquery/test/data/test.php +7 -0
  212. data/vendor/assets/components/jquery/test/data/test2.html +5 -0
  213. data/vendor/assets/components/jquery/test/data/test3.html +3 -0
  214. data/vendor/assets/components/jquery/test/data/testinit.js +269 -0
  215. data/vendor/assets/components/jquery/test/data/testrunner.js +368 -0
  216. data/vendor/assets/components/jquery/test/data/testsuite.css +155 -0
  217. data/vendor/assets/components/jquery/test/data/text.php +12 -0
  218. data/vendor/assets/components/jquery/test/data/ua.txt +272 -0
  219. data/vendor/assets/components/jquery/test/data/with_fries.xml +25 -0
  220. data/vendor/assets/components/jquery/test/data/with_fries_over_jsonp.php +7 -0
  221. data/vendor/assets/components/jquery/test/delegatetest.html +228 -0
  222. data/vendor/assets/components/jquery/test/hovertest.html +158 -0
  223. data/vendor/assets/components/jquery/test/index.html +330 -0
  224. data/vendor/assets/components/jquery/test/localfile.html +75 -0
  225. data/vendor/assets/components/jquery/test/networkerror.html +84 -0
  226. data/vendor/assets/components/jquery/test/polluted.php +110 -0
  227. data/vendor/assets/components/jquery/test/readywait.html +70 -0
  228. data/vendor/assets/components/jquery/test/unit/ajax.js +1971 -0
  229. data/vendor/assets/components/jquery/test/unit/attributes.js +1332 -0
  230. data/vendor/assets/components/jquery/test/unit/callbacks.js +326 -0
  231. data/vendor/assets/components/jquery/test/unit/core.js +1332 -0
  232. data/vendor/assets/components/jquery/test/unit/css.js +1036 -0
  233. data/vendor/assets/components/jquery/test/unit/data.js +636 -0
  234. data/vendor/assets/components/jquery/test/unit/deferred.js +440 -0
  235. data/vendor/assets/components/jquery/test/unit/deprecated.js +1 -0
  236. data/vendor/assets/components/jquery/test/unit/dimensions.js +461 -0
  237. data/vendor/assets/components/jquery/test/unit/effects.js +2050 -0
  238. data/vendor/assets/components/jquery/test/unit/event.js +2690 -0
  239. data/vendor/assets/components/jquery/test/unit/exports.js +7 -0
  240. data/vendor/assets/components/jquery/test/unit/manipulation.js +2242 -0
  241. data/vendor/assets/components/jquery/test/unit/offset.js +549 -0
  242. data/vendor/assets/components/jquery/test/unit/queue.js +316 -0
  243. data/vendor/assets/components/jquery/test/unit/selector.js +185 -0
  244. data/vendor/assets/components/jquery/test/unit/serialize.js +146 -0
  245. data/vendor/assets/components/jquery/test/unit/support.js +384 -0
  246. data/vendor/assets/components/jquery/test/unit/traversing.js +667 -0
  247. data/vendor/assets/components/jquery/test/xhtml.php +5 -0
  248. data/vendor/assets/components/sir-trevor-js/CHANGELOG.md +44 -0
  249. data/vendor/assets/components/sir-trevor-js/Gemfile +3 -0
  250. data/vendor/assets/components/sir-trevor-js/Gemfile.lock +10 -0
  251. data/vendor/assets/components/sir-trevor-js/Gruntfile.js +109 -0
  252. data/vendor/assets/components/sir-trevor-js/MIT-LICENCE +20 -0
  253. data/vendor/assets/components/sir-trevor-js/Readme.md +84 -0
  254. data/vendor/assets/components/sir-trevor-js/bower.json +21 -0
  255. data/vendor/assets/components/sir-trevor-js/component.json +42 -0
  256. data/vendor/assets/components/sir-trevor-js/contributing.md +74 -0
  257. data/vendor/assets/components/sir-trevor-js/examples-component/component.json +14 -0
  258. data/vendor/assets/components/sir-trevor-js/examples-component/index.html +33 -0
  259. data/vendor/assets/components/sir-trevor-js/examples-component/index.js +29 -0
  260. data/vendor/assets/components/sir-trevor-js/examples-component/javascript/example_block.js +203 -0
  261. data/vendor/assets/components/sir-trevor-js/examples-component/javascript/limit_chars.js +46 -0
  262. data/vendor/assets/components/sir-trevor-js/examples-component/sir-trevor.gif +0 -0
  263. data/vendor/assets/components/sir-trevor-js/locales/cn.js +51 -0
  264. data/vendor/assets/components/sir-trevor-js/locales/de.js +51 -0
  265. data/vendor/assets/components/sir-trevor-js/locales/es.js +51 -0
  266. data/vendor/assets/components/sir-trevor-js/locales/fi.js +51 -0
  267. data/vendor/assets/components/sir-trevor-js/locales/fr.js +51 -0
  268. data/vendor/assets/components/sir-trevor-js/locales/pt.js +52 -0
  269. data/vendor/assets/components/sir-trevor-js/package.json +23 -0
  270. data/vendor/assets/components/sir-trevor-js/sir-trevor-icons.css +6 -0
  271. data/vendor/assets/components/sir-trevor-js/sir-trevor.css +393 -0
  272. data/vendor/assets/components/sir-trevor-js/sir-trevor.css.map +7 -0
  273. data/vendor/assets/components/sir-trevor-js/sir-trevor.js +5481 -0
  274. data/vendor/assets/components/sir-trevor-js/sir-trevor.min.js +13 -0
  275. data/vendor/assets/components/underscore/CNAME +1 -0
  276. data/vendor/assets/components/underscore/CONTRIBUTING.md +9 -0
  277. data/vendor/assets/components/underscore/LICENSE +22 -0
  278. data/vendor/assets/components/underscore/README.md +19 -0
  279. data/vendor/assets/components/underscore/Rakefile +10 -0
  280. data/vendor/assets/components/underscore/docs/docco.css +192 -0
  281. data/vendor/assets/components/underscore/docs/favicon.ico +0 -0
  282. data/vendor/assets/components/underscore/docs/images/background.png +0 -0
  283. data/vendor/assets/components/underscore/docs/images/underscore.png +0 -0
  284. data/vendor/assets/components/underscore/docs/underscore.html +823 -0
  285. data/vendor/assets/components/underscore/favicon.ico +0 -0
  286. data/vendor/assets/components/underscore/index.html +2467 -0
  287. data/vendor/assets/components/underscore/index.js +1 -0
  288. data/vendor/assets/components/underscore/package.json +16 -0
  289. data/vendor/assets/components/underscore/test/arrays.js +200 -0
  290. data/vendor/assets/components/underscore/test/chaining.js +59 -0
  291. data/vendor/assets/components/underscore/test/collections.js +453 -0
  292. data/vendor/assets/components/underscore/test/functions.js +265 -0
  293. data/vendor/assets/components/underscore/test/index.html +44 -0
  294. data/vendor/assets/components/underscore/test/objects.js +570 -0
  295. data/vendor/assets/components/underscore/test/speed.js +75 -0
  296. data/vendor/assets/components/underscore/test/utility.js +266 -0
  297. data/vendor/assets/components/underscore/test/vendor/jquery.js +9404 -0
  298. data/vendor/assets/components/underscore/test/vendor/jslitmus.js +670 -0
  299. data/vendor/assets/components/underscore/test/vendor/qunit.css +235 -0
  300. data/vendor/assets/components/underscore/test/vendor/qunit.js +1977 -0
  301. data/vendor/assets/components/underscore/test/vendor/runner.js +98 -0
  302. data/vendor/assets/components/underscore/underscore-min.js +1 -0
  303. data/vendor/assets/components/underscore/underscore.js +1226 -0
  304. metadata +473 -0
@@ -0,0 +1,29 @@
1
+ var SirTrevor = require("sir-trevor-js")
2
+ , $ = require("jquery");
3
+
4
+ SirTrevor.DEBUG = true;
5
+ SirTrevor.LANGUAGE = "en";
6
+
7
+ SirTrevor.setBlockOptions("Text", {
8
+ onBlockRender: function() {
9
+ console.log("Text block rendered");
10
+ }
11
+ });
12
+
13
+ window.editor = new SirTrevor.Editor({
14
+ el: $('.sir-trevor'),
15
+ blockTypes: [
16
+ "Heading",
17
+ "Text",
18
+ "List",
19
+ "Quote",
20
+ "Image",
21
+ "Video",
22
+ "Tweet"
23
+ ]
24
+ });
25
+
26
+ $('form').bind('submit', function(){
27
+ return false;
28
+ });
29
+
@@ -0,0 +1,203 @@
1
+ /*
2
+ An example of a SirTrevor.Block
3
+ --
4
+ Author: C J Bell @ madebymany
5
+ */
6
+
7
+ SirTrevor.Blocks.Example = (function(){
8
+
9
+ return SirTrevor.Block.extend({
10
+
11
+ // String; Names the block
12
+ // Note – please use underscores when naming
13
+ // Eg example_block should be ExampleBlock
14
+ type: 'example',
15
+
16
+ // Function; the title displayed in the toolbar
17
+ // Can return a translated string (if required)
18
+ title: function() {
19
+ // return i18n.t('blocks:example:title');
20
+ return "Example";
21
+ },
22
+
23
+ // Boolean; show this blockType of the toolbar
24
+ toolbarEnabled: true,
25
+
26
+ // Block Mixins
27
+ // Allow different UI components / methods to be mixed into the block
28
+
29
+ // Enable drop functionality on the block
30
+ droppable: false,
31
+
32
+ // Enable paste functionality (to paste URLS etc)
33
+ pastable: false,
34
+
35
+ // Enable an upload button to be added
36
+ // Mixins Ajaxable automatically
37
+ // Exposes an uploader method
38
+ // Usage: this.uploader(file, success, failure)
39
+ uploadable: false,
40
+
41
+ // Enable queued remote fetching
42
+ // Exposes a small wrapper around the $.ajax method
43
+ // Usage: this.fetch(ajaxOptions, success, failure)
44
+ fetchable: false,
45
+
46
+ // Add an ajax queue to the block
47
+ // Added to uploadable & fetchable automatically
48
+ ajaxable: false,
49
+
50
+ // Overwritable mixin options:
51
+ // --
52
+ drop_options: {
53
+ // String; (can use underscore template tags)
54
+ // Defines the HTML for the dropzone template
55
+ html: "<div class='st-block__dropzone'></div>",
56
+ // Boolean;
57
+ // On re-order, should we re-render this item.
58
+ // Useful for when re-ordering iframes (like Twitter)
59
+ re_render_on_reorder: false
60
+ },
61
+
62
+ paste_options: {
63
+ // String; (can use underscore template tags)
64
+ // Defines the HTML for the paste template
65
+ html: "<input type=\"text\" class=\"st-paste-block\">"
66
+ },
67
+
68
+ upload_options: {
69
+ // String; (can use underscore template tags)
70
+ // Defines the HTML for the upload template
71
+ html: "<input type=\"file\" type=\"st-file-upload\">"
72
+ },
73
+
74
+ formattable: true,
75
+
76
+ // String or Function; The HTML for the inner portion of the editor block
77
+ // In this example, the editorHTML is an editable input div (like we use for a TextBlock)
78
+
79
+ // Classes:
80
+ // st-required – indicates this input must be present to pass validation
81
+ // st-text-block – gives the block the ability to use the formatting controls
82
+
83
+ editorHTML: function() {
84
+ return "<div class='st-text-block' contenteditable='true'></div>";
85
+ },
86
+
87
+ // Element shorthands
88
+ // --
89
+ // this.$el
90
+ // this.el
91
+ // this.$inner (the inner container for the block)
92
+ // this.$editor (contains all the UI inputs for the block)
93
+ // this.$inputs (contains all the UI inputs for blocks that are uploadable / droppable / pastable)
94
+ // this.getTextBlock() (shorthand for this.$el.find('.st-text-block'))
95
+ // this.$(selector) (shorthand for this.$el.find(selector))
96
+
97
+ // Validations
98
+ // --
99
+ // Required fields (with .st-required class) always get validted
100
+ // Called using the validateField method
101
+ // Set a data-st-name="Field Name" on your required inputs to use it in the validation fail message
102
+
103
+ // Array; defines custom validator methods to call
104
+ validations: ['myCustomValidator'],
105
+
106
+ // Example custom validator
107
+ myCustomValidator: function() {
108
+ var field = this.$('.a-field');
109
+
110
+ if (field.val() === 'herp derp') {
111
+ this.setError(field, "A validation fail message");
112
+ }
113
+ },
114
+
115
+ // Function; Executed on render of the block if some data is provided.
116
+ // LoadData gives us a means to convert JSON data into the editor dom
117
+ // In this example we convert the text from markdown to HTML and show it inside the element
118
+ loadData: function(data){
119
+ this.getTextBlock().html(SirTrevor.toHTML(data.text, this.type));
120
+ },
121
+
122
+ // Function; Executed on save of the block, once the block is validated
123
+ // toData expects a way for the block to be transformed from inputs into structured data
124
+ // The default toData function provides a pretty comprehensive way of turning data into JSON
125
+ // In this example we take the text data and save it to the data object on the block
126
+ toData: function(){
127
+ var dataObj = {};
128
+
129
+ var content = this.getTextBlock().html();
130
+ if (content.length > 0) {
131
+ dataObj.text = SirTrevor.toMarkdown(content, this.type);
132
+ }
133
+
134
+ this.setData(dataObj);
135
+ },
136
+
137
+ // Function; Returns true or false whether there is data in the block
138
+ isEmpty: function() {
139
+ return _.isEmpty(this.saveAndGetData()); // Default implementation
140
+ },
141
+
142
+ // Other data functions
143
+ // --
144
+ // getData – returns the data in the store
145
+ // save - Invokes the toData method
146
+ // saveAndReturnData - Saves and returns the entire store
147
+ // saveAndGetData - Save and only return the data part of the store
148
+
149
+
150
+ // Function; Hook executed at the end of the block rendering method.
151
+ // Useful for initialising extra pieces of UI or binding extra events.
152
+ // In this example we add an extra button, just because.
153
+ onBlockRender: function() {
154
+ this.$editor.append($('<button>', {
155
+ click: function() {
156
+ alert('Yo dawg, you clicked my button');
157
+ }
158
+ }));
159
+ },
160
+
161
+ // Function; Optional hook method executed before the rendering of a block
162
+ // Beware, $el and any shorthand element variables won't be setup here.
163
+ beforeBlockRender: function() {},
164
+
165
+ // Function; Executed once content has been dropped onto the dropzone of this block
166
+ // Only required if you have enabled dropping and have provided a dropzone for this block
167
+ // Always is passed the ev.transferData object from the drop
168
+ // Please see the image block (https://github.com/madebymany/sir-trevor-js/blob/master/src/blocks/image.js) for an example
169
+ onDrop: function(transferData) {},
170
+
171
+ // Function; executed once content has been pasted into a pastable block
172
+ // See the tweet block as an example (https://github.com/madebymany/sir-trevor-js/blob/master/src/blocks/tweet.js)
173
+ onContentPasted: function(event) {},
174
+
175
+ // Block level messages
176
+ // --
177
+ // addMessage(msg, additionalClass)
178
+ // Adds a new message onto the block
179
+
180
+ // resetMessages()
181
+ // Clears all existing messages
182
+
183
+ // Helper methods
184
+ // --
185
+ // loading()
186
+ // ready()
187
+ // hasTextBlock()
188
+ // remove()
189
+
190
+ // Function; Any extra markdown parsing can be defined in here.
191
+ // Returns; String (Required)
192
+ toMarkdown: function(markdown) {
193
+ return markdown.replace(/^(.+)$/mg,"> $1");
194
+ },
195
+
196
+ // Function; Any extra HTML parsing can be defined in here.
197
+ // Returns; String (Required)
198
+ toHTML: function(html) {
199
+ return html;
200
+ }
201
+ });
202
+
203
+ })();
@@ -0,0 +1,46 @@
1
+ /* Soft character limits on inputs and textareas */
2
+
3
+ (function($){
4
+
5
+ $.fn.limit_chars = function() {
6
+
7
+ if (this.length===0) return;
8
+
9
+ // Remove browser maxlength, add soft limit
10
+ if(this.attr('maxlength')) {
11
+ this.attr('data-maxlength',this.attr('maxlength'));
12
+ this.removeAttr('maxlength');
13
+ }
14
+
15
+ if(this.parents('.extended_input').length === 0) {
16
+
17
+ count = (this.chars()<this.attr('data-maxlength')) ? this.chars() : '<em>'+this.chars()+'</em>';
18
+
19
+ // Build UI
20
+ this.wrap($('<div>',{
21
+ "class": "extended_input"
22
+ })).after($('<span>', {
23
+ "class": "count",
24
+ html: count+' of '+this.attr('data-maxlength')
25
+ }));
26
+
27
+ // Attach event
28
+ this.bind('keydown keyup paste',function(ev){
29
+ count = ($(this).chars()<$(this).attr('data-maxlength')) ? $(this).chars() : '<em>'+$(this).chars()+'</em>';
30
+ $(this).parent().find('.count').html(count+' of '+$(this).attr('data-maxlength'));
31
+ });
32
+
33
+ }
34
+
35
+ };
36
+
37
+ $.fn.chars = function() {
38
+ count = (this.attr('contenteditable')!==undefined) ? this.text().length : this.val().length;
39
+ return count;
40
+ };
41
+
42
+ $.fn.too_long = function() {
43
+ return this.chars() > this.attr('data-maxlength');
44
+ };
45
+
46
+ })(jQuery);
@@ -0,0 +1,51 @@
1
+ SirTrevor.Locales.cn = {
2
+ general: {
3
+ 'delete': '删除',
4
+ 'drop': '把目标__block__拖拽到这里',
5
+ 'paste': '或者粘贴一个URL',
6
+ 'upload': '...或者点击上传',
7
+ 'close': '关闭',
8
+ 'position': '位置',
9
+ 'wait': '处理中,请稍候...',
10
+ 'link': '请填写要插入的链接'
11
+ },
12
+ errors: {
13
+ 'title': "发生了以下的错误:",
14
+ 'validation_fail': "__type__ 模块不是有效模块",
15
+ 'block_empty': "__name__ 不能为空",
16
+ 'type_missing': "你必须至少有一个 __type__ 类型的模块",
17
+ 'required_type_empty': "一个必须不为空的模块 __type__ 目前为空",
18
+ 'load_fail': "载入文档内容失败"
19
+ },
20
+ blocks: {
21
+ text: {
22
+ 'title': "文字"
23
+ },
24
+ list: {
25
+ 'title': "列表"
26
+ },
27
+ quote: {
28
+ 'title': "引用",
29
+ 'credit_field': "出处"
30
+ },
31
+ image: {
32
+ 'title': "图片",
33
+ 'upload_error': "载入图片失败"
34
+ },
35
+ video: {
36
+ 'title': "视频"
37
+ },
38
+ tweet: {
39
+ 'title': "Tweet",
40
+ 'fetch_error': "获取tweet失败"
41
+ },
42
+ embedly: {
43
+ 'title': "内嵌内容",
44
+ 'fetch_error': "内嵌内容载入失败",
45
+ 'key_missing': "嵌入内容的API没有合法的Key"
46
+ },
47
+ heading: {
48
+ 'title': '标题'
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,51 @@
1
+ SirTrevor.Locales.de = {
2
+ general: {
3
+ 'delete': 'Löschen?',
4
+ 'drop': '__block__ hier ablegen',
5
+ 'paste': 'Oder Adresse hier einfügen',
6
+ 'upload': '...oder Datei auswählen',
7
+ 'close': 'Schließen',
8
+ 'position': 'Position',
9
+ 'wait': 'Bitte warten...',
10
+ 'link': 'Link eintragen'
11
+ },
12
+ errors: {
13
+ 'title': "Die folgenden Fehler sind aufgetreten:",
14
+ 'validation_fail': "Block __type__ ist ungültig",
15
+ 'block_empty': "__name__ darf nicht leer sein",
16
+ 'type_missing': "Blöcke mit Typ __type__ sind hier nicht zulässig",
17
+ 'required_type_empty': "Angeforderter Block-Typ __type__ ist leer",
18
+ 'load_fail': "Es wurde ein Problem beim Laden des Dokumentinhalts festgestellt"
19
+ },
20
+ blocks: {
21
+ text: {
22
+ 'title': "Text"
23
+ },
24
+ list: {
25
+ 'title': "Liste (unsortiert)"
26
+ },
27
+ quote: {
28
+ 'title': "Zitat",
29
+ 'credit_field': "Quelle"
30
+ },
31
+ image: {
32
+ 'title': "Bild",
33
+ 'upload_error': "There was a problem with your upload"
34
+ },
35
+ video: {
36
+ 'title': "Video"
37
+ },
38
+ tweet: {
39
+ 'title': "Tweet",
40
+ 'fetch_error': "Es wurde ein Problem beim Laden des Tweets festgestellt"
41
+ },
42
+ embedly: {
43
+ 'title': "Embedly",
44
+ 'fetch_error': "There was a problem fetching your embed",
45
+ 'key_missing': "An Embedly API key must be present"
46
+ },
47
+ heading: {
48
+ 'title': 'Heading'
49
+ }
50
+ }
51
+ };
@@ -0,0 +1,51 @@
1
+ SirTrevor.Locales.es = {
2
+ general: {
3
+ 'delete': '¿Eliminar?',
4
+ 'drop': 'Arrastrar __block__ ici',
5
+ 'paste': 'O copie el enlace aquí',
6
+ 'upload': '...o seleccione un fichero',
7
+ 'close': 'cerrar',
8
+ 'position': 'Posición',
9
+ 'wait': 'Por favor, espere...',
10
+ 'link': 'Introduce un link'
11
+ },
12
+ errors: {
13
+ 'title': "Aparecerá el siguiente error :",
14
+ 'validation_fail': "Bloque __type__ inválido",
15
+ 'block_empty': "__name__ no debe estar vacío",
16
+ 'type_missing': "Debe tene un tipo de bloque __type__",
17
+ 'required_type_empty': "Un bloque obligatorio de tipo __type__ está vacío",
18
+ 'load_fail': "Hay un problema con la carga de datos"
19
+ },
20
+ blocks: {
21
+ text: {
22
+ 'title': "Texto"
23
+ },
24
+ list: {
25
+ 'title': "Lista"
26
+ },
27
+ quote: {
28
+ 'title': "Cita",
29
+ 'credit_field': "Autor"
30
+ },
31
+ image: {
32
+ 'title': "Imagen",
33
+ 'upload_error': "Hay un problema con la subida"
34
+ },
35
+ video: {
36
+ 'title': "Vídeo"
37
+ },
38
+ tweet: {
39
+ 'title': "Tweet",
40
+ 'fetch_error': "Se produjo un problema al recuperar su tweet"
41
+ },
42
+ embedly: {
43
+ 'title': "Embebido",
44
+ 'fetch_error': "Se produjo un problema al recuperar su video",
45
+ 'key_missing': "Debe tener asociada una clave API"
46
+ },
47
+ heading: {
48
+ 'title': 'Título'
49
+ }
50
+ }
51
+ };
@@ -0,0 +1,51 @@
1
+ SirTrevor.Locales.fi = {
2
+ general: {
3
+ 'delete': 'Poista?',
4
+ 'drop': 'Raahaa __block__ tähän',
5
+ 'paste': 'Tai lisää osoite tähän',
6
+ 'upload': '...tai valitse tiedosto',
7
+ 'close': 'sulje',
8
+ 'position': 'Sijainti',
9
+ 'wait': 'Odota hetki...',
10
+ 'link': 'Kirjoita osoite'
11
+ },
12
+ errors: {
13
+ 'title': "Seuraavat virheet:",
14
+ 'validation_fail': "__type__-lohko on epäkelpo",
15
+ 'block_empty': "__name__ ei saa olla tyhjä",
16
+ 'type_missing': "__type__ on pakollinen lohko",
17
+ 'required_type_empty': "Pakollinen __type__-lohko on tyhjä",
18
+ 'load_fail': "Sisällön lataamisessa on ongelma"
19
+ },
20
+ blocks: {
21
+ text: {
22
+ 'title': "Teksti"
23
+ },
24
+ list: {
25
+ 'title': "Lista"
26
+ },
27
+ quote: {
28
+ 'title': "Lainaus",
29
+ 'credit_field': "Lähde"
30
+ },
31
+ image: {
32
+ 'title': "Kuva",
33
+ 'upload_error': "Tiedoston lataamisessa oli ongelma"
34
+ },
35
+ video: {
36
+ 'title': "Video"
37
+ },
38
+ tweet: {
39
+ 'title': "Tweet",
40
+ 'fetch_error': "Viestin hakemisessa oli ongelma"
41
+ },
42
+ embedly: {
43
+ 'title': "Embedly",
44
+ 'fetch_error': "Sisällön hakemisessa oli ongelma",
45
+ 'key_missing': "Embedly vaatii API-avaimen"
46
+ },
47
+ heading: {
48
+ 'title': 'Otsikko'
49
+ }
50
+ }
51
+ };