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.
- checksums.yaml +4 -4
- data/README.md +274 -86
- data/cyberweb.gemspec +0 -3
- data/doc/README.gen +273 -85
- data/doc/todo/todo_for_the_cyberweb_project.md +100 -99
- data/examples/advanced/draw_circle/draw_circle.cgi +2 -2
- data/examples/advanced/simple_calculator.cgi +4 -4
- data/examples/css/animated_dodecahedron_example/animated_dodecahedron_example.html +107 -0
- data/examples/css/animated_police_box/animated_police_box.html +639 -0
- data/examples/css/animated_solar_system/animated_solar_system.html +168 -0
- data/examples/css/animated_solar_system/css/styles.css +1592 -0
- data/examples/css/animated_solar_system/img/bg-glow.png +0 -0
- data/examples/css/animated_solar_system/img/bg-stars.png +0 -0
- data/examples/css/animated_solar_system/img/p-earth.png +0 -0
- data/examples/css/animated_solar_system/img/p-jupiter.png +0 -0
- data/examples/css/animated_solar_system/img/p-mars.png +0 -0
- data/examples/css/animated_solar_system/img/p-mercury.png +0 -0
- data/examples/css/animated_solar_system/img/p-neptune.png +0 -0
- data/examples/css/animated_solar_system/img/p-saturn.png +0 -0
- data/examples/css/animated_solar_system/img/p-uranus.png +0 -0
- data/examples/css/animated_solar_system/img/p-venus.png +0 -0
- data/examples/css/animated_solar_system/img/sun.png +0 -0
- data/examples/css/animated_solar_system/js/jquery.min.js +4 -0
- data/examples/css/animated_solar_system/js/scripts.js +42 -0
- data/examples/css/animated_solar_system/js/scripts.min.js +1 -0
- data/examples/css/dozing_bird_example/dozing_bird_example.html +358 -0
- data/examples/css/planet_earth_is_rotating/planet_earth_is_rotating.html +130 -0
- data/examples/css/simpler_css_clock/simpler_css_clock.html +125 -0
- data/examples/html/{href_examples.html → href_examples/href_examples.html} +5 -2
- data/examples/html/href_in_pre_tag/href_in_pre_tag.html +39 -0
- data/examples/javascript_and_jquery/toggle_visibility_of_elements/toggle_visibility_of_elements.html +35 -0
- data/examples/simple/toggle_visibility_example/toggle_visibility_example.cgi +36 -0
- data/images/cyberweb_theme.png +0 -0
- data/lib/cyberweb/base/misc.rb +20 -13
- data/lib/cyberweb/cascading_style_sheets/border.css +61 -49
- data/lib/cyberweb/cascading_style_sheets/default.css +17 -8
- data/lib/cyberweb/cascading_style_sheets/fonts.css +6 -2
- data/lib/cyberweb/cascading_style_sheets/glow_effects.css +5 -5
- data/lib/cyberweb/cascading_style_sheets/hover.css +13 -5
- data/lib/cyberweb/cascading_style_sheets/margin.css +3 -0
- data/lib/cyberweb/cmd/README.md +2 -0
- data/lib/cyberweb/cmd/cmd.rb +601 -0
- data/lib/cyberweb/constants/constants.rb +16 -0
- data/lib/cyberweb/generator/cgi.rb +2 -2
- data/lib/cyberweb/html_tags/textarea.rb +54 -23
- data/lib/cyberweb/images/standard_images/ADMIN.png +0 -0
- data/lib/cyberweb/images/standard_images/AMBULANZ.png +0 -0
- data/lib/cyberweb/images/standard_images/ANGRY_SMILEY.png +0 -0
- data/lib/cyberweb/images/standard_images/APPROVE.png +0 -0
- data/lib/cyberweb/images/standard_images/ARROW_LEFT.png +0 -0
- data/lib/cyberweb/images/standard_images/ARROW_RIGHT.png +0 -0
- data/lib/cyberweb/images/standard_images/ARROW_TOOLTIP.gif +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN2.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN3.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN4.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSTRIA_FAHNE.jpg +0 -0
- data/lib/cyberweb/images/standard_images/AWARD.png +0 -0
- data/lib/cyberweb/images/standard_images/AXE.png +0 -0
- data/lib/cyberweb/images/standard_images/BACKUP_IMAGE.png +0 -0
- data/lib/cyberweb/images/standard_images/BAGGER.png +0 -0
- data/lib/cyberweb/images/standard_images/BARS.gif +0 -0
- data/lib/cyberweb/images/standard_images/BEGINNER.jpg +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_1.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_2.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_3.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_4.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_5.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_6.png +0 -0
- data/lib/cyberweb/images/standard_images/BIG_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/BIKE.png +0 -0
- data/lib/cyberweb/images/standard_images/BIO.png +0 -0
- data/lib/cyberweb/images/standard_images/BIOS.gif +0 -0
- data/lib/cyberweb/images/standard_images/BLOB.png +0 -0
- data/lib/cyberweb/images/standard_images/BLOG.png +0 -0
- data/lib/cyberweb/images/standard_images/BLUEARROW.png +0 -0
- data/lib/cyberweb/images/standard_images/BLUE_HEAD.gif +0 -0
- data/lib/cyberweb/images/standard_images/BLUE_PILL.png +0 -0
- data/lib/cyberweb/images/standard_images/BLUME.png +0 -0
- data/lib/cyberweb/images/standard_images/BOHRER.png +0 -0
- data/lib/cyberweb/images/standard_images/BOOK_CLOSED.png +0 -0
- data/lib/cyberweb/images/standard_images/BOOK_OPENED.png +0 -0
- data/lib/cyberweb/images/standard_images/BUBBLE.png +0 -0
- data/lib/cyberweb/images/standard_images/BUECHER.jpg +0 -0
- data/lib/cyberweb/images/standard_images/BUERO_KLAMMER.png +0 -0
- data/lib/cyberweb/images/standard_images/BUSINESS.png +0 -0
- data/lib/cyberweb/images/standard_images/BUTTON1.gif +0 -0
- data/lib/cyberweb/images/standard_images/CAMERA.png +0 -0
- data/lib/cyberweb/images/standard_images/CAT.png +0 -0
- data/lib/cyberweb/images/standard_images/CAUTION.png +0 -0
- data/lib/cyberweb/images/standard_images/CHAOTIC_IMAGE.png +0 -0
- data/lib/cyberweb/images/standard_images/CHECKBOX_OFF.png +0 -0
- data/lib/cyberweb/images/standard_images/CHECKBOX_ON.png +0 -0
- data/lib/cyberweb/images/standard_images/CHEERING_PERSON.png +0 -0
- data/lib/cyberweb/images/standard_images/CLOSED.png +0 -0
- data/lib/cyberweb/images/standard_images/COMMAND_ICO.png +0 -0
- data/lib/cyberweb/images/standard_images/COMPLEX.png +0 -0
- data/lib/cyberweb/images/standard_images/COMPONENTS.png +0 -0
- data/lib/cyberweb/images/standard_images/COMPUTER.png +0 -0
- data/lib/cyberweb/images/standard_images/CONNECTED.png +0 -0
- data/lib/cyberweb/images/standard_images/CONTACT.png +0 -0
- data/lib/cyberweb/images/standard_images/COPY.png +0 -0
- data/lib/cyberweb/images/standard_images/CSS.png +0 -0
- data/lib/cyberweb/images/standard_images/CURSOR.png +0 -0
- data/lib/cyberweb/images/standard_images/CUTE_BUBBA.png +0 -0
- data/lib/cyberweb/images/standard_images/CUTE_MOUSE.png +0 -0
- data/lib/cyberweb/images/standard_images/DEVELOP.png +0 -0
- data/lib/cyberweb/images/standard_images/DIAMOND_SHELL.png +0 -0
- data/lib/cyberweb/images/standard_images/DIE_PERFEKTE_AUSBILDUNG.png +0 -0
- data/lib/cyberweb/images/standard_images/DOCUMENTATION.png +0 -0
- data/lib/cyberweb/images/standard_images/DOKUMENT.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_01.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_02.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_03.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_04.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_05.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_06.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_07.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_08.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_09.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_10.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_11.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_12.png +0 -0
- data/lib/cyberweb/images/standard_images/DOWNLOAD.png +0 -0
- data/lib/cyberweb/images/standard_images/DOWNLOAD2.png +0 -0
- data/lib/cyberweb/images/standard_images/DOWNLOAD_PACKAGE.png +0 -0
- data/lib/cyberweb/images/standard_images/DUCK.png +0 -0
- data/lib/cyberweb/images/standard_images/DUCKY.png +0 -0
- data/lib/cyberweb/images/standard_images/EINKAUFSKORB.png +0 -0
- data/lib/cyberweb/images/standard_images/EINKAUFSWAGEN.png +0 -0
- data/lib/cyberweb/images/standard_images/ELLIPSE.png +0 -0
- data/lib/cyberweb/images/standard_images/EMAIL_FANCY.png +0 -0
- data/lib/cyberweb/images/standard_images/EMAIL_FAVICON.png +0 -0
- data/lib/cyberweb/images/standard_images/EMAIL_FAVICON.xpm +176 -0
- data/lib/cyberweb/images/standard_images/ENGLISH.jpg +0 -0
- data/lib/cyberweb/images/standard_images/ERRORS.png +0 -0
- data/lib/cyberweb/images/standard_images/EURO.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/01_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/02_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/03_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/04_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/05_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/0x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/1x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/2x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/3x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/4x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EXTERNAL_LINK.png +0 -0
- data/lib/cyberweb/images/standard_images/EYE.png +0 -0
- data/lib/cyberweb/images/standard_images/FAQ.png +0 -0
- data/lib/cyberweb/images/standard_images/FERNGLAS.png +0 -0
- data/lib/cyberweb/images/standard_images/FLOWER_1.png +0 -0
- data/lib/cyberweb/images/standard_images/FLOWER_2.png +0 -0
- data/lib/cyberweb/images/standard_images/FLUGZEUG1.jpg +0 -0
- data/lib/cyberweb/images/standard_images/FOLDER.png +0 -0
- data/lib/cyberweb/images/standard_images/FORK.png +0 -0
- data/lib/cyberweb/images/standard_images/FORUM.png +0 -0
- data/lib/cyberweb/images/standard_images/FOTOAPPARAT.png +0 -0
- data/lib/cyberweb/images/standard_images/FOTO_FAVICON.png +0 -0
- data/lib/cyberweb/images/standard_images/FRAGEZEICHEN.jpg +0 -0
- data/lib/cyberweb/images/standard_images/FTP.png +0 -0
- data/lib/cyberweb/images/standard_images/FUNNY_ELEPHANT.png +0 -0
- data/lib/cyberweb/images/standard_images/FUSSBALL.png +0 -0
- data/lib/cyberweb/images/standard_images/F/303/204CHER.png +0 -0
- data/lib/cyberweb/images/standard_images/GATEWAY.png +0 -0
- data/lib/cyberweb/images/standard_images/GB.jpg +0 -0
- data/lib/cyberweb/images/standard_images/GENDER_ICON_FEMALE.png +0 -0
- data/lib/cyberweb/images/standard_images/GENDER_ICON_MALE.png +0 -0
- data/lib/cyberweb/images/standard_images/GERMANY_FLAG.png +0 -0
- data/lib/cyberweb/images/standard_images/GERSTE.png +0 -0
- data/lib/cyberweb/images/standard_images/GESCHENKBOX.png +0 -0
- data/lib/cyberweb/images/standard_images/GET_HELP.png +0 -0
- data/lib/cyberweb/images/standard_images/GITARRE.png +0 -0
- data/lib/cyberweb/images/standard_images/GOOGLE.png +0 -0
- data/lib/cyberweb/images/standard_images/GORILLA.gif +0 -0
- data/lib/cyberweb/images/standard_images/GOTHIC_SPACER.png +0 -0
- data/lib/cyberweb/images/standard_images/GRADIENT_FILL.gif +0 -0
- data/lib/cyberweb/images/standard_images/GRAFIK_SMALL.png +0 -0
- data/lib/cyberweb/images/standard_images/GRID_LAYOUT.gif +0 -0
- data/lib/cyberweb/images/standard_images/GRINSEN.jpg +0 -0
- data/lib/cyberweb/images/standard_images/GUN.png +0 -0
- data/lib/cyberweb/images/standard_images/HAKEN.png +0 -0
- data/lib/cyberweb/images/standard_images/HALLOWEEN.png +0 -0
- data/lib/cyberweb/images/standard_images/HAMMER.png +0 -0
- data/lib/cyberweb/images/standard_images/HANGING_MONKEY.png +0 -0
- data/lib/cyberweb/images/standard_images/HANG_MAN.png +0 -0
- data/lib/cyberweb/images/standard_images/HAPPY_BIRD.png +0 -0
- data/lib/cyberweb/images/standard_images/HAPPY_SMILEY.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_EMPTY.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_FULL.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_HALF.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_ONEFOURTH.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_THREEEIGHT.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_THREEFOURTH.png +0 -0
- data/lib/cyberweb/images/standard_images/HEART.png +0 -0
- data/lib/cyberweb/images/standard_images/HELP.png +0 -0
- data/lib/cyberweb/images/standard_images/HOME.gif +0 -0
- data/lib/cyberweb/images/standard_images/HONIG.jpg +0 -0
- data/lib/cyberweb/images/standard_images/HTML40.png +0 -0
- data/lib/cyberweb/images/standard_images/HUHN.gif +0 -0
- data/lib/cyberweb/images/standard_images/HUMAN.gif +0 -0
- data/lib/cyberweb/images/standard_images/ICONS_COLLECTION1.gif +0 -0
- data/lib/cyberweb/images/standard_images/ICONS_COLLECTION2.png +0 -0
- data/lib/cyberweb/images/standard_images/ICOSAHEDRON.jpg +0 -0
- data/lib/cyberweb/images/standard_images/IE.jpg +0 -0
- data/lib/cyberweb/images/standard_images/IMPORTANT_ARROW_LEFT.jpg +0 -0
- data/lib/cyberweb/images/standard_images/INTERNAL_LINKS.png +0 -0
- data/lib/cyberweb/images/standard_images/IPAD.png +0 -0
- data/lib/cyberweb/images/standard_images/ITEM.png +0 -0
- data/lib/cyberweb/images/standard_images/KAFFEE.png +0 -0
- data/lib/cyberweb/images/standard_images/KARMA.png +0 -0
- data/lib/cyberweb/images/standard_images/KEYS.png +0 -0
- data/lib/cyberweb/images/standard_images/KLEBSTOFF.png +0 -0
- data/lib/cyberweb/images/standard_images/KLEE_BLATT.png +0 -0
- data/lib/cyberweb/images/standard_images/KNIFE01.png +0 -0
- data/lib/cyberweb/images/standard_images/LARGER_COMPUTER.png +0 -0
- data/lib/cyberweb/images/standard_images/LCD.png +0 -0
- data/lib/cyberweb/images/standard_images/LEAF.png +0 -0
- data/lib/cyberweb/images/standard_images/LEAF2.png +0 -0
- data/lib/cyberweb/images/standard_images/LEFT_RIGHT_PFEIL.png +0 -0
- data/lib/cyberweb/images/standard_images/LENS.png +0 -0
- data/lib/cyberweb/images/standard_images/LEXIKON1.jpg +0 -0
- data/lib/cyberweb/images/standard_images/LOCK.png +0 -0
- data/lib/cyberweb/images/standard_images/LOSER.gif +0 -0
- data/lib/cyberweb/images/standard_images/LUPE.gif +0 -0
- data/lib/cyberweb/images/standard_images/MANTIS.png +0 -0
- data/lib/cyberweb/images/standard_images/MAXERL.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_ERROR.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_INFO.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_SUCCESS.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_WARNING.png +0 -0
- data/lib/cyberweb/images/standard_images/MICROSOFT.png +0 -0
- data/lib/cyberweb/images/standard_images/MINE.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM1.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM2.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM3.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM4.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM5.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM6.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_CUBE.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_DOT.png +0 -0
- data/lib/cyberweb/images/standard_images/MINUS.png +0 -0
- data/lib/cyberweb/images/standard_images/MONEY.png +0 -0
- data/lib/cyberweb/images/standard_images/MOUSE.png +0 -0
- data/lib/cyberweb/images/standard_images/MUSIK_NOTE.png +0 -0
- data/lib/cyberweb/images/standard_images/NAGEL.jpg +0 -0
- data/lib/cyberweb/images/standard_images/NASHORN.png +0 -0
- data/lib/cyberweb/images/standard_images/NEW.png +0 -0
- data/lib/cyberweb/images/standard_images/NEWS.png +0 -0
- data/lib/cyberweb/images/standard_images/NOBODY.png +0 -0
- data/lib/cyberweb/images/standard_images/NOTE.png +0 -0
- data/lib/cyberweb/images/standard_images/NOTEPAD.png +0 -0
- data/lib/cyberweb/images/standard_images/NOTIZ.png +0 -0
- data/lib/cyberweb/images/standard_images/NO_PATENTS.png +0 -0
- data/lib/cyberweb/images/standard_images/OBSOLETE.png +0 -0
- data/lib/cyberweb/images/standard_images/OFFICIAL_HOME.png +0 -0
- data/lib/cyberweb/images/standard_images/PDF.png +0 -0
- data/lib/cyberweb/images/standard_images/PERGAMENT_TILER1.jpg +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL1.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL10.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL11.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL12.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL2.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL3.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL4.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL5.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL6.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL6_red.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL7.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL8_OUT.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL9.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL_LINKS_OBEN.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL_VERTICAL.png +0 -0
- data/lib/cyberweb/images/standard_images/PHONE.png +0 -0
- data/lib/cyberweb/images/standard_images/PHP_FORUM.jpg +0 -0
- data/lib/cyberweb/images/standard_images/PIN.png +0 -0
- data/lib/cyberweb/images/standard_images/PIN_POINTER_RED.png +0 -0
- data/lib/cyberweb/images/standard_images/PIPETTE.png +0 -0
- data/lib/cyberweb/images/standard_images/PLUS.png +0 -0
- data/lib/cyberweb/images/standard_images/POSAUNE.png +0 -0
- data/lib/cyberweb/images/standard_images/PRESENT.png +0 -0
- data/lib/cyberweb/images/standard_images/PRINT.png +0 -0
- data/lib/cyberweb/images/standard_images/PRINTER.png +0 -0
- data/lib/cyberweb/images/standard_images/PROTOKOLL.png +0 -0
- data/lib/cyberweb/images/standard_images/QUADRAT01.png +0 -0
- data/lib/cyberweb/images/standard_images/QUOTE.png +0 -0
- data/lib/cyberweb/images/standard_images/RADIO_ACTIVE.png +0 -0
- data/lib/cyberweb/images/standard_images/RAINBOW_CIRCLE.png +0 -0
- data/lib/cyberweb/images/standard_images/RED_PILL.png +0 -0
- data/lib/cyberweb/images/standard_images/RIP.png +0 -0
- data/lib/cyberweb/images/standard_images/ROBERT.png +0 -0
- data/lib/cyberweb/images/standard_images/ROCKET.png +0 -0
- data/lib/cyberweb/images/standard_images/ROSE.png +0 -0
- data/lib/cyberweb/images/standard_images/ROSE2.png +0 -0
- data/lib/cyberweb/images/standard_images/RUNNING.png +0 -0
- data/lib/cyberweb/images/standard_images/SAVE.png +0 -0
- data/lib/cyberweb/images/standard_images/SCANNER.png +0 -0
- data/lib/cyberweb/images/standard_images/SCHERE.png +0 -0
- data/lib/cyberweb/images/standard_images/SCHNEEMANN.png +0 -0
- data/lib/cyberweb/images/standard_images/SCISSORS.png +0 -0
- data/lib/cyberweb/images/standard_images/SHOPPING.png +0 -0
- data/lib/cyberweb/images/standard_images/SKULL.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_CAT.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_DOCUMENT.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_HOUSE.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_PLANE.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY1.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY2.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY3.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY4.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY5.png +0 -0
- data/lib/cyberweb/images/standard_images/SNAIL.png +0 -0
- data/lib/cyberweb/images/standard_images/SNOWFLAKE.png +0 -0
- data/lib/cyberweb/images/standard_images/SPACER.png +0 -0
- data/lib/cyberweb/images/standard_images/SPECIAL_PFEIL.png +0 -0
- data/lib/cyberweb/images/standard_images/SPIDERMAN_HEAD.png +0 -0
- data/lib/cyberweb/images/standard_images/SPIRAL_CROSS.png +0 -0
- data/lib/cyberweb/images/standard_images/SPOON.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_BLACK.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_BLUE.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_CADETBLUE.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_CHAOS.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_DARKGOLDENROD.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_GREEN.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_GREY.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_RED.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_VIOLET.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_WHITE.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_YEL.png +0 -0
- data/lib/cyberweb/images/standard_images/STANDARDS_FAVICON.png +0 -0
- data/lib/cyberweb/images/standard_images/STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/STAR_FANCY.png +0 -0
- data/lib/cyberweb/images/standard_images/STATUS_IN_PROGRESS.png +0 -0
- data/lib/cyberweb/images/standard_images/STD_COLOURS.png +0 -0
- data/lib/cyberweb/images/standard_images/SUN.png +0 -0
- data/lib/cyberweb/images/standard_images/SYMBOL_FRAU.png +0 -0
- data/lib/cyberweb/images/standard_images/SYMBOL_MANN.png +0 -0
- data/lib/cyberweb/images/standard_images/SYNC.png +0 -0
- data/lib/cyberweb/images/standard_images/TASCHENLAMPE.jpg +0 -0
- data/lib/cyberweb/images/standard_images/TASTATUR.png +0 -0
- data/lib/cyberweb/images/standard_images/TECHNICOLOR_TWIRL.png +0 -0
- data/lib/cyberweb/images/standard_images/TELEFON.png +0 -0
- data/lib/cyberweb/images/standard_images/TEST.bmp +0 -0
- data/lib/cyberweb/images/standard_images/TEUFELCHEN.png +0 -0
- data/lib/cyberweb/images/standard_images/THERMOMETER.png +0 -0
- data/lib/cyberweb/images/standard_images/THINKING_HUMAN.png +0 -0
- data/lib/cyberweb/images/standard_images/TODO.jpg +0 -0
- data/lib/cyberweb/images/standard_images/TODO.png +0 -0
- data/lib/cyberweb/images/standard_images/TOOLS.png +0 -0
- data/lib/cyberweb/images/standard_images/TRANSPORT.png +0 -0
- data/lib/cyberweb/images/standard_images/TRIANGLE.png +0 -0
- data/lib/cyberweb/images/standard_images/TURM.png +0 -0
- data/lib/cyberweb/images/standard_images/UHR.png +0 -0
- data/lib/cyberweb/images/standard_images/UPLOAD2.png +0 -0
- data/lib/cyberweb/images/standard_images/USB_CONNECTION_DEVICE.png +0 -0
- data/lib/cyberweb/images/standard_images/VALID_CSS.jpg +0 -0
- data/lib/cyberweb/images/standard_images/VALID_HTML.jpg +0 -0
- data/lib/cyberweb/images/standard_images/VIDEOCAMERA.png +0 -0
- data/lib/cyberweb/images/standard_images/VOGEL.png +0 -0
- data/lib/cyberweb/images/standard_images/VS_TCPA.gif +0 -0
- data/lib/cyberweb/images/standard_images/WARNSCHILD.png +0 -0
- data/lib/cyberweb/images/standard_images/WEBSERVER.png +0 -0
- data/lib/cyberweb/images/standard_images/WECKER.jpg +0 -0
- data/lib/cyberweb/images/standard_images/WINGS.png +0 -0
- data/lib/cyberweb/images/standard_images/WORD.png +0 -0
- data/lib/cyberweb/images/standard_images/WURZEL_ZEICHEN.png +0 -0
- data/lib/cyberweb/images/standard_images/YIN_YANG.png +0 -0
- data/lib/cyberweb/images/standard_images/Yin__Yang.gif +0 -0
- data/lib/cyberweb/images/standard_images/ZAHNRAD.png +0 -0
- data/lib/cyberweb/images/standard_images/ZAUBERHUT.png +0 -0
- data/lib/cyberweb/images/standard_images/ZITRONE.png +0 -0
- data/lib/cyberweb/images/standard_images/ZURUECK.jpg +0 -0
- data/lib/cyberweb/images/standard_images/blue_gallery.png +0 -0
- data/lib/cyberweb/images/standard_images/chk_off.png +0 -0
- data/lib/cyberweb/images/standard_images/chk_on.png +0 -0
- data/lib/cyberweb/images/standard_images/outdated.png +0 -0
- data/lib/cyberweb/images/standard_images/rdo_off.png +0 -0
- data/lib/cyberweb/images/standard_images/rdo_on.png +0 -0
- data/lib/cyberweb/images/standard_images/sneaky_ninja_face.png +0 -0
- data/lib/cyberweb/images/standard_images/standard_images.html +31644 -0
- data/lib/cyberweb/images/standard_images/text_editor.png +0 -0
- data/lib/cyberweb/images/standard_images/windows_key.png +0 -0
- data/lib/cyberweb/javascript/javascript_clock.rb +55 -12
- data/lib/cyberweb/javascript_code/custom_functions.js +73 -23
- data/lib/cyberweb/javascript_code/html_colours.js +9 -9
- data/lib/cyberweb/javascript_code/jquery/{jquery-3.6.1.js → jquery-3.6.3.js} +96 -12
- data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +0 -112
- data/lib/cyberweb/project/project.rb +7 -0
- data/lib/cyberweb/requires/require_the_cyberweb_project.rb +3 -1
- data/lib/cyberweb/toplevel_methods/css.rb +3 -0
- data/lib/cyberweb/toplevel_methods/html_tables.rb +58 -29
- data/lib/cyberweb/toplevel_methods/internal_hash.rb +11 -138
- data/lib/cyberweb/toplevel_methods/misc.rb +37 -4
- data/lib/cyberweb/toplevel_methods/path.rb +8 -8
- data/lib/cyberweb/toplevel_methods/registered_ids.rb +4 -1
- data/lib/cyberweb/utility_scripts/images_to_html/constants.rb +63 -0
- data/lib/cyberweb/utility_scripts/images_to_html/images_to_html.rb +149 -164
- data/lib/cyberweb/utility_scripts/images_to_html/misc.rb +119 -0
- data/lib/cyberweb/version/version.rb +2 -2
- data/lib/cyberweb/web_images/array_listing_all_project_images.rb +1 -1
- data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +16 -5
- data/lib/cyberweb/web_object/cmd.rb +257 -0
- data/lib/cyberweb/web_object/display_output_and_report.rb +99 -0
- data/lib/cyberweb/web_object/html_tags.rb +106 -98
- data/lib/cyberweb/web_object/images.rb +53 -36
- data/lib/cyberweb/web_object/javascript_and_jquery.rb +165 -51
- data/lib/cyberweb/web_object/link.rb +207 -34
- data/lib/cyberweb/web_object/misc.rb +1363 -1060
- data/lib/cyberweb/web_object/reset.rb +12 -10
- data/lib/cyberweb/web_object/roebe.rb +113 -0
- data/lib/cyberweb/web_object/web_object.rb +9 -4
- data/lib/cyberweb/yaml/js_files_to_load.yml +11 -3
- data/lib/cyberweb/yaml/project_configuration.yml +1 -1
- data/test/complex_tests/all_tests_in_one_page.cgi +12 -6
- data/test/javascript/testing_different_javascript_functions_available_in_the_cyberweb_project.cgi +27 -0
- data/test/javascript/testing_snowflakes.cgi +2 -2
- data/test/simple_tests/testing_p_default_versus_p_default_le.cgi +31 -0
- metadata +379 -15
- 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
|
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(
|
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
|