cyberweb 0.8.17 → 0.9.31

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of cyberweb might be problematic. Click here for more details.

Files changed (419) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +274 -86
  3. data/cyberweb.gemspec +0 -3
  4. data/doc/README.gen +273 -85
  5. data/doc/todo/todo_for_the_cyberweb_project.md +100 -99
  6. data/examples/advanced/draw_circle/draw_circle.cgi +2 -2
  7. data/examples/advanced/simple_calculator.cgi +4 -4
  8. data/examples/css/animated_dodecahedron_example/animated_dodecahedron_example.html +107 -0
  9. data/examples/css/animated_police_box/animated_police_box.html +639 -0
  10. data/examples/css/animated_solar_system/animated_solar_system.html +168 -0
  11. data/examples/css/animated_solar_system/css/styles.css +1592 -0
  12. data/examples/css/animated_solar_system/img/bg-glow.png +0 -0
  13. data/examples/css/animated_solar_system/img/bg-stars.png +0 -0
  14. data/examples/css/animated_solar_system/img/p-earth.png +0 -0
  15. data/examples/css/animated_solar_system/img/p-jupiter.png +0 -0
  16. data/examples/css/animated_solar_system/img/p-mars.png +0 -0
  17. data/examples/css/animated_solar_system/img/p-mercury.png +0 -0
  18. data/examples/css/animated_solar_system/img/p-neptune.png +0 -0
  19. data/examples/css/animated_solar_system/img/p-saturn.png +0 -0
  20. data/examples/css/animated_solar_system/img/p-uranus.png +0 -0
  21. data/examples/css/animated_solar_system/img/p-venus.png +0 -0
  22. data/examples/css/animated_solar_system/img/sun.png +0 -0
  23. data/examples/css/animated_solar_system/js/jquery.min.js +4 -0
  24. data/examples/css/animated_solar_system/js/scripts.js +42 -0
  25. data/examples/css/animated_solar_system/js/scripts.min.js +1 -0
  26. data/examples/css/dozing_bird_example/dozing_bird_example.html +358 -0
  27. data/examples/css/planet_earth_is_rotating/planet_earth_is_rotating.html +130 -0
  28. data/examples/css/simpler_css_clock/simpler_css_clock.html +125 -0
  29. data/examples/html/{href_examples.html → href_examples/href_examples.html} +5 -2
  30. data/examples/html/href_in_pre_tag/href_in_pre_tag.html +39 -0
  31. data/examples/javascript_and_jquery/toggle_visibility_of_elements/toggle_visibility_of_elements.html +35 -0
  32. data/examples/simple/toggle_visibility_example/toggle_visibility_example.cgi +36 -0
  33. data/images/cyberweb_theme.png +0 -0
  34. data/lib/cyberweb/base/misc.rb +20 -13
  35. data/lib/cyberweb/cascading_style_sheets/border.css +61 -49
  36. data/lib/cyberweb/cascading_style_sheets/default.css +17 -8
  37. data/lib/cyberweb/cascading_style_sheets/fonts.css +6 -2
  38. data/lib/cyberweb/cascading_style_sheets/glow_effects.css +5 -5
  39. data/lib/cyberweb/cascading_style_sheets/hover.css +13 -5
  40. data/lib/cyberweb/cascading_style_sheets/margin.css +3 -0
  41. data/lib/cyberweb/cmd/README.md +2 -0
  42. data/lib/cyberweb/cmd/cmd.rb +601 -0
  43. data/lib/cyberweb/constants/constants.rb +16 -0
  44. data/lib/cyberweb/generator/cgi.rb +2 -2
  45. data/lib/cyberweb/html_tags/textarea.rb +54 -23
  46. data/lib/cyberweb/images/standard_images/ADMIN.png +0 -0
  47. data/lib/cyberweb/images/standard_images/AMBULANZ.png +0 -0
  48. data/lib/cyberweb/images/standard_images/ANGRY_SMILEY.png +0 -0
  49. data/lib/cyberweb/images/standard_images/APPROVE.png +0 -0
  50. data/lib/cyberweb/images/standard_images/ARROW_LEFT.png +0 -0
  51. data/lib/cyberweb/images/standard_images/ARROW_RIGHT.png +0 -0
  52. data/lib/cyberweb/images/standard_images/ARROW_TOOLTIP.gif +0 -0
  53. data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN.png +0 -0
  54. data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN2.png +0 -0
  55. data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN3.png +0 -0
  56. data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN4.png +0 -0
  57. data/lib/cyberweb/images/standard_images/AUSTRIA_FAHNE.jpg +0 -0
  58. data/lib/cyberweb/images/standard_images/AWARD.png +0 -0
  59. data/lib/cyberweb/images/standard_images/AXE.png +0 -0
  60. data/lib/cyberweb/images/standard_images/BACKUP_IMAGE.png +0 -0
  61. data/lib/cyberweb/images/standard_images/BAGGER.png +0 -0
  62. data/lib/cyberweb/images/standard_images/BARS.gif +0 -0
  63. data/lib/cyberweb/images/standard_images/BEGINNER.jpg +0 -0
  64. data/lib/cyberweb/images/standard_images/BEWERTUNG_1.png +0 -0
  65. data/lib/cyberweb/images/standard_images/BEWERTUNG_2.png +0 -0
  66. data/lib/cyberweb/images/standard_images/BEWERTUNG_3.png +0 -0
  67. data/lib/cyberweb/images/standard_images/BEWERTUNG_4.png +0 -0
  68. data/lib/cyberweb/images/standard_images/BEWERTUNG_5.png +0 -0
  69. data/lib/cyberweb/images/standard_images/BEWERTUNG_6.png +0 -0
  70. data/lib/cyberweb/images/standard_images/BIG_STAR.png +0 -0
  71. data/lib/cyberweb/images/standard_images/BIKE.png +0 -0
  72. data/lib/cyberweb/images/standard_images/BIO.png +0 -0
  73. data/lib/cyberweb/images/standard_images/BIOS.gif +0 -0
  74. data/lib/cyberweb/images/standard_images/BLOB.png +0 -0
  75. data/lib/cyberweb/images/standard_images/BLOG.png +0 -0
  76. data/lib/cyberweb/images/standard_images/BLUEARROW.png +0 -0
  77. data/lib/cyberweb/images/standard_images/BLUE_HEAD.gif +0 -0
  78. data/lib/cyberweb/images/standard_images/BLUE_PILL.png +0 -0
  79. data/lib/cyberweb/images/standard_images/BLUME.png +0 -0
  80. data/lib/cyberweb/images/standard_images/BOHRER.png +0 -0
  81. data/lib/cyberweb/images/standard_images/BOOK_CLOSED.png +0 -0
  82. data/lib/cyberweb/images/standard_images/BOOK_OPENED.png +0 -0
  83. data/lib/cyberweb/images/standard_images/BUBBLE.png +0 -0
  84. data/lib/cyberweb/images/standard_images/BUECHER.jpg +0 -0
  85. data/lib/cyberweb/images/standard_images/BUERO_KLAMMER.png +0 -0
  86. data/lib/cyberweb/images/standard_images/BUSINESS.png +0 -0
  87. data/lib/cyberweb/images/standard_images/BUTTON1.gif +0 -0
  88. data/lib/cyberweb/images/standard_images/CAMERA.png +0 -0
  89. data/lib/cyberweb/images/standard_images/CAT.png +0 -0
  90. data/lib/cyberweb/images/standard_images/CAUTION.png +0 -0
  91. data/lib/cyberweb/images/standard_images/CHAOTIC_IMAGE.png +0 -0
  92. data/lib/cyberweb/images/standard_images/CHECKBOX_OFF.png +0 -0
  93. data/lib/cyberweb/images/standard_images/CHECKBOX_ON.png +0 -0
  94. data/lib/cyberweb/images/standard_images/CHEERING_PERSON.png +0 -0
  95. data/lib/cyberweb/images/standard_images/CLOSED.png +0 -0
  96. data/lib/cyberweb/images/standard_images/COMMAND_ICO.png +0 -0
  97. data/lib/cyberweb/images/standard_images/COMPLEX.png +0 -0
  98. data/lib/cyberweb/images/standard_images/COMPONENTS.png +0 -0
  99. data/lib/cyberweb/images/standard_images/COMPUTER.png +0 -0
  100. data/lib/cyberweb/images/standard_images/CONNECTED.png +0 -0
  101. data/lib/cyberweb/images/standard_images/CONTACT.png +0 -0
  102. data/lib/cyberweb/images/standard_images/COPY.png +0 -0
  103. data/lib/cyberweb/images/standard_images/CSS.png +0 -0
  104. data/lib/cyberweb/images/standard_images/CURSOR.png +0 -0
  105. data/lib/cyberweb/images/standard_images/CUTE_BUBBA.png +0 -0
  106. data/lib/cyberweb/images/standard_images/CUTE_MOUSE.png +0 -0
  107. data/lib/cyberweb/images/standard_images/DEVELOP.png +0 -0
  108. data/lib/cyberweb/images/standard_images/DIAMOND_SHELL.png +0 -0
  109. data/lib/cyberweb/images/standard_images/DIE_PERFEKTE_AUSBILDUNG.png +0 -0
  110. data/lib/cyberweb/images/standard_images/DOCUMENTATION.png +0 -0
  111. data/lib/cyberweb/images/standard_images/DOKUMENT.png +0 -0
  112. data/lib/cyberweb/images/standard_images/DOT_01.png +0 -0
  113. data/lib/cyberweb/images/standard_images/DOT_02.png +0 -0
  114. data/lib/cyberweb/images/standard_images/DOT_03.png +0 -0
  115. data/lib/cyberweb/images/standard_images/DOT_04.png +0 -0
  116. data/lib/cyberweb/images/standard_images/DOT_05.png +0 -0
  117. data/lib/cyberweb/images/standard_images/DOT_06.png +0 -0
  118. data/lib/cyberweb/images/standard_images/DOT_07.png +0 -0
  119. data/lib/cyberweb/images/standard_images/DOT_08.png +0 -0
  120. data/lib/cyberweb/images/standard_images/DOT_09.png +0 -0
  121. data/lib/cyberweb/images/standard_images/DOT_10.png +0 -0
  122. data/lib/cyberweb/images/standard_images/DOT_11.png +0 -0
  123. data/lib/cyberweb/images/standard_images/DOT_12.png +0 -0
  124. data/lib/cyberweb/images/standard_images/DOWNLOAD.png +0 -0
  125. data/lib/cyberweb/images/standard_images/DOWNLOAD2.png +0 -0
  126. data/lib/cyberweb/images/standard_images/DOWNLOAD_PACKAGE.png +0 -0
  127. data/lib/cyberweb/images/standard_images/DUCK.png +0 -0
  128. data/lib/cyberweb/images/standard_images/DUCKY.png +0 -0
  129. data/lib/cyberweb/images/standard_images/EINKAUFSKORB.png +0 -0
  130. data/lib/cyberweb/images/standard_images/EINKAUFSWAGEN.png +0 -0
  131. data/lib/cyberweb/images/standard_images/ELLIPSE.png +0 -0
  132. data/lib/cyberweb/images/standard_images/EMAIL_FANCY.png +0 -0
  133. data/lib/cyberweb/images/standard_images/EMAIL_FAVICON.png +0 -0
  134. data/lib/cyberweb/images/standard_images/EMAIL_FAVICON.xpm +176 -0
  135. data/lib/cyberweb/images/standard_images/ENGLISH.jpg +0 -0
  136. data/lib/cyberweb/images/standard_images/ERRORS.png +0 -0
  137. data/lib/cyberweb/images/standard_images/EURO.png +0 -0
  138. data/lib/cyberweb/images/standard_images/EVAL/01_STAR.png +0 -0
  139. data/lib/cyberweb/images/standard_images/EVAL/02_STAR.png +0 -0
  140. data/lib/cyberweb/images/standard_images/EVAL/03_STAR.png +0 -0
  141. data/lib/cyberweb/images/standard_images/EVAL/04_STAR.png +0 -0
  142. data/lib/cyberweb/images/standard_images/EVAL/05_STAR.png +0 -0
  143. data/lib/cyberweb/images/standard_images/EVAL/0x_STAR.png +0 -0
  144. data/lib/cyberweb/images/standard_images/EVAL/1x_STAR.png +0 -0
  145. data/lib/cyberweb/images/standard_images/EVAL/2x_STAR.png +0 -0
  146. data/lib/cyberweb/images/standard_images/EVAL/3x_STAR.png +0 -0
  147. data/lib/cyberweb/images/standard_images/EVAL/4x_STAR.png +0 -0
  148. data/lib/cyberweb/images/standard_images/EXTERNAL_LINK.png +0 -0
  149. data/lib/cyberweb/images/standard_images/EYE.png +0 -0
  150. data/lib/cyberweb/images/standard_images/FAQ.png +0 -0
  151. data/lib/cyberweb/images/standard_images/FERNGLAS.png +0 -0
  152. data/lib/cyberweb/images/standard_images/FLOWER_1.png +0 -0
  153. data/lib/cyberweb/images/standard_images/FLOWER_2.png +0 -0
  154. data/lib/cyberweb/images/standard_images/FLUGZEUG1.jpg +0 -0
  155. data/lib/cyberweb/images/standard_images/FOLDER.png +0 -0
  156. data/lib/cyberweb/images/standard_images/FORK.png +0 -0
  157. data/lib/cyberweb/images/standard_images/FORUM.png +0 -0
  158. data/lib/cyberweb/images/standard_images/FOTOAPPARAT.png +0 -0
  159. data/lib/cyberweb/images/standard_images/FOTO_FAVICON.png +0 -0
  160. data/lib/cyberweb/images/standard_images/FRAGEZEICHEN.jpg +0 -0
  161. data/lib/cyberweb/images/standard_images/FTP.png +0 -0
  162. data/lib/cyberweb/images/standard_images/FUNNY_ELEPHANT.png +0 -0
  163. data/lib/cyberweb/images/standard_images/FUSSBALL.png +0 -0
  164. data/lib/cyberweb/images/standard_images/F/303/204CHER.png +0 -0
  165. data/lib/cyberweb/images/standard_images/GATEWAY.png +0 -0
  166. data/lib/cyberweb/images/standard_images/GB.jpg +0 -0
  167. data/lib/cyberweb/images/standard_images/GENDER_ICON_FEMALE.png +0 -0
  168. data/lib/cyberweb/images/standard_images/GENDER_ICON_MALE.png +0 -0
  169. data/lib/cyberweb/images/standard_images/GERMANY_FLAG.png +0 -0
  170. data/lib/cyberweb/images/standard_images/GERSTE.png +0 -0
  171. data/lib/cyberweb/images/standard_images/GESCHENKBOX.png +0 -0
  172. data/lib/cyberweb/images/standard_images/GET_HELP.png +0 -0
  173. data/lib/cyberweb/images/standard_images/GITARRE.png +0 -0
  174. data/lib/cyberweb/images/standard_images/GOOGLE.png +0 -0
  175. data/lib/cyberweb/images/standard_images/GORILLA.gif +0 -0
  176. data/lib/cyberweb/images/standard_images/GOTHIC_SPACER.png +0 -0
  177. data/lib/cyberweb/images/standard_images/GRADIENT_FILL.gif +0 -0
  178. data/lib/cyberweb/images/standard_images/GRAFIK_SMALL.png +0 -0
  179. data/lib/cyberweb/images/standard_images/GRID_LAYOUT.gif +0 -0
  180. data/lib/cyberweb/images/standard_images/GRINSEN.jpg +0 -0
  181. data/lib/cyberweb/images/standard_images/GUN.png +0 -0
  182. data/lib/cyberweb/images/standard_images/HAKEN.png +0 -0
  183. data/lib/cyberweb/images/standard_images/HALLOWEEN.png +0 -0
  184. data/lib/cyberweb/images/standard_images/HAMMER.png +0 -0
  185. data/lib/cyberweb/images/standard_images/HANGING_MONKEY.png +0 -0
  186. data/lib/cyberweb/images/standard_images/HANG_MAN.png +0 -0
  187. data/lib/cyberweb/images/standard_images/HAPPY_BIRD.png +0 -0
  188. data/lib/cyberweb/images/standard_images/HAPPY_SMILEY.png +0 -0
  189. data/lib/cyberweb/images/standard_images/HDD_EMPTY.png +0 -0
  190. data/lib/cyberweb/images/standard_images/HDD_FULL.png +0 -0
  191. data/lib/cyberweb/images/standard_images/HDD_HALF.png +0 -0
  192. data/lib/cyberweb/images/standard_images/HDD_ONEFOURTH.png +0 -0
  193. data/lib/cyberweb/images/standard_images/HDD_THREEEIGHT.png +0 -0
  194. data/lib/cyberweb/images/standard_images/HDD_THREEFOURTH.png +0 -0
  195. data/lib/cyberweb/images/standard_images/HEART.png +0 -0
  196. data/lib/cyberweb/images/standard_images/HELP.png +0 -0
  197. data/lib/cyberweb/images/standard_images/HOME.gif +0 -0
  198. data/lib/cyberweb/images/standard_images/HONIG.jpg +0 -0
  199. data/lib/cyberweb/images/standard_images/HTML40.png +0 -0
  200. data/lib/cyberweb/images/standard_images/HUHN.gif +0 -0
  201. data/lib/cyberweb/images/standard_images/HUMAN.gif +0 -0
  202. data/lib/cyberweb/images/standard_images/ICONS_COLLECTION1.gif +0 -0
  203. data/lib/cyberweb/images/standard_images/ICONS_COLLECTION2.png +0 -0
  204. data/lib/cyberweb/images/standard_images/ICOSAHEDRON.jpg +0 -0
  205. data/lib/cyberweb/images/standard_images/IE.jpg +0 -0
  206. data/lib/cyberweb/images/standard_images/IMPORTANT_ARROW_LEFT.jpg +0 -0
  207. data/lib/cyberweb/images/standard_images/INTERNAL_LINKS.png +0 -0
  208. data/lib/cyberweb/images/standard_images/IPAD.png +0 -0
  209. data/lib/cyberweb/images/standard_images/ITEM.png +0 -0
  210. data/lib/cyberweb/images/standard_images/KAFFEE.png +0 -0
  211. data/lib/cyberweb/images/standard_images/KARMA.png +0 -0
  212. data/lib/cyberweb/images/standard_images/KEYS.png +0 -0
  213. data/lib/cyberweb/images/standard_images/KLEBSTOFF.png +0 -0
  214. data/lib/cyberweb/images/standard_images/KLEE_BLATT.png +0 -0
  215. data/lib/cyberweb/images/standard_images/KNIFE01.png +0 -0
  216. data/lib/cyberweb/images/standard_images/LARGER_COMPUTER.png +0 -0
  217. data/lib/cyberweb/images/standard_images/LCD.png +0 -0
  218. data/lib/cyberweb/images/standard_images/LEAF.png +0 -0
  219. data/lib/cyberweb/images/standard_images/LEAF2.png +0 -0
  220. data/lib/cyberweb/images/standard_images/LEFT_RIGHT_PFEIL.png +0 -0
  221. data/lib/cyberweb/images/standard_images/LENS.png +0 -0
  222. data/lib/cyberweb/images/standard_images/LEXIKON1.jpg +0 -0
  223. data/lib/cyberweb/images/standard_images/LOCK.png +0 -0
  224. data/lib/cyberweb/images/standard_images/LOSER.gif +0 -0
  225. data/lib/cyberweb/images/standard_images/LUPE.gif +0 -0
  226. data/lib/cyberweb/images/standard_images/MANTIS.png +0 -0
  227. data/lib/cyberweb/images/standard_images/MAXERL.png +0 -0
  228. data/lib/cyberweb/images/standard_images/MESSAGE_BOX_ERROR.png +0 -0
  229. data/lib/cyberweb/images/standard_images/MESSAGE_BOX_INFO.png +0 -0
  230. data/lib/cyberweb/images/standard_images/MESSAGE_BOX_SUCCESS.png +0 -0
  231. data/lib/cyberweb/images/standard_images/MESSAGE_BOX_WARNING.png +0 -0
  232. data/lib/cyberweb/images/standard_images/MICROSOFT.png +0 -0
  233. data/lib/cyberweb/images/standard_images/MINE.png +0 -0
  234. data/lib/cyberweb/images/standard_images/MINI_BAUM1.png +0 -0
  235. data/lib/cyberweb/images/standard_images/MINI_BAUM2.png +0 -0
  236. data/lib/cyberweb/images/standard_images/MINI_BAUM3.png +0 -0
  237. data/lib/cyberweb/images/standard_images/MINI_BAUM4.png +0 -0
  238. data/lib/cyberweb/images/standard_images/MINI_BAUM5.png +0 -0
  239. data/lib/cyberweb/images/standard_images/MINI_BAUM6.png +0 -0
  240. data/lib/cyberweb/images/standard_images/MINI_CUBE.png +0 -0
  241. data/lib/cyberweb/images/standard_images/MINI_DOT.png +0 -0
  242. data/lib/cyberweb/images/standard_images/MINUS.png +0 -0
  243. data/lib/cyberweb/images/standard_images/MONEY.png +0 -0
  244. data/lib/cyberweb/images/standard_images/MOUSE.png +0 -0
  245. data/lib/cyberweb/images/standard_images/MUSIK_NOTE.png +0 -0
  246. data/lib/cyberweb/images/standard_images/NAGEL.jpg +0 -0
  247. data/lib/cyberweb/images/standard_images/NASHORN.png +0 -0
  248. data/lib/cyberweb/images/standard_images/NEW.png +0 -0
  249. data/lib/cyberweb/images/standard_images/NEWS.png +0 -0
  250. data/lib/cyberweb/images/standard_images/NOBODY.png +0 -0
  251. data/lib/cyberweb/images/standard_images/NOTE.png +0 -0
  252. data/lib/cyberweb/images/standard_images/NOTEPAD.png +0 -0
  253. data/lib/cyberweb/images/standard_images/NOTIZ.png +0 -0
  254. data/lib/cyberweb/images/standard_images/NO_PATENTS.png +0 -0
  255. data/lib/cyberweb/images/standard_images/OBSOLETE.png +0 -0
  256. data/lib/cyberweb/images/standard_images/OFFICIAL_HOME.png +0 -0
  257. data/lib/cyberweb/images/standard_images/PDF.png +0 -0
  258. data/lib/cyberweb/images/standard_images/PERGAMENT_TILER1.jpg +0 -0
  259. data/lib/cyberweb/images/standard_images/PFEIL1.png +0 -0
  260. data/lib/cyberweb/images/standard_images/PFEIL10.png +0 -0
  261. data/lib/cyberweb/images/standard_images/PFEIL11.png +0 -0
  262. data/lib/cyberweb/images/standard_images/PFEIL12.png +0 -0
  263. data/lib/cyberweb/images/standard_images/PFEIL2.png +0 -0
  264. data/lib/cyberweb/images/standard_images/PFEIL3.png +0 -0
  265. data/lib/cyberweb/images/standard_images/PFEIL4.png +0 -0
  266. data/lib/cyberweb/images/standard_images/PFEIL5.png +0 -0
  267. data/lib/cyberweb/images/standard_images/PFEIL6.png +0 -0
  268. data/lib/cyberweb/images/standard_images/PFEIL6_red.png +0 -0
  269. data/lib/cyberweb/images/standard_images/PFEIL7.png +0 -0
  270. data/lib/cyberweb/images/standard_images/PFEIL8_OUT.png +0 -0
  271. data/lib/cyberweb/images/standard_images/PFEIL9.png +0 -0
  272. data/lib/cyberweb/images/standard_images/PFEIL_LINKS_OBEN.png +0 -0
  273. data/lib/cyberweb/images/standard_images/PFEIL_VERTICAL.png +0 -0
  274. data/lib/cyberweb/images/standard_images/PHONE.png +0 -0
  275. data/lib/cyberweb/images/standard_images/PHP_FORUM.jpg +0 -0
  276. data/lib/cyberweb/images/standard_images/PIN.png +0 -0
  277. data/lib/cyberweb/images/standard_images/PIN_POINTER_RED.png +0 -0
  278. data/lib/cyberweb/images/standard_images/PIPETTE.png +0 -0
  279. data/lib/cyberweb/images/standard_images/PLUS.png +0 -0
  280. data/lib/cyberweb/images/standard_images/POSAUNE.png +0 -0
  281. data/lib/cyberweb/images/standard_images/PRESENT.png +0 -0
  282. data/lib/cyberweb/images/standard_images/PRINT.png +0 -0
  283. data/lib/cyberweb/images/standard_images/PRINTER.png +0 -0
  284. data/lib/cyberweb/images/standard_images/PROTOKOLL.png +0 -0
  285. data/lib/cyberweb/images/standard_images/QUADRAT01.png +0 -0
  286. data/lib/cyberweb/images/standard_images/QUOTE.png +0 -0
  287. data/lib/cyberweb/images/standard_images/RADIO_ACTIVE.png +0 -0
  288. data/lib/cyberweb/images/standard_images/RAINBOW_CIRCLE.png +0 -0
  289. data/lib/cyberweb/images/standard_images/RED_PILL.png +0 -0
  290. data/lib/cyberweb/images/standard_images/RIP.png +0 -0
  291. data/lib/cyberweb/images/standard_images/ROBERT.png +0 -0
  292. data/lib/cyberweb/images/standard_images/ROCKET.png +0 -0
  293. data/lib/cyberweb/images/standard_images/ROSE.png +0 -0
  294. data/lib/cyberweb/images/standard_images/ROSE2.png +0 -0
  295. data/lib/cyberweb/images/standard_images/RUNNING.png +0 -0
  296. data/lib/cyberweb/images/standard_images/SAVE.png +0 -0
  297. data/lib/cyberweb/images/standard_images/SCANNER.png +0 -0
  298. data/lib/cyberweb/images/standard_images/SCHERE.png +0 -0
  299. data/lib/cyberweb/images/standard_images/SCHNEEMANN.png +0 -0
  300. data/lib/cyberweb/images/standard_images/SCISSORS.png +0 -0
  301. data/lib/cyberweb/images/standard_images/SHOPPING.png +0 -0
  302. data/lib/cyberweb/images/standard_images/SKULL.png +0 -0
  303. data/lib/cyberweb/images/standard_images/SMALL_CAT.png +0 -0
  304. data/lib/cyberweb/images/standard_images/SMALL_DOCUMENT.png +0 -0
  305. data/lib/cyberweb/images/standard_images/SMALL_HOUSE.png +0 -0
  306. data/lib/cyberweb/images/standard_images/SMALL_PLANE.png +0 -0
  307. data/lib/cyberweb/images/standard_images/SMILEY1.png +0 -0
  308. data/lib/cyberweb/images/standard_images/SMILEY2.png +0 -0
  309. data/lib/cyberweb/images/standard_images/SMILEY3.png +0 -0
  310. data/lib/cyberweb/images/standard_images/SMILEY4.png +0 -0
  311. data/lib/cyberweb/images/standard_images/SMILEY5.png +0 -0
  312. data/lib/cyberweb/images/standard_images/SNAIL.png +0 -0
  313. data/lib/cyberweb/images/standard_images/SNOWFLAKE.png +0 -0
  314. data/lib/cyberweb/images/standard_images/SPACER.png +0 -0
  315. data/lib/cyberweb/images/standard_images/SPECIAL_PFEIL.png +0 -0
  316. data/lib/cyberweb/images/standard_images/SPIDERMAN_HEAD.png +0 -0
  317. data/lib/cyberweb/images/standard_images/SPIRAL_CROSS.png +0 -0
  318. data/lib/cyberweb/images/standard_images/SPOON.png +0 -0
  319. data/lib/cyberweb/images/standard_images/SQUARE_BLACK.png +0 -0
  320. data/lib/cyberweb/images/standard_images/SQUARE_BLUE.png +0 -0
  321. data/lib/cyberweb/images/standard_images/SQUARE_CADETBLUE.png +0 -0
  322. data/lib/cyberweb/images/standard_images/SQUARE_CHAOS.png +0 -0
  323. data/lib/cyberweb/images/standard_images/SQUARE_DARKGOLDENROD.png +0 -0
  324. data/lib/cyberweb/images/standard_images/SQUARE_GREEN.png +0 -0
  325. data/lib/cyberweb/images/standard_images/SQUARE_GREY.png +0 -0
  326. data/lib/cyberweb/images/standard_images/SQUARE_RED.png +0 -0
  327. data/lib/cyberweb/images/standard_images/SQUARE_VIOLET.png +0 -0
  328. data/lib/cyberweb/images/standard_images/SQUARE_WHITE.png +0 -0
  329. data/lib/cyberweb/images/standard_images/SQUARE_YEL.png +0 -0
  330. data/lib/cyberweb/images/standard_images/STANDARDS_FAVICON.png +0 -0
  331. data/lib/cyberweb/images/standard_images/STAR.png +0 -0
  332. data/lib/cyberweb/images/standard_images/STAR_FANCY.png +0 -0
  333. data/lib/cyberweb/images/standard_images/STATUS_IN_PROGRESS.png +0 -0
  334. data/lib/cyberweb/images/standard_images/STD_COLOURS.png +0 -0
  335. data/lib/cyberweb/images/standard_images/SUN.png +0 -0
  336. data/lib/cyberweb/images/standard_images/SYMBOL_FRAU.png +0 -0
  337. data/lib/cyberweb/images/standard_images/SYMBOL_MANN.png +0 -0
  338. data/lib/cyberweb/images/standard_images/SYNC.png +0 -0
  339. data/lib/cyberweb/images/standard_images/TASCHENLAMPE.jpg +0 -0
  340. data/lib/cyberweb/images/standard_images/TASTATUR.png +0 -0
  341. data/lib/cyberweb/images/standard_images/TECHNICOLOR_TWIRL.png +0 -0
  342. data/lib/cyberweb/images/standard_images/TELEFON.png +0 -0
  343. data/lib/cyberweb/images/standard_images/TEST.bmp +0 -0
  344. data/lib/cyberweb/images/standard_images/TEUFELCHEN.png +0 -0
  345. data/lib/cyberweb/images/standard_images/THERMOMETER.png +0 -0
  346. data/lib/cyberweb/images/standard_images/THINKING_HUMAN.png +0 -0
  347. data/lib/cyberweb/images/standard_images/TODO.jpg +0 -0
  348. data/lib/cyberweb/images/standard_images/TODO.png +0 -0
  349. data/lib/cyberweb/images/standard_images/TOOLS.png +0 -0
  350. data/lib/cyberweb/images/standard_images/TRANSPORT.png +0 -0
  351. data/lib/cyberweb/images/standard_images/TRIANGLE.png +0 -0
  352. data/lib/cyberweb/images/standard_images/TURM.png +0 -0
  353. data/lib/cyberweb/images/standard_images/UHR.png +0 -0
  354. data/lib/cyberweb/images/standard_images/UPLOAD2.png +0 -0
  355. data/lib/cyberweb/images/standard_images/USB_CONNECTION_DEVICE.png +0 -0
  356. data/lib/cyberweb/images/standard_images/VALID_CSS.jpg +0 -0
  357. data/lib/cyberweb/images/standard_images/VALID_HTML.jpg +0 -0
  358. data/lib/cyberweb/images/standard_images/VIDEOCAMERA.png +0 -0
  359. data/lib/cyberweb/images/standard_images/VOGEL.png +0 -0
  360. data/lib/cyberweb/images/standard_images/VS_TCPA.gif +0 -0
  361. data/lib/cyberweb/images/standard_images/WARNSCHILD.png +0 -0
  362. data/lib/cyberweb/images/standard_images/WEBSERVER.png +0 -0
  363. data/lib/cyberweb/images/standard_images/WECKER.jpg +0 -0
  364. data/lib/cyberweb/images/standard_images/WINGS.png +0 -0
  365. data/lib/cyberweb/images/standard_images/WORD.png +0 -0
  366. data/lib/cyberweb/images/standard_images/WURZEL_ZEICHEN.png +0 -0
  367. data/lib/cyberweb/images/standard_images/YIN_YANG.png +0 -0
  368. data/lib/cyberweb/images/standard_images/Yin__Yang.gif +0 -0
  369. data/lib/cyberweb/images/standard_images/ZAHNRAD.png +0 -0
  370. data/lib/cyberweb/images/standard_images/ZAUBERHUT.png +0 -0
  371. data/lib/cyberweb/images/standard_images/ZITRONE.png +0 -0
  372. data/lib/cyberweb/images/standard_images/ZURUECK.jpg +0 -0
  373. data/lib/cyberweb/images/standard_images/blue_gallery.png +0 -0
  374. data/lib/cyberweb/images/standard_images/chk_off.png +0 -0
  375. data/lib/cyberweb/images/standard_images/chk_on.png +0 -0
  376. data/lib/cyberweb/images/standard_images/outdated.png +0 -0
  377. data/lib/cyberweb/images/standard_images/rdo_off.png +0 -0
  378. data/lib/cyberweb/images/standard_images/rdo_on.png +0 -0
  379. data/lib/cyberweb/images/standard_images/sneaky_ninja_face.png +0 -0
  380. data/lib/cyberweb/images/standard_images/standard_images.html +31644 -0
  381. data/lib/cyberweb/images/standard_images/text_editor.png +0 -0
  382. data/lib/cyberweb/images/standard_images/windows_key.png +0 -0
  383. data/lib/cyberweb/javascript/javascript_clock.rb +55 -12
  384. data/lib/cyberweb/javascript_code/custom_functions.js +73 -23
  385. data/lib/cyberweb/javascript_code/html_colours.js +9 -9
  386. data/lib/cyberweb/javascript_code/jquery/{jquery-3.6.1.js → jquery-3.6.3.js} +96 -12
  387. data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +0 -112
  388. data/lib/cyberweb/project/project.rb +7 -0
  389. data/lib/cyberweb/requires/require_the_cyberweb_project.rb +3 -1
  390. data/lib/cyberweb/toplevel_methods/css.rb +3 -0
  391. data/lib/cyberweb/toplevel_methods/html_tables.rb +58 -29
  392. data/lib/cyberweb/toplevel_methods/internal_hash.rb +11 -138
  393. data/lib/cyberweb/toplevel_methods/misc.rb +37 -4
  394. data/lib/cyberweb/toplevel_methods/path.rb +8 -8
  395. data/lib/cyberweb/toplevel_methods/registered_ids.rb +4 -1
  396. data/lib/cyberweb/utility_scripts/images_to_html/constants.rb +63 -0
  397. data/lib/cyberweb/utility_scripts/images_to_html/images_to_html.rb +149 -164
  398. data/lib/cyberweb/utility_scripts/images_to_html/misc.rb +119 -0
  399. data/lib/cyberweb/version/version.rb +2 -2
  400. data/lib/cyberweb/web_images/array_listing_all_project_images.rb +1 -1
  401. data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +16 -5
  402. data/lib/cyberweb/web_object/cmd.rb +257 -0
  403. data/lib/cyberweb/web_object/display_output_and_report.rb +99 -0
  404. data/lib/cyberweb/web_object/html_tags.rb +106 -98
  405. data/lib/cyberweb/web_object/images.rb +53 -36
  406. data/lib/cyberweb/web_object/javascript_and_jquery.rb +165 -51
  407. data/lib/cyberweb/web_object/link.rb +207 -34
  408. data/lib/cyberweb/web_object/misc.rb +1363 -1060
  409. data/lib/cyberweb/web_object/reset.rb +12 -10
  410. data/lib/cyberweb/web_object/roebe.rb +113 -0
  411. data/lib/cyberweb/web_object/web_object.rb +9 -4
  412. data/lib/cyberweb/yaml/js_files_to_load.yml +11 -3
  413. data/lib/cyberweb/yaml/project_configuration.yml +1 -1
  414. data/test/complex_tests/all_tests_in_one_page.cgi +12 -6
  415. data/test/javascript/testing_different_javascript_functions_available_in_the_cyberweb_project.cgi +27 -0
  416. data/test/javascript/testing_snowflakes.cgi +2 -2
  417. data/test/simple_tests/testing_p_default_versus_p_default_le.cgi +31 -0
  418. metadata +379 -15
  419. data/lib/cyberweb/javascript_code/jquery/jquery-3.6.0.js +0 -10881
@@ -10,6 +10,171 @@ module Cyberweb
10
10
 
11
11
  class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
12
12
 
13
+ # ========================================================================= #
14
+ # === Javascript_write
15
+ # ========================================================================= #
16
+ def javascript_write(
17
+ i = 'Hello world!'
18
+ )
19
+ addnl(
20
+ return_javascript(
21
+ 'document.write('+i.to_s+')'
22
+ )
23
+ )
24
+ end
25
+
26
+ # ========================================================================= #
27
+ # === return_javascript
28
+ #
29
+ # This method would yield a String such as:
30
+ #
31
+ # "\n<script>\n\nabc\n</script>\n"
32
+ #
33
+ # ========================================================================= #
34
+ def return_javascript(i)
35
+ ::Cyberweb.return_javascript(i)
36
+ end
37
+
38
+ # ========================================================================= #
39
+ # === dump_all_javascript
40
+ #
41
+ # This method was added in February 2023. It can be used to read the
42
+ # content of all .js files that are distributed by the cyberweb
43
+ # project, and present it as one large string. This is an alternative
44
+ # to the requirement of the browser normally needing to read from
45
+ # a local .js file. I actually ran into permission issues in February
46
+ # 2023, so I decided to add a "hackish" work-around over that
47
+ # problem - thus the method was added.
48
+ # ========================================================================= #
49
+ def dump_all_javascript
50
+ _ = ''.dup
51
+ # ======================================================================= #
52
+ # Build up the String next:
53
+ # ======================================================================= #
54
+ path_to_use = sitelibdir?+
55
+ 'cyberweb/javascript_code/'
56
+ js_files_to_load?.each {|this_js_file|
57
+ full_path = path_to_use+
58
+ this_js_file
59
+ if File.exist? full_path
60
+ _ << File.read(full_path)+"\n"
61
+ else
62
+ # _ << "THE PATH IS\n"
63
+ # _ << full_path+"\n"
64
+ end
65
+ }
66
+ append_onto_the_main_javascript_variable(return_javascript(_))
67
+ end
68
+
69
+ # ========================================================================= #
70
+ # === append_onto_the_main_javascript_variable
71
+ # ========================================================================= #
72
+ def append_onto_the_main_javascript_variable(i)
73
+ @internal_hash[:javascript] << i
74
+ end
75
+
76
+ # ========================================================================= #
77
+ # === javascript_file=
78
+ #
79
+ # A wrapper towards cyberweb.rb and javascript_file() method.
80
+ #
81
+ # Usage example:
82
+ #
83
+ # w.javascript_file = :fader
84
+ #
85
+ # ========================================================================= #
86
+ def javascript_file=(i)
87
+ _ = "#{javascript_file(i.dup)}#{N}"
88
+ @internal_hash[:javascript] << _
89
+ end; alias link_in_javascript javascript_file= # === link_in_javascript
90
+ alias load_javascript javascript_file= # === load_javascript
91
+
92
+ # ========================================================================= #
93
+ # === return_default_javascript
94
+ # ========================================================================= #
95
+ def return_default_javascript#(
96
+ # i = ::Cyberweb.converted_path_to_data # Disabled this line as of October 2022.
97
+ #)
98
+ #::Cyberweb.return_default_javascript(i)
99
+ _ = ''.dup
100
+ # path_to_use = ::Cyberweb.converted_path_to_project_base_dir
101
+ # path_to_use = ::Cyberweb.log_dir?+'javascript_code/'
102
+ path_to_use = ::Cyberweb.converted_path_to_the_directory_containing_the_copied_javascript_files
103
+ array = ARRAY_DEFAULT_JAVASCRIPT_LIBRARIES
104
+ _ = ''.dup # This String will be returned.
105
+ array.each {|entry|
106
+ full_path = "#{path_to_use}#{entry}".dup
107
+ _ << '<script src="'+full_path+'"'
108
+ _ = _.ljust(48)
109
+ _ << ' type="text/javascript"></script>'
110
+ _ << NL
111
+ }
112
+ return _
113
+ end
114
+
115
+ # ========================================================================= #
116
+ # === body_javascript=
117
+ #
118
+ # This method sets the @body_javascript ivar. This variable will be used
119
+ # for making the <body> of a HTML page, at the least to JavaScript
120
+ # that is associated with the <body> tag. Normally this is not in use
121
+ # for most webpages though.
122
+ #
123
+ # As of September 2011 it is required that the last character is a ';'.
124
+ # If this is not the case it will be appended.
125
+ #
126
+ # Usage example:
127
+ #
128
+ # w.body_onload = 'draginit()' # This is an alias.
129
+ #
130
+ # ========================================================================= #
131
+ def body_javascript=(
132
+ this_javascript = ''
133
+ )
134
+ @internal_hash[:body_javascript] << this_javascript
135
+ if @internal_hash[:body_javascript] and @internal_hash[:body_javascript].end_with?(';')
136
+ else
137
+ if @internal_hash[:body_javascript].frozen?
138
+ @internal_hash[:body_javascript] = @internal_hash[:body_javascript].dup
139
+ end
140
+ @internal_hash[:body_javascript] << ';'
141
+ end
142
+ end
143
+ # ======================================================================= #
144
+ # === onload=
145
+ #
146
+ # Right now this is an alias towards the above method. But one day
147
+ # this may change (May 2011)
148
+ # ======================================================================= #
149
+ alias onload= body_javascript= # === onload=
150
+ alias onload body_javascript= # === onload
151
+ alias body_onload= body_javascript= # === body_onload=
152
+
153
+ # ========================================================================= #
154
+ # === body_javascript?
155
+ # ========================================================================= #
156
+ def body_javascript?
157
+ @internal_hash[:body_javascript]
158
+ end
159
+
160
+ # ========================================================================= #
161
+ # === javascript?
162
+ # ========================================================================= #
163
+ def javascript?
164
+ @internal_hash[:javascript]
165
+ end
166
+
167
+ # ========================================================================= #
168
+ # === js_files_to_load?
169
+ #
170
+ # This method will return which .js files are to be loaded by the
171
+ # cyberweb project. This is normally defined in the file at
172
+ # 'cyberweb/yaml/js_files_to_load.yml'.
173
+ # ========================================================================= #
174
+ def js_files_to_load?
175
+ ARRAY_DEFAULT_JAVASCRIPT_LIBRARIES
176
+ end
177
+
13
178
  # ========================================================================= #
14
179
  # === ejavascript
15
180
  #
@@ -84,13 +249,6 @@ EOF
84
249
  ejavascript(content)
85
250
  end
86
251
 
87
- # ========================================================================= #
88
- # === return_javascript
89
- # ========================================================================= #
90
- def return_javascript(i)
91
- ::Cyberweb.return_javascript(i)
92
- end
93
-
94
252
  # ========================================================================= #
95
253
  # === this_jquery_version
96
254
  #
@@ -199,35 +357,6 @@ EOF
199
357
  add_to_main_string_lateron(_)
200
358
  end; alias no_right_click disable_right_click # === no_right_click
201
359
 
202
- # ========================================================================= #
203
- # === body_javascript=
204
- #
205
- # This method sets the @body_javascript ivar. This variable will be used
206
- # for making the <body> of a HTML page. As of Sep 2011 we require
207
- # that the last character is a ;
208
- #
209
- # Usage example:
210
- #
211
- # w.body_onload = 'draginit()' # This is an alias.
212
- #
213
- # ========================================================================= #
214
- def body_javascript=(this_javascript = '')
215
- @internal_hash[:body_javascript] << this_javascript
216
- if @internal_hash[:body_javascript] and @internal_hash[:body_javascript].end_with?(';')
217
- else
218
- @internal_hash[:body_javascript] << ';'
219
- end
220
- end
221
- # ======================================================================= #
222
- # === onload=
223
- #
224
- # Right now this is an alias towards the above method. But one day
225
- # this may change (May 2011)
226
- # ======================================================================= #
227
- alias onload= body_javascript= # === onload=
228
- alias onload body_javascript= # === onload
229
- alias body_onload= body_javascript= # === body_onload=
230
-
231
360
  # ========================================================================= #
232
361
  # === javascript_pop_up
233
362
  # ========================================================================= #
@@ -272,21 +401,6 @@ EOF
272
401
  @config['use_jquery']
273
402
  end
274
403
 
275
- # ========================================================================= #
276
- # === javascript_file=
277
- #
278
- # A wrapper towards cyberweb.rb and javascript_file() method.
279
- #
280
- # Usage example:
281
- #
282
- # w.javascript_file = :fader
283
- #
284
- # ========================================================================= #
285
- def javascript_file=(i)
286
- @internal_hash[:javascript] << javascript_file(i)+N
287
- end; alias link_in_javascript javascript_file= # === link_in_javascript
288
- alias load_javascript javascript_file= # === load_javascript
289
-
290
404
  require 'cyberweb/javascript/javascript_last_modified.rb'
291
405
  # ========================================================================= #
292
406
  # === javascript_last_modified
@@ -10,6 +10,95 @@ module Cyberweb
10
10
 
11
11
  class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
12
12
 
13
+ # ========================================================================= #
14
+ # === science_links_to
15
+ # ========================================================================= #
16
+ def science_links_to(
17
+ i = [
18
+ :chemistry,
19
+ :organic_chemistry
20
+ ]
21
+ )
22
+ science_hyperlinks(
23
+ i,
24
+ true
25
+ ) { :use_unicode_right_arrows }
26
+ end
27
+
28
+ # ========================================================================= #
29
+ # === string_link
30
+ #
31
+ # This method essentially creates a String representation of the HTML
32
+ # <a> tag.
33
+ #
34
+ # Since as of April 2022 the method "slink" is now an alias to string_link;
35
+ # it used to be an alias towards "def a()", but this was changed - the
36
+ # word string_link more logically may refer to slink as its intrinsic
37
+ # abbreviation.
38
+ # ========================================================================= #
39
+ def string_link(
40
+ i = '',
41
+ option_hash = {},
42
+ &block
43
+ )
44
+ # ======================================================================= #
45
+ # === Handle blocks given to this method next
46
+ # ======================================================================= #
47
+ if block_given?
48
+ yielded = yield
49
+ case yielded
50
+ # ===================================================================== #
51
+ # === :pretty
52
+ # ===================================================================== #
53
+ when :pretty
54
+ option_hash[:remote_URL] = beautiful_url(i)
55
+ end
56
+ end
57
+ if i.is_a?(Symbol)
58
+ if i.start_with?('local_')
59
+ i = BeautifulUrl.local_menu(i)
60
+ else
61
+ i = beautiful_url(i)
62
+ # =================================================================== #
63
+ # Also check if the second argument is a String. In this case we
64
+ # must modify it. Example for input that fulfils this criterium:
65
+ #
66
+ # remote_link(:hydrogenase, 'Hydrogenase')+
67
+ #
68
+ # =================================================================== #
69
+ if option_hash.is_a? String
70
+ option_hash = { content: option_hash }
71
+ end
72
+ end
73
+ end
74
+ # ======================================================================= #
75
+ # === Handle local entries for the "/home/x" directory layout.
76
+ # ======================================================================= #
77
+ if i.start_with? '/home/x'
78
+ i = i.dup
79
+ i.sub!(/\/home\/x\//, relative_path?)
80
+ end
81
+ # ======================================================================= #
82
+ # Next, double forward slashes, aka //, will be removed. However had
83
+ # this also cripples links such as "chrome://extensions/", which is
84
+ # bad. Thus, in February 2023, the following line was commented
85
+ # out; in the event we want to re-enable it, we may have to think
86
+ # more about the use cases.
87
+ # ======================================================================= #
88
+ # i = rds(i.to_s.dup)
89
+ # ======================================================================= #
90
+ # Delegate onto HtmlTags.a().
91
+ # ======================================================================= #
92
+ return HtmlTags.a(
93
+ i,
94
+ option_hash
95
+ )
96
+ end; alias string_a string_link # === string_a
97
+ alias string_href string_link # === string_href
98
+ alias string_remote_link string_link # === string_remote_link
99
+ alias slink string_link # === slink
100
+ alias remote_hyperlink string_link # === remote_hyperlink
101
+
13
102
  # ========================================================================= #
14
103
  # === a (a tag, link tag)
15
104
  #
@@ -45,6 +134,9 @@ class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
45
134
 
46
135
  # ========================================================================= #
47
136
  # === linkbr (abr tag)
137
+ #
138
+ # This method will mostly delegate onto HtmlTags.a(), by calling
139
+ # a() internally first.
48
140
  # ========================================================================= #
49
141
  def linkbr(
50
142
  i = '',
@@ -69,7 +161,7 @@ class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
69
161
  end
70
162
  end
71
163
  case i
72
- when 'SELF'
164
+ when /^SELF$/
73
165
  i = request_uri?
74
166
  else
75
167
  # ===================================================================== #
@@ -95,38 +187,6 @@ class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
95
187
  br
96
188
  end; alias abr linkbr # === abr
97
189
 
98
- # ========================================================================= #
99
- # === roebe_internal_link
100
- #
101
- # This is the method that, since as of June 2021, should be used for
102
- # any "roebe-internal" link. This refers primarily to my home
103
- # system, which is now spread out into different projects.
104
- #
105
- # Note that since as of June 2021, all roebe-internal links MUST start
106
- # with a :local_ prefix. This may change at a later time, but for now
107
- # we will keep this very strict.
108
- # ========================================================================= #
109
- def roebe_internal_link(
110
- i, hash
111
- )
112
- if i.is_a? Symbol
113
- if i.start_with? 'local'
114
- i = BeautifulUrl.local_link(i)
115
- # =================================================================== #
116
- # For sinatra, we will simplify this a bit. This is fairly hackish
117
- # but it should suffice for now.
118
- # =================================================================== #
119
- if uses_sinatra?
120
- i = i.to_s
121
- i = File.basename(
122
- i.delete_suffix(File.extname(i))
123
- )
124
- end
125
- end
126
- end
127
- abr(i, hash)
128
- end; alias roebe_local_link roebe_internal_link # === roebe_local_link
129
-
130
190
  # ========================================================================= #
131
191
  # === self_abr
132
192
  #
@@ -165,7 +225,9 @@ class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
165
225
  # pretty_link('Jules Bordet')
166
226
  #
167
227
  # ========================================================================= #
168
- def pretty_link(i, optional_css_class = '')
228
+ def pretty_link(
229
+ i, optional_css_class = ''
230
+ )
169
231
  remote_URL = beautiful_URL(i)
170
232
  return string_a(remote_URL, content: i, css_class: optional_css_class)
171
233
  end
@@ -365,4 +427,115 @@ class WebObject < ::Cyberweb::Base # === Cyberweb::WebObject
365
427
  end
366
428
  end
367
429
 
430
+ # ========================================================================= #
431
+ # === science_hyperlinks
432
+ #
433
+ # This method will add some of my default hyperlinks for local files,
434
+ # in regards to science-related links/content.
435
+ #
436
+ # The first argument to this method can be additional entries that
437
+ # the user may want to display.
438
+ #
439
+ # Different usage examples follow next:
440
+ #
441
+ # science_hyperlinks
442
+ # science_hyperlinks { :use_unicode_right_arrows }
443
+ # science_links {{ use_this_image: LINK_IMAGE }}
444
+ #
445
+ # ========================================================================= #
446
+ def science_hyperlinks(
447
+ additional_entries = nil,
448
+ use_only_the_additional_entries = false,
449
+ &block
450
+ )
451
+ array_science_entries = %w(
452
+ local_cellbiology
453
+ local_biochemistry
454
+ local_chemistry
455
+ local_genetics
456
+ local_gene_expression
457
+ local_microbiology
458
+ local_biotechnology
459
+ local_evolution
460
+ )
461
+ if use_only_the_additional_entries
462
+ array_science_entries.clear
463
+ end
464
+ if additional_entries
465
+ array_science_entries << [additional_entries]
466
+ array_science_entries.flatten!
467
+ array_science_entries.compact!
468
+ end
469
+ yielded = nil
470
+ yielded = yield if block_given?
471
+ array_science_entries.each {|this_local_link|
472
+ this_local_link = BeautifulUrl.local_menu(this_local_link)
473
+ short_name = File.basename(this_local_link.to_s).delete_suffix('.cgi').dup.
474
+ tr('_',' ').
475
+ sub(/local/,'')
476
+ if yielded.is_a? Hash
477
+ # =================================================================== #
478
+ # === :use_this_image
479
+ # =================================================================== #
480
+ if yielded.has_key?(:use_this_image)
481
+ use_this_image = yielded[:use_this_image]
482
+ short_name = "#{use_this_image}#{short_name.strip}"
483
+ end
484
+ else
485
+ case yielded
486
+ # =================================================================== #
487
+ # === pretty_image
488
+ # =================================================================== #
489
+ when :pretty_image
490
+ short_name.prepend(dot109?)
491
+ # =================================================================== #
492
+ # === :use_unicode_right_arrows
493
+ # =================================================================== #
494
+ when :use_unicode_right_arrows
495
+ short_name.prepend('→')
496
+ end
497
+ end
498
+ abr_self(
499
+ this_local_link,
500
+ content: short_name
501
+ )
502
+ }
503
+ end; alias add_science_links science_hyperlinks # === add_science_links
504
+ alias science_links science_hyperlinks # === science_links
505
+
506
+ # ========================================================================= #
507
+ # === check_for_links_markdown_file
508
+ #
509
+ # This method will check for a file called "links.md".
510
+ # ========================================================================= #
511
+ def check_for_links_markdown_file
512
+ _ = 'links.md'
513
+ # Also check for LINKS.md
514
+ unless File.exist? _
515
+ _ = 'LINKS.md'
516
+ end
517
+ if File.exist? _
518
+ use_this_css_class = ''.dup # A default value.
519
+ lines = File.readlines(_)
520
+ lines.each {|this_entry|
521
+ if this_entry.include? '# ' # Assume a "hidden" CSS class in this case.
522
+ splitted = this_entry.split('# ')
523
+ use_this_css_class = splitted.last.strip
524
+ this_entry = splitted.first
525
+ end
526
+ if this_entry.is_a?(String) and this_entry.start_with?(':')
527
+ this_entry = Cyberweb.sanitize_url(
528
+ this_entry.delete(':').to_sym
529
+ )
530
+ end
531
+ abr_self(
532
+ this_entry,
533
+ css_class: use_this_css_class
534
+ )
535
+ }
536
+ br # And one last trailing newline.
537
+ end
538
+ end; alias try_links_file check_for_links_markdown_file # === try_links_file
539
+ alias check_for_links_file check_for_links_markdown_file # === check_for_links_file
540
+
368
541
  end; end